@wrongstack/webui 0.318.0 → 0.319.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/dist/assets/{AgentRosterView-C46rL23K.js → AgentRosterView-BVpIFQwi.js} +1 -1
- package/dist/assets/{AnalyticsDashboard-B8r_8kNv.js → AnalyticsDashboard-nqlWJi6M.js} +1 -1
- package/dist/assets/{AudienceMemoryPanel-Ciybycpn.js → AudienceMemoryPanel-BT6C4Jkw.js} +1 -1
- package/dist/assets/{ChangesView-BREfCsEq.js → ChangesView-CN7NWDeV.js} +1 -1
- package/dist/assets/{ChimeraReviewsView-aSYmQ8tC.js → ChimeraReviewsView-BNQE5kRx.js} +1 -1
- package/dist/assets/{ChronicleDashboard-bo2jv52s.js → ChronicleDashboard-BWMkG_hu.js} +1 -1
- package/dist/assets/{CodeEditor-C_KzNkIb.js → CodeEditor-DZ2k-Mz5.js} +1 -1
- package/dist/assets/{CodeMap-DA_k3u5g.js → CodeMap-CLOuNLqN.js} +1 -1
- package/dist/assets/{ConfirmModal-gukSikBD.js → ConfirmModal-B6BGiiN8.js} +1 -1
- package/dist/assets/{CronJobsPanel-D-43oYQ-.js → CronJobsPanel-CsMIoWVQ.js} +1 -1
- package/dist/assets/{DeadCodeScanPanel-VnMQatbH.js → DeadCodeScanPanel-DooqnEMF.js} +1 -1
- package/dist/assets/{DebugDashboard-DNDadwro.js → DebugDashboard-C0tmxxV8.js} +1 -1
- package/dist/assets/{DesignGalleryView-B9ZMJPOQ.js → DesignGalleryView-lc-XRmVG.js} +1 -1
- package/dist/assets/{GoalView-BkoCNN8l.js → GoalView-BuYUc4OB.js} +1 -1
- package/dist/assets/{KanbanView-nql6LkaS.js → KanbanView-DQK6adut.js} +1 -1
- package/dist/assets/{MailboxDetailView-CdHRfnNq.js → MailboxDetailView-CBV3-Hf2.js} +1 -1
- package/dist/assets/{MemoryDrawer-CfukdhlF.js → MemoryDrawer-rPf-1Ulk.js} +1 -1
- package/dist/assets/{MemoryManager-BD_VnFAu.js → MemoryManager-B_ZJhOqq.js} +1 -1
- package/dist/assets/{ModelPicker-C3r7IFfh.js → ModelPicker-CLs0qQgg.js} +1 -1
- package/dist/assets/{OfficeMapPanel-B47jfEHf.js → OfficeMapPanel-DnbdkXL1.js} +1 -1
- package/dist/assets/{ProcessMonitor-CvHdN8Bn.js → ProcessMonitor-CHNNqCk9.js} +1 -1
- package/dist/assets/{PromptJournalView-CXZ9notj.js → PromptJournalView-Biu4DknM.js} +1 -1
- package/dist/assets/{QueuePanel-DOcgHRH3.js → QueuePanel-CzTXq6j4.js} +1 -1
- package/dist/assets/{RefreshDebugView-BYmeORMQ.js → RefreshDebugView-d9iU3sFX.js} +1 -1
- package/dist/assets/{RequirementIntakeView-CFgVx_0T.js → RequirementIntakeView-g9dzUTVw.js} +1 -1
- package/dist/assets/{SageTabs-BRJG0fhZ.js → SageTabs-Bw6PDwy3.js} +2 -2
- package/dist/assets/{SddFlowGraph-BsfhxlDK.js → SddFlowGraph-Bj_Aqq5B.js} +1 -1
- package/dist/assets/{SddHub-Br1vyCgq.js → SddHub-Cdow0Exb.js} +1 -1
- package/dist/assets/{SessionInspectView-BSRjWErA.js → SessionInspectView-je_xLISf.js} +1 -1
- package/dist/assets/{SessionList-BkaI91oW.js → SessionList-4y1uuB-y.js} +1 -1
- package/dist/assets/{SessionsDashboard-BEQs4Div.js → SessionsDashboard-DkaNF5lx.js} +1 -1
- package/dist/assets/{SetupScreen-zY4541lT.js → SetupScreen-DWzbXvmU.js} +1 -1
- package/dist/assets/{SkillDetailView-DqxkOnb8.js → SkillDetailView-Bjq8GkDB.js} +1 -1
- package/dist/assets/{SpecsView-COS0-sxq.js → SpecsView-ok8HZ8ws.js} +1 -1
- package/dist/assets/{TechStackView-Dr8vI0hK.js → TechStackView-CQ9AdoBa.js} +1 -1
- package/dist/assets/{TerminalPanel-DlIyvxm6.js → TerminalPanel-cbM6oQWQ.js} +1 -1
- package/dist/assets/{activity-q85HXQNv.js → activity-BU6MNvBJ.js} +1 -1
- package/dist/assets/{activity-B2_Vr2oD.js → activity-C7dkJqBU.js} +1 -1
- package/dist/assets/{activity-DYMBKGt0.js → activity-C_18AaRY.js} +1 -1
- package/dist/assets/{activity-IxgYWPDt.js → activity-CpnSsE22.js} +1 -1
- package/dist/assets/{activity-BF1idM4Y.js → activity-CtTKsSX6.js} +1 -1
- package/dist/assets/{activity-C-kOJZXC.js → activity-D1rp3dH9.js} +1 -1
- package/dist/assets/{activity-DPpMW8BU.js → activity-hTPcI4q1.js} +1 -1
- package/dist/assets/{chat-DTI7lNDx.js → chat-6dE2AJNN.js} +1 -1
- package/dist/assets/{chat-BvKkSd09.js → chat-B3AJmhGD.js} +1 -1
- package/dist/assets/{chat-BNWqeV-N.js → chat-BHsbpaVt.js} +1 -1
- package/dist/assets/{chat-BlllxfpP.js → chat-BITJe8-v.js} +1 -1
- package/dist/assets/{chat-DlhXGxxi.js → chat-U-Jjb8_k.js} +1 -1
- package/dist/assets/{chat-B60h8Cji.js → chat-_Xp5fDnj.js} +1 -1
- package/dist/assets/{chat-B5a3cvps.js → chat-mSbSzPl5.js} +1 -1
- package/dist/assets/{chat-store-DIcs826A.js → chat-store-oW_-zcJP.js} +1 -1
- package/dist/assets/{i18n-Cv65b1SP.js → i18n-D06uU1PM.js} +2 -2
- package/dist/assets/index-CWYymMpa.css +1 -0
- package/dist/assets/index-Cwjer17r.js +144 -0
- package/dist/assets/{roster-ws-D5JW3IPJ.js → roster-ws-BQUI8QuW.js} +1 -1
- package/dist/assets/setup-B0D9CK3-.js +1 -0
- package/dist/assets/setup-B58YVaGU.js +1 -0
- package/dist/assets/setup-C2H9Uv0Q.js +1 -0
- package/dist/assets/setup-CzM4dkkU.js +1 -0
- package/dist/assets/setup-Di56FlHP.js +1 -0
- package/dist/assets/setup-Dwt58Mpz.js +1 -0
- package/dist/assets/setup-DznVdlJy.js +1 -0
- package/dist/assets/{stores-CNuMLG8X.js → stores-C7Vvce-6.js} +1 -1
- package/dist/assets/ui-store-Dm7ujR9u.js +1 -0
- package/dist/assets/useWebSocket-9lfOsI_r.js +27 -0
- package/dist/assets/{view-navigation-DPOY0lyt.js → view-navigation-wOKaM_Rf.js} +1 -1
- package/dist/assets/{ws-client-D-d32pHb.js → ws-client-DtTZLD8e.js} +2 -2
- package/dist/index.html +14 -14
- package/dist/index.js +1065 -543
- package/dist/lib/launch-builtin-round.d.ts +43 -0
- package/dist/lib/perf-run-message.d.ts +51 -0
- package/dist/stores/fleet-store.d.ts +4 -0
- package/dist/stores/types.d.ts +9 -0
- package/dist/stores/ui-store.d.ts +0 -2
- package/package.json +10 -10
- package/dist/assets/index-DSyVpLgL.css +0 -1
- package/dist/assets/index-DbprKWmG.js +0 -137
- package/dist/assets/setup-BQLPzL3N.js +0 -1
- package/dist/assets/setup-C9lrNwQF.js +0 -1
- package/dist/assets/setup-CcxP7cUl.js +0 -1
- package/dist/assets/setup-CtKKNpH9.js +0 -1
- package/dist/assets/setup-D4rp2jda.js +0 -1
- package/dist/assets/setup-MvmOtwNp.js +0 -1
- package/dist/assets/setup-blxUcxNU.js +0 -1
- package/dist/assets/ui-store-DpKUBLWd.js +0 -1
- package/dist/assets/useWebSocket-VIItbvVK.js +0 -27
package/dist/index.js
CHANGED
|
@@ -655,6 +655,8 @@ var require_activity = __commonJS({
|
|
|
655
655
|
openChat: "Open chat",
|
|
656
656
|
leaderTab: "Leader",
|
|
657
657
|
tabsLabel: "Switch agent view",
|
|
658
|
+
moreTabsTitle: "More agents ({{n}})",
|
|
659
|
+
closeTab: "Close {{name}}",
|
|
658
660
|
emptyFilteredTitle: "No agents match the filter",
|
|
659
661
|
emptyFilteredHint: "Change the filter or clear it to see all agents.",
|
|
660
662
|
emptyFilteredClear: "Show all",
|
|
@@ -4296,7 +4298,10 @@ var require_chat = __commonJS({
|
|
|
4296
4298
|
delegations: "{{count}} delegated run(s)",
|
|
4297
4299
|
delegationFailed: "{{count}} failed",
|
|
4298
4300
|
delegateToolCalls: "{{count}} tools inside",
|
|
4299
|
-
leaderLine: "Leader: {{ok}}\u2713 {{failed}}\u2717"
|
|
4301
|
+
leaderLine: "Leader: {{ok}}\u2713 {{failed}}\u2717",
|
|
4302
|
+
tool: "Tool",
|
|
4303
|
+
outcome: "Outcome",
|
|
4304
|
+
average: "Avg."
|
|
4300
4305
|
}
|
|
4301
4306
|
};
|
|
4302
4307
|
}
|
|
@@ -5427,6 +5432,16 @@ var require_setup = __commonJS({
|
|
|
5427
5432
|
on: "On",
|
|
5428
5433
|
off: "Off",
|
|
5429
5434
|
bugHunterError: "The Elite Bug Hunter prompt could not be loaded. Check the prompt library and try again.",
|
|
5435
|
+
perfTitle: "Start Performance Ratchet",
|
|
5436
|
+
perfBody: "Baseline it, change one thing, re-measure, and revert anything that is not measurably better.",
|
|
5437
|
+
perfScope: "Scope",
|
|
5438
|
+
perfWholeProject: "Whole project",
|
|
5439
|
+
perfDirectoryScope: "{{path}} and below",
|
|
5440
|
+
perfMode: "Mode",
|
|
5441
|
+
perfMetric: "Metric",
|
|
5442
|
+
perfMetricAuto: "Metric: let the agent choose",
|
|
5443
|
+
perfStart: "Start round",
|
|
5444
|
+
perfError: "The performance prompt could not be loaded. Check the prompt library and try again.",
|
|
5430
5445
|
pickBackUp: "Pick back up",
|
|
5431
5446
|
recentPrompts: "Recent prompts",
|
|
5432
5447
|
quickCommands: "Quick commands",
|
|
@@ -5748,6 +5763,8 @@ var require_activity2 = __commonJS({
|
|
|
5748
5763
|
openChat: "Chat \xF6ffnen",
|
|
5749
5764
|
leaderTab: "Leiter",
|
|
5750
5765
|
tabsLabel: "Agentenansicht wechseln",
|
|
5766
|
+
moreTabsTitle: "Mehr Agents ({{n}})",
|
|
5767
|
+
closeTab: "{{name}} schlie\xDFen",
|
|
5751
5768
|
emptyFilteredTitle: "Keine Agents entsprechen dem Filter",
|
|
5752
5769
|
emptyFilteredHint: "\xC4ndere oder l\xF6sche den Filter, um alle Agents zu sehen.",
|
|
5753
5770
|
emptyFilteredClear: "Alle anzeigen",
|
|
@@ -9397,7 +9414,10 @@ var require_chat2 = __commonJS({
|
|
|
9397
9414
|
delegations: "{{count}} delegierte Laufzeit(en)",
|
|
9398
9415
|
delegationFailed: "{{count}} fehlgeschlagen",
|
|
9399
9416
|
delegateToolCalls: "{{count}} Tools darin",
|
|
9400
|
-
leaderLine: "Leiter: {{ok}}\u2713 {{failed}}\u2717"
|
|
9417
|
+
leaderLine: "Leiter: {{ok}}\u2713 {{failed}}\u2717",
|
|
9418
|
+
tool: "Werkzeug",
|
|
9419
|
+
outcome: "Ergebnis",
|
|
9420
|
+
average: "\xD8"
|
|
9401
9421
|
}
|
|
9402
9422
|
};
|
|
9403
9423
|
}
|
|
@@ -10524,6 +10544,16 @@ var require_setup2 = __commonJS({
|
|
|
10524
10544
|
on: "Ein",
|
|
10525
10545
|
off: "Aus",
|
|
10526
10546
|
bugHunterError: "Der Elite-Bug-Hunter-Prompt konnte nicht geladen werden. Pr\xFCfe die Prompt-Bibliothek und versuche es erneut.",
|
|
10547
|
+
perfTitle: "Performance-Ratchet starten",
|
|
10548
|
+
perfBody: "Erst messen, dann genau eine Sache \xE4ndern, erneut messen \u2014 und alles zur\xFCcknehmen, was nicht messbar besser ist.",
|
|
10549
|
+
perfScope: "Bereich",
|
|
10550
|
+
perfWholeProject: "Gesamtes Projekt",
|
|
10551
|
+
perfDirectoryScope: "{{path}} und darunter",
|
|
10552
|
+
perfMode: "Modus",
|
|
10553
|
+
perfMetric: "Metrik",
|
|
10554
|
+
perfMetricAuto: "Metrik: vom Agenten w\xE4hlen lassen",
|
|
10555
|
+
perfStart: "Runde starten",
|
|
10556
|
+
perfError: "Der Performance-Prompt konnte nicht geladen werden. Pr\xFCfe die Prompt-Bibliothek und versuche es erneut.",
|
|
10527
10557
|
pickBackUp: "Fortsetzen",
|
|
10528
10558
|
recentPrompts: "Zuletzt verwendete Prompts",
|
|
10529
10559
|
quickCommands: "Schnellbefehle",
|
|
@@ -10845,6 +10875,8 @@ var require_activity3 = __commonJS({
|
|
|
10845
10875
|
openChat: "Abrir chat",
|
|
10846
10876
|
leaderTab: "L\xEDder",
|
|
10847
10877
|
tabsLabel: "Cambiar vista de agente",
|
|
10878
|
+
moreTabsTitle: "M\xE1s agentes ({{n}})",
|
|
10879
|
+
closeTab: "Cerrar {{name}}",
|
|
10848
10880
|
emptyFilteredTitle: "Ning\xFAn agente coincide con el filtro",
|
|
10849
10881
|
emptyFilteredHint: "Cambia o borra el filtro para ver todos los agentes.",
|
|
10850
10882
|
emptyFilteredClear: "Mostrar todos",
|
|
@@ -14494,7 +14526,10 @@ var require_chat3 = __commonJS({
|
|
|
14494
14526
|
delegations: "{{count}} ejecuci\xF3n(es) delegada(s)",
|
|
14495
14527
|
delegationFailed: "{{count}} fallida(s)",
|
|
14496
14528
|
delegateToolCalls: "{{count}} herramientas dentro",
|
|
14497
|
-
leaderLine: "L\xEDder: {{ok}}\u2713 {{failed}}\u2717"
|
|
14529
|
+
leaderLine: "L\xEDder: {{ok}}\u2713 {{failed}}\u2717",
|
|
14530
|
+
tool: "Herramienta",
|
|
14531
|
+
outcome: "Resultado",
|
|
14532
|
+
average: "Prom."
|
|
14498
14533
|
}
|
|
14499
14534
|
};
|
|
14500
14535
|
}
|
|
@@ -15621,6 +15656,16 @@ var require_setup3 = __commonJS({
|
|
|
15621
15656
|
on: "Activado",
|
|
15622
15657
|
off: "Desactivado",
|
|
15623
15658
|
bugHunterError: "No se pudo cargar el prompt de Elite Bug Hunter. Revisa la biblioteca de prompts e int\xE9ntalo de nuevo.",
|
|
15659
|
+
perfTitle: "Iniciar Performance Ratchet",
|
|
15660
|
+
perfBody: "Mide primero, cambia una sola cosa, vuelve a medir y revierte todo lo que no sea mejor de forma medible.",
|
|
15661
|
+
perfScope: "Alcance",
|
|
15662
|
+
perfWholeProject: "Todo el proyecto",
|
|
15663
|
+
perfDirectoryScope: "{{path}} y por debajo",
|
|
15664
|
+
perfMode: "Modo",
|
|
15665
|
+
perfMetric: "M\xE9trica",
|
|
15666
|
+
perfMetricAuto: "M\xE9trica: que la elija el agente",
|
|
15667
|
+
perfStart: "Iniciar ronda",
|
|
15668
|
+
perfError: "No se pudo cargar el prompt de rendimiento. Revisa la biblioteca de prompts e int\xE9ntalo de nuevo.",
|
|
15624
15669
|
pickBackUp: "Retomar",
|
|
15625
15670
|
recentPrompts: "Prompts recientes",
|
|
15626
15671
|
quickCommands: "Comandos r\xE1pidos",
|
|
@@ -15942,6 +15987,8 @@ var require_activity4 = __commonJS({
|
|
|
15942
15987
|
openChat: "Ouvrir le chat",
|
|
15943
15988
|
leaderTab: "Leader",
|
|
15944
15989
|
tabsLabel: "Changer de vue d\u2019agent",
|
|
15990
|
+
moreTabsTitle: "Plus d\u2019agents ({{n}})",
|
|
15991
|
+
closeTab: "Fermer {{name}}",
|
|
15945
15992
|
emptyFilteredTitle: "Aucun agent ne correspond au filtre",
|
|
15946
15993
|
emptyFilteredHint: "Modifiez ou effacez le filtre pour afficher tous les agents.",
|
|
15947
15994
|
emptyFilteredClear: "Tout afficher",
|
|
@@ -19592,7 +19639,10 @@ var require_chat4 = __commonJS({
|
|
|
19592
19639
|
delegations: "{{count}} ex\xE9cution(s) d\xE9l\xE9gu\xE9e(s)",
|
|
19593
19640
|
delegationFailed: "{{count}} \xE9chec(s)",
|
|
19594
19641
|
delegateToolCalls: "{{count}} outils \xE0 l'int\xE9rieur",
|
|
19595
|
-
leaderLine: "Leader : {{ok}}\u2713 {{failed}}\u2717"
|
|
19642
|
+
leaderLine: "Leader : {{ok}}\u2713 {{failed}}\u2717",
|
|
19643
|
+
tool: "Outil",
|
|
19644
|
+
outcome: "R\xE9sultat",
|
|
19645
|
+
average: "Moy."
|
|
19596
19646
|
}
|
|
19597
19647
|
};
|
|
19598
19648
|
}
|
|
@@ -20719,6 +20769,16 @@ var require_setup4 = __commonJS({
|
|
|
20719
20769
|
on: "Activ\xE9",
|
|
20720
20770
|
off: "D\xE9sactiv\xE9",
|
|
20721
20771
|
bugHunterError: "Le prompt Elite Bug Hunter n'a pas pu \xEAtre charg\xE9. V\xE9rifiez la biblioth\xE8que de prompts et r\xE9essayez.",
|
|
20772
|
+
perfTitle: "Lancer le Performance Ratchet",
|
|
20773
|
+
perfBody: "Mesurer d\u2019abord, changer une seule chose, mesurer \xE0 nouveau, et annuler tout ce qui n\u2019est pas mesurablement meilleur.",
|
|
20774
|
+
perfScope: "P\xE9rim\xE8tre",
|
|
20775
|
+
perfWholeProject: "Tout le projet",
|
|
20776
|
+
perfDirectoryScope: "{{path}} et en dessous",
|
|
20777
|
+
perfMode: "Mode",
|
|
20778
|
+
perfMetric: "M\xE9trique",
|
|
20779
|
+
perfMetricAuto: "M\xE9trique : laisser l\u2019agent choisir",
|
|
20780
|
+
perfStart: "Lancer le tour",
|
|
20781
|
+
perfError: "Le prompt de performance n\u2019a pas pu \xEAtre charg\xE9. V\xE9rifiez la biblioth\xE8que de prompts et r\xE9essayez.",
|
|
20722
20782
|
pickBackUp: "Reprendre",
|
|
20723
20783
|
recentPrompts: "Prompts r\xE9cents",
|
|
20724
20784
|
quickCommands: "Commandes rapides",
|
|
@@ -21040,6 +21100,8 @@ var require_activity5 = __commonJS({
|
|
|
21040
21100
|
openChat: "Apri chat",
|
|
21041
21101
|
leaderTab: "Leader",
|
|
21042
21102
|
tabsLabel: "Cambia vista agente",
|
|
21103
|
+
moreTabsTitle: "Altri agenti ({{n}})",
|
|
21104
|
+
closeTab: "Chiudi {{name}}",
|
|
21043
21105
|
emptyFilteredTitle: "Nessun agente corrisponde al filtro",
|
|
21044
21106
|
emptyFilteredHint: "Modifica o cancella il filtro per vedere tutti gli agenti.",
|
|
21045
21107
|
emptyFilteredClear: "Mostra tutti",
|
|
@@ -24690,7 +24752,10 @@ var require_chat5 = __commonJS({
|
|
|
24690
24752
|
delegations: "{{count}} esecuzione/i delegata/e",
|
|
24691
24753
|
delegationFailed: "{{count}} fallite",
|
|
24692
24754
|
delegateToolCalls: "{{count}} strumenti interni",
|
|
24693
|
-
leaderLine: "Leader: {{ok}}\u2713 {{failed}}\u2717"
|
|
24755
|
+
leaderLine: "Leader: {{ok}}\u2713 {{failed}}\u2717",
|
|
24756
|
+
tool: "Strumento",
|
|
24757
|
+
outcome: "Esito",
|
|
24758
|
+
average: "Media"
|
|
24694
24759
|
}
|
|
24695
24760
|
};
|
|
24696
24761
|
}
|
|
@@ -25817,6 +25882,16 @@ var require_setup5 = __commonJS({
|
|
|
25817
25882
|
on: "Attivo",
|
|
25818
25883
|
off: "Disattivo",
|
|
25819
25884
|
bugHunterError: "Impossibile caricare il prompt Elite Bug Hunter. Controlla la libreria dei prompt e riprova.",
|
|
25885
|
+
perfTitle: "Avvia Performance Ratchet",
|
|
25886
|
+
perfBody: "Prima misura, poi cambia una sola cosa, misura di nuovo e annulla tutto ci\xF2 che non \xE8 misurabilmente migliore.",
|
|
25887
|
+
perfScope: "Ambito",
|
|
25888
|
+
perfWholeProject: "Intero progetto",
|
|
25889
|
+
perfDirectoryScope: "{{path}} e sottocartelle",
|
|
25890
|
+
perfMode: "Modalit\xE0",
|
|
25891
|
+
perfMetric: "Metrica",
|
|
25892
|
+
perfMetricAuto: "Metrica: scelga l\u2019agente",
|
|
25893
|
+
perfStart: "Avvia round",
|
|
25894
|
+
perfError: "Impossibile caricare il prompt di performance. Controlla la libreria dei prompt e riprova.",
|
|
25820
25895
|
pickBackUp: "Riprendi",
|
|
25821
25896
|
recentPrompts: "Prompt recenti",
|
|
25822
25897
|
quickCommands: "Comandi rapidi",
|
|
@@ -26138,6 +26213,8 @@ var require_activity6 = __commonJS({
|
|
|
26138
26213
|
openChat: "Abrir chat",
|
|
26139
26214
|
leaderTab: "L\xEDder",
|
|
26140
26215
|
tabsLabel: "Alternar visualiza\xE7\xE3o de agente",
|
|
26216
|
+
moreTabsTitle: "Mais agentes ({{n}})",
|
|
26217
|
+
closeTab: "Fechar {{name}}",
|
|
26141
26218
|
emptyFilteredTitle: "Nenhum agente corresponde ao filtro",
|
|
26142
26219
|
emptyFilteredHint: "Altere ou limpe o filtro para ver todos os agentes.",
|
|
26143
26220
|
emptyFilteredClear: "Mostrar todos",
|
|
@@ -29787,7 +29864,10 @@ var require_chat6 = __commonJS({
|
|
|
29787
29864
|
delegations: "{{count}} execu\xE7\xE3o(\xF5es) delegada(s)",
|
|
29788
29865
|
delegationFailed: "{{count}} falha(s)",
|
|
29789
29866
|
delegateToolCalls: "{{count}} ferramentas dentro",
|
|
29790
|
-
leaderLine: "L\xEDder: {{ok}}\u2713 {{failed}}\u2717"
|
|
29867
|
+
leaderLine: "L\xEDder: {{ok}}\u2713 {{failed}}\u2717",
|
|
29868
|
+
tool: "Ferramenta",
|
|
29869
|
+
outcome: "Resultado",
|
|
29870
|
+
average: "M\xE9dia"
|
|
29791
29871
|
}
|
|
29792
29872
|
};
|
|
29793
29873
|
}
|
|
@@ -30914,6 +30994,16 @@ var require_setup6 = __commonJS({
|
|
|
30914
30994
|
on: "Ligado",
|
|
30915
30995
|
off: "Desligado",
|
|
30916
30996
|
bugHunterError: "N\xE3o foi poss\xEDvel carregar o prompt Elite Bug Hunter. Verifique a biblioteca de prompts e tente novamente.",
|
|
30997
|
+
perfTitle: "Iniciar Performance Ratchet",
|
|
30998
|
+
perfBody: "Me\xE7a primeiro, mude uma coisa s\xF3, me\xE7a de novo e reverta tudo que n\xE3o for mensuravelmente melhor.",
|
|
30999
|
+
perfScope: "Escopo",
|
|
31000
|
+
perfWholeProject: "Projeto inteiro",
|
|
31001
|
+
perfDirectoryScope: "{{path}} e abaixo",
|
|
31002
|
+
perfMode: "Modo",
|
|
31003
|
+
perfMetric: "M\xE9trica",
|
|
31004
|
+
perfMetricAuto: "M\xE9trica: deixar o agente escolher",
|
|
31005
|
+
perfStart: "Iniciar rodada",
|
|
31006
|
+
perfError: "N\xE3o foi poss\xEDvel carregar o prompt de performance. Verifique a biblioteca de prompts e tente novamente.",
|
|
30917
31007
|
pickBackUp: "Retomar de onde parou",
|
|
30918
31008
|
recentPrompts: "Prompts recentes",
|
|
30919
31009
|
quickCommands: "Comandos r\xE1pidos",
|
|
@@ -31235,6 +31325,8 @@ var require_activity7 = __commonJS({
|
|
|
31235
31325
|
openChat: "Sohbet a\xE7",
|
|
31236
31326
|
leaderTab: "Lider",
|
|
31237
31327
|
tabsLabel: "Ajan g\xF6r\xFCn\xFCm\xFCn\xFC de\u011Fi\u015Ftir",
|
|
31328
|
+
moreTabsTitle: "Di\u011Fer ajanlar ({{n}})",
|
|
31329
|
+
closeTab: "Kapat ({{name}})",
|
|
31238
31330
|
emptyFilteredTitle: "Filtreyle e\u015Fle\u015Fen arac\u0131 yok",
|
|
31239
31331
|
emptyFilteredHint: "T\xFCm arac\u0131lar\u0131 g\xF6rmek i\xE7in filtreyi de\u011Fi\u015Ftirin veya temizleyin.",
|
|
31240
31332
|
emptyFilteredClear: "T\xFCm\xFCn\xFC g\xF6ster",
|
|
@@ -34884,7 +34976,10 @@ var require_chat7 = __commonJS({
|
|
|
34884
34976
|
delegations: "{{count}} devredilen \xE7al\u0131\u015Ft\u0131rma",
|
|
34885
34977
|
delegationFailed: "{{count}} ba\u015Far\u0131s\u0131z",
|
|
34886
34978
|
delegateToolCalls: "i\xE7inde {{count}} ara\xE7",
|
|
34887
|
-
leaderLine: "Lider: {{ok}}\u2713 {{failed}}\u2717"
|
|
34979
|
+
leaderLine: "Lider: {{ok}}\u2713 {{failed}}\u2717",
|
|
34980
|
+
tool: "Ara\xE7",
|
|
34981
|
+
outcome: "Sonu\xE7",
|
|
34982
|
+
average: "Ort."
|
|
34888
34983
|
}
|
|
34889
34984
|
};
|
|
34890
34985
|
}
|
|
@@ -36015,6 +36110,16 @@ var require_setup7 = __commonJS({
|
|
|
36015
36110
|
on: "A\xE7\u0131k",
|
|
36016
36111
|
off: "Kapal\u0131",
|
|
36017
36112
|
bugHunterError: "Elite Bug Hunter promptu y\xFCklenemedi. Prompt library'yi kontrol edip tekrar deneyin.",
|
|
36113
|
+
perfTitle: "Performans Ratchet ba\u015Flat",
|
|
36114
|
+
perfBody: "\xD6nce \xF6l\xE7er, tek bir \u015Feyi de\u011Fi\u015Ftirir, yeniden \xF6l\xE7er; \xF6l\xE7\xFClebilir bi\xE7imde daha iyi olmayan her de\u011Fi\u015Fikli\u011Fi geri al\u0131r.",
|
|
36115
|
+
perfScope: "Kapsam",
|
|
36116
|
+
perfWholeProject: "T\xFCm proje",
|
|
36117
|
+
perfDirectoryScope: "{{path}} ve alt\u0131",
|
|
36118
|
+
perfMode: "Mod",
|
|
36119
|
+
perfMetric: "Metrik",
|
|
36120
|
+
perfMetricAuto: "Metrik: vekil se\xE7sin",
|
|
36121
|
+
perfStart: "Turu ba\u015Flat",
|
|
36122
|
+
perfError: "Performans promptu y\xFCklenemedi. Prompt library\u2019yi kontrol edip tekrar deneyin.",
|
|
36018
36123
|
pickBackUp: "Kald\u0131\u011F\u0131n yerden devam et",
|
|
36019
36124
|
recentPrompts: "Son promptlar",
|
|
36020
36125
|
quickCommands: "H\u0131zl\u0131 komutlar",
|
|
@@ -38777,7 +38882,6 @@ function homeNavigationStatePatch(options = {}) {
|
|
|
38777
38882
|
inspectorFocusedAgentId: null,
|
|
38778
38883
|
subagentChatFocusId: null,
|
|
38779
38884
|
subagentChatFocusSessionId: null,
|
|
38780
|
-
subagentChatFocusBySession: {},
|
|
38781
38885
|
terminalOpen: false,
|
|
38782
38886
|
paletteOpen: false,
|
|
38783
38887
|
shortcutsOpen: false,
|
|
@@ -39007,7 +39111,6 @@ var init_ui_store = __esm({
|
|
|
39007
39111
|
inspectorFocusedAgentId: null,
|
|
39008
39112
|
subagentChatFocusId: null,
|
|
39009
39113
|
subagentChatFocusSessionId: null,
|
|
39010
|
-
subagentChatFocusBySession: {},
|
|
39011
39114
|
processMonitorOpen: false,
|
|
39012
39115
|
queuePanelOpen: false,
|
|
39013
39116
|
cronJobsOpen: false,
|
|
@@ -39154,11 +39257,10 @@ var init_ui_store = __esm({
|
|
|
39154
39257
|
}
|
|
39155
39258
|
const parked = sessionId ? chromeBySession[sessionId] : void 0;
|
|
39156
39259
|
const chrome = parked ?? defaultSessionChrome();
|
|
39157
|
-
const subagentChatFocusId = sessionId ? state.subagentChatFocusBySession[sessionId] ?? null : null;
|
|
39158
39260
|
return {
|
|
39159
39261
|
chromeSessionId: sessionId,
|
|
39160
39262
|
chromeBySession,
|
|
39161
|
-
subagentChatFocusId,
|
|
39263
|
+
subagentChatFocusId: null,
|
|
39162
39264
|
subagentChatFocusSessionId: sessionId,
|
|
39163
39265
|
sidebarOpen: chrome.sidebarOpen ?? defaultSessionChrome().sidebarOpen,
|
|
39164
39266
|
activeActivity: chrome.activeActivity,
|
|
@@ -39303,33 +39405,29 @@ var init_ui_store = __esm({
|
|
|
39303
39405
|
inspectorFocusedAgentId: id,
|
|
39304
39406
|
...parkChrome(state, { inspectorFocusedAgentId: id })
|
|
39305
39407
|
})),
|
|
39306
|
-
// Which subagent transcript is open is
|
|
39307
|
-
//
|
|
39308
|
-
//
|
|
39309
|
-
//
|
|
39408
|
+
// Which subagent transcript is open is stamped with the session it
|
|
39409
|
+
// belongs to, so ChatView can auto-clear a focus that arrives from (or
|
|
39410
|
+
// names) another tab. Focus itself is foreground-only: switching tabs
|
|
39411
|
+
// always lands on the Leader chat.
|
|
39310
39412
|
setSubagentChatFocus: (id, sessionId) => set((state) => {
|
|
39311
39413
|
const requested = sessionId === "" ? null : sessionId;
|
|
39312
39414
|
const key = requested ?? state.chromeSessionId ?? state.subagentChatFocusSessionId;
|
|
39313
39415
|
return {
|
|
39314
39416
|
subagentChatFocusId: id,
|
|
39315
|
-
subagentChatFocusSessionId: key ?? null
|
|
39316
|
-
subagentChatFocusBySession: key ? { ...state.subagentChatFocusBySession, [key]: id } : state.subagentChatFocusBySession
|
|
39417
|
+
subagentChatFocusSessionId: key ?? null
|
|
39317
39418
|
};
|
|
39318
39419
|
}),
|
|
39319
39420
|
forgetSession: (sessionId) => set((state) => {
|
|
39320
|
-
const hasSubagentFocus =
|
|
39421
|
+
const hasSubagentFocus = state.subagentChatFocusSessionId === sessionId;
|
|
39321
39422
|
const hasChrome = sessionId in state.chromeBySession || state.chromeSessionId === sessionId;
|
|
39322
39423
|
if (!hasSubagentFocus && !hasChrome) {
|
|
39323
39424
|
return state;
|
|
39324
39425
|
}
|
|
39325
|
-
const nextFocus = { ...state.subagentChatFocusBySession };
|
|
39326
|
-
delete nextFocus[sessionId];
|
|
39327
39426
|
const nextChrome = { ...state.chromeBySession };
|
|
39328
39427
|
delete nextChrome[sessionId];
|
|
39329
39428
|
const droppingFront = state.subagentChatFocusSessionId === sessionId;
|
|
39330
39429
|
const droppingChrome = state.chromeSessionId === sessionId;
|
|
39331
39430
|
return {
|
|
39332
|
-
subagentChatFocusBySession: nextFocus,
|
|
39333
39431
|
chromeBySession: nextChrome,
|
|
39334
39432
|
...droppingFront ? { subagentChatFocusId: null, subagentChatFocusSessionId: null } : {},
|
|
39335
39433
|
...droppingChrome ? { chromeSessionId: null, ...defaultSessionChrome() } : {}
|
|
@@ -40574,6 +40672,25 @@ var init_fleet_store = __esm({
|
|
|
40574
40672
|
fleetTokensOut: Math.max(0, state.fleetTokensOut - droppedTokensOut)
|
|
40575
40673
|
};
|
|
40576
40674
|
}),
|
|
40675
|
+
removeAgent: (subagentId) => set((state) => {
|
|
40676
|
+
const agent = state.agents.get(subagentId);
|
|
40677
|
+
if (!agent) return state;
|
|
40678
|
+
const agents = new Map(state.agents);
|
|
40679
|
+
agents.delete(subagentId);
|
|
40680
|
+
const agentTranscripts = new Map(state.agentTranscripts);
|
|
40681
|
+
agentTranscripts.delete(subagentId);
|
|
40682
|
+
return {
|
|
40683
|
+
agents,
|
|
40684
|
+
agentTranscripts,
|
|
40685
|
+
agentTimeline: state.agentTimeline.filter((e) => e.subagentId !== subagentId),
|
|
40686
|
+
eventTimeline: state.eventTimeline.filter((e) => e.agentId !== subagentId),
|
|
40687
|
+
leaderId: state.leaderId === subagentId ? void 0 : state.leaderId,
|
|
40688
|
+
// Same running-delta contract as clearFinishedAgents: totals are sums
|
|
40689
|
+
// of per-agent contributions, so the agent's tokens leave with it.
|
|
40690
|
+
fleetTokensIn: Math.max(0, state.fleetTokensIn - (agent.tokensIn ?? 0)),
|
|
40691
|
+
fleetTokensOut: Math.max(0, state.fleetTokensOut - (agent.tokensOut ?? 0))
|
|
40692
|
+
};
|
|
40693
|
+
}),
|
|
40577
40694
|
applyEvent: (e) => set((state) => {
|
|
40578
40695
|
const agents = new Map(state.agents);
|
|
40579
40696
|
const agentTranscripts = new Map(state.agentTranscripts);
|
|
@@ -41358,7 +41475,7 @@ function activate(sessionId) {
|
|
|
41358
41475
|
useSessionStore.getState().switchSession(sessionId);
|
|
41359
41476
|
const ui = useUIStore.getState();
|
|
41360
41477
|
ui.bindSessionChrome(sessionId);
|
|
41361
|
-
ui.setSubagentChatFocus(
|
|
41478
|
+
ui.setSubagentChatFocus(null, sessionId);
|
|
41362
41479
|
const lane = readLane(sessionId);
|
|
41363
41480
|
const parked = lane.pendingConfirm;
|
|
41364
41481
|
if (parked) ui.showConfirm(parked);
|
|
@@ -48800,6 +48917,95 @@ var init_bug_hunt_message = __esm({
|
|
|
48800
48917
|
}
|
|
48801
48918
|
});
|
|
48802
48919
|
|
|
48920
|
+
// src/lib/perf-run-message.ts
|
|
48921
|
+
function isMode(value) {
|
|
48922
|
+
return PERF_RUN_MODES.includes(value);
|
|
48923
|
+
}
|
|
48924
|
+
function isMetric(value) {
|
|
48925
|
+
return PERF_RUN_METRICS.includes(value);
|
|
48926
|
+
}
|
|
48927
|
+
function buildPerfRunMessage(instruction, summary) {
|
|
48928
|
+
return `${PERF_RUN_PREFIX} scope="${encodeURIComponent(summary.scope)}" mode="${summary.mode}" metric="${summary.metric}" -->
|
|
48929
|
+
${instruction}`;
|
|
48930
|
+
}
|
|
48931
|
+
function parsePerfRunMessage(content) {
|
|
48932
|
+
const match = PERF_RUN_PATTERN.exec(content);
|
|
48933
|
+
if (!match) return void 0;
|
|
48934
|
+
const mode = match[2] ?? "";
|
|
48935
|
+
const metric = match[3] ?? "";
|
|
48936
|
+
if (!isMode(mode)) return void 0;
|
|
48937
|
+
try {
|
|
48938
|
+
return {
|
|
48939
|
+
scope: decodeURIComponent(match[1] ?? ""),
|
|
48940
|
+
mode,
|
|
48941
|
+
metric: isMetric(metric) ? metric : ""
|
|
48942
|
+
};
|
|
48943
|
+
} catch {
|
|
48944
|
+
return void 0;
|
|
48945
|
+
}
|
|
48946
|
+
}
|
|
48947
|
+
var PERF_RUN_MODES, PERF_RUN_METRICS, PERF_RUN_MODE_LABELS, PERF_RUN_METRIC_LABELS, PERF_MODE_SLUGS, PERF_MUTATING_MODES, PERF_RUN_PREFIX, PERF_RUN_PATTERN;
|
|
48948
|
+
var init_perf_run_message = __esm({
|
|
48949
|
+
"src/lib/perf-run-message.ts"() {
|
|
48950
|
+
"use strict";
|
|
48951
|
+
PERF_RUN_MODES = [
|
|
48952
|
+
"ratchet",
|
|
48953
|
+
"audit",
|
|
48954
|
+
"triage",
|
|
48955
|
+
"memory",
|
|
48956
|
+
"io",
|
|
48957
|
+
"cpu",
|
|
48958
|
+
"guard",
|
|
48959
|
+
"contract"
|
|
48960
|
+
];
|
|
48961
|
+
PERF_RUN_METRICS = [
|
|
48962
|
+
"wall-ms",
|
|
48963
|
+
"p99-latency-ms",
|
|
48964
|
+
"peak-rss-bytes",
|
|
48965
|
+
"throughput-ops",
|
|
48966
|
+
"allocs-per-op",
|
|
48967
|
+
"cold-start-ms",
|
|
48968
|
+
"bundle-bytes"
|
|
48969
|
+
];
|
|
48970
|
+
PERF_RUN_MODE_LABELS = {
|
|
48971
|
+
ratchet: "Performance Ratchet",
|
|
48972
|
+
audit: "Performance Audit",
|
|
48973
|
+
triage: "Performance Triage",
|
|
48974
|
+
memory: "Memory & Retention Hunt",
|
|
48975
|
+
io: "I/O & Concurrency Analysis",
|
|
48976
|
+
cpu: "CPU Hot Path Reduction",
|
|
48977
|
+
guard: "Regression Guard Setup",
|
|
48978
|
+
contract: "Performance Contract"
|
|
48979
|
+
};
|
|
48980
|
+
PERF_RUN_METRIC_LABELS = {
|
|
48981
|
+
"wall-ms": "Wall time",
|
|
48982
|
+
"p99-latency-ms": "p99 latency",
|
|
48983
|
+
"peak-rss-bytes": "Peak RSS",
|
|
48984
|
+
"throughput-ops": "Throughput",
|
|
48985
|
+
"allocs-per-op": "Allocations/op",
|
|
48986
|
+
"cold-start-ms": "Cold start",
|
|
48987
|
+
"bundle-bytes": "Bundle size"
|
|
48988
|
+
};
|
|
48989
|
+
PERF_MODE_SLUGS = {
|
|
48990
|
+
ratchet: "elite-performance-ratchet",
|
|
48991
|
+
audit: "performance-baseline-audit",
|
|
48992
|
+
triage: "performance-quick-triage",
|
|
48993
|
+
memory: "performance-memory-hunt",
|
|
48994
|
+
io: "performance-io-concurrency",
|
|
48995
|
+
cpu: "performance-cpu-hot-path",
|
|
48996
|
+
guard: "performance-regression-guard",
|
|
48997
|
+
contract: "performance-contract"
|
|
48998
|
+
};
|
|
48999
|
+
PERF_MUTATING_MODES = /* @__PURE__ */ new Set([
|
|
49000
|
+
"ratchet",
|
|
49001
|
+
"cpu",
|
|
49002
|
+
"guard"
|
|
49003
|
+
]);
|
|
49004
|
+
PERF_RUN_PREFIX = "<!-- wrongstack-perf-run";
|
|
49005
|
+
PERF_RUN_PATTERN = /^<!-- wrongstack-perf-run scope="([^"]*)" mode="([a-z]+)" metric="([a-z0-9-]*)" -->\n/;
|
|
49006
|
+
}
|
|
49007
|
+
});
|
|
49008
|
+
|
|
48803
49009
|
// src/hooks/ws-handlers/session-replay-handlers.ts
|
|
48804
49010
|
import { projectSessionTimeline } from "@wrongstack/core/types/session-timeline";
|
|
48805
49011
|
function replayTimestamp(ts) {
|
|
@@ -48850,12 +49056,14 @@ function hydrateReplayMessages(replay, markers = [], toolMeta = []) {
|
|
|
48850
49056
|
switch (item.kind) {
|
|
48851
49057
|
case "user": {
|
|
48852
49058
|
const bugHunt = parseBugHuntMessage(item.text);
|
|
49059
|
+
const perfRun = parsePerfRunMessage(item.text);
|
|
48853
49060
|
messages.push({
|
|
48854
49061
|
id,
|
|
48855
49062
|
role: "user",
|
|
48856
49063
|
content: item.text,
|
|
48857
49064
|
timestamp: timestamp2,
|
|
48858
49065
|
...bugHunt ? { bugHunt } : {},
|
|
49066
|
+
...perfRun ? { perfRun } : {},
|
|
48859
49067
|
...item.images ? { attachments: replayAttachments(item.images, id) } : {}
|
|
48860
49068
|
});
|
|
48861
49069
|
break;
|
|
@@ -49131,6 +49339,7 @@ var init_session_replay_handlers = __esm({
|
|
|
49131
49339
|
init_view_navigation();
|
|
49132
49340
|
init_ws_client();
|
|
49133
49341
|
init_bug_hunt_message();
|
|
49342
|
+
init_perf_run_message();
|
|
49134
49343
|
init_stores();
|
|
49135
49344
|
init_session_tab_store();
|
|
49136
49345
|
init_resume_progress_store();
|
|
@@ -51764,7 +51973,7 @@ var init_useProviderModels = __esm({
|
|
|
51764
51973
|
});
|
|
51765
51974
|
|
|
51766
51975
|
// src/components/MessageBubble/CopyButton.tsx
|
|
51767
|
-
import { Copy as Copy5, Check as
|
|
51976
|
+
import { Copy as Copy5, Check as Check16 } from "lucide-react";
|
|
51768
51977
|
import { useState as useState54 } from "react";
|
|
51769
51978
|
import { Fragment as Fragment24, jsx as jsx85, jsxs as jsxs80 } from "react/jsx-runtime";
|
|
51770
51979
|
function CopyButton({
|
|
@@ -51795,7 +52004,7 @@ function CopyButton({
|
|
|
51795
52004
|
),
|
|
51796
52005
|
title: labelText,
|
|
51797
52006
|
children: copied ? /* @__PURE__ */ jsxs80(Fragment24, { children: [
|
|
51798
|
-
/* @__PURE__ */ jsx85(
|
|
52007
|
+
/* @__PURE__ */ jsx85(Check16, { className: "h-3 w-3 text-success" }),
|
|
51799
52008
|
/* @__PURE__ */ jsx85("span", { children: t("common:action.copied") })
|
|
51800
52009
|
] }) : /* @__PURE__ */ jsxs80(Fragment24, { children: [
|
|
51801
52010
|
/* @__PURE__ */ jsx85(Copy5, { className: "h-3 w-3" }),
|
|
@@ -52383,7 +52592,7 @@ var init_fallback_ref = __esm({
|
|
|
52383
52592
|
});
|
|
52384
52593
|
|
|
52385
52594
|
// src/components/ModelPicker.tsx
|
|
52386
|
-
import { Check as
|
|
52595
|
+
import { Check as Check18, ChevronDown as ChevronDown19, Cpu as Cpu10, RotateCcw as RotateCcw8, Star as Star4, X as X18 } from "lucide-react";
|
|
52387
52596
|
import { useEffect as useEffect73, useMemo as useMemo37, useRef as useRef37, useState as useState72 } from "react";
|
|
52388
52597
|
import { jsx as jsx120, jsxs as jsxs113 } from "react/jsx-runtime";
|
|
52389
52598
|
function ModelPicker({
|
|
@@ -52432,7 +52641,7 @@ function ModelPicker({
|
|
|
52432
52641
|
children: value ? provider ? `${provider}/${value}` : value : placeholder ?? t("activity:model.runDefault")
|
|
52433
52642
|
}
|
|
52434
52643
|
),
|
|
52435
|
-
/* @__PURE__ */ jsx120(
|
|
52644
|
+
/* @__PURE__ */ jsx120(ChevronDown19, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" })
|
|
52436
52645
|
]
|
|
52437
52646
|
}
|
|
52438
52647
|
),
|
|
@@ -52453,7 +52662,7 @@ function ModelPicker({
|
|
|
52453
52662
|
type: "button",
|
|
52454
52663
|
onClick: () => setQuery(""),
|
|
52455
52664
|
className: "text-muted-foreground hover:text-foreground",
|
|
52456
|
-
children: /* @__PURE__ */ jsx120(
|
|
52665
|
+
children: /* @__PURE__ */ jsx120(X18, { className: "h-3 w-3" })
|
|
52457
52666
|
}
|
|
52458
52667
|
)
|
|
52459
52668
|
] }),
|
|
@@ -52489,7 +52698,7 @@ function ModelPicker({
|
|
|
52489
52698
|
selected ? "bg-primary/8 text-primary" : "text-foreground"
|
|
52490
52699
|
),
|
|
52491
52700
|
children: [
|
|
52492
|
-
selected ? /* @__PURE__ */ jsx120(
|
|
52701
|
+
selected ? /* @__PURE__ */ jsx120(Check18, { className: "mt-0.5 h-3 w-3 shrink-0 text-primary" }) : /* @__PURE__ */ jsx120("span", { className: "w-3 shrink-0" }),
|
|
52493
52702
|
/* @__PURE__ */ jsxs113("span", { className: "min-w-0 flex-1", children: [
|
|
52494
52703
|
/* @__PURE__ */ jsxs113("span", { className: "flex items-center gap-1", children: [
|
|
52495
52704
|
/* @__PURE__ */ jsx120("span", { className: "break-words", children: c.label }),
|
|
@@ -52517,7 +52726,7 @@ var init_ModelPicker = __esm({
|
|
|
52517
52726
|
});
|
|
52518
52727
|
|
|
52519
52728
|
// src/components/FallbackEditor.tsx
|
|
52520
|
-
import { AlertTriangle as AlertTriangle15, ArrowDown as ArrowDown3, ArrowUp as ArrowUp3, Plus as Plus6, X as
|
|
52729
|
+
import { AlertTriangle as AlertTriangle15, ArrowDown as ArrowDown3, ArrowUp as ArrowUp3, Plus as Plus6, X as X19 } from "lucide-react";
|
|
52521
52730
|
import { jsx as jsx121, jsxs as jsxs114 } from "react/jsx-runtime";
|
|
52522
52731
|
function FallbackEditor({
|
|
52523
52732
|
value,
|
|
@@ -52598,7 +52807,7 @@ function FallbackEditor({
|
|
|
52598
52807
|
onClick: () => remove(i),
|
|
52599
52808
|
className: "text-muted-foreground hover:text-destructive",
|
|
52600
52809
|
title: t("common:action.remove"),
|
|
52601
|
-
children: /* @__PURE__ */ jsx121(
|
|
52810
|
+
children: /* @__PURE__ */ jsx121(X19, { className: "h-3 w-3" })
|
|
52602
52811
|
}
|
|
52603
52812
|
)
|
|
52604
52813
|
]
|
|
@@ -52688,7 +52897,7 @@ var init_useFieldKeyboardNav = __esm({
|
|
|
52688
52897
|
});
|
|
52689
52898
|
|
|
52690
52899
|
// src/components/SetupScreen/ModelEditor.tsx
|
|
52691
|
-
import { Check as
|
|
52900
|
+
import { Check as Check20, Loader2 as Loader218, Plus as Plus9, Search as Search10, X as X21 } from "lucide-react";
|
|
52692
52901
|
import { useCallback as useCallback34, useEffect as useEffect76, useRef as useRef40, useState as useState76 } from "react";
|
|
52693
52902
|
import { jsx as jsx130, jsxs as jsxs122 } from "react/jsx-runtime";
|
|
52694
52903
|
function ModelEditor({
|
|
@@ -52792,7 +53001,7 @@ maxOutput: ${model.maxOutput}` : ""}` : void 0,
|
|
|
52792
53001
|
type: "button",
|
|
52793
53002
|
onClick: () => removeModel(model.id),
|
|
52794
53003
|
className: "opacity-0 group-hover:opacity-100 transition-opacity text-muted-foreground hover:text-destructive",
|
|
52795
|
-
children: /* @__PURE__ */ jsx130(
|
|
53004
|
+
children: /* @__PURE__ */ jsx130(X21, { className: "h-3 w-3" })
|
|
52796
53005
|
}
|
|
52797
53006
|
)
|
|
52798
53007
|
]
|
|
@@ -52824,7 +53033,7 @@ maxOutput: ${model.maxOutput}` : ""}` : void 0,
|
|
|
52824
53033
|
"hover:bg-accent/10 border border-transparent hover:border-accent/30"
|
|
52825
53034
|
),
|
|
52826
53035
|
children: [
|
|
52827
|
-
/* @__PURE__ */ jsx130(
|
|
53036
|
+
/* @__PURE__ */ jsx130(Check20, { className: "h-3.5 w-3.5 mt-0.5 shrink-0 text-muted-foreground" }),
|
|
52828
53037
|
/* @__PURE__ */ jsxs122("div", { className: "min-w-0 flex-1", children: [
|
|
52829
53038
|
/* @__PURE__ */ jsx130("span", { className: "font-medium block truncate", children: match.name }),
|
|
52830
53039
|
/* @__PURE__ */ jsxs122("span", { className: "text-muted-foreground block", children: [
|
|
@@ -52869,7 +53078,7 @@ maxOutput: ${model.maxOutput}` : ""}` : void 0,
|
|
|
52869
53078
|
}
|
|
52870
53079
|
),
|
|
52871
53080
|
/* @__PURE__ */ jsxs122(Button, { type: "button", size: "sm", onClick: confirmCustom, disabled: !customId.trim(), children: [
|
|
52872
|
-
/* @__PURE__ */ jsx130(
|
|
53081
|
+
/* @__PURE__ */ jsx130(Check20, { className: "h-3.5 w-3.5 mr-1" }),
|
|
52873
53082
|
t("setup:screen.custom.add")
|
|
52874
53083
|
] })
|
|
52875
53084
|
] }),
|
|
@@ -54091,7 +54300,7 @@ var init_roster_ws = __esm({
|
|
|
54091
54300
|
});
|
|
54092
54301
|
|
|
54093
54302
|
// src/components/AgentRosterCatalogTab.tsx
|
|
54094
|
-
import { Activity as Activity11, Bot as Bot17, ChevronDown as
|
|
54303
|
+
import { Activity as Activity11, Bot as Bot17, ChevronDown as ChevronDown23, Database as Database4, FileText as FileText12, Search as Search14, Settings as Settings3, X as X28 } from "lucide-react";
|
|
54095
54304
|
import { useCallback as useCallback52, useMemo as useMemo47, useState as useState98 } from "react";
|
|
54096
54305
|
import { jsx as jsx159, jsxs as jsxs150 } from "react/jsx-runtime";
|
|
54097
54306
|
function RosterCatalogTab({
|
|
@@ -54146,7 +54355,7 @@ function RosterCatalogTab({
|
|
|
54146
54355
|
type: "button",
|
|
54147
54356
|
onClick: () => setSearchQuery(""),
|
|
54148
54357
|
className: "text-muted-foreground hover:text-foreground",
|
|
54149
|
-
children: /* @__PURE__ */ jsx159(
|
|
54358
|
+
children: /* @__PURE__ */ jsx159(X28, { className: "h-3 w-3" })
|
|
54150
54359
|
}
|
|
54151
54360
|
)
|
|
54152
54361
|
] }) }),
|
|
@@ -54180,7 +54389,7 @@ function RosterCatalogTab({
|
|
|
54180
54389
|
] })
|
|
54181
54390
|
] }),
|
|
54182
54391
|
/* @__PURE__ */ jsx159(
|
|
54183
|
-
|
|
54392
|
+
ChevronDown23,
|
|
54184
54393
|
{
|
|
54185
54394
|
className: cn(
|
|
54186
54395
|
"h-3.5 w-3.5 shrink-0 text-muted-foreground transition-transform",
|
|
@@ -56378,7 +56587,7 @@ import {
|
|
|
56378
56587
|
Tag as Tag2,
|
|
56379
56588
|
Trash2 as Trash216,
|
|
56380
56589
|
Upload,
|
|
56381
|
-
X as
|
|
56590
|
+
X as X29
|
|
56382
56591
|
} from "lucide-react";
|
|
56383
56592
|
import { useCallback as useCallback55, useEffect as useEffect94, useMemo as useMemo50, useRef as useRef51, useState as useState101 } from "react";
|
|
56384
56593
|
import { Fragment as Fragment44, jsx as jsx167, jsxs as jsxs157 } from "react/jsx-runtime";
|
|
@@ -56686,7 +56895,7 @@ function AudienceMemoryPanel() {
|
|
|
56686
56895
|
className: "absolute right-2 top-1/2 -translate-y-1/2 rounded-sm p-0.5 text-muted-foreground hover:text-foreground",
|
|
56687
56896
|
onClick: () => setQuery(""),
|
|
56688
56897
|
"aria-label": t("activity:audienceMem.clearAudienceMemorySearch"),
|
|
56689
|
-
children: /* @__PURE__ */ jsx167(
|
|
56898
|
+
children: /* @__PURE__ */ jsx167(X29, { className: "size-3" })
|
|
56690
56899
|
}
|
|
56691
56900
|
)
|
|
56692
56901
|
] }),
|
|
@@ -56746,7 +56955,7 @@ function AudienceMemoryPanel() {
|
|
|
56746
56955
|
onClick: () => setFeedback(null),
|
|
56747
56956
|
className: "shrink-0 rounded-sm opacity-70 hover:opacity-100",
|
|
56748
56957
|
"aria-label": t("activity:audienceMem.dismissMessage"),
|
|
56749
|
-
children: /* @__PURE__ */ jsx167(
|
|
56958
|
+
children: /* @__PURE__ */ jsx167(X29, { className: "size-3" })
|
|
56750
56959
|
}
|
|
56751
56960
|
)
|
|
56752
56961
|
]
|
|
@@ -57521,7 +57730,7 @@ import {
|
|
|
57521
57730
|
MessageSquareText as MessageSquareText2,
|
|
57522
57731
|
Search as Search16,
|
|
57523
57732
|
TerminalSquare,
|
|
57524
|
-
X as
|
|
57733
|
+
X as X30
|
|
57525
57734
|
} from "lucide-react";
|
|
57526
57735
|
import { jsx as jsx168, jsxs as jsxs158 } from "react/jsx-runtime";
|
|
57527
57736
|
function shortPath(value, max = 46) {
|
|
@@ -57566,7 +57775,7 @@ function ToolActionDetail({
|
|
|
57566
57775
|
/* @__PURE__ */ jsx168("span", { children: t("activity:agentOffice.toolCall") }),
|
|
57567
57776
|
/* @__PURE__ */ jsx168("h2", { children: call.toolName })
|
|
57568
57777
|
] }),
|
|
57569
|
-
/* @__PURE__ */ jsx168("button", { type: "button", onClick: onClose, "aria-label": t("activity:agentOffice.closeDetails"), children: /* @__PURE__ */ jsx168(
|
|
57778
|
+
/* @__PURE__ */ jsx168("button", { type: "button", onClick: onClose, "aria-label": t("activity:agentOffice.closeDetails"), children: /* @__PURE__ */ jsx168(X30, {}) })
|
|
57570
57779
|
] }),
|
|
57571
57780
|
/* @__PURE__ */ jsxs158("div", { className: "agent-office__detail-status", children: [
|
|
57572
57781
|
/* @__PURE__ */ jsx168(
|
|
@@ -57663,7 +57872,7 @@ function MailActionDetail({
|
|
|
57663
57872
|
/* @__PURE__ */ jsx168("span", { children: mail.direction === "incoming" ? "INCOMING MAIL" : "OUTGOING MAIL" }),
|
|
57664
57873
|
/* @__PURE__ */ jsx168("h2", { children: mail.subject })
|
|
57665
57874
|
] }),
|
|
57666
|
-
/* @__PURE__ */ jsx168("button", { type: "button", onClick: onClose, "aria-label": t("activity:agentOffice.closeMailDetails"), children: /* @__PURE__ */ jsx168(
|
|
57875
|
+
/* @__PURE__ */ jsx168("button", { type: "button", onClick: onClose, "aria-label": t("activity:agentOffice.closeMailDetails"), children: /* @__PURE__ */ jsx168(X30, {}) })
|
|
57667
57876
|
] }),
|
|
57668
57877
|
/* @__PURE__ */ jsxs158("div", { className: "agent-office__detail-status", children: [
|
|
57669
57878
|
/* @__PURE__ */ jsx168("span", { className: cn("agent-office__status-dot", mail.unread && "is-active") }),
|
|
@@ -57710,7 +57919,7 @@ function TaskActionDetail({
|
|
|
57710
57919
|
/* @__PURE__ */ jsx168("span", { children: t("activity:agentOffice.currentTask") }),
|
|
57711
57920
|
/* @__PURE__ */ jsx168("h2", { children: selected.agentName })
|
|
57712
57921
|
] }),
|
|
57713
|
-
/* @__PURE__ */ jsx168("button", { type: "button", onClick: onClose, "aria-label": t("activity:agentOffice.closeTaskDetails"), children: /* @__PURE__ */ jsx168(
|
|
57922
|
+
/* @__PURE__ */ jsx168("button", { type: "button", onClick: onClose, "aria-label": t("activity:agentOffice.closeTaskDetails"), children: /* @__PURE__ */ jsx168(X30, {}) })
|
|
57714
57923
|
] }),
|
|
57715
57924
|
/* @__PURE__ */ jsxs158("section", { className: "agent-office__detail-section", children: [
|
|
57716
57925
|
/* @__PURE__ */ jsx168("h3", { children: t("activity:agentOffice.task") }),
|
|
@@ -57732,7 +57941,7 @@ function OfficeBriefingDetail({
|
|
|
57732
57941
|
/* @__PURE__ */ jsx168("span", { children: selected.instructionActive ? t("activity:agentOffice.activeInstruction") : t("activity:agentOffice.officeBriefing") }),
|
|
57733
57942
|
/* @__PURE__ */ jsx168("h2", { children: selected.officeLabel })
|
|
57734
57943
|
] }),
|
|
57735
|
-
/* @__PURE__ */ jsx168("button", { type: "button", onClick: onClose, "aria-label": t("activity:agentOffice.closeOfficeBriefing"), children: /* @__PURE__ */ jsx168(
|
|
57944
|
+
/* @__PURE__ */ jsx168("button", { type: "button", onClick: onClose, "aria-label": t("activity:agentOffice.closeOfficeBriefing"), children: /* @__PURE__ */ jsx168(X30, {}) })
|
|
57736
57945
|
] }),
|
|
57737
57946
|
/* @__PURE__ */ jsxs158("div", { className: "agent-office__detail-status", children: [
|
|
57738
57947
|
/* @__PURE__ */ jsx168(
|
|
@@ -58195,7 +58404,7 @@ var init_AgentOfficeView = __esm({
|
|
|
58195
58404
|
// src/components/AgentOfficeView/model.ts
|
|
58196
58405
|
import {
|
|
58197
58406
|
Building2 as Building22,
|
|
58198
|
-
Check as
|
|
58407
|
+
Check as Check25,
|
|
58199
58408
|
Code2 as Code25,
|
|
58200
58409
|
FilePenLine as FilePenLine2,
|
|
58201
58410
|
FolderSearch as FolderSearch2,
|
|
@@ -58416,7 +58625,7 @@ var init_model = __esm({
|
|
|
58416
58625
|
leader: Building22,
|
|
58417
58626
|
builder: Code25,
|
|
58418
58627
|
researcher: Search17,
|
|
58419
|
-
reviewer:
|
|
58628
|
+
reviewer: Check25,
|
|
58420
58629
|
planner: ListTodo5,
|
|
58421
58630
|
operator: TerminalSquare2
|
|
58422
58631
|
};
|
|
@@ -58428,7 +58637,7 @@ import {
|
|
|
58428
58637
|
Activity as Activity13,
|
|
58429
58638
|
Bot as Bot19,
|
|
58430
58639
|
Building2 as Building23,
|
|
58431
|
-
Check as
|
|
58640
|
+
Check as Check26,
|
|
58432
58641
|
CheckCircle2 as CheckCircle222,
|
|
58433
58642
|
Clock3 as Clock34,
|
|
58434
58643
|
Code2 as Code26,
|
|
@@ -58445,7 +58654,7 @@ import {
|
|
|
58445
58654
|
Send as Send5,
|
|
58446
58655
|
TerminalSquare as TerminalSquare3,
|
|
58447
58656
|
Wifi as Wifi3,
|
|
58448
|
-
X as
|
|
58657
|
+
X as X31,
|
|
58449
58658
|
Zap as Zap24
|
|
58450
58659
|
} from "lucide-react";
|
|
58451
58660
|
import { useMemo as useMemo52, useState as useState102 } from "react";
|
|
@@ -58523,7 +58732,7 @@ function ToolParcel({
|
|
|
58523
58732
|
!compact && call.target && /* @__PURE__ */ jsx169("span", { className: "agent-office__parcel-target", children: shortPath2(call.target) }),
|
|
58524
58733
|
/* @__PURE__ */ jsx169("span", { className: "agent-office__parcel-summary", children: call.summary })
|
|
58525
58734
|
] }),
|
|
58526
|
-
/* @__PURE__ */ jsx169("span", { className: "agent-office__parcel-state", "aria-hidden": "true", children: active ? /* @__PURE__ */ jsx169("span", { className: "agent-office__pulse-dot" }) : call.status === "failed" ? /* @__PURE__ */ jsx169(
|
|
58735
|
+
/* @__PURE__ */ jsx169("span", { className: "agent-office__parcel-state", "aria-hidden": "true", children: active ? /* @__PURE__ */ jsx169("span", { className: "agent-office__pulse-dot" }) : call.status === "failed" ? /* @__PURE__ */ jsx169(X31, {}) : /* @__PURE__ */ jsx169(Check26, {}) })
|
|
58527
58736
|
]
|
|
58528
58737
|
}
|
|
58529
58738
|
);
|
|
@@ -58842,7 +59051,7 @@ function AgentLane({
|
|
|
58842
59051
|
className: "agent-office__agent-verified",
|
|
58843
59052
|
title: agent.presenceSource === "registry" ? "Verified by live session registry" : "Verified by local fleet state",
|
|
58844
59053
|
children: [
|
|
58845
|
-
/* @__PURE__ */ jsx169(
|
|
59054
|
+
/* @__PURE__ */ jsx169(Check26, { "aria-hidden": "true" }),
|
|
58846
59055
|
agent.presenceSource === "registry" ? "LIVE" : "LOCAL"
|
|
58847
59056
|
]
|
|
58848
59057
|
}
|
|
@@ -63134,7 +63343,7 @@ var init_monaco_theme = __esm({
|
|
|
63134
63343
|
|
|
63135
63344
|
// src/components/MonacoDiffView.tsx
|
|
63136
63345
|
import { DiffEditor, loader } from "@monaco-editor/react";
|
|
63137
|
-
import { Check as
|
|
63346
|
+
import { Check as Check27, Loader2 as Loader230, Save } from "lucide-react";
|
|
63138
63347
|
import * as monaco2 from "monaco-editor";
|
|
63139
63348
|
import { useCallback as useCallback60, useEffect as useEffect99, useRef as useRef55, useState as useState107 } from "react";
|
|
63140
63349
|
import { jsx as jsx183, jsxs as jsxs173 } from "react/jsx-runtime";
|
|
@@ -63198,7 +63407,7 @@ function MonacoDiffView({
|
|
|
63198
63407
|
className: "inline-flex items-center gap-1.5 h-7 px-2.5 rounded-md border border-border text-xs font-medium disabled:opacity-40 enabled:hover:bg-muted transition-colors",
|
|
63199
63408
|
title: t("activity:monacoDiff.applyTitle"),
|
|
63200
63409
|
children: [
|
|
63201
|
-
saving ? /* @__PURE__ */ jsx183(Loader230, { className: "h-3.5 w-3.5 animate-spin" }) : savedAt && !dirty ? /* @__PURE__ */ jsx183(
|
|
63410
|
+
saving ? /* @__PURE__ */ jsx183(Loader230, { className: "h-3.5 w-3.5 animate-spin" }) : savedAt && !dirty ? /* @__PURE__ */ jsx183(Check27, { className: "h-3.5 w-3.5 text-success" }) : /* @__PURE__ */ jsx183(Save, { className: "h-3.5 w-3.5" }),
|
|
63202
63411
|
saving ? t("activity:monacoDiff.applying") : savedAt && !dirty ? t("activity:monacoDiff.applied") : t("activity:monacoDiff.apply")
|
|
63203
63412
|
]
|
|
63204
63413
|
}
|
|
@@ -63547,7 +63756,7 @@ import {
|
|
|
63547
63756
|
ShieldCheck as ShieldCheck7,
|
|
63548
63757
|
TerminalSquare as TerminalSquare4,
|
|
63549
63758
|
TriangleAlert as TriangleAlert5,
|
|
63550
|
-
X as
|
|
63759
|
+
X as X32
|
|
63551
63760
|
} from "lucide-react";
|
|
63552
63761
|
import { useCallback as useCallback61, useEffect as useEffect101, useMemo as useMemo56, useRef as useRef56, useState as useState109 } from "react";
|
|
63553
63762
|
import { jsx as jsx186, jsxs as jsxs176 } from "react/jsx-runtime";
|
|
@@ -64136,7 +64345,7 @@ function ChronicleDashboard() {
|
|
|
64136
64345
|
type: "button",
|
|
64137
64346
|
onClick: () => setSelected(null),
|
|
64138
64347
|
className: "rounded p-1 hover:bg-muted",
|
|
64139
|
-
children: /* @__PURE__ */ jsx186(
|
|
64348
|
+
children: /* @__PURE__ */ jsx186(X32, { className: "h-4 w-4" })
|
|
64140
64349
|
}
|
|
64141
64350
|
)
|
|
64142
64351
|
] }),
|
|
@@ -64674,7 +64883,7 @@ var init_useMemoryForFile = __esm({
|
|
|
64674
64883
|
import { useCallback as useCallback63, useEffect as useEffect103, useState as useState111 } from "react";
|
|
64675
64884
|
import {
|
|
64676
64885
|
AlertTriangle as AlertTriangle21,
|
|
64677
|
-
Check as
|
|
64886
|
+
Check as Check28,
|
|
64678
64887
|
CircleX,
|
|
64679
64888
|
Eye as Eye7,
|
|
64680
64889
|
EyeOff as EyeOff2,
|
|
@@ -64684,7 +64893,7 @@ import {
|
|
|
64684
64893
|
Pin as Pin3,
|
|
64685
64894
|
RefreshCw as RefreshCw20,
|
|
64686
64895
|
Sparkles as Sparkles15,
|
|
64687
|
-
X as
|
|
64896
|
+
X as X33
|
|
64688
64897
|
} from "lucide-react";
|
|
64689
64898
|
import { Fragment as Fragment51, jsx as jsx187, jsxs as jsxs177 } from "react/jsx-runtime";
|
|
64690
64899
|
function matchStrengthClass(strength) {
|
|
@@ -64826,7 +65035,7 @@ function MemoryCard({
|
|
|
64826
65035
|
className: "h-7 gap-1 px-2 text-[11px]",
|
|
64827
65036
|
title: t("activity:memoryManager.acceptSuggestionTitle"),
|
|
64828
65037
|
children: [
|
|
64829
|
-
/* @__PURE__ */ jsx187(
|
|
65038
|
+
/* @__PURE__ */ jsx187(Check28, { className: "size-3" }),
|
|
64830
65039
|
" ",
|
|
64831
65040
|
t("activity:memoryManager.actionAcceptDeletion")
|
|
64832
65041
|
]
|
|
@@ -64843,7 +65052,7 @@ function MemoryCard({
|
|
|
64843
65052
|
className: "h-7 gap-1 px-2 text-[11px]",
|
|
64844
65053
|
title: t("activity:memoryManager.rejectSuggestionTitle"),
|
|
64845
65054
|
children: [
|
|
64846
|
-
/* @__PURE__ */ jsx187(
|
|
65055
|
+
/* @__PURE__ */ jsx187(X33, { className: "size-3" }),
|
|
64847
65056
|
" ",
|
|
64848
65057
|
t("activity:memoryManager.actionKeep")
|
|
64849
65058
|
]
|
|
@@ -65180,8 +65389,8 @@ import {
|
|
|
65180
65389
|
Activity as Activity17,
|
|
65181
65390
|
Bot as Bot28,
|
|
65182
65391
|
BrainCircuit as BrainCircuit6,
|
|
65183
|
-
Check as
|
|
65184
|
-
ChevronDown as
|
|
65392
|
+
Check as Check29,
|
|
65393
|
+
ChevronDown as ChevronDown24,
|
|
65185
65394
|
ChevronUp as ChevronUp4,
|
|
65186
65395
|
CircleDot as CircleDot5,
|
|
65187
65396
|
Copy as Copy8,
|
|
@@ -65516,7 +65725,7 @@ function FileActivityDrawer({ file }) {
|
|
|
65516
65725
|
children: [
|
|
65517
65726
|
/* @__PURE__ */ jsx188(FileClock, { className: "h-3.5 w-3.5 shrink-0 text-primary" }),
|
|
65518
65727
|
/* @__PURE__ */ jsx188("span", { className: "truncate", children: t("activity:fileActivity.title") }),
|
|
65519
|
-
expanded ? /* @__PURE__ */ jsx188(
|
|
65728
|
+
expanded ? /* @__PURE__ */ jsx188(ChevronDown24, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx188(ChevronUp4, { className: "h-3 w-3" })
|
|
65520
65729
|
]
|
|
65521
65730
|
}
|
|
65522
65731
|
),
|
|
@@ -66027,7 +66236,7 @@ function SkeletonTab({ file }) {
|
|
|
66027
66236
|
disabled: !skeleton,
|
|
66028
66237
|
className: "inline-flex items-center gap-1 rounded bg-secondary px-2 py-1 text-[10px] font-medium text-secondary-foreground hover:bg-secondary/80 disabled:opacity-50",
|
|
66029
66238
|
children: [
|
|
66030
|
-
copied ? /* @__PURE__ */ jsx188(
|
|
66239
|
+
copied ? /* @__PURE__ */ jsx188(Check29, { className: "h-3 w-3 text-success" }) : /* @__PURE__ */ jsx188(Copy8, { className: "h-3 w-3" }),
|
|
66031
66240
|
/* @__PURE__ */ jsx188("span", { children: copied ? "Copied" : "Copy" })
|
|
66032
66241
|
]
|
|
66033
66242
|
}
|
|
@@ -66062,7 +66271,7 @@ var CodeEditor_exports = {};
|
|
|
66062
66271
|
__export(CodeEditor_exports, {
|
|
66063
66272
|
CodeEditor: () => CodeEditor
|
|
66064
66273
|
});
|
|
66065
|
-
import { Circle as Circle8, FileText as FileText15, GitBranch as GitBranch7, Map as MapIcon, Send as Send9, WrapText, X as
|
|
66274
|
+
import { Circle as Circle8, FileText as FileText15, GitBranch as GitBranch7, Map as MapIcon, Send as Send9, WrapText, X as X34 } from "lucide-react";
|
|
66066
66275
|
import { useCallback as useCallback65, useEffect as useEffect105, useMemo as useMemo58, useRef as useRef59, useState as useState113 } from "react";
|
|
66067
66276
|
import Editor, { loader as loader2 } from "@monaco-editor/react";
|
|
66068
66277
|
import * as monaco3 from "monaco-editor";
|
|
@@ -66134,7 +66343,7 @@ function EditorTabs() {
|
|
|
66134
66343
|
f.dirty && /* @__PURE__ */ jsx189(Circle8, { className: "h-2 w-2 fill-current text-primary shrink-0" }),
|
|
66135
66344
|
/* @__PURE__ */ jsx189("span", { className: "truncate", children: baseName }),
|
|
66136
66345
|
/* @__PURE__ */ jsx189(
|
|
66137
|
-
|
|
66346
|
+
X34,
|
|
66138
66347
|
{
|
|
66139
66348
|
className: cn(
|
|
66140
66349
|
"h-3 w-3 shrink-0 rounded-sm hover:bg-muted-foreground/20 opacity-0 group-hover:opacity-100 transition-opacity",
|
|
@@ -66961,7 +67170,7 @@ var init_CodeMapActivityHelpers = __esm({
|
|
|
66961
67170
|
});
|
|
66962
67171
|
|
|
66963
67172
|
// src/components/CodeMapActivityDrawer.tsx
|
|
66964
|
-
import { Activity as ActivityIcon2, X as
|
|
67173
|
+
import { Activity as ActivityIcon2, X as X35 } from "lucide-react";
|
|
66965
67174
|
import { jsx as jsx190, jsxs as jsxs180 } from "react/jsx-runtime";
|
|
66966
67175
|
function CodeMapActivityDrawer({
|
|
66967
67176
|
historyFile,
|
|
@@ -66982,7 +67191,7 @@ function CodeMapActivityDrawer({
|
|
|
66982
67191
|
onClick: onClose,
|
|
66983
67192
|
className: "flex h-7 w-7 items-center justify-center border text-muted-foreground hover:bg-muted",
|
|
66984
67193
|
"aria-label": t("activity:codeMap.closeActivity"),
|
|
66985
|
-
children: /* @__PURE__ */ jsx190(
|
|
67194
|
+
children: /* @__PURE__ */ jsx190(X35, { className: "h-3.5 w-3.5" })
|
|
66986
67195
|
}
|
|
66987
67196
|
)
|
|
66988
67197
|
] }),
|
|
@@ -68035,7 +68244,7 @@ var init_CodeMapSelectedNodeSummary = __esm({
|
|
|
68035
68244
|
});
|
|
68036
68245
|
|
|
68037
68246
|
// src/components/CodeMapRelations.tsx
|
|
68038
|
-
import { ChevronDown as
|
|
68247
|
+
import { ChevronDown as ChevronDown25, ChevronRight as ChevronRight16, GitBranch as GitBranch9 } from "lucide-react";
|
|
68039
68248
|
import { jsx as jsx198, jsxs as jsxs188 } from "react/jsx-runtime";
|
|
68040
68249
|
function RelationSection(props) {
|
|
68041
68250
|
const { t } = useTranslation();
|
|
@@ -68066,7 +68275,7 @@ function RelationSection(props) {
|
|
|
68066
68275
|
className: "flex h-6 w-5 shrink-0 items-center justify-center text-muted-foreground",
|
|
68067
68276
|
onClick: () => nested.length > 0 && onToggle(key),
|
|
68068
68277
|
"aria-label": `${isExpanded ? "Collapse" : "Expand"} relation ${item.node.label}`,
|
|
68069
|
-
children: nested.length > 0 ? isExpanded ? /* @__PURE__ */ jsx198(
|
|
68278
|
+
children: nested.length > 0 ? isExpanded ? /* @__PURE__ */ jsx198(ChevronDown25, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx198(ChevronRight16, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx198("span", { className: "h-px w-2 bg-border" })
|
|
68070
68279
|
}
|
|
68071
68280
|
),
|
|
68072
68281
|
/* @__PURE__ */ jsxs188(
|
|
@@ -68122,7 +68331,7 @@ var init_CodeMapRelations = __esm({
|
|
|
68122
68331
|
});
|
|
68123
68332
|
|
|
68124
68333
|
// src/components/CodeMapRelationInspector.tsx
|
|
68125
|
-
import { Radio as Radio6, X as
|
|
68334
|
+
import { Radio as Radio6, X as X36 } from "lucide-react";
|
|
68126
68335
|
import { jsx as jsx199, jsxs as jsxs189 } from "react/jsx-runtime";
|
|
68127
68336
|
function CodeMapRelationInspector({
|
|
68128
68337
|
selectedNode,
|
|
@@ -68152,7 +68361,7 @@ function CodeMapRelationInspector({
|
|
|
68152
68361
|
className: "text-muted-foreground hover:text-foreground",
|
|
68153
68362
|
onClick: onClearSelection,
|
|
68154
68363
|
"aria-label": t("activity:codeMap.clearSelection"),
|
|
68155
|
-
children: /* @__PURE__ */ jsx199(
|
|
68364
|
+
children: /* @__PURE__ */ jsx199(X36, { className: "h-3.5 w-3.5" })
|
|
68156
68365
|
}
|
|
68157
68366
|
)
|
|
68158
68367
|
] }),
|
|
@@ -68282,7 +68491,7 @@ var init_CodeMapSearchResults = __esm({
|
|
|
68282
68491
|
// src/components/CodeMapDirectoryTree.tsx
|
|
68283
68492
|
import {
|
|
68284
68493
|
Box as Box2,
|
|
68285
|
-
ChevronDown as
|
|
68494
|
+
ChevronDown as ChevronDown26,
|
|
68286
68495
|
ChevronRight as ChevronRight17,
|
|
68287
68496
|
ExternalLink as ExternalLink6,
|
|
68288
68497
|
FileCode as FileCode6,
|
|
@@ -68349,7 +68558,7 @@ var init_CodeMapDirectoryTree = __esm({
|
|
|
68349
68558
|
style: { paddingLeft: 8 + depth * 12 },
|
|
68350
68559
|
onClick: () => onToggleDirectory(key),
|
|
68351
68560
|
children: [
|
|
68352
|
-
expanded ? /* @__PURE__ */ jsx201(
|
|
68561
|
+
expanded ? /* @__PURE__ */ jsx201(ChevronDown26, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx201(ChevronRight17, { className: "h-3 w-3" }),
|
|
68353
68562
|
expanded ? /* @__PURE__ */ jsx201(FolderOpen6, { className: "h-3.5 w-3.5 text-warning" }) : /* @__PURE__ */ jsx201(Folder3, { className: "h-3.5 w-3.5 text-warning" }),
|
|
68354
68563
|
/* @__PURE__ */ jsx201("span", { className: "truncate", children: child.name })
|
|
68355
68564
|
]
|
|
@@ -68387,7 +68596,7 @@ var init_CodeMapDirectoryTree = __esm({
|
|
|
68387
68596
|
className: "flex h-6 w-4 shrink-0 items-center justify-center text-muted-foreground",
|
|
68388
68597
|
onClick: () => onToggleFile(file),
|
|
68389
68598
|
"aria-label": `${expanded ? "Collapse" : "Expand"} ${file.label}`,
|
|
68390
|
-
children: loadingBranches.has(branchKey) ? /* @__PURE__ */ jsx201(Loader235, { className: "h-3 w-3 animate-spin" }) : expanded ? /* @__PURE__ */ jsx201(
|
|
68599
|
+
children: loadingBranches.has(branchKey) ? /* @__PURE__ */ jsx201(Loader235, { className: "h-3 w-3 animate-spin" }) : expanded ? /* @__PURE__ */ jsx201(ChevronDown26, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx201(ChevronRight17, { className: "h-3 w-3" })
|
|
68391
68600
|
}
|
|
68392
68601
|
),
|
|
68393
68602
|
/* @__PURE__ */ jsxs191(
|
|
@@ -68483,7 +68692,7 @@ var init_CodeMapDirectoryTree = __esm({
|
|
|
68483
68692
|
});
|
|
68484
68693
|
|
|
68485
68694
|
// src/components/CodeMapTreeSidebar.tsx
|
|
68486
|
-
import { ChevronDown as
|
|
68695
|
+
import { ChevronDown as ChevronDown27, ChevronRight as ChevronRight18, ExternalLink as ExternalLink7, Loader2 as Loader236, Package as Package4, Search as Search20, X as X37 } from "lucide-react";
|
|
68487
68696
|
import { jsx as jsx202, jsxs as jsxs192 } from "react/jsx-runtime";
|
|
68488
68697
|
function CodeMapTreeSidebar({
|
|
68489
68698
|
rootGraph,
|
|
@@ -68545,7 +68754,7 @@ function CodeMapTreeSidebar({
|
|
|
68545
68754
|
onSearchChange("");
|
|
68546
68755
|
},
|
|
68547
68756
|
"aria-label": t("activity:codeMapTree.clearSearch"),
|
|
68548
|
-
children: /* @__PURE__ */ jsx202(
|
|
68757
|
+
children: /* @__PURE__ */ jsx202(X37, { className: "h-3 w-3 text-muted-foreground" })
|
|
68549
68758
|
}
|
|
68550
68759
|
)
|
|
68551
68760
|
] })
|
|
@@ -68608,7 +68817,7 @@ function CodeMapTreeSidebar({
|
|
|
68608
68817
|
className: "flex h-6 w-5 items-center justify-center text-muted-foreground",
|
|
68609
68818
|
onClick: () => togglePackage(packageNode),
|
|
68610
68819
|
"aria-label": `${expanded ? "Collapse" : "Expand"} ${packageName}`,
|
|
68611
|
-
children: loadingBranches.has(branchKey) ? /* @__PURE__ */ jsx202(Loader236, { className: "h-3 w-3 animate-spin" }) : expanded ? /* @__PURE__ */ jsx202(
|
|
68820
|
+
children: loadingBranches.has(branchKey) ? /* @__PURE__ */ jsx202(Loader236, { className: "h-3 w-3 animate-spin" }) : expanded ? /* @__PURE__ */ jsx202(ChevronDown27, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx202(ChevronRight18, { className: "h-3 w-3" })
|
|
68612
68821
|
}
|
|
68613
68822
|
),
|
|
68614
68823
|
/* @__PURE__ */ jsxs192(
|
|
@@ -69524,7 +69733,7 @@ import {
|
|
|
69524
69733
|
Clock as Clock17,
|
|
69525
69734
|
Eye as Eye8,
|
|
69526
69735
|
FileWarning,
|
|
69527
|
-
Gauge as
|
|
69736
|
+
Gauge as Gauge6,
|
|
69528
69737
|
RefreshCw as RefreshCw22,
|
|
69529
69738
|
Server as Server5,
|
|
69530
69739
|
TrendingUp as TrendingUp3
|
|
@@ -69704,7 +69913,7 @@ function DebugDashboard() {
|
|
|
69704
69913
|
title: t("activity:debug.filesProcessed"),
|
|
69705
69914
|
value: data.fileWatcher?.filesProcessed ?? 0,
|
|
69706
69915
|
subtitle: t("activity:debug.afterHash"),
|
|
69707
|
-
icon:
|
|
69916
|
+
icon: Gauge6,
|
|
69708
69917
|
color: "text-success"
|
|
69709
69918
|
}
|
|
69710
69919
|
)
|
|
@@ -69754,7 +69963,7 @@ function DebugDashboard() {
|
|
|
69754
69963
|
] }),
|
|
69755
69964
|
/* @__PURE__ */ jsxs194("section", { children: [
|
|
69756
69965
|
/* @__PURE__ */ jsxs194("h2", { className: "mb-3 flex items-center gap-2 text-sm font-semibold text-muted-foreground", children: [
|
|
69757
|
-
/* @__PURE__ */ jsx204(
|
|
69966
|
+
/* @__PURE__ */ jsx204(Gauge6, { className: "h-4 w-4 text-primary" }),
|
|
69758
69967
|
t("activity:debugDash.webuiServerProcess")
|
|
69759
69968
|
] }),
|
|
69760
69969
|
/* @__PURE__ */ jsxs194("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4", children: [
|
|
@@ -69794,7 +70003,7 @@ function DebugDashboard() {
|
|
|
69794
70003
|
title: t("activity:debugDash.v8HeapLimit"),
|
|
69795
70004
|
value: formatBytes2(data.system?.heapLimit ?? 0),
|
|
69796
70005
|
subtitle: t("activity:debugDash.oldSpaceCeiling"),
|
|
69797
|
-
icon:
|
|
70006
|
+
icon: Gauge6,
|
|
69798
70007
|
color: "text-warning"
|
|
69799
70008
|
}
|
|
69800
70009
|
),
|
|
@@ -69983,7 +70192,7 @@ function DebugDashboard() {
|
|
|
69983
70192
|
title: t("activity:debugDash.indexWorkload"),
|
|
69984
70193
|
value: `${data.system?.codebaseIndexServer?.health?.server?.activeRequests ?? 0} requests`,
|
|
69985
70194
|
subtitle: `${data.system?.codebaseIndexServer?.health?.server?.activeWrites ?? 0} writes \xB7 ${data.system?.codebaseIndexServer?.health?.server?.queuedWrites ?? 0} queued`,
|
|
69986
|
-
icon:
|
|
70195
|
+
icon: Gauge6,
|
|
69987
70196
|
color: "text-primary"
|
|
69988
70197
|
}
|
|
69989
70198
|
),
|
|
@@ -70111,7 +70320,7 @@ var DesignGalleryView_exports = {};
|
|
|
70111
70320
|
__export(DesignGalleryView_exports, {
|
|
70112
70321
|
DesignGalleryView: () => DesignGalleryView
|
|
70113
70322
|
});
|
|
70114
|
-
import { Check as
|
|
70323
|
+
import { Check as Check30, Download as Download7, Palette as Palette5, Search as Search21, ShieldCheck as ShieldCheck9, X as X38 } from "lucide-react";
|
|
70115
70324
|
import { useCallback as useCallback68, useEffect as useEffect108, useMemo as useMemo60, useState as useState116 } from "react";
|
|
70116
70325
|
import { jsx as jsx205, jsxs as jsxs195 } from "react/jsx-runtime";
|
|
70117
70326
|
function applyOv(base, overrides, theme) {
|
|
@@ -70496,7 +70705,7 @@ function DesignGalleryView({ className }) {
|
|
|
70496
70705
|
onClick: () => showPanel("chat"),
|
|
70497
70706
|
className: "inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground",
|
|
70498
70707
|
title: t("common:action.close"),
|
|
70499
|
-
children: /* @__PURE__ */ jsx205(
|
|
70708
|
+
children: /* @__PURE__ */ jsx205(X38, { className: "h-4 w-4" })
|
|
70500
70709
|
}
|
|
70501
70710
|
)
|
|
70502
70711
|
] })
|
|
@@ -70542,7 +70751,7 @@ function DesignGalleryView({ className }) {
|
|
|
70542
70751
|
/* @__PURE__ */ jsx205("h3", { className: "text-sm font-semibold truncate", children: kit.name }),
|
|
70543
70752
|
/* @__PURE__ */ jsx205("code", { className: "text-[10px] text-muted-foreground", children: kit.id }),
|
|
70544
70753
|
isActive && /* @__PURE__ */ jsxs195("span", { className: "inline-flex items-center gap-0.5 text-[9px] font-semibold uppercase text-primary ml-auto", children: [
|
|
70545
|
-
/* @__PURE__ */ jsx205(
|
|
70754
|
+
/* @__PURE__ */ jsx205(Check30, { className: "w-3 h-3" }),
|
|
70546
70755
|
" ",
|
|
70547
70756
|
t("activity:design.active")
|
|
70548
70757
|
] })
|
|
@@ -71218,7 +71427,7 @@ __export(GoalView_exports, {
|
|
|
71218
71427
|
GoalView: () => GoalView
|
|
71219
71428
|
});
|
|
71220
71429
|
import { useCallback as useCallback70, useEffect as useEffect109, useRef as useRef61, useState as useState119 } from "react";
|
|
71221
|
-
import { Layers as Layers11, Loader2 as Loader237, Pause as Pause7, Play as Play5, Plus as Plus17, Rocket as Rocket4, Square as Square7, Undo2 as Undo23, X as
|
|
71430
|
+
import { Layers as Layers11, Loader2 as Loader237, Pause as Pause7, Play as Play5, Plus as Plus17, Rocket as Rocket4, Square as Square7, Undo2 as Undo23, X as X39, Zap as Zap27 } from "lucide-react";
|
|
71222
71431
|
import { Fragment as Fragment58, jsx as jsx208, jsxs as jsxs198 } from "react/jsx-runtime";
|
|
71223
71432
|
function GoalView({ onClose }) {
|
|
71224
71433
|
const { client: client2 } = useWebSocket();
|
|
@@ -71457,7 +71666,7 @@ function GoalView({ onClose }) {
|
|
|
71457
71666
|
}
|
|
71458
71667
|
)
|
|
71459
71668
|
] }),
|
|
71460
|
-
/* @__PURE__ */ jsx208(Button, { variant: "ghost", size: "icon", onClick: onClose, children: /* @__PURE__ */ jsx208(
|
|
71669
|
+
/* @__PURE__ */ jsx208(Button, { variant: "ghost", size: "icon", onClick: onClose, children: /* @__PURE__ */ jsx208(X39, { className: "h-4 w-4" }) })
|
|
71461
71670
|
] })
|
|
71462
71671
|
] }),
|
|
71463
71672
|
hasPhases && goalText && /* @__PURE__ */ jsxs198("div", { className: "shrink-0 border-b border-border/60 bg-muted/20 px-4 py-2.5", children: [
|
|
@@ -72057,7 +72266,7 @@ var init_useKanbanMeta = __esm({
|
|
|
72057
72266
|
});
|
|
72058
72267
|
|
|
72059
72268
|
// src/components/ChipMultiSelect.tsx
|
|
72060
|
-
import { Check as
|
|
72269
|
+
import { Check as Check31, ChevronDown as ChevronDown28, Plus as Plus18, X as X40 } from "lucide-react";
|
|
72061
72270
|
import { useEffect as useEffect112, useMemo as useMemo62, useRef as useRef62, useState as useState121 } from "react";
|
|
72062
72271
|
import { jsx as jsx209, jsxs as jsxs199 } from "react/jsx-runtime";
|
|
72063
72272
|
function ChipMultiSelect({
|
|
@@ -72105,7 +72314,7 @@ function ChipMultiSelect({
|
|
|
72105
72314
|
onClick: () => toggle(value),
|
|
72106
72315
|
className: "text-muted-foreground hover:text-destructive",
|
|
72107
72316
|
"aria-label": `Remove ${labelFor(value)}`,
|
|
72108
|
-
children: /* @__PURE__ */ jsx209(
|
|
72317
|
+
children: /* @__PURE__ */ jsx209(X40, { size: 11 })
|
|
72109
72318
|
}
|
|
72110
72319
|
)
|
|
72111
72320
|
]
|
|
@@ -72121,7 +72330,7 @@ function ChipMultiSelect({
|
|
|
72121
72330
|
children: [
|
|
72122
72331
|
/* @__PURE__ */ jsx209(Plus18, { className: "h-3.5 w-3.5 shrink-0 text-primary" }),
|
|
72123
72332
|
/* @__PURE__ */ jsx209("span", { className: "min-w-0 flex-1 truncate text-muted-foreground", children: placeholder ?? "Add\u2026" }),
|
|
72124
|
-
/* @__PURE__ */ jsx209(
|
|
72333
|
+
/* @__PURE__ */ jsx209(ChevronDown28, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" })
|
|
72125
72334
|
]
|
|
72126
72335
|
}
|
|
72127
72336
|
),
|
|
@@ -72142,7 +72351,7 @@ function ChipMultiSelect({
|
|
|
72142
72351
|
type: "button",
|
|
72143
72352
|
onClick: () => setQuery(""),
|
|
72144
72353
|
className: "text-muted-foreground hover:text-foreground",
|
|
72145
|
-
children: /* @__PURE__ */ jsx209(
|
|
72354
|
+
children: /* @__PURE__ */ jsx209(X40, { className: "h-3 w-3" })
|
|
72146
72355
|
}
|
|
72147
72356
|
)
|
|
72148
72357
|
] }),
|
|
@@ -72159,7 +72368,7 @@ function ChipMultiSelect({
|
|
|
72159
72368
|
isSelected ? "bg-primary/8 text-primary" : "text-foreground"
|
|
72160
72369
|
),
|
|
72161
72370
|
children: [
|
|
72162
|
-
isSelected ? /* @__PURE__ */ jsx209(
|
|
72371
|
+
isSelected ? /* @__PURE__ */ jsx209(Check31, { className: "mt-0.5 h-3 w-3 shrink-0 text-primary" }) : /* @__PURE__ */ jsx209("span", { className: "w-3 shrink-0" }),
|
|
72163
72372
|
/* @__PURE__ */ jsxs199("span", { className: "min-w-0 flex-1", children: [
|
|
72164
72373
|
/* @__PURE__ */ jsx209("span", { className: "block truncate", children: o.label }),
|
|
72165
72374
|
o.description && /* @__PURE__ */ jsx209("span", { className: "mt-0.5 block truncate text-[10px] text-muted-foreground", children: o.description })
|
|
@@ -72184,7 +72393,7 @@ var init_ChipMultiSelect = __esm({
|
|
|
72184
72393
|
});
|
|
72185
72394
|
|
|
72186
72395
|
// src/components/KanbanBoardChrome.tsx
|
|
72187
|
-
import { Activity as Activity19, ChevronDown as
|
|
72396
|
+
import { Activity as Activity19, ChevronDown as ChevronDown29, CircleUserRound, Clock3 as Clock37, Save as Save2, ShieldCheck as ShieldCheck10 } from "lucide-react";
|
|
72188
72397
|
import { useEffect as useEffect113, useState as useState122 } from "react";
|
|
72189
72398
|
import { jsx as jsx210, jsxs as jsxs200 } from "react/jsx-runtime";
|
|
72190
72399
|
function relativeLastSeen(lastSeenAt) {
|
|
@@ -72314,7 +72523,7 @@ function SupervisorBar({
|
|
|
72314
72523
|
] }),
|
|
72315
72524
|
snapshot?.summary && /* @__PURE__ */ jsx210("span", { className: "min-w-0 flex-1 truncate text-muted-foreground", children: snapshot.summary }),
|
|
72316
72525
|
/* @__PURE__ */ jsx210("span", { className: "ml-auto text-muted-foreground", children: snapshot?.lastAuditAt ? t("activity:kanban.checkedAgo", { ago: fmtElapsed4(snapshot.lastAuditAt) }) : t("activity:kanban.notChecked") }),
|
|
72317
|
-
/* @__PURE__ */ jsx210(
|
|
72526
|
+
/* @__PURE__ */ jsx210(ChevronDown29, { size: 13, className: cn("transition-transform", expanded && "rotate-180") })
|
|
72318
72527
|
]
|
|
72319
72528
|
}
|
|
72320
72529
|
),
|
|
@@ -72862,7 +73071,7 @@ var init_KanbanBoundaryEditor = __esm({
|
|
|
72862
73071
|
});
|
|
72863
73072
|
|
|
72864
73073
|
// src/components/KanbanCleanerAlert.tsx
|
|
72865
|
-
import { AlertTriangle as AlertTriangle22, ChevronDown as
|
|
73074
|
+
import { AlertTriangle as AlertTriangle22, ChevronDown as ChevronDown30, CircleAlert, Sparkles as Sparkles16 } from "lucide-react";
|
|
72866
73075
|
import { useEffect as useEffect115, useId as useId3, useRef as useRef63, useState as useState124 } from "react";
|
|
72867
73076
|
import { jsx as jsx213, jsxs as jsxs203 } from "react/jsx-runtime";
|
|
72868
73077
|
function KanbanCleanerAlert({
|
|
@@ -72927,7 +73136,7 @@ function KanbanCleanerAlert({
|
|
|
72927
73136
|
onClick: () => setExpanded((value) => !value),
|
|
72928
73137
|
className: "flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary",
|
|
72929
73138
|
children: /* @__PURE__ */ jsx213(
|
|
72930
|
-
|
|
73139
|
+
ChevronDown30,
|
|
72931
73140
|
{
|
|
72932
73141
|
size: 14,
|
|
72933
73142
|
"aria-hidden": "true",
|
|
@@ -73171,7 +73380,7 @@ var init_KanbanTaskFields = __esm({
|
|
|
73171
73380
|
});
|
|
73172
73381
|
|
|
73173
73382
|
// src/components/TaskRiskPanel.tsx
|
|
73174
|
-
import { AlertTriangle as AlertTriangle23, CheckCircle2 as CheckCircle224, ChevronDown as
|
|
73383
|
+
import { AlertTriangle as AlertTriangle23, CheckCircle2 as CheckCircle224, ChevronDown as ChevronDown31, Database as Database10, ShieldAlert as ShieldAlert8 } from "lucide-react";
|
|
73175
73384
|
import { jsx as jsx215, jsxs as jsxs205 } from "react/jsx-runtime";
|
|
73176
73385
|
function record2(value) {
|
|
73177
73386
|
return value && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
@@ -73480,7 +73689,7 @@ function TaskRiskPanel({
|
|
|
73480
73689
|
}
|
|
73481
73690
|
),
|
|
73482
73691
|
assessment.critical > 0 && /* @__PURE__ */ jsx215("span", { className: "rounded bg-destructive/10 px-1.5 py-0.5 text-[9px] text-destructive", children: t("activity:taskRisk.criticalCount", { count: assessment.critical }) }),
|
|
73483
|
-
/* @__PURE__ */ jsx215(
|
|
73692
|
+
/* @__PURE__ */ jsx215(ChevronDown31, { className: "ml-auto size-3.5 text-muted-foreground" })
|
|
73484
73693
|
] }),
|
|
73485
73694
|
/* @__PURE__ */ jsxs205("div", { className: "space-y-2 border-t border-border/60 p-2.5", children: [
|
|
73486
73695
|
/* @__PURE__ */ jsx215("div", { className: "grid grid-cols-3 gap-1 text-center sm:grid-cols-6", children: [
|
|
@@ -74553,7 +74762,7 @@ import {
|
|
|
74553
74762
|
AlertTriangle as AlertTriangle25,
|
|
74554
74763
|
Ban as Ban2,
|
|
74555
74764
|
Brain as Brain14,
|
|
74556
|
-
Check as
|
|
74765
|
+
Check as Check32,
|
|
74557
74766
|
CircleDot as CircleDot7,
|
|
74558
74767
|
GitMerge as GitMerge3,
|
|
74559
74768
|
Layers as Layers12,
|
|
@@ -74562,7 +74771,7 @@ import {
|
|
|
74562
74771
|
RotateCcw as RotateCcw12,
|
|
74563
74772
|
ShieldAlert as ShieldAlert10,
|
|
74564
74773
|
Split,
|
|
74565
|
-
X as
|
|
74774
|
+
X as X41
|
|
74566
74775
|
} from "lucide-react";
|
|
74567
74776
|
function statusStyle(s) {
|
|
74568
74777
|
return SDD_STATUS[s] ?? SDD_STATUS.pending;
|
|
@@ -74637,7 +74846,7 @@ var init_sdd_theme = __esm({
|
|
|
74637
74846
|
},
|
|
74638
74847
|
failed: {
|
|
74639
74848
|
label: "Failed",
|
|
74640
|
-
icon:
|
|
74849
|
+
icon: X41,
|
|
74641
74850
|
text: "text-destructive",
|
|
74642
74851
|
ring: "border-destructive/45 bg-destructive/10",
|
|
74643
74852
|
dot: "bg-destructive",
|
|
@@ -74645,7 +74854,7 @@ var init_sdd_theme = __esm({
|
|
|
74645
74854
|
},
|
|
74646
74855
|
completed: {
|
|
74647
74856
|
label: "Done",
|
|
74648
|
-
icon:
|
|
74857
|
+
icon: Check32,
|
|
74649
74858
|
text: "text-success",
|
|
74650
74859
|
ring: "border-success/35 bg-success/10",
|
|
74651
74860
|
dot: "bg-success",
|
|
@@ -74698,8 +74907,8 @@ var init_sdd_theme = __esm({
|
|
|
74698
74907
|
];
|
|
74699
74908
|
SDD_FEED_KIND = {
|
|
74700
74909
|
started: { icon: Play6, color: "text-warning" },
|
|
74701
|
-
completed: { icon:
|
|
74702
|
-
failed: { icon:
|
|
74910
|
+
completed: { icon: Check32, color: "text-success" },
|
|
74911
|
+
failed: { icon: X41, color: "text-destructive" },
|
|
74703
74912
|
retrying: { icon: RotateCcw12, color: "text-warning" },
|
|
74704
74913
|
wave: { icon: Layers12, color: "text-primary" },
|
|
74705
74914
|
deadlock: { icon: AlertTriangle25, color: "text-destructive" },
|
|
@@ -74725,14 +74934,14 @@ import {
|
|
|
74725
74934
|
useReactFlow as useReactFlow3
|
|
74726
74935
|
} from "@xyflow/react";
|
|
74727
74936
|
import "@xyflow/react/dist/style.css";
|
|
74728
|
-
import { Check as
|
|
74937
|
+
import { Check as Check33, Loader2 as Loader239, X as X42, GitBranch as GitBranch11, RotateCcw as RotateCcw13, CircleDot as CircleDot8 } from "lucide-react";
|
|
74729
74938
|
import { jsx as jsx219, jsxs as jsxs209 } from "react/jsx-runtime";
|
|
74730
74939
|
function TaskNode({ data }) {
|
|
74731
74940
|
const t = data.task;
|
|
74732
74941
|
const { t: tt } = useTranslation();
|
|
74733
74942
|
const s = STATUS[t.displayStatus];
|
|
74734
74943
|
const running = t.displayStatus === "in_progress";
|
|
74735
|
-
const StatusIcon2 = t.displayStatus === "completed" ?
|
|
74944
|
+
const StatusIcon2 = t.displayStatus === "completed" ? Check33 : t.displayStatus === "failed" ? X42 : running ? Loader239 : CircleDot8;
|
|
74736
74945
|
return /* @__PURE__ */ jsxs209(
|
|
74737
74946
|
"div",
|
|
74738
74947
|
{
|
|
@@ -74929,7 +75138,7 @@ var init_SddFlowGraph = __esm({
|
|
|
74929
75138
|
});
|
|
74930
75139
|
|
|
74931
75140
|
// src/components/KanbanDecompositionPanel.tsx
|
|
74932
|
-
import { Check as
|
|
75141
|
+
import { Check as Check34, ChevronDown as ChevronDown32, ChevronRight as ChevronRight19, Scissors, X as X43 } from "lucide-react";
|
|
74933
75142
|
import { useMemo as useMemo65, useState as useState127 } from "react";
|
|
74934
75143
|
import { Fragment as Fragment59, jsx as jsx220, jsxs as jsxs210 } from "react/jsx-runtime";
|
|
74935
75144
|
function KanbanDecompositionApprovalCard({
|
|
@@ -74949,7 +75158,7 @@ function KanbanDecompositionApprovalCard({
|
|
|
74949
75158
|
onClick: () => setCollapsed((value) => !value),
|
|
74950
75159
|
className: "flex w-full items-center gap-2 text-left text-xs font-semibold text-warning",
|
|
74951
75160
|
children: [
|
|
74952
|
-
collapsed ? /* @__PURE__ */ jsx220(ChevronRight19, { size: 13 }) : /* @__PURE__ */ jsx220(
|
|
75161
|
+
collapsed ? /* @__PURE__ */ jsx220(ChevronRight19, { size: 13 }) : /* @__PURE__ */ jsx220(ChevronDown32, { size: 13 }),
|
|
74953
75162
|
/* @__PURE__ */ jsx220(Scissors, { size: 13 }),
|
|
74954
75163
|
pending.length,
|
|
74955
75164
|
" decomposition proposal",
|
|
@@ -74986,7 +75195,7 @@ function KanbanDecompositionApprovalCard({
|
|
|
74986
75195
|
}),
|
|
74987
75196
|
className: "inline-flex items-center gap-1 rounded-md bg-success/10 px-2 py-1 text-[11px] font-medium text-success hover:bg-success/20",
|
|
74988
75197
|
children: [
|
|
74989
|
-
/* @__PURE__ */ jsx220(
|
|
75198
|
+
/* @__PURE__ */ jsx220(Check34, { size: 12 }),
|
|
74990
75199
|
" ",
|
|
74991
75200
|
t("activity:kanbanDecomp.approve")
|
|
74992
75201
|
]
|
|
@@ -75003,7 +75212,7 @@ function KanbanDecompositionApprovalCard({
|
|
|
75003
75212
|
}),
|
|
75004
75213
|
className: "inline-flex items-center gap-1 rounded-md bg-destructive/10 px-2 py-1 text-[11px] font-medium text-destructive hover:bg-destructive/20",
|
|
75005
75214
|
children: [
|
|
75006
|
-
/* @__PURE__ */ jsx220(
|
|
75215
|
+
/* @__PURE__ */ jsx220(X43, { size: 12 }),
|
|
75007
75216
|
" ",
|
|
75008
75217
|
t("activity:kanbanDecomp.reject")
|
|
75009
75218
|
]
|
|
@@ -75127,7 +75336,7 @@ function KanbanDecompositionPanel({
|
|
|
75127
75336
|
}),
|
|
75128
75337
|
className: "inline-flex items-center gap-1 rounded-md bg-success/10 px-2.5 py-1.5 text-xs font-medium text-success hover:bg-success/20",
|
|
75129
75338
|
children: [
|
|
75130
|
-
/* @__PURE__ */ jsx220(
|
|
75339
|
+
/* @__PURE__ */ jsx220(Check34, { size: 13 }),
|
|
75131
75340
|
" ",
|
|
75132
75341
|
t("activity:kanbanDecomp.approveAmpSplit")
|
|
75133
75342
|
]
|
|
@@ -75144,7 +75353,7 @@ function KanbanDecompositionPanel({
|
|
|
75144
75353
|
}),
|
|
75145
75354
|
className: "inline-flex items-center gap-1 rounded-md bg-destructive/10 px-2.5 py-1.5 text-xs font-medium text-destructive hover:bg-destructive/20",
|
|
75146
75355
|
children: [
|
|
75147
|
-
/* @__PURE__ */ jsx220(
|
|
75356
|
+
/* @__PURE__ */ jsx220(X43, { size: 13 }),
|
|
75148
75357
|
" ",
|
|
75149
75358
|
t("activity:kanbanDecomp.reject")
|
|
75150
75359
|
]
|
|
@@ -75296,7 +75505,7 @@ var init_KanbanQueueHealthBar = __esm({
|
|
|
75296
75505
|
});
|
|
75297
75506
|
|
|
75298
75507
|
// src/components/KanbanRunControls.tsx
|
|
75299
|
-
import { Check as
|
|
75508
|
+
import { Check as Check35, Pause as Pause8, Play as Play7, Rocket as Rocket5, RotateCcw as RotateCcw14, Square as Square8, UserPlus as UserPlus2, X as X44 } from "lucide-react";
|
|
75300
75509
|
import { useState as useState128 } from "react";
|
|
75301
75510
|
import { jsx as jsx222, jsxs as jsxs212 } from "react/jsx-runtime";
|
|
75302
75511
|
function RunControlBar({
|
|
@@ -75456,7 +75665,7 @@ function RunTaskControls({
|
|
|
75456
75665
|
type: "button",
|
|
75457
75666
|
onClick: submitReassign,
|
|
75458
75667
|
className: "rounded-md bg-primary/10 px-2 py-1.5 text-primary",
|
|
75459
|
-
children: /* @__PURE__ */ jsx222(
|
|
75668
|
+
children: /* @__PURE__ */ jsx222(Check35, { size: 14 })
|
|
75460
75669
|
}
|
|
75461
75670
|
),
|
|
75462
75671
|
/* @__PURE__ */ jsx222(
|
|
@@ -75465,7 +75674,7 @@ function RunTaskControls({
|
|
|
75465
75674
|
type: "button",
|
|
75466
75675
|
onClick: () => setReassigning(false),
|
|
75467
75676
|
className: "rounded-md bg-muted px-2 py-1.5",
|
|
75468
|
-
children: /* @__PURE__ */ jsx222(
|
|
75677
|
+
children: /* @__PURE__ */ jsx222(X44, { size: 14 })
|
|
75469
75678
|
}
|
|
75470
75679
|
)
|
|
75471
75680
|
] }) : /* @__PURE__ */ jsxs212("div", { className: "flex flex-wrap gap-2", children: [
|
|
@@ -75723,7 +75932,7 @@ var init_KanbanTaskActivityRecorder = __esm({
|
|
|
75723
75932
|
});
|
|
75724
75933
|
|
|
75725
75934
|
// src/components/KanbanTaskCompletionChecks.tsx
|
|
75726
|
-
import { Check as
|
|
75935
|
+
import { Check as Check36, Plus as Plus21 } from "lucide-react";
|
|
75727
75936
|
import { jsx as jsx225, jsxs as jsxs215 } from "react/jsx-runtime";
|
|
75728
75937
|
function KanbanTaskCompletionChecks({
|
|
75729
75938
|
board,
|
|
@@ -75743,7 +75952,7 @@ function KanbanTaskCompletionChecks({
|
|
|
75743
75952
|
className: "grid grid-cols-[auto_1fr_92px] items-center gap-2 rounded-md border bg-background px-2 py-1.5 text-xs",
|
|
75744
75953
|
children: [
|
|
75745
75954
|
/* @__PURE__ */ jsx225(
|
|
75746
|
-
|
|
75955
|
+
Check36,
|
|
75747
75956
|
{
|
|
75748
75957
|
size: 13,
|
|
75749
75958
|
className: check.status === "passed" ? "text-success" : "text-muted-foreground"
|
|
@@ -75978,7 +76187,7 @@ var init_KanbanTaskOptions = __esm({
|
|
|
75978
76187
|
});
|
|
75979
76188
|
|
|
75980
76189
|
// src/components/TaskActivityTimeline.tsx
|
|
75981
|
-
import { Activity as Activity20, Check as
|
|
76190
|
+
import { Activity as Activity20, Check as Check37, Copy as Copy9, Download as Download8, RefreshCw as RefreshCw24, Search as Search22, X as X45 } from "lucide-react";
|
|
75982
76191
|
import { useMemo as useMemo66, useState as useState129 } from "react";
|
|
75983
76192
|
import { Fragment as Fragment60, jsx as jsx227, jsxs as jsxs217 } from "react/jsx-runtime";
|
|
75984
76193
|
function buildTaskActivityExport(task, events, scope, exportedAt = (/* @__PURE__ */ new Date()).toISOString()) {
|
|
@@ -76367,7 +76576,7 @@ function TaskActivityTimeline({
|
|
|
76367
76576
|
className: "flex size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground",
|
|
76368
76577
|
"aria-label": t("activity:taskTimeline.copyVisibleTaskActivityJson"),
|
|
76369
76578
|
title: t("activity:taskTimeline.copyFilteredActivityJson"),
|
|
76370
|
-
children: copied ? /* @__PURE__ */ jsx227(
|
|
76579
|
+
children: copied ? /* @__PURE__ */ jsx227(Check37, { className: "size-3 text-success" }) : /* @__PURE__ */ jsx227(Copy9, { className: "size-3" })
|
|
76371
76580
|
}
|
|
76372
76581
|
),
|
|
76373
76582
|
/* @__PURE__ */ jsx227(
|
|
@@ -76440,7 +76649,7 @@ function TaskActivityTimeline({
|
|
|
76440
76649
|
onClick: () => setQuery(""),
|
|
76441
76650
|
"aria-label": t("activity:taskTimeline.clearTaskActivitySearch"),
|
|
76442
76651
|
className: "absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",
|
|
76443
|
-
children: /* @__PURE__ */ jsx227(
|
|
76652
|
+
children: /* @__PURE__ */ jsx227(X45, { className: "size-3" })
|
|
76444
76653
|
}
|
|
76445
76654
|
)
|
|
76446
76655
|
] }),
|
|
@@ -76580,7 +76789,7 @@ var init_TaskActivityTimeline = __esm({
|
|
|
76580
76789
|
});
|
|
76581
76790
|
|
|
76582
76791
|
// src/components/TaskExecutionAttempts.tsx
|
|
76583
|
-
import { Bot as Bot29, ChevronDown as
|
|
76792
|
+
import { Bot as Bot29, ChevronDown as ChevronDown33, History as History6, Route, Timer as Timer2 } from "lucide-react";
|
|
76584
76793
|
import { jsx as jsx228, jsxs as jsxs218 } from "react/jsx-runtime";
|
|
76585
76794
|
function record4(value) {
|
|
76586
76795
|
return value && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
@@ -76703,7 +76912,7 @@ function TaskExecutionAttempts({
|
|
|
76703
76912
|
"latest:",
|
|
76704
76913
|
attempts[0].status
|
|
76705
76914
|
] }),
|
|
76706
|
-
/* @__PURE__ */ jsx228(
|
|
76915
|
+
/* @__PURE__ */ jsx228(ChevronDown33, { className: "ml-auto size-3.5 text-muted-foreground" })
|
|
76707
76916
|
] }),
|
|
76708
76917
|
/* @__PURE__ */ jsxs218("div", { className: "space-y-2 border-t border-border/60 p-2.5", children: [
|
|
76709
76918
|
attemptPage.pageItems.map((attempt) => /* @__PURE__ */ jsxs218("section", { className: "rounded-md border bg-background/70 p-2.5", children: [
|
|
@@ -76791,7 +77000,7 @@ import {
|
|
|
76791
77000
|
Activity as Activity21,
|
|
76792
77001
|
Bot as Bot30,
|
|
76793
77002
|
BrainCircuit as BrainCircuit7,
|
|
76794
|
-
ChevronDown as
|
|
77003
|
+
ChevronDown as ChevronDown34,
|
|
76795
77004
|
GitBranch as GitBranch13,
|
|
76796
77005
|
Route as Route2,
|
|
76797
77006
|
ShieldCheck as ShieldCheck14
|
|
@@ -76967,7 +77176,7 @@ function TaskIntelligencePanel({
|
|
|
76967
77176
|
/* @__PURE__ */ jsx229("span", { className: "text-xs font-semibold", children: t("activity:taskIntel.heading") }),
|
|
76968
77177
|
/* @__PURE__ */ jsx229("span", { className: "rounded bg-muted px-1.5 py-0.5 text-[9px] uppercase text-muted-foreground", children: task.status }),
|
|
76969
77178
|
/* @__PURE__ */ jsx229("span", { className: "ml-auto text-[10px] text-muted-foreground", children: t("activity:taskIntel.eventsCount", { count: intelligence.eventCount }) }),
|
|
76970
|
-
/* @__PURE__ */ jsx229(
|
|
77179
|
+
/* @__PURE__ */ jsx229(ChevronDown34, { className: "size-3.5 text-muted-foreground" })
|
|
76971
77180
|
] }),
|
|
76972
77181
|
/* @__PURE__ */ jsxs219("div", { className: "space-y-2.5 border-t border-border/60 p-2.5", children: [
|
|
76973
77182
|
/* @__PURE__ */ jsxs219("section", { className: "rounded-md border border-info/25 bg-info/5 p-2.5", children: [
|
|
@@ -77368,7 +77577,7 @@ var init_KanbanContractGraphPanel = __esm({
|
|
|
77368
77577
|
import {
|
|
77369
77578
|
AlertTriangle as AlertTriangle27,
|
|
77370
77579
|
CheckCircle2 as CheckCircle227,
|
|
77371
|
-
ChevronDown as
|
|
77580
|
+
ChevronDown as ChevronDown35,
|
|
77372
77581
|
ChevronRight as ChevronRight20,
|
|
77373
77582
|
FileCode2 as FileCode24,
|
|
77374
77583
|
FileText as FileText17,
|
|
@@ -77409,7 +77618,7 @@ function CollapsibleSection({
|
|
|
77409
77618
|
onClick: () => setOpen(!open),
|
|
77410
77619
|
className: "flex w-full items-center gap-2 px-3 py-2 text-xs font-semibold uppercase text-muted-foreground hover:bg-muted/50",
|
|
77411
77620
|
children: [
|
|
77412
|
-
open ? /* @__PURE__ */ jsx231(
|
|
77621
|
+
open ? /* @__PURE__ */ jsx231(ChevronDown35, { size: 13 }) : /* @__PURE__ */ jsx231(ChevronRight20, { size: 13 }),
|
|
77413
77622
|
/* @__PURE__ */ jsx231(Icon2, { size: 13 }),
|
|
77414
77623
|
title
|
|
77415
77624
|
]
|
|
@@ -77438,7 +77647,7 @@ function CheckResultRow({ check }) {
|
|
|
77438
77647
|
type: "button",
|
|
77439
77648
|
onClick: () => setExpanded(!expanded),
|
|
77440
77649
|
className: "shrink-0 text-muted-foreground hover:text-foreground",
|
|
77441
|
-
children: expanded ? /* @__PURE__ */ jsx231(
|
|
77650
|
+
children: expanded ? /* @__PURE__ */ jsx231(ChevronDown35, { size: 13 }) : /* @__PURE__ */ jsx231(ChevronRight20, { size: 13 })
|
|
77442
77651
|
}
|
|
77443
77652
|
)
|
|
77444
77653
|
] }),
|
|
@@ -77658,7 +77867,7 @@ var init_TaskVerificationSection = __esm({
|
|
|
77658
77867
|
|
|
77659
77868
|
// src/components/KanbanTaskInspector.tsx
|
|
77660
77869
|
import {
|
|
77661
|
-
ChevronDown as
|
|
77870
|
+
ChevronDown as ChevronDown36,
|
|
77662
77871
|
Copy as Copy10,
|
|
77663
77872
|
Maximize2 as Maximize26,
|
|
77664
77873
|
Minimize2 as Minimize22,
|
|
@@ -77667,7 +77876,7 @@ import {
|
|
|
77667
77876
|
Send as Send10,
|
|
77668
77877
|
ShieldCheck as ShieldCheck16,
|
|
77669
77878
|
UserPlus as UserPlus3,
|
|
77670
|
-
X as
|
|
77879
|
+
X as X46
|
|
77671
77880
|
} from "lucide-react";
|
|
77672
77881
|
import { useEffect as useEffect118, useState as useState132 } from "react";
|
|
77673
77882
|
import { Fragment as Fragment62, jsx as jsx233, jsxs as jsxs223 } from "react/jsx-runtime";
|
|
@@ -77937,7 +78146,7 @@ function KanbanTaskInspector({
|
|
|
77937
78146
|
onClose();
|
|
77938
78147
|
},
|
|
77939
78148
|
className: "flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground",
|
|
77940
|
-
children: /* @__PURE__ */ jsx233(
|
|
78149
|
+
children: /* @__PURE__ */ jsx233(X46, { size: 16 })
|
|
77941
78150
|
}
|
|
77942
78151
|
)
|
|
77943
78152
|
] }),
|
|
@@ -78411,7 +78620,7 @@ function KanbanTaskInspector({
|
|
|
78411
78620
|
children: [
|
|
78412
78621
|
t("activity:kanbanInspector.advanced"),
|
|
78413
78622
|
/* @__PURE__ */ jsx233(
|
|
78414
|
-
|
|
78623
|
+
ChevronDown36,
|
|
78415
78624
|
{
|
|
78416
78625
|
size: 13,
|
|
78417
78626
|
className: cn("transition-transform", showAdvanced && "rotate-180")
|
|
@@ -78635,20 +78844,20 @@ var init_KanbanTaskInspector = __esm({
|
|
|
78635
78844
|
// src/components/KanbanTaskTree.tsx
|
|
78636
78845
|
import {
|
|
78637
78846
|
AlertTriangle as AlertTriangle28,
|
|
78638
|
-
Check as
|
|
78847
|
+
Check as Check38,
|
|
78639
78848
|
ChevronRight as ChevronRight21,
|
|
78640
78849
|
CircleDot as CircleDot9,
|
|
78641
78850
|
Loader2 as Loader241,
|
|
78642
78851
|
ShieldCheck as ShieldCheck17,
|
|
78643
78852
|
ShieldQuestion as ShieldQuestion2,
|
|
78644
78853
|
ShieldX,
|
|
78645
|
-
X as
|
|
78854
|
+
X as X47
|
|
78646
78855
|
} from "lucide-react";
|
|
78647
78856
|
import { useMemo as useMemo68 } from "react";
|
|
78648
78857
|
import { jsx as jsx234, jsxs as jsxs224 } from "react/jsx-runtime";
|
|
78649
78858
|
function StatusIcon({ task }) {
|
|
78650
|
-
if (task.status === "completed") return /* @__PURE__ */ jsx234(
|
|
78651
|
-
if (task.status === "failed") return /* @__PURE__ */ jsx234(
|
|
78859
|
+
if (task.status === "completed") return /* @__PURE__ */ jsx234(Check38, { size: 13, className: "text-success" });
|
|
78860
|
+
if (task.status === "failed") return /* @__PURE__ */ jsx234(X47, { size: 13, className: "text-destructive" });
|
|
78652
78861
|
if (task.status === "in_progress")
|
|
78653
78862
|
return /* @__PURE__ */ jsx234(Loader241, { size: 13, className: "animate-spin text-info" });
|
|
78654
78863
|
return /* @__PURE__ */ jsx234(CircleDot9, { size: 13, className: "text-muted-foreground" });
|
|
@@ -79197,7 +79406,7 @@ __export(KanbanView_exports, {
|
|
|
79197
79406
|
TASK_ACTIVITY_LOAD_LIMIT: () => TASK_ACTIVITY_LOAD_LIMIT,
|
|
79198
79407
|
deriveTaskCardIntelligence: () => deriveTaskCardIntelligence
|
|
79199
79408
|
});
|
|
79200
|
-
import { Copy as Copy11, History as History7, Plus as Plus22, Trash2 as Trash219, X as
|
|
79409
|
+
import { Copy as Copy11, History as History7, Plus as Plus22, Trash2 as Trash219, X as X48 } from "lucide-react";
|
|
79201
79410
|
import { useEffect as useEffect120, useMemo as useMemo70, useRef as useRef65, useState as useState134 } from "react";
|
|
79202
79411
|
import { Fragment as Fragment63, jsx as jsx238, jsxs as jsxs227 } from "react/jsx-runtime";
|
|
79203
79412
|
function KanbanView({ onClose }) {
|
|
@@ -79603,7 +79812,7 @@ function KanbanView({ onClose }) {
|
|
|
79603
79812
|
}
|
|
79604
79813
|
),
|
|
79605
79814
|
error && /* @__PURE__ */ jsxs227("div", { className: "flex h-9 shrink-0 items-center gap-2 border-b border-destructive/30 bg-destructive/10 px-4 text-sm text-destructive", children: [
|
|
79606
|
-
/* @__PURE__ */ jsx238(
|
|
79815
|
+
/* @__PURE__ */ jsx238(X48, { size: 15 }),
|
|
79607
79816
|
/* @__PURE__ */ jsx238("span", { className: "min-w-0 flex-1 truncate", children: error }),
|
|
79608
79817
|
/* @__PURE__ */ jsx238(
|
|
79609
79818
|
"button",
|
|
@@ -79612,7 +79821,7 @@ function KanbanView({ onClose }) {
|
|
|
79612
79821
|
"aria-label": t("common:action.close"),
|
|
79613
79822
|
onClick: () => setError(null),
|
|
79614
79823
|
className: "flex h-6 w-6 shrink-0 items-center justify-center rounded hover:bg-destructive/20",
|
|
79615
|
-
children: /* @__PURE__ */ jsx238(
|
|
79824
|
+
children: /* @__PURE__ */ jsx238(X48, { size: 15 })
|
|
79616
79825
|
}
|
|
79617
79826
|
)
|
|
79618
79827
|
] }),
|
|
@@ -79771,7 +79980,7 @@ import {
|
|
|
79771
79980
|
MessageSquare as MessageSquare10,
|
|
79772
79981
|
Reply,
|
|
79773
79982
|
Search as Search23,
|
|
79774
|
-
X as
|
|
79983
|
+
X as X49,
|
|
79775
79984
|
Lock as Lock3,
|
|
79776
79985
|
Globe as Globe8
|
|
79777
79986
|
} from "lucide-react";
|
|
@@ -79904,7 +80113,7 @@ function MailboxDetailView({ className }) {
|
|
|
79904
80113
|
onClick: handleClose,
|
|
79905
80114
|
className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
|
|
79906
80115
|
title: t("activity:mailbox.closeTitle"),
|
|
79907
|
-
children: /* @__PURE__ */ jsx239(
|
|
80116
|
+
children: /* @__PURE__ */ jsx239(X49, { className: "h-4 w-4" })
|
|
79908
80117
|
}
|
|
79909
80118
|
)
|
|
79910
80119
|
] }),
|
|
@@ -79989,7 +80198,7 @@ __export(PromptJournalView_exports, {
|
|
|
79989
80198
|
PromptJournalView: () => PromptJournalView
|
|
79990
80199
|
});
|
|
79991
80200
|
import {
|
|
79992
|
-
ChevronDown as
|
|
80201
|
+
ChevronDown as ChevronDown37,
|
|
79993
80202
|
ChevronRight as ChevronRight22,
|
|
79994
80203
|
FileText as FileText19,
|
|
79995
80204
|
RefreshCw as RefreshCw25,
|
|
@@ -80198,7 +80407,7 @@ function JournalEntryCard({
|
|
|
80198
80407
|
onClick: onToggle,
|
|
80199
80408
|
className: "flex w-full items-start gap-2 rounded-lg px-3 py-2 text-left hover:bg-accent/40",
|
|
80200
80409
|
children: [
|
|
80201
|
-
expanded ? /* @__PURE__ */ jsx240(
|
|
80410
|
+
expanded ? /* @__PURE__ */ jsx240(ChevronDown37, { className: "mt-0.5 h-4 w-4 shrink-0 text-muted-foreground" }) : /* @__PURE__ */ jsx240(ChevronRight22, { className: "mt-0.5 h-4 w-4 shrink-0 text-muted-foreground" }),
|
|
80202
80411
|
/* @__PURE__ */ jsxs229("div", { className: "min-w-0 flex-1", children: [
|
|
80203
80412
|
/* @__PURE__ */ jsxs229("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-1 text-xs", children: [
|
|
80204
80413
|
/* @__PURE__ */ jsx240("span", { className: "tabular text-muted-foreground", children: time }),
|
|
@@ -81208,7 +81417,7 @@ import {
|
|
|
81208
81417
|
Save as Save5,
|
|
81209
81418
|
Sparkles as Sparkles18,
|
|
81210
81419
|
Trash2 as Trash222,
|
|
81211
|
-
X as
|
|
81420
|
+
X as X50
|
|
81212
81421
|
} from "lucide-react";
|
|
81213
81422
|
import { useEffect as useEffect123, useRef as useRef66, useState as useState138 } from "react";
|
|
81214
81423
|
import { Fragment as Fragment65, jsx as jsx246, jsxs as jsxs235 } from "react/jsx-runtime";
|
|
@@ -81261,7 +81470,7 @@ function MemoryEditor({
|
|
|
81261
81470
|
] }),
|
|
81262
81471
|
/* @__PURE__ */ jsxs235("div", { className: "ml-auto flex items-center gap-2", children: [
|
|
81263
81472
|
/* @__PURE__ */ jsxs235(Button, { type: "button", variant: "ghost", size: "sm", onClick: onCancel, disabled: busy, children: [
|
|
81264
|
-
/* @__PURE__ */ jsx246(
|
|
81473
|
+
/* @__PURE__ */ jsx246(X50, { className: "size-3.5" }),
|
|
81265
81474
|
" ",
|
|
81266
81475
|
t("common:action.cancel")
|
|
81267
81476
|
] }),
|
|
@@ -81669,7 +81878,7 @@ var init_MemoryEditor = __esm({
|
|
|
81669
81878
|
});
|
|
81670
81879
|
|
|
81671
81880
|
// src/components/MemoryManager/MemoryFilters.tsx
|
|
81672
|
-
import { BrainCircuit as BrainCircuit9, ChevronDown as
|
|
81881
|
+
import { BrainCircuit as BrainCircuit9, ChevronDown as ChevronDown38, FilterX, Search as Search24, Tag as Tag5, X as X51 } from "lucide-react";
|
|
81673
81882
|
import { useState as useState139 } from "react";
|
|
81674
81883
|
import { jsx as jsx247, jsxs as jsxs236 } from "react/jsx-runtime";
|
|
81675
81884
|
function MemoryFilters({
|
|
@@ -81713,7 +81922,7 @@ function MemoryFilters({
|
|
|
81713
81922
|
"aria-label": t("activity:memoryManager.clearSearchAria"),
|
|
81714
81923
|
onClick: () => onSearchChange(""),
|
|
81715
81924
|
className: "absolute right-2 top-1/2 -translate-y-1/2 p-1 text-muted-foreground hover:text-foreground",
|
|
81716
|
-
children: /* @__PURE__ */ jsx247(
|
|
81925
|
+
children: /* @__PURE__ */ jsx247(X51, { className: "size-3.5" })
|
|
81717
81926
|
}
|
|
81718
81927
|
)
|
|
81719
81928
|
] }),
|
|
@@ -81799,7 +82008,7 @@ function MemoryFilters({
|
|
|
81799
82008
|
title: tagFilter ? `Active filter: ${tagFilter} (click the chip to clear)` : tagsVisible ? "Hide tag filters" : `Show tag filters (${allTags.length})`,
|
|
81800
82009
|
children: [
|
|
81801
82010
|
/* @__PURE__ */ jsx247(
|
|
81802
|
-
|
|
82011
|
+
ChevronDown38,
|
|
81803
82012
|
{
|
|
81804
82013
|
className: cn(
|
|
81805
82014
|
"size-3 transition-transform",
|
|
@@ -82191,7 +82400,7 @@ var init_MemorySearchBreakdown = __esm({
|
|
|
82191
82400
|
});
|
|
82192
82401
|
|
|
82193
82402
|
// src/components/MemoryManager/MemoryManagerEmpty.tsx
|
|
82194
|
-
import { BrainCircuit as BrainCircuit11, Check as
|
|
82403
|
+
import { BrainCircuit as BrainCircuit11, Check as Check39, Plus as Plus25 } from "lucide-react";
|
|
82195
82404
|
import { jsx as jsx250, jsxs as jsxs239 } from "react/jsx-runtime";
|
|
82196
82405
|
function MemoryManagerEmpty({ onCapture }) {
|
|
82197
82406
|
const { t } = useTranslation();
|
|
@@ -82204,7 +82413,7 @@ function MemoryManagerEmpty({ onCapture }) {
|
|
|
82204
82413
|
/* @__PURE__ */ jsx250("p", { className: "mt-2 max-w-md text-sm leading-6 text-muted-foreground", children: t("activity:memoryManager.emptyBody") }),
|
|
82205
82414
|
/* @__PURE__ */ jsxs239("div", { className: "mt-6 grid w-full max-w-lg gap-2 sm:grid-cols-3", children: [
|
|
82206
82415
|
/* @__PURE__ */ jsxs239("div", { className: "border border-border/70 bg-card/45 p-3", children: [
|
|
82207
|
-
/* @__PURE__ */ jsx250(
|
|
82416
|
+
/* @__PURE__ */ jsx250(Check39, { className: "mx-auto size-4 text-success" }),
|
|
82208
82417
|
/* @__PURE__ */ jsx250("p", { className: "mt-2 text-[10px] font-bold uppercase", children: t("activity:memoryManager.emptyVerifiedAnchors") })
|
|
82209
82418
|
] }),
|
|
82210
82419
|
/* @__PURE__ */ jsxs239("div", { className: "border border-border/70 bg-card/45 p-3", children: [
|
|
@@ -82394,7 +82603,7 @@ var init_MemoryManagerStatsBar = __esm({
|
|
|
82394
82603
|
});
|
|
82395
82604
|
|
|
82396
82605
|
// src/components/MemoryManager/ReviewQueue.tsx
|
|
82397
|
-
import { AlertTriangle as AlertTriangle33, Check as
|
|
82606
|
+
import { AlertTriangle as AlertTriangle33, Check as Check40, Loader2 as Loader244, RefreshCw as RefreshCw28, X as X52 } from "lucide-react";
|
|
82398
82607
|
import { useCallback as useCallback72, useEffect as useEffect124, useRef as useRef67, useState as useState140 } from "react";
|
|
82399
82608
|
import { Fragment as Fragment68, jsx as jsx253, jsxs as jsxs242 } from "react/jsx-runtime";
|
|
82400
82609
|
function ReviewQueue({
|
|
@@ -82528,7 +82737,7 @@ function ReviewQueue({
|
|
|
82528
82737
|
}
|
|
82529
82738
|
if (candidates.length === 0) {
|
|
82530
82739
|
return /* @__PURE__ */ jsxs242("div", { className: "flex flex-1 flex-col items-center justify-center gap-2 p-8 text-center", children: [
|
|
82531
|
-
/* @__PURE__ */ jsx253(
|
|
82740
|
+
/* @__PURE__ */ jsx253(Check40, { className: "size-6 text-success" }),
|
|
82532
82741
|
/* @__PURE__ */ jsx253("p", { className: "text-sm font-medium", children: t("activity:memoryManager.reviewEmptyTitle") }),
|
|
82533
82742
|
/* @__PURE__ */ jsx253("p", { className: "max-w-sm text-xs text-muted-foreground", children: t("activity:memoryManager.reviewEmptyHint") }),
|
|
82534
82743
|
/* @__PURE__ */ jsxs242(Button, { size: "sm", variant: "ghost", onClick: () => load(), children: [
|
|
@@ -82562,7 +82771,7 @@ function ReviewQueue({
|
|
|
82562
82771
|
disabled: selectedCount === 0 || bulkBusy,
|
|
82563
82772
|
onClick: () => void bulkAct("accept"),
|
|
82564
82773
|
children: [
|
|
82565
|
-
bulkBusy ? /* @__PURE__ */ jsx253(Loader244, { className: "size-3 animate-spin" }) : /* @__PURE__ */ jsx253(
|
|
82774
|
+
bulkBusy ? /* @__PURE__ */ jsx253(Loader244, { className: "size-3 animate-spin" }) : /* @__PURE__ */ jsx253(Check40, { className: "size-3" }),
|
|
82566
82775
|
t("activity:memoryManager.reviewBulkAccept"),
|
|
82567
82776
|
selectedCount > 0 ? ` (${selectedCount})` : ""
|
|
82568
82777
|
]
|
|
@@ -82577,7 +82786,7 @@ function ReviewQueue({
|
|
|
82577
82786
|
disabled: selectedCount === 0 || bulkBusy,
|
|
82578
82787
|
onClick: () => void bulkAct("reject"),
|
|
82579
82788
|
children: [
|
|
82580
|
-
/* @__PURE__ */ jsx253(
|
|
82789
|
+
/* @__PURE__ */ jsx253(X52, { className: "size-3" }),
|
|
82581
82790
|
t("activity:memoryManager.reviewBulkKeep"),
|
|
82582
82791
|
selectedCount > 0 ? ` (${selectedCount})` : ""
|
|
82583
82792
|
]
|
|
@@ -82643,7 +82852,7 @@ function ReviewQueue({
|
|
|
82643
82852
|
disabled: busy,
|
|
82644
82853
|
onClick: () => void act(c.id, "accept"),
|
|
82645
82854
|
children: [
|
|
82646
|
-
busyId === c.id ? /* @__PURE__ */ jsx253(Loader244, { className: "size-3 animate-spin" }) : /* @__PURE__ */ jsx253(
|
|
82855
|
+
busyId === c.id ? /* @__PURE__ */ jsx253(Loader244, { className: "size-3 animate-spin" }) : /* @__PURE__ */ jsx253(Check40, { className: "size-3" }),
|
|
82647
82856
|
t("activity:memoryManager.actionAcceptDeletion")
|
|
82648
82857
|
]
|
|
82649
82858
|
}
|
|
@@ -82657,7 +82866,7 @@ function ReviewQueue({
|
|
|
82657
82866
|
disabled: busy,
|
|
82658
82867
|
onClick: () => void act(c.id, "reject"),
|
|
82659
82868
|
children: [
|
|
82660
|
-
/* @__PURE__ */ jsx253(
|
|
82869
|
+
/* @__PURE__ */ jsx253(X52, { className: "size-3" }),
|
|
82661
82870
|
t("activity:memoryManager.actionKeep")
|
|
82662
82871
|
]
|
|
82663
82872
|
}
|
|
@@ -83363,7 +83572,7 @@ var MemoryManager_exports = {};
|
|
|
83363
83572
|
__export(MemoryManager_exports, {
|
|
83364
83573
|
MemoryManager: () => MemoryManager
|
|
83365
83574
|
});
|
|
83366
|
-
import { AlertTriangle as AlertTriangle34, ArrowLeft as ArrowLeft7, Check as
|
|
83575
|
+
import { AlertTriangle as AlertTriangle34, ArrowLeft as ArrowLeft7, Check as Check41, RefreshCw as RefreshCw29 } from "lucide-react";
|
|
83367
83576
|
import { Fragment as Fragment69, jsx as jsx254, jsxs as jsxs243 } from "react/jsx-runtime";
|
|
83368
83577
|
function MemoryManager() {
|
|
83369
83578
|
const { t } = useTranslation();
|
|
@@ -83423,7 +83632,7 @@ function MemoryManager() {
|
|
|
83423
83632
|
),
|
|
83424
83633
|
(state.notice || state.loadError || state.mutationError) && /* @__PURE__ */ jsxs243("div", { className: "shrink-0 border-b border-border/70 px-4 py-2", "aria-live": "polite", children: [
|
|
83425
83634
|
state.notice && /* @__PURE__ */ jsxs243("div", { role: "status", className: "flex items-center gap-2 text-xs text-success", children: [
|
|
83426
|
-
/* @__PURE__ */ jsx254(
|
|
83635
|
+
/* @__PURE__ */ jsx254(Check41, { className: "size-3.5" }),
|
|
83427
83636
|
" ",
|
|
83428
83637
|
state.notice
|
|
83429
83638
|
] }),
|
|
@@ -84817,7 +85026,7 @@ var init_SddDestroyDialog = __esm({
|
|
|
84817
85026
|
});
|
|
84818
85027
|
|
|
84819
85028
|
// src/components/SddKanbanView.tsx
|
|
84820
|
-
import { Check as
|
|
85029
|
+
import { Check as Check42, GitBranch as GitBranch16, Loader2 as Loader247, RotateCcw as RotateCcw15, X as X53 } from "lucide-react";
|
|
84821
85030
|
import { useMemo as useMemo77 } from "react";
|
|
84822
85031
|
import { jsx as jsx261, jsxs as jsxs250 } from "react/jsx-runtime";
|
|
84823
85032
|
function SddKanbanView({
|
|
@@ -84878,8 +85087,8 @@ function KanbanCard({
|
|
|
84878
85087
|
children: [
|
|
84879
85088
|
/* @__PURE__ */ jsxs250("div", { className: "flex items-center gap-1.5", children: [
|
|
84880
85089
|
running && /* @__PURE__ */ jsx261(Loader247, { className: "h-3 w-3 animate-spin text-warning" }),
|
|
84881
|
-
task.displayStatus === "completed" && /* @__PURE__ */ jsx261(
|
|
84882
|
-
task.displayStatus === "failed" && /* @__PURE__ */ jsx261(
|
|
85090
|
+
task.displayStatus === "completed" && /* @__PURE__ */ jsx261(Check42, { className: "h-3 w-3 text-success" }),
|
|
85091
|
+
task.displayStatus === "failed" && /* @__PURE__ */ jsx261(X53, { className: "h-3 w-3 text-destructive" }),
|
|
84883
85092
|
/* @__PURE__ */ jsx261("span", { className: "font-mono text-[10px] text-muted-foreground", children: task.shortId }),
|
|
84884
85093
|
/* @__PURE__ */ jsx261(
|
|
84885
85094
|
"span",
|
|
@@ -84969,7 +85178,7 @@ var init_SddKanbanView = __esm({
|
|
|
84969
85178
|
import {
|
|
84970
85179
|
Activity as Activity24,
|
|
84971
85180
|
ArrowLeft as ArrowLeft8,
|
|
84972
|
-
Check as
|
|
85181
|
+
Check as Check43,
|
|
84973
85182
|
Clock as Clock20,
|
|
84974
85183
|
FileText as FileText20,
|
|
84975
85184
|
GitBranch as GitBranch17,
|
|
@@ -84981,7 +85190,7 @@ import {
|
|
|
84981
85190
|
Terminal as Terminal13,
|
|
84982
85191
|
Trash2 as Trash225,
|
|
84983
85192
|
UserCog as UserCog2,
|
|
84984
|
-
X as
|
|
85193
|
+
X as X54
|
|
84985
85194
|
} from "lucide-react";
|
|
84986
85195
|
import { useMemo as useMemo78, useState as useState146 } from "react";
|
|
84987
85196
|
import { jsx as jsx262, jsxs as jsxs251 } from "react/jsx-runtime";
|
|
@@ -85304,7 +85513,7 @@ function SddTaskDrawer({
|
|
|
85304
85513
|
onClick: submitReassign,
|
|
85305
85514
|
disabled: !reassignName.trim(),
|
|
85306
85515
|
className: "rounded-md bg-primary/10 px-2 py-1.5 text-xs font-medium text-primary hover:bg-primary/15 disabled:opacity-40",
|
|
85307
|
-
children: /* @__PURE__ */ jsx262(
|
|
85516
|
+
children: /* @__PURE__ */ jsx262(Check43, { className: "h-3.5 w-3.5" })
|
|
85308
85517
|
}
|
|
85309
85518
|
),
|
|
85310
85519
|
/* @__PURE__ */ jsx262(
|
|
@@ -85313,7 +85522,7 @@ function SddTaskDrawer({
|
|
|
85313
85522
|
type: "button",
|
|
85314
85523
|
onClick: () => setReassigning(false),
|
|
85315
85524
|
className: "rounded-md bg-muted px-2 py-1.5 text-xs text-muted-foreground hover:bg-muted",
|
|
85316
|
-
children: /* @__PURE__ */ jsx262(
|
|
85525
|
+
children: /* @__PURE__ */ jsx262(X54, { className: "h-3.5 w-3.5" })
|
|
85317
85526
|
}
|
|
85318
85527
|
)
|
|
85319
85528
|
] }) : confirm ? /* @__PURE__ */ jsxs251("div", { className: "sdd-rise flex items-center gap-2", children: [
|
|
@@ -85329,7 +85538,7 @@ function SddTaskDrawer({
|
|
|
85329
85538
|
},
|
|
85330
85539
|
className: "inline-flex items-center gap-1 rounded-md bg-destructive/10 px-2.5 py-1.5 text-xs font-medium text-destructive hover:bg-destructive/15",
|
|
85331
85540
|
children: [
|
|
85332
|
-
/* @__PURE__ */ jsx262(
|
|
85541
|
+
/* @__PURE__ */ jsx262(Check43, { className: "h-3.5 w-3.5" }),
|
|
85333
85542
|
" ",
|
|
85334
85543
|
confirm === "stop" ? t("common:action.stop") : t("common:action.delete")
|
|
85335
85544
|
]
|
|
@@ -85341,7 +85550,7 @@ function SddTaskDrawer({
|
|
|
85341
85550
|
type: "button",
|
|
85342
85551
|
onClick: () => setConfirm(null),
|
|
85343
85552
|
className: "rounded-md bg-muted px-2 py-1.5 text-xs text-muted-foreground hover:bg-muted",
|
|
85344
|
-
children: /* @__PURE__ */ jsx262(
|
|
85553
|
+
children: /* @__PURE__ */ jsx262(X54, { className: "h-3.5 w-3.5" })
|
|
85345
85554
|
}
|
|
85346
85555
|
)
|
|
85347
85556
|
] }) : /* @__PURE__ */ jsxs251("div", { className: "flex flex-wrap gap-2", children: [
|
|
@@ -85451,7 +85660,7 @@ function SddTaskDrawer({
|
|
|
85451
85660
|
setSplitText("");
|
|
85452
85661
|
},
|
|
85453
85662
|
className: "rounded-md bg-muted px-2 py-1.5 text-xs text-muted-foreground hover:bg-muted",
|
|
85454
|
-
children: /* @__PURE__ */ jsx262(
|
|
85663
|
+
children: /* @__PURE__ */ jsx262(X54, { className: "h-3.5 w-3.5" })
|
|
85455
85664
|
}
|
|
85456
85665
|
)
|
|
85457
85666
|
] })
|
|
@@ -85596,7 +85805,7 @@ import {
|
|
|
85596
85805
|
Square as Square10,
|
|
85597
85806
|
Trash2 as Trash226,
|
|
85598
85807
|
Undo2 as Undo24,
|
|
85599
|
-
X as
|
|
85808
|
+
X as X55,
|
|
85600
85809
|
XCircle as XCircle12,
|
|
85601
85810
|
Zap as Zap28
|
|
85602
85811
|
} from "lucide-react";
|
|
@@ -85928,7 +86137,7 @@ function SddBoardView({ onClose }) {
|
|
|
85928
86137
|
]
|
|
85929
86138
|
}
|
|
85930
86139
|
)),
|
|
85931
|
-
/* @__PURE__ */ jsx263(Button, { variant: "ghost", size: "icon", onClick: onClose, children: /* @__PURE__ */ jsx263(
|
|
86140
|
+
/* @__PURE__ */ jsx263(Button, { variant: "ghost", size: "icon", onClick: onClose, children: /* @__PURE__ */ jsx263(X55, { className: "h-4 w-4" }) })
|
|
85932
86141
|
] })
|
|
85933
86142
|
] }),
|
|
85934
86143
|
snapshot && p && /* @__PURE__ */ jsxs252("div", { className: "mt-2.5 flex items-center gap-5", children: [
|
|
@@ -86121,7 +86330,7 @@ function LifecycleResultBanner({
|
|
|
86121
86330
|
children: [
|
|
86122
86331
|
warn ? /* @__PURE__ */ jsx263(XCircle12, { className: "mt-0.5 h-4 w-4 shrink-0" }) : /* @__PURE__ */ jsx263(CheckCircle231, { className: "mt-0.5 h-4 w-4 shrink-0" }),
|
|
86123
86332
|
/* @__PURE__ */ jsx263("span", { className: "flex-1", children: lifecycleMessage(result) }),
|
|
86124
|
-
/* @__PURE__ */ jsx263("button", { type: "button", onClick: onDismiss, className: "shrink-0 opacity-60 hover:opacity-100", children: /* @__PURE__ */ jsx263(
|
|
86333
|
+
/* @__PURE__ */ jsx263("button", { type: "button", onClick: onDismiss, className: "shrink-0 opacity-60 hover:opacity-100", children: /* @__PURE__ */ jsx263(X55, { className: "h-3.5 w-3.5" }) })
|
|
86125
86334
|
]
|
|
86126
86335
|
}
|
|
86127
86336
|
);
|
|
@@ -86154,9 +86363,9 @@ var init_SddBoardView = __esm({
|
|
|
86154
86363
|
// src/components/SddWizard.tsx
|
|
86155
86364
|
import {
|
|
86156
86365
|
Bot as Bot31,
|
|
86157
|
-
Check as
|
|
86366
|
+
Check as Check44,
|
|
86158
86367
|
CheckCheck,
|
|
86159
|
-
ChevronDown as
|
|
86368
|
+
ChevronDown as ChevronDown39,
|
|
86160
86369
|
ChevronRight as ChevronRight26,
|
|
86161
86370
|
Copy as Copy12,
|
|
86162
86371
|
Lightbulb as Lightbulb3,
|
|
@@ -86169,7 +86378,7 @@ import {
|
|
|
86169
86378
|
Sparkles as Sparkles20,
|
|
86170
86379
|
Target as Target4,
|
|
86171
86380
|
User as User5,
|
|
86172
|
-
X as
|
|
86381
|
+
X as X56,
|
|
86173
86382
|
Zap as Zap29
|
|
86174
86383
|
} from "lucide-react";
|
|
86175
86384
|
import { useCallback as useCallback76, useEffect as useEffect131, useMemo as useMemo80, useRef as useRef71, useState as useState148 } from "react";
|
|
@@ -86428,7 +86637,7 @@ function SddWizard({
|
|
|
86428
86637
|
/* @__PURE__ */ jsx264("p", { className: "mt-1 text-[10px] text-muted-foreground", children: runPlanDecompose ? t("activity:sddWizard.planDecomposeOn") : t("activity:sddWizard.planDecomposeOff") })
|
|
86429
86638
|
] })
|
|
86430
86639
|
] }),
|
|
86431
|
-
/* @__PURE__ */ jsx264(Button, { variant: "ghost", size: "icon", onClick: onClose, children: /* @__PURE__ */ jsx264(
|
|
86640
|
+
/* @__PURE__ */ jsx264(Button, { variant: "ghost", size: "icon", onClick: onClose, children: /* @__PURE__ */ jsx264(X56, { className: "h-4 w-4" }) })
|
|
86432
86641
|
] })
|
|
86433
86642
|
] }),
|
|
86434
86643
|
started && /* @__PURE__ */ jsx264("div", { className: "flex shrink-0 items-center gap-1 border-b bg-card/50 px-4 py-1.5 text-[11px]", children: PHASE_ORDER.map((p, i) => {
|
|
@@ -86444,7 +86653,7 @@ function SddWizard({
|
|
|
86444
86653
|
title: t("activity:sddWizard.rewindToPhaseTitle", "Return to this phase to revise"),
|
|
86445
86654
|
className: "inline-flex items-center rounded-full px-2 py-0.5 text-success transition hover:bg-success/10 hover:underline",
|
|
86446
86655
|
children: [
|
|
86447
|
-
/* @__PURE__ */ jsx264(
|
|
86656
|
+
/* @__PURE__ */ jsx264(Check44, { className: "mr-0.5 inline h-3 w-3" }),
|
|
86448
86657
|
t(`activity:sddWizard.${PHASE_LABEL[p]}`)
|
|
86449
86658
|
]
|
|
86450
86659
|
}
|
|
@@ -86456,7 +86665,7 @@ function SddWizard({
|
|
|
86456
86665
|
active ? "bg-primary/15 text-primary font-medium" : done ? "text-success" : "text-muted-foreground"
|
|
86457
86666
|
),
|
|
86458
86667
|
children: [
|
|
86459
|
-
done && /* @__PURE__ */ jsx264(
|
|
86668
|
+
done && /* @__PURE__ */ jsx264(Check44, { className: "mr-0.5 inline h-3 w-3" }),
|
|
86460
86669
|
t(`activity:sddWizard.${PHASE_LABEL[p]}`)
|
|
86461
86670
|
]
|
|
86462
86671
|
}
|
|
@@ -86530,7 +86739,7 @@ function SddWizard({
|
|
|
86530
86739
|
onClick: () => setGraphOpen((o) => !o),
|
|
86531
86740
|
className: "flex w-full items-center gap-1.5 border-b border-border/60 px-3 py-1.5 text-[11px] font-medium text-primary hover:bg-muted/40",
|
|
86532
86741
|
children: [
|
|
86533
|
-
graphOpen ? /* @__PURE__ */ jsx264(
|
|
86742
|
+
graphOpen ? /* @__PURE__ */ jsx264(ChevronDown39, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx264(ChevronRight26, { className: "h-3.5 w-3.5" }),
|
|
86534
86743
|
/* @__PURE__ */ jsx264(Network10, { className: "h-3.5 w-3.5" }),
|
|
86535
86744
|
t("activity:sddWizard.taskGraphSummary", { count: snapshot?.taskCount ?? 0 }),
|
|
86536
86745
|
/* @__PURE__ */ jsx264("span", { className: "ml-auto text-muted-foreground", children: graphOpen ? t("activity:sddWizard.dragToExplore") : t("activity:sddWizard.show") })
|
|
@@ -86591,7 +86800,7 @@ function SddWizard({
|
|
|
86591
86800
|
onClick: () => setPlanOpen((o) => !o),
|
|
86592
86801
|
className: "flex w-full items-center gap-1.5 border-b border-border/60 px-3 py-2 text-sm font-semibold hover:bg-muted/40",
|
|
86593
86802
|
children: [
|
|
86594
|
-
planOpen ? /* @__PURE__ */ jsx264(
|
|
86803
|
+
planOpen ? /* @__PURE__ */ jsx264(ChevronDown39, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx264(ChevronRight26, { className: "h-3.5 w-3.5" }),
|
|
86595
86804
|
/* @__PURE__ */ jsx264(Sparkles20, { className: "h-3.5 w-3.5 text-primary" }),
|
|
86596
86805
|
" ",
|
|
86597
86806
|
t("activity:sddWizard.implementationPlan")
|
|
@@ -86614,7 +86823,7 @@ function SddWizard({
|
|
|
86614
86823
|
]
|
|
86615
86824
|
}
|
|
86616
86825
|
) : /* @__PURE__ */ jsxs253(Button, { variant: "secondary", onClick: approve, disabled: busy, children: [
|
|
86617
|
-
/* @__PURE__ */ jsx264(
|
|
86826
|
+
/* @__PURE__ */ jsx264(Check44, { className: "mr-1.5 h-4 w-4" }),
|
|
86618
86827
|
phase === "spec_review" ? t("activity:sddWizard.approveSpec") : t("activity:sddWizard.approvePlan")
|
|
86619
86828
|
] }),
|
|
86620
86829
|
/* @__PURE__ */ jsxs253(
|
|
@@ -86959,7 +87168,7 @@ __export(SpecsView_exports, {
|
|
|
86959
87168
|
SpecsView: () => SpecsView
|
|
86960
87169
|
});
|
|
86961
87170
|
import { useCallback as useCallback77, useEffect as useEffect132, useState as useState149 } from "react";
|
|
86962
|
-
import { ChevronDown as
|
|
87171
|
+
import { ChevronDown as ChevronDown40, ChevronRight as ChevronRight28, FileText as FileText21, LayoutList, Network as Network11, Play as Play10, X as X57 } from "lucide-react";
|
|
86963
87172
|
import { jsx as jsx266, jsxs as jsxs255 } from "react/jsx-runtime";
|
|
86964
87173
|
function detailToPhases(detail) {
|
|
86965
87174
|
return detail.columns.map((col) => ({
|
|
@@ -87047,7 +87256,7 @@ function SpecsView({
|
|
|
87047
87256
|
/* @__PURE__ */ jsx266("p", { className: "text-xs text-muted-foreground", children: t("activity:specs.subtitle") })
|
|
87048
87257
|
] })
|
|
87049
87258
|
] }),
|
|
87050
|
-
/* @__PURE__ */ jsx266(Button, { variant: "ghost", size: "icon", onClick: onClose, children: /* @__PURE__ */ jsx266(
|
|
87259
|
+
/* @__PURE__ */ jsx266(Button, { variant: "ghost", size: "icon", onClick: onClose, children: /* @__PURE__ */ jsx266(X57, { className: "h-4 w-4" }) })
|
|
87051
87260
|
] }),
|
|
87052
87261
|
/* @__PURE__ */ jsx266("div", { className: "min-h-0 flex-1 overflow-y-auto overscroll-contain p-4", children: specs.length === 0 ? /* @__PURE__ */ jsx266("div", { className: "flex h-40 items-center justify-center text-sm text-muted-foreground", children: t("activity:specs.empty", { command: "/sdd" }) }) : /* @__PURE__ */ jsx266("div", { className: "space-y-3", children: specs.map((spec) => {
|
|
87053
87262
|
const expanded = expandedSpecId === spec.id;
|
|
@@ -87060,7 +87269,7 @@ function SpecsView({
|
|
|
87060
87269
|
onClick: () => toggle(spec),
|
|
87061
87270
|
className: "flex w-full items-start gap-3 p-4 text-left",
|
|
87062
87271
|
children: [
|
|
87063
|
-
/* @__PURE__ */ jsx266("span", { className: "mt-1 text-muted-foreground", children: expanded ? /* @__PURE__ */ jsx266(
|
|
87272
|
+
/* @__PURE__ */ jsx266("span", { className: "mt-1 text-muted-foreground", children: expanded ? /* @__PURE__ */ jsx266(ChevronDown40, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx266(ChevronRight28, { className: "h-4 w-4" }) }),
|
|
87064
87273
|
/* @__PURE__ */ jsx266(FileText21, { className: "mt-0.5 h-4 w-4 text-muted-foreground" }),
|
|
87065
87274
|
/* @__PURE__ */ jsxs255("div", { className: "min-w-0 flex-1", children: [
|
|
87066
87275
|
/* @__PURE__ */ jsxs255("div", { className: "flex items-center gap-2", children: [
|
|
@@ -87334,7 +87543,7 @@ import {
|
|
|
87334
87543
|
Star as Star6,
|
|
87335
87544
|
Trash2 as Trash227,
|
|
87336
87545
|
Wrench as Wrench18,
|
|
87337
|
-
X as
|
|
87546
|
+
X as X58
|
|
87338
87547
|
} from "lucide-react";
|
|
87339
87548
|
import { useCallback as useCallback79, useEffect as useEffect134, useMemo as useMemo81, useRef as useRef72, useState as useState151 } from "react";
|
|
87340
87549
|
import { jsx as jsx268, jsxs as jsxs257 } from "react/jsx-runtime";
|
|
@@ -87753,7 +87962,7 @@ function SessionList({
|
|
|
87753
87962
|
onClick: () => setHistoryQuery(""),
|
|
87754
87963
|
className: "absolute right-0 top-0 inline-flex h-9 w-8 items-center justify-center text-muted-foreground hover:text-foreground",
|
|
87755
87964
|
title: t("activity:sessions.clearFilter"),
|
|
87756
|
-
children: /* @__PURE__ */ jsx268(
|
|
87965
|
+
children: /* @__PURE__ */ jsx268(X58, { className: "h-3.5 w-3.5" })
|
|
87757
87966
|
}
|
|
87758
87967
|
) : null
|
|
87759
87968
|
] }),
|
|
@@ -89054,7 +89263,7 @@ __export(SkillDetailView_exports, {
|
|
|
89054
89263
|
});
|
|
89055
89264
|
import {
|
|
89056
89265
|
Sparkles as Sparkles21,
|
|
89057
|
-
X as
|
|
89266
|
+
X as X59,
|
|
89058
89267
|
ChevronLeft as ChevronLeft3,
|
|
89059
89268
|
ChevronRight as ChevronRight29,
|
|
89060
89269
|
Download as Download9,
|
|
@@ -89062,7 +89271,7 @@ import {
|
|
|
89062
89271
|
RefreshCw as RefreshCw31,
|
|
89063
89272
|
Trash2 as Trash228,
|
|
89064
89273
|
Copy as Copy13,
|
|
89065
|
-
Check as
|
|
89274
|
+
Check as Check45,
|
|
89066
89275
|
Globe as Globe9,
|
|
89067
89276
|
ArrowUpRight,
|
|
89068
89277
|
FolderOpen as FolderOpen7,
|
|
@@ -89437,7 +89646,7 @@ function SkillDetailView({ className }) {
|
|
|
89437
89646
|
onClick: handleCopySourceUrl,
|
|
89438
89647
|
className: "flex shrink-0 items-center text-muted-foreground transition-colors hover:text-foreground",
|
|
89439
89648
|
title: t("activity:skillDetail.copySourceUrl"),
|
|
89440
|
-
children: copiedSourceUrl ? /* @__PURE__ */ jsx271(
|
|
89649
|
+
children: copiedSourceUrl ? /* @__PURE__ */ jsx271(Check45, { className: "h-3 w-3 text-success" }) : /* @__PURE__ */ jsx271(Copy13, { className: "h-3 w-3" })
|
|
89441
89650
|
}
|
|
89442
89651
|
)
|
|
89443
89652
|
] }),
|
|
@@ -89497,7 +89706,7 @@ function SkillDetailView({ className }) {
|
|
|
89497
89706
|
onClick: handleClose,
|
|
89498
89707
|
className: "flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground",
|
|
89499
89708
|
title: t("activity:skillDetail.closeTitle"),
|
|
89500
|
-
children: /* @__PURE__ */ jsx271(
|
|
89709
|
+
children: /* @__PURE__ */ jsx271(X59, { className: "h-4 w-4" })
|
|
89501
89710
|
}
|
|
89502
89711
|
)
|
|
89503
89712
|
] })
|
|
@@ -89714,7 +89923,7 @@ function SkillDetailView({ className }) {
|
|
|
89714
89923
|
/* @__PURE__ */ jsx271(Trash228, { className: "h-4 w-4 text-destructive" }),
|
|
89715
89924
|
/* @__PURE__ */ jsx271(DialogTitle, { className: "font-semibold text-sm", children: t("activity:skillDetail.uninstallSkillHeading") })
|
|
89716
89925
|
] }),
|
|
89717
|
-
/* @__PURE__ */ jsx271("button", { type: "button", onClick: () => setUninstallConfirmSkill(null), "aria-label": t("common:action.close"), className: "rounded p-1 text-muted-foreground hover:bg-accent hover:text-accent-foreground", children: /* @__PURE__ */ jsx271(
|
|
89926
|
+
/* @__PURE__ */ jsx271("button", { type: "button", onClick: () => setUninstallConfirmSkill(null), "aria-label": t("common:action.close"), className: "rounded p-1 text-muted-foreground hover:bg-accent hover:text-accent-foreground", children: /* @__PURE__ */ jsx271(X59, { className: "h-4 w-4" }) })
|
|
89718
89927
|
] }),
|
|
89719
89928
|
/* @__PURE__ */ jsxs260("div", { className: "min-h-0 flex-1 space-y-2 overflow-y-auto overscroll-contain p-4", children: [
|
|
89720
89929
|
/* @__PURE__ */ jsx271("p", { className: "text-sm", children: uninstallConfirmSkill && t("activity:skillDetail.uninstallConfirm", { name: uninstallConfirmSkill.name }) }),
|
|
@@ -90504,7 +90713,7 @@ var init_FindingsPanel = __esm({
|
|
|
90504
90713
|
});
|
|
90505
90714
|
|
|
90506
90715
|
// src/components/TechStackView/TechStackToolbar.tsx
|
|
90507
|
-
import { FilterX as FilterX3, Search as Search27, X as
|
|
90716
|
+
import { FilterX as FilterX3, Search as Search27, X as X60 } from "lucide-react";
|
|
90508
90717
|
import { jsx as jsx276, jsxs as jsxs265 } from "react/jsx-runtime";
|
|
90509
90718
|
function TechStackToolbar({
|
|
90510
90719
|
searchQuery,
|
|
@@ -90546,7 +90755,7 @@ function TechStackToolbar({
|
|
|
90546
90755
|
"aria-label": t("activity:techStack.clearSearch"),
|
|
90547
90756
|
onClick: () => onSearchChange(""),
|
|
90548
90757
|
className: "absolute right-2 top-1/2 -translate-y-1/2 p-1 text-muted-foreground hover:text-foreground",
|
|
90549
|
-
children: /* @__PURE__ */ jsx276(
|
|
90758
|
+
children: /* @__PURE__ */ jsx276(X60, { className: "size-3.5" })
|
|
90550
90759
|
}
|
|
90551
90760
|
)
|
|
90552
90761
|
] }),
|
|
@@ -90653,7 +90862,7 @@ var TechStackView_exports = {};
|
|
|
90653
90862
|
__export(TechStackView_exports, {
|
|
90654
90863
|
TechStackView: () => TechStackView
|
|
90655
90864
|
});
|
|
90656
|
-
import { Boxes as Boxes2, Download as Download10, FileCode as FileCode7, FileText as FileText23, Loader2 as Loader255, RefreshCw as RefreshCw32, Shield as Shield6, ShieldCheck as ShieldCheck20, Sparkles as Sparkles24, X as
|
|
90865
|
+
import { Boxes as Boxes2, Download as Download10, FileCode as FileCode7, FileText as FileText23, Loader2 as Loader255, RefreshCw as RefreshCw32, Shield as Shield6, ShieldCheck as ShieldCheck20, Sparkles as Sparkles24, X as X61 } from "lucide-react";
|
|
90657
90866
|
import { useCallback as useCallback83, useEffect as useEffect138, useMemo as useMemo84, useState as useState155 } from "react";
|
|
90658
90867
|
import { Fragment as Fragment76, jsx as jsx277, jsxs as jsxs266 } from "react/jsx-runtime";
|
|
90659
90868
|
function TechStackView() {
|
|
@@ -90888,7 +91097,7 @@ function TechStackView() {
|
|
|
90888
91097
|
size: "icon",
|
|
90889
91098
|
onClick: () => void cancelJob(),
|
|
90890
91099
|
"aria-label": t("activity:techStack.cancelJob"),
|
|
90891
|
-
children: /* @__PURE__ */ jsx277(
|
|
91100
|
+
children: /* @__PURE__ */ jsx277(X61, { className: "size-4" })
|
|
90892
91101
|
}
|
|
90893
91102
|
),
|
|
90894
91103
|
/* @__PURE__ */ jsxs266(DropdownMenu, { children: [
|
|
@@ -91760,9 +91969,9 @@ __export(ChimeraReviewsView_exports, {
|
|
|
91760
91969
|
});
|
|
91761
91970
|
import {
|
|
91762
91971
|
AlertCircle as AlertCircle7,
|
|
91763
|
-
Check as
|
|
91972
|
+
Check as Check46,
|
|
91764
91973
|
CheckCircle2 as CheckCircle236,
|
|
91765
|
-
ChevronDown as
|
|
91974
|
+
ChevronDown as ChevronDown41,
|
|
91766
91975
|
ChevronRight as ChevronRight30,
|
|
91767
91976
|
FileCode2 as FileCode28,
|
|
91768
91977
|
History as History11,
|
|
@@ -92062,7 +92271,7 @@ function ChimeraReviewsView() {
|
|
|
92062
92271
|
disabled: detail.report.lifecycle === "completed",
|
|
92063
92272
|
className: "inline-flex items-center gap-1 rounded-lg border border-success/30 bg-success/10 px-2.5 py-1 text-xs font-medium text-success hover:bg-success/20 disabled:opacity-40 transition-colors",
|
|
92064
92273
|
children: [
|
|
92065
|
-
/* @__PURE__ */ jsx279(
|
|
92274
|
+
/* @__PURE__ */ jsx279(Check46, { className: "h-3.5 w-3.5" }),
|
|
92066
92275
|
"Mark Completed"
|
|
92067
92276
|
]
|
|
92068
92277
|
}
|
|
@@ -92263,7 +92472,7 @@ function ChimeraReviewsView() {
|
|
|
92263
92472
|
className: "flex w-full items-center justify-between px-4 py-3 text-xs font-semibold text-muted-foreground hover:bg-muted/50 transition-colors",
|
|
92264
92473
|
children: [
|
|
92265
92474
|
/* @__PURE__ */ jsx279("span", { children: "Raw Report Markdown" }),
|
|
92266
|
-
showRawText ? /* @__PURE__ */ jsx279(
|
|
92475
|
+
showRawText ? /* @__PURE__ */ jsx279(ChevronDown41, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx279(ChevronRight30, { className: "h-4 w-4" })
|
|
92267
92476
|
]
|
|
92268
92477
|
}
|
|
92269
92478
|
),
|
|
@@ -92640,8 +92849,8 @@ var init_relative_time = __esm({
|
|
|
92640
92849
|
|
|
92641
92850
|
// src/components/SetupScreen/ProviderKeyCard.tsx
|
|
92642
92851
|
import {
|
|
92643
|
-
Check as
|
|
92644
|
-
ChevronDown as
|
|
92852
|
+
Check as Check47,
|
|
92853
|
+
ChevronDown as ChevronDown42,
|
|
92645
92854
|
ChevronRight as ChevronRight32,
|
|
92646
92855
|
Copy as Copy14,
|
|
92647
92856
|
ExternalLink as ExternalLink10,
|
|
@@ -92739,7 +92948,7 @@ function ProviderKeyCard({
|
|
|
92739
92948
|
/* @__PURE__ */ jsxs270("div", { className: "flex items-center gap-2", children: [
|
|
92740
92949
|
/* @__PURE__ */ jsx281("h3", { className: "text-sm font-semibold", children: popular.name }),
|
|
92741
92950
|
saved && /* @__PURE__ */ jsxs270("span", { className: "inline-flex items-center gap-1 text-[10px] px-1.5 py-0.5 rounded-full bg-success/10 text-success border border-success/20", children: [
|
|
92742
|
-
/* @__PURE__ */ jsx281(
|
|
92951
|
+
/* @__PURE__ */ jsx281(Check47, { className: "h-2.5 w-2.5" }),
|
|
92743
92952
|
t("setup:screen.card.keySaved")
|
|
92744
92953
|
] }),
|
|
92745
92954
|
popular.referral && !saved && /* @__PURE__ */ jsxs270("span", { className: "inline-flex items-center gap-1 text-[10px] px-1.5 py-0.5 rounded-full bg-warning/10 text-warning border border-warning/20", children: [
|
|
@@ -92798,7 +93007,7 @@ function ProviderKeyCard({
|
|
|
92798
93007
|
onClick: handleCopyReferral,
|
|
92799
93008
|
className: "inline-flex items-center gap-1 text-[11px] text-warning/80 hover:text-warning transition-colors",
|
|
92800
93009
|
children: copied ? /* @__PURE__ */ jsxs270(Fragment77, { children: [
|
|
92801
|
-
/* @__PURE__ */ jsx281(
|
|
93010
|
+
/* @__PURE__ */ jsx281(Check47, { className: "h-3 w-3" }),
|
|
92802
93011
|
" ",
|
|
92803
93012
|
t("setup:screen.card.copied")
|
|
92804
93013
|
] }) : /* @__PURE__ */ jsxs270(Fragment77, { children: [
|
|
@@ -92848,7 +93057,7 @@ function ProviderKeyCard({
|
|
|
92848
93057
|
/* @__PURE__ */ jsx281(Loader258, { className: "h-3 w-3 animate-spin" }),
|
|
92849
93058
|
t("setup:screen.probe.checking", "Checking connection\u2026")
|
|
92850
93059
|
] }) : probeResult?.ok ? /* @__PURE__ */ jsxs270("div", { className: "flex items-center gap-1.5 text-[11px] text-success mt-1", children: [
|
|
92851
|
-
/* @__PURE__ */ jsx281(
|
|
93060
|
+
/* @__PURE__ */ jsx281(Check47, { className: "h-3 w-3" }),
|
|
92852
93061
|
/* @__PURE__ */ jsxs270("span", { children: [
|
|
92853
93062
|
t("setup:screen.probe.connected", "Connected"),
|
|
92854
93063
|
probeResult.modelCount != null && ` \xB7 ${probeResult.modelCount} ${t("setup:screen.probe.models", "models")}`,
|
|
@@ -92877,7 +93086,7 @@ function ProviderKeyCard({
|
|
|
92877
93086
|
className: "text-[11px] text-muted-foreground hover:text-foreground transition-colors flex items-center gap-1",
|
|
92878
93087
|
children: [
|
|
92879
93088
|
t("setup:screen.providers.modelsAvailable", { count: catalogProvider?.modelCount ?? 0 }),
|
|
92880
|
-
showModels ? /* @__PURE__ */ jsx281(
|
|
93089
|
+
showModels ? /* @__PURE__ */ jsx281(ChevronDown42, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx281(ChevronRight32, { className: "h-3 w-3" })
|
|
92881
93090
|
]
|
|
92882
93091
|
}
|
|
92883
93092
|
)
|
|
@@ -93085,7 +93294,7 @@ function ProviderKeyCard({
|
|
|
93085
93294
|
variant: "outline",
|
|
93086
93295
|
onClick: handleCopyReferral,
|
|
93087
93296
|
className: "shrink-0",
|
|
93088
|
-
children: copied ? /* @__PURE__ */ jsx281(
|
|
93297
|
+
children: copied ? /* @__PURE__ */ jsx281(Check47, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx281(Copy14, { className: "h-4 w-4" })
|
|
93089
93298
|
}
|
|
93090
93299
|
)
|
|
93091
93300
|
] }),
|
|
@@ -93120,7 +93329,7 @@ __export(SetupScreen_exports, {
|
|
|
93120
93329
|
import {
|
|
93121
93330
|
ArrowRight as ArrowRight5,
|
|
93122
93331
|
Bot as Bot32,
|
|
93123
|
-
Check as
|
|
93332
|
+
Check as Check48,
|
|
93124
93333
|
ChevronRight as ChevronRight33,
|
|
93125
93334
|
Globe as Globe10,
|
|
93126
93335
|
KeyRound as KeyRound2,
|
|
@@ -93371,7 +93580,7 @@ function SetupScreen() {
|
|
|
93371
93580
|
] })
|
|
93372
93581
|
] }),
|
|
93373
93582
|
hasAnyKey && selectedProvider ? /* @__PURE__ */ jsxs271("span", { className: "text-xs text-success/80", children: [
|
|
93374
|
-
/* @__PURE__ */ jsx282(
|
|
93583
|
+
/* @__PURE__ */ jsx282(Check48, { className: "h-3 w-3 inline-block mr-1" }),
|
|
93375
93584
|
t("setup:screen.header.continue")
|
|
93376
93585
|
] }) : null
|
|
93377
93586
|
] }),
|
|
@@ -93569,7 +93778,7 @@ function SetupScreen() {
|
|
|
93569
93778
|
))
|
|
93570
93779
|
] })
|
|
93571
93780
|
] }),
|
|
93572
|
-
selectedModel === m.id && /* @__PURE__ */ jsx282("div", { className: "flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-primary", children: /* @__PURE__ */ jsx282(
|
|
93781
|
+
selectedModel === m.id && /* @__PURE__ */ jsx282("div", { className: "flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-primary", children: /* @__PURE__ */ jsx282(Check48, { className: "h-3 w-3 text-primary-foreground" }) })
|
|
93573
93782
|
] })
|
|
93574
93783
|
},
|
|
93575
93784
|
m.id
|
|
@@ -93599,7 +93808,7 @@ function SetupScreen() {
|
|
|
93599
93808
|
/* @__PURE__ */ jsx282(ArrowRight5, { className: "h-4 w-4 ml-2" })
|
|
93600
93809
|
] }),
|
|
93601
93810
|
/* @__PURE__ */ jsxs271(Button, { onClick: handleSaveConfig, variant: "outline", className: "flex-1", size: "lg", children: [
|
|
93602
|
-
/* @__PURE__ */ jsx282(
|
|
93811
|
+
/* @__PURE__ */ jsx282(Check48, { className: "h-4 w-4 mr-2" }),
|
|
93603
93812
|
t("setup:screen.start.saveConfig")
|
|
93604
93813
|
] })
|
|
93605
93814
|
] }),
|
|
@@ -93661,7 +93870,7 @@ __export(TerminalPanel_exports, {
|
|
|
93661
93870
|
import { FitAddon } from "@xterm/addon-fit";
|
|
93662
93871
|
import { Terminal as Terminal15 } from "@xterm/xterm";
|
|
93663
93872
|
import "@xterm/xterm/css/xterm.css";
|
|
93664
|
-
import { Plus as Plus29, RotateCcw as RotateCcw20, TerminalSquare as TerminalSquare7, Trash2 as Trash229, X as
|
|
93873
|
+
import { Plus as Plus29, RotateCcw as RotateCcw20, TerminalSquare as TerminalSquare7, Trash2 as Trash229, X as X62 } from "lucide-react";
|
|
93665
93874
|
import {
|
|
93666
93875
|
useEffect as useEffect142,
|
|
93667
93876
|
useRef as useRef75,
|
|
@@ -93879,7 +94088,7 @@ function TerminalPanel({
|
|
|
93879
94088
|
onClick: onClose,
|
|
93880
94089
|
title: t("activity:terminal.closeDock"),
|
|
93881
94090
|
className: "inline-flex h-6 w-6 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
|
|
93882
|
-
children: /* @__PURE__ */ jsx283(
|
|
94091
|
+
children: /* @__PURE__ */ jsx283(X62, { className: "h-4 w-4" })
|
|
93883
94092
|
}
|
|
93884
94093
|
)
|
|
93885
94094
|
] })
|
|
@@ -93938,7 +94147,7 @@ function TerminalPanel({
|
|
|
93938
94147
|
},
|
|
93939
94148
|
className: "mr-1 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded text-muted-foreground opacity-70 hover:bg-accent hover:text-foreground hover:opacity-100",
|
|
93940
94149
|
title: t("activity:terminal.closeTab", { name: tab.name }),
|
|
93941
|
-
children: /* @__PURE__ */ jsx283(
|
|
94150
|
+
children: /* @__PURE__ */ jsx283(X62, { className: "h-3 w-3" })
|
|
93942
94151
|
}
|
|
93943
94152
|
)
|
|
93944
94153
|
]
|
|
@@ -94251,7 +94460,7 @@ var QueuePanel_exports = {};
|
|
|
94251
94460
|
__export(QueuePanel_exports, {
|
|
94252
94461
|
QueuePanel: () => QueuePanel
|
|
94253
94462
|
});
|
|
94254
|
-
import { ArrowDownAZ as ArrowDownAZ2, ArrowUpAZ as ArrowUpAZ2, Check as
|
|
94463
|
+
import { ArrowDownAZ as ArrowDownAZ2, ArrowUpAZ as ArrowUpAZ2, Check as Check51, ListOrdered, Trash2 as Trash231, X as X64 } from "lucide-react";
|
|
94255
94464
|
import { useCallback as useCallback90, useLayoutEffect as useLayoutEffect9, useMemo as useMemo87, useRef as useRef76, useState as useState165 } from "react";
|
|
94256
94465
|
import { jsx as jsx289, jsxs as jsxs278 } from "react/jsx-runtime";
|
|
94257
94466
|
function QueuePanel({
|
|
@@ -94392,7 +94601,7 @@ function QueuePanel({
|
|
|
94392
94601
|
title: t("activity:queue.dispatchedTitle"),
|
|
94393
94602
|
"data-testid": `queue-dispatched-${sourceIdx}`,
|
|
94394
94603
|
children: [
|
|
94395
|
-
/* @__PURE__ */ jsx289(
|
|
94604
|
+
/* @__PURE__ */ jsx289(Check51, { className: "h-3 w-3" }),
|
|
94396
94605
|
t("activity:queue.dispatchedLabel")
|
|
94397
94606
|
]
|
|
94398
94607
|
}
|
|
@@ -94406,7 +94615,7 @@ function QueuePanel({
|
|
|
94406
94615
|
className: "ml-1 p-1.5 rounded-md shrink-0 hover:bg-destructive/10 hover:text-destructive transition-colors",
|
|
94407
94616
|
title: t("activity:queue.removeTitle"),
|
|
94408
94617
|
"data-testid": `queue-remove-${sourceIdx}`,
|
|
94409
|
-
children: /* @__PURE__ */ jsx289(
|
|
94618
|
+
children: /* @__PURE__ */ jsx289(X64, { className: "h-3.5 w-3.5" })
|
|
94410
94619
|
}
|
|
94411
94620
|
)
|
|
94412
94621
|
]
|
|
@@ -106505,7 +106714,7 @@ import { lazy as lazy5, Suspense as Suspense5 } from "react";
|
|
|
106505
106714
|
import { useShallow as useShallow18 } from "zustand/react/shallow";
|
|
106506
106715
|
|
|
106507
106716
|
// src/components/ChatView/index.tsx
|
|
106508
|
-
import { ArrowDown as ArrowDown2, ArrowUp as ArrowUp2, Bot as Bot12, ChevronDown as
|
|
106717
|
+
import { ArrowDown as ArrowDown2, ArrowUp as ArrowUp2, Bot as Bot12, ChevronDown as ChevronDown17, ChevronUp as ChevronUp3, Square as Square6 } from "lucide-react";
|
|
106509
106718
|
import { lazy as lazy2, Suspense as Suspense2, useEffect as useEffect66 } from "react";
|
|
106510
106719
|
import { VList as VList2 } from "virtua";
|
|
106511
106720
|
|
|
@@ -111689,10 +111898,130 @@ function SearchOverlay() {
|
|
|
111689
111898
|
|
|
111690
111899
|
// src/components/ToolStatsModal.tsx
|
|
111691
111900
|
init_i18n();
|
|
111901
|
+
import { Bot as Bot8, Clock as Clock5, Layers as Layers2, TriangleAlert as TriangleAlert3, Wrench as Wrench8, X as X15 } from "lucide-react";
|
|
111902
|
+
import { useEffect as useEffect55, useMemo as useMemo28, useState as useState45 } from "react";
|
|
111903
|
+
|
|
111904
|
+
// src/lib/tool-icon.ts
|
|
111905
|
+
import { getToolIcon, TOOL_ICON_CONFIG } from "@wrongstack/tools/tool-icons";
|
|
111906
|
+
import {
|
|
111907
|
+
Brain as Brain4,
|
|
111908
|
+
ClipboardList as ClipboardList2,
|
|
111909
|
+
Code2 as Code22,
|
|
111910
|
+
Database as Database2,
|
|
111911
|
+
FileEdit as FileEdit2,
|
|
111912
|
+
FileJson as FileJson2,
|
|
111913
|
+
FileText as FileText7,
|
|
111914
|
+
FlaskConical,
|
|
111915
|
+
FolderOpen as FolderOpen4,
|
|
111916
|
+
FolderTree,
|
|
111917
|
+
GitBranch as GitBranch2,
|
|
111918
|
+
GitCompare as GitCompare3,
|
|
111919
|
+
Globe as Globe4,
|
|
111920
|
+
Hammer,
|
|
111921
|
+
Hash as Hash2,
|
|
111922
|
+
ListChecks,
|
|
111923
|
+
ListTodo as ListTodo2,
|
|
111924
|
+
Package as Package2,
|
|
111925
|
+
ScrollText as ScrollText2,
|
|
111926
|
+
Search as Search7,
|
|
111927
|
+
Settings,
|
|
111928
|
+
Shell,
|
|
111929
|
+
Wrench as Wrench7
|
|
111930
|
+
} from "lucide-react";
|
|
111931
|
+
var TOOL_LUCIDE = {
|
|
111932
|
+
file: FileText7,
|
|
111933
|
+
edit: FileEdit2,
|
|
111934
|
+
search: Search7,
|
|
111935
|
+
folder: FolderOpen4,
|
|
111936
|
+
terminal: Shell,
|
|
111937
|
+
web: Globe4,
|
|
111938
|
+
git: GitBranch2,
|
|
111939
|
+
tree: FolderTree,
|
|
111940
|
+
code: Code22,
|
|
111941
|
+
test: FlaskConical,
|
|
111942
|
+
package: Package2,
|
|
111943
|
+
document: ScrollText2,
|
|
111944
|
+
scaffold: Hammer,
|
|
111945
|
+
todo: ListTodo2,
|
|
111946
|
+
plan: ClipboardList2,
|
|
111947
|
+
task: ListChecks,
|
|
111948
|
+
meta: Wrench7,
|
|
111949
|
+
index: Database2,
|
|
111950
|
+
json: FileJson2,
|
|
111951
|
+
diff: GitCompare3,
|
|
111952
|
+
logs: Hash2,
|
|
111953
|
+
settings: Settings,
|
|
111954
|
+
brain: Brain4,
|
|
111955
|
+
fallback: Wrench7
|
|
111956
|
+
};
|
|
111957
|
+
function getToolVisual(name) {
|
|
111958
|
+
const id = getToolIcon(name);
|
|
111959
|
+
return { Icon: TOOL_LUCIDE[id], color: TOOL_ICON_CONFIG[id].color };
|
|
111960
|
+
}
|
|
111961
|
+
var TOOL_CATEGORY_LABELS = {
|
|
111962
|
+
file: "file read/write",
|
|
111963
|
+
edit: "file editing",
|
|
111964
|
+
search: "search & grep",
|
|
111965
|
+
folder: "folder navigation",
|
|
111966
|
+
terminal: "shell commands",
|
|
111967
|
+
web: "web fetch",
|
|
111968
|
+
git: "git operations",
|
|
111969
|
+
tree: "directory tree",
|
|
111970
|
+
code: "code quality",
|
|
111971
|
+
test: "testing",
|
|
111972
|
+
package: "package management",
|
|
111973
|
+
document: "documentation",
|
|
111974
|
+
scaffold: "project scaffolding",
|
|
111975
|
+
todo: "todo tracking",
|
|
111976
|
+
plan: "planning",
|
|
111977
|
+
task: "task management",
|
|
111978
|
+
meta: "tool orchestration",
|
|
111979
|
+
index: "code indexing",
|
|
111980
|
+
json: "JSON data",
|
|
111981
|
+
diff: "diff & patch",
|
|
111982
|
+
logs: "log viewing",
|
|
111983
|
+
settings: "configuration",
|
|
111984
|
+
brain: "memory",
|
|
111985
|
+
fallback: "external tool"
|
|
111986
|
+
};
|
|
111987
|
+
function getToolTooltip(name) {
|
|
111988
|
+
const id = getToolIcon(name);
|
|
111989
|
+
const colorName = hexToColorName(TOOL_ICON_CONFIG[id].color);
|
|
111990
|
+
const category = TOOL_CATEGORY_LABELS[id];
|
|
111991
|
+
return `${category} \u2014 ${colorName}`;
|
|
111992
|
+
}
|
|
111993
|
+
function hexToColorName(hex) {
|
|
111994
|
+
const colors = {
|
|
111995
|
+
"#60a5fa": "blue",
|
|
111996
|
+
"#fbbf24": "amber",
|
|
111997
|
+
"#a78bfa": "violet",
|
|
111998
|
+
"#38bdf8": "sky",
|
|
111999
|
+
"#67e8f9": "cyan-light",
|
|
112000
|
+
"#a3e635": "lime",
|
|
112001
|
+
"#34d399": "emerald",
|
|
112002
|
+
"#22d3ee": "cyan",
|
|
112003
|
+
"#818cf8": "indigo",
|
|
112004
|
+
"#4ade80": "green",
|
|
112005
|
+
"#f472b6": "pink",
|
|
112006
|
+
"#94a3b8": "slate",
|
|
112007
|
+
"#c084fc": "purple",
|
|
112008
|
+
"#facc15": "yellow",
|
|
112009
|
+
"#2dd4bf": "teal",
|
|
112010
|
+
"#5eead4": "teal-light",
|
|
112011
|
+
"#cbd5e1": "slate-light",
|
|
112012
|
+
"#06b6d4": "cyan-dark",
|
|
112013
|
+
"#eab308": "yellow-dark",
|
|
112014
|
+
"#93c5fd": "blue-light",
|
|
112015
|
+
"#a3a3a3": "neutral",
|
|
112016
|
+
"#9ca3af": "gray",
|
|
112017
|
+
"#e879f9": "fuchsia"
|
|
112018
|
+
};
|
|
112019
|
+
return colors[hex] ?? "colored";
|
|
112020
|
+
}
|
|
112021
|
+
|
|
112022
|
+
// src/components/ToolStatsModal.tsx
|
|
111692
112023
|
init_utils();
|
|
111693
112024
|
init_stores();
|
|
111694
|
-
import { Bot as Bot8, Clock as Clock5, Layers as Layers2, TriangleAlert as TriangleAlert3, Wrench as Wrench7, X as X15 } from "lucide-react";
|
|
111695
|
-
import { useEffect as useEffect55, useMemo as useMemo28, useState as useState45 } from "react";
|
|
111696
112025
|
import { jsx as jsx72, jsxs as jsxs67 } from "react/jsx-runtime";
|
|
111697
112026
|
function emptyTotals() {
|
|
111698
112027
|
return { started: 0, ok: 0, failed: 0, totalMs: 0 };
|
|
@@ -111715,11 +112044,24 @@ function formatMs(ms) {
|
|
|
111715
112044
|
if (ms < 1e3) return `${Math.round(ms)}ms`;
|
|
111716
112045
|
return `${(ms / 1e3).toFixed(1)}s`;
|
|
111717
112046
|
}
|
|
111718
|
-
function
|
|
111719
|
-
|
|
111720
|
-
|
|
111721
|
-
|
|
111722
|
-
|
|
112047
|
+
function toolDisplayName(name) {
|
|
112048
|
+
const knownNames = {
|
|
112049
|
+
bash: "Shell command",
|
|
112050
|
+
cat: "Read file",
|
|
112051
|
+
edit: "Edit file",
|
|
112052
|
+
glob: "Find files",
|
|
112053
|
+
grep: "Search text",
|
|
112054
|
+
read: "Read file",
|
|
112055
|
+
web_fetch: "Fetch URL",
|
|
112056
|
+
web_search: "Web search",
|
|
112057
|
+
write: "Write file"
|
|
112058
|
+
};
|
|
112059
|
+
const normalized = name.toLowerCase();
|
|
112060
|
+
const known = knownNames[normalized];
|
|
112061
|
+
if (known) return known;
|
|
112062
|
+
return name.replace(/^mcp__/, "").replace(/__/g, " \xB7 ").replace(/[_-]+/g, " ").replace(/\b\w/g, (letter) => letter.toUpperCase());
|
|
112063
|
+
}
|
|
112064
|
+
function RatioBar({ ok, failed, inFlight }) {
|
|
111723
112065
|
const total = Math.max(1, ok + failed + inFlight);
|
|
111724
112066
|
return /* @__PURE__ */ jsxs67("span", { className: "relative inline-block h-2 w-full min-w-16 overflow-hidden rounded-full bg-muted/60 align-middle ring-1 ring-inset ring-border/20", children: [
|
|
111725
112067
|
/* @__PURE__ */ jsx72(
|
|
@@ -111747,17 +112089,32 @@ function StatChip({ label, value, tone: tone3 }) {
|
|
|
111747
112089
|
function ToolRow({ name, bucket }) {
|
|
111748
112090
|
const completed = bucket.ok + bucket.failed;
|
|
111749
112091
|
const avg = completed > 0 ? bucket.totalMs / completed : 0;
|
|
111750
|
-
|
|
111751
|
-
|
|
111752
|
-
|
|
111753
|
-
/* @__PURE__ */ jsxs67("
|
|
112092
|
+
const { Icon: Icon2, color } = getToolVisual(name);
|
|
112093
|
+
const label = toolDisplayName(name);
|
|
112094
|
+
return /* @__PURE__ */ jsxs67("div", { className: "grid grid-cols-[minmax(9rem,1.15fr)_minmax(5rem,1fr)_3.5rem_4rem] items-center gap-x-3 gap-y-1 rounded-md px-2.5 py-2 text-xs transition-colors hover:bg-muted/50 sm:grid-cols-[minmax(11rem,1.2fr)_minmax(7rem,1.5fr)_3.5rem_3.5rem_4rem]", children: [
|
|
112095
|
+
/* @__PURE__ */ jsxs67("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
112096
|
+
/* @__PURE__ */ jsx72("span", { className: "grid h-6 w-6 shrink-0 place-items-center rounded-md bg-background ring-1 ring-inset ring-border/50", children: /* @__PURE__ */ jsx72(Icon2, { className: "h-3.5 w-3.5", style: { color } }) }),
|
|
112097
|
+
/* @__PURE__ */ jsxs67("span", { className: "min-w-0", children: [
|
|
112098
|
+
/* @__PURE__ */ jsx72("span", { className: "block truncate font-medium text-foreground", title: name, children: label }),
|
|
112099
|
+
/* @__PURE__ */ jsx72("span", { className: "block truncate font-mono text-[10px] text-muted-foreground", title: name, children: name })
|
|
112100
|
+
] })
|
|
112101
|
+
] }),
|
|
112102
|
+
/* @__PURE__ */ jsx72("div", { className: "hidden sm:block", children: /* @__PURE__ */ jsx72(RatioBar, { ok: bucket.ok, failed: bucket.failed, inFlight: 0 }) }),
|
|
112103
|
+
/* @__PURE__ */ jsxs67("span", { className: "text-right font-mono tabular-nums text-muted-foreground", title: "Calls", children: [
|
|
111754
112104
|
bucket.started,
|
|
111755
112105
|
"\xD7"
|
|
111756
112106
|
] }),
|
|
111757
|
-
/* @__PURE__ */ jsx72(
|
|
111758
|
-
|
|
111759
|
-
|
|
111760
|
-
|
|
112107
|
+
/* @__PURE__ */ jsx72(
|
|
112108
|
+
"span",
|
|
112109
|
+
{
|
|
112110
|
+
className: cn(
|
|
112111
|
+
"text-right font-mono tabular-nums",
|
|
112112
|
+
bucket.failed > 0 ? "text-destructive" : "text-success"
|
|
112113
|
+
),
|
|
112114
|
+
children: formatPct(successPct(bucket.ok, bucket.failed))
|
|
112115
|
+
}
|
|
112116
|
+
),
|
|
112117
|
+
/* @__PURE__ */ jsx72("span", { className: "text-right font-mono tabular-nums text-muted-foreground", children: formatMs(avg) })
|
|
111761
112118
|
] });
|
|
111762
112119
|
}
|
|
111763
112120
|
function ToolStatsModal({ open, onClose }) {
|
|
@@ -111819,13 +112176,13 @@ function ToolStatsModal({ open, onClose }) {
|
|
|
111819
112176
|
{
|
|
111820
112177
|
"aria-label": t("chat:toolStats.title", "Tool call statistics"),
|
|
111821
112178
|
className: cn(
|
|
111822
|
-
"flex max-h-[
|
|
112179
|
+
"flex max-h-[86vh] w-full max-w-4xl flex-col overflow-hidden rounded-xl border border-border/70 bg-card shadow-2xl transition-transform duration-200",
|
|
111823
112180
|
animateIn ? "scale-100" : "scale-95"
|
|
111824
112181
|
),
|
|
111825
112182
|
onClick: (e) => e.stopPropagation(),
|
|
111826
112183
|
children: [
|
|
111827
112184
|
/* @__PURE__ */ jsxs67("div", { className: "flex items-center gap-2 border-b border-border/60 px-4 py-3", children: [
|
|
111828
|
-
/* @__PURE__ */ jsx72(
|
|
112185
|
+
/* @__PURE__ */ jsx72(Wrench8, { className: "h-4 w-4 text-primary" }),
|
|
111829
112186
|
/* @__PURE__ */ jsx72("h2", { className: "text-sm font-semibold", children: t("chat:toolStats.title", "Tool call statistics") }),
|
|
111830
112187
|
/* @__PURE__ */ jsx72("span", { className: "ml-auto text-[10px] text-muted-foreground", children: t("chat:toolStats.liveScope", "This page \xB7 live + closed sessions") }),
|
|
111831
112188
|
/* @__PURE__ */ jsx72(
|
|
@@ -111840,7 +112197,7 @@ function ToolStatsModal({ open, onClose }) {
|
|
|
111840
112197
|
)
|
|
111841
112198
|
] }),
|
|
111842
112199
|
/* @__PURE__ */ jsxs67("div", { className: "flex-1 space-y-4 overflow-y-auto overscroll-contain p-4", children: [
|
|
111843
|
-
/* @__PURE__ */ jsxs67("div", { className: "
|
|
112200
|
+
/* @__PURE__ */ jsxs67("div", { className: "grid grid-cols-2 gap-2 sm:grid-cols-3 lg:grid-cols-6", children: [
|
|
111844
112201
|
/* @__PURE__ */ jsx72(
|
|
111845
112202
|
StatChip,
|
|
111846
112203
|
{
|
|
@@ -111848,7 +112205,14 @@ function ToolStatsModal({ open, onClose }) {
|
|
|
111848
112205
|
value: totals.started.toLocaleString()
|
|
111849
112206
|
}
|
|
111850
112207
|
),
|
|
111851
|
-
/* @__PURE__ */ jsx72(
|
|
112208
|
+
/* @__PURE__ */ jsx72(
|
|
112209
|
+
StatChip,
|
|
112210
|
+
{
|
|
112211
|
+
label: t("chat:toolStats.ok", "Success"),
|
|
112212
|
+
value: `${totals.ok}`,
|
|
112213
|
+
tone: "text-success"
|
|
112214
|
+
}
|
|
112215
|
+
),
|
|
111852
112216
|
/* @__PURE__ */ jsx72(
|
|
111853
112217
|
StatChip,
|
|
111854
112218
|
{
|
|
@@ -111881,14 +112245,7 @@ function ToolStatsModal({ open, onClose }) {
|
|
|
111881
112245
|
}
|
|
111882
112246
|
)
|
|
111883
112247
|
] }),
|
|
111884
|
-
/* @__PURE__ */ jsx72(
|
|
111885
|
-
RatioBar,
|
|
111886
|
-
{
|
|
111887
|
-
ok: totals.ok,
|
|
111888
|
-
failed: totals.failed,
|
|
111889
|
-
inFlight: totals.inFlight
|
|
111890
|
-
}
|
|
111891
|
-
),
|
|
112248
|
+
/* @__PURE__ */ jsx72(RatioBar, { ok: totals.ok, failed: totals.failed, inFlight: totals.inFlight }),
|
|
111892
112249
|
/* @__PURE__ */ jsxs67("div", { children: [
|
|
111893
112250
|
/* @__PURE__ */ jsxs67("h3", { className: "mb-1.5 flex items-center gap-1.5 text-xs font-bold uppercase tracking-wider text-foreground/80", children: [
|
|
111894
112251
|
/* @__PURE__ */ jsx72(Layers2, { className: "h-3.5 w-3.5 text-primary" }),
|
|
@@ -111897,7 +112254,14 @@ function ToolStatsModal({ open, onClose }) {
|
|
|
111897
112254
|
!hasLive ? /* @__PURE__ */ jsx72("p", { className: "rounded-lg border border-border/40 bg-muted/20 px-3 py-4 text-center text-xs text-muted-foreground", children: t(
|
|
111898
112255
|
"chat:toolStats.noLiveData",
|
|
111899
112256
|
"No tool calls recorded yet on this page. Run a prompt \u2014 stats appear here live, per tab."
|
|
111900
|
-
) }) : /* @__PURE__ */ jsx72("div", { className: "space-y-2", children: liveSessions.map((session) => /* @__PURE__ */ jsx72(
|
|
112257
|
+
) }) : /* @__PURE__ */ jsx72("div", { className: "space-y-2", children: liveSessions.map((session) => /* @__PURE__ */ jsx72(
|
|
112258
|
+
SessionCard,
|
|
112259
|
+
{
|
|
112260
|
+
session,
|
|
112261
|
+
label: sessionLabel(session.sessionId, nicknames)
|
|
112262
|
+
},
|
|
112263
|
+
session.sessionId
|
|
112264
|
+
)) })
|
|
111901
112265
|
] }),
|
|
111902
112266
|
pastSessions.length > 0 && /* @__PURE__ */ jsxs67("div", { children: [
|
|
111903
112267
|
/* @__PURE__ */ jsxs67("h3", { className: "mb-1.5 flex items-center gap-1.5 text-xs font-bold uppercase tracking-wider text-foreground/80", children: [
|
|
@@ -111944,10 +112308,7 @@ function SessionCard({ session, label }) {
|
|
|
111944
112308
|
() => Object.entries(session.perTool).sort(([, a], [, b]) => b.started - a.started),
|
|
111945
112309
|
[session.perTool]
|
|
111946
112310
|
);
|
|
111947
|
-
const agentEntries = useMemo28(
|
|
111948
|
-
() => Object.entries(session.perAgent),
|
|
111949
|
-
[session.perAgent]
|
|
111950
|
-
);
|
|
112311
|
+
const agentEntries = useMemo28(() => Object.entries(session.perAgent), [session.perAgent]);
|
|
111951
112312
|
const agentToAgent = agentEntries.filter(([key]) => key !== LEADER_AGENT_KEY);
|
|
111952
112313
|
const leader = session.perAgent[LEADER_AGENT_KEY];
|
|
111953
112314
|
const totals = useMemo28(() => {
|
|
@@ -111971,26 +112332,28 @@ function SessionCard({ session, label }) {
|
|
|
111971
112332
|
] }),
|
|
111972
112333
|
/* @__PURE__ */ jsx72("span", { className: "w-24 shrink-0", children: /* @__PURE__ */ jsx72(RatioBar, { ok: totals.ok, failed: totals.failed, inFlight }) })
|
|
111973
112334
|
] }),
|
|
111974
|
-
/* @__PURE__ */
|
|
112335
|
+
/* @__PURE__ */ jsxs67("div", { className: "overflow-hidden rounded-lg border border-border/40 bg-background/30", children: [
|
|
112336
|
+
/* @__PURE__ */ jsxs67("div", { className: "grid grid-cols-[minmax(9rem,1.15fr)_3.5rem_4rem] gap-x-3 border-b border-border/40 bg-muted/30 px-2.5 py-1.5 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground sm:grid-cols-[minmax(11rem,1.2fr)_minmax(7rem,1.5fr)_3.5rem_3.5rem_4rem]", children: [
|
|
112337
|
+
/* @__PURE__ */ jsx72("span", { children: t("chat:toolStats.tool", "Tool") }),
|
|
112338
|
+
/* @__PURE__ */ jsx72("span", { className: "hidden sm:block", children: t("chat:toolStats.outcome", "Outcome") }),
|
|
112339
|
+
/* @__PURE__ */ jsx72("span", { className: "text-right", children: t("chat:toolStats.calls", "Calls") }),
|
|
112340
|
+
/* @__PURE__ */ jsx72("span", { className: "text-right", children: t("chat:toolStats.successRate", "Success rate") }),
|
|
112341
|
+
/* @__PURE__ */ jsx72("span", { className: "text-right", children: t("chat:toolStats.average", "Avg.") })
|
|
112342
|
+
] }),
|
|
112343
|
+
/* @__PURE__ */ jsx72("div", { className: "divide-y divide-border/30", children: tools.map(([name, bucket]) => /* @__PURE__ */ jsx72(ToolRow, { name, bucket }, name)) })
|
|
112344
|
+
] }),
|
|
111975
112345
|
(agentToAgent.length > 0 || d.started > 0) && /* @__PURE__ */ jsxs67("div", { className: "mt-2 rounded border border-border/40 bg-background/40 p-2", children: [
|
|
111976
112346
|
/* @__PURE__ */ jsxs67("div", { className: "mb-1 flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-wider text-muted-foreground", children: [
|
|
111977
112347
|
/* @__PURE__ */ jsx72(Bot8, { className: "h-3 w-3" }),
|
|
111978
112348
|
t("chat:toolStats.agentToAgent", "Agent-to-agent")
|
|
111979
112349
|
] }),
|
|
111980
|
-
agentToAgent.map(([agent, bucket]) => /* @__PURE__ */ jsxs67(
|
|
111981
|
-
"
|
|
111982
|
-
{
|
|
111983
|
-
|
|
111984
|
-
|
|
111985
|
-
|
|
111986
|
-
|
|
111987
|
-
/* @__PURE__ */ jsx72(RatioBar, { ok: bucket.ok, failed: bucket.failed, inFlight: 0 }),
|
|
111988
|
-
/* @__PURE__ */ jsx72("span", { className: "tabular-nums text-success w-8 text-right", children: bucket.ok }),
|
|
111989
|
-
/* @__PURE__ */ jsx72("span", { className: "tabular-nums text-destructive w-8 text-right", children: bucket.failed })
|
|
111990
|
-
]
|
|
111991
|
-
},
|
|
111992
|
-
agent
|
|
111993
|
-
)),
|
|
112350
|
+
agentToAgent.map(([agent, bucket]) => /* @__PURE__ */ jsxs67("div", { className: "flex items-center gap-2 px-1 py-0.5 text-xs", children: [
|
|
112351
|
+
/* @__PURE__ */ jsx72(Bot8, { className: "h-3 w-3 shrink-0 text-info" }),
|
|
112352
|
+
/* @__PURE__ */ jsx72("span", { className: "font-mono truncate flex-1 min-w-0", title: agent, children: agent }),
|
|
112353
|
+
/* @__PURE__ */ jsx72(RatioBar, { ok: bucket.ok, failed: bucket.failed, inFlight: 0 }),
|
|
112354
|
+
/* @__PURE__ */ jsx72("span", { className: "tabular-nums text-success w-8 text-right", children: bucket.ok }),
|
|
112355
|
+
/* @__PURE__ */ jsx72("span", { className: "tabular-nums text-destructive w-8 text-right", children: bucket.failed })
|
|
112356
|
+
] }, agent)),
|
|
111994
112357
|
d.started > 0 && /* @__PURE__ */ jsxs67("div", { className: "mt-1 flex items-center gap-1.5 px-1 text-[11px] text-muted-foreground", children: [
|
|
111995
112358
|
/* @__PURE__ */ jsx72(
|
|
111996
112359
|
TriangleAlert3,
|
|
@@ -112017,14 +112380,75 @@ function SessionCard({ session, label }) {
|
|
|
112017
112380
|
// src/components/WelcomeScreen.tsx
|
|
112018
112381
|
init_i18n();
|
|
112019
112382
|
init_bug_hunt_message();
|
|
112383
|
+
import { ArrowRight as ArrowRight3, Crosshair, Gauge as Gauge2, KeyRound, Loader2 as Loader212, ShieldOff } from "lucide-react";
|
|
112384
|
+
import { useCallback as useCallback21, useEffect as useEffect56, useState as useState46 } from "react";
|
|
112385
|
+
import { useShallow as useShallow7 } from "zustand/react/shallow";
|
|
112386
|
+
|
|
112387
|
+
// src/lib/launch-builtin-round.ts
|
|
112388
|
+
function launchBuiltinRound(options) {
|
|
112389
|
+
const { client: client2, slug } = options;
|
|
112390
|
+
let settled = false;
|
|
112391
|
+
let policyOff = () => {
|
|
112392
|
+
};
|
|
112393
|
+
let contentOff = () => {
|
|
112394
|
+
};
|
|
112395
|
+
const finish = (next) => {
|
|
112396
|
+
if (settled) return;
|
|
112397
|
+
settled = true;
|
|
112398
|
+
clearTimeout(timeout);
|
|
112399
|
+
policyOff();
|
|
112400
|
+
contentOff();
|
|
112401
|
+
options.onSettle(next);
|
|
112402
|
+
};
|
|
112403
|
+
const timeout = setTimeout(() => finish("error"), options.timeoutMs ?? 8e3);
|
|
112404
|
+
const requestPrompt = () => {
|
|
112405
|
+
contentOff = client2.on("prompts.content", (message) => {
|
|
112406
|
+
const payload = message.payload;
|
|
112407
|
+
if (payload?.slug !== slug) return;
|
|
112408
|
+
const content = payload.content?.trim() ?? "";
|
|
112409
|
+
if (!payload.found || !content) {
|
|
112410
|
+
finish("error");
|
|
112411
|
+
return;
|
|
112412
|
+
}
|
|
112413
|
+
const text4 = options.compose(content);
|
|
112414
|
+
const id = client2.sendMessage(text4);
|
|
112415
|
+
options.onSent(id, text4);
|
|
112416
|
+
client2.send({ type: "prompts.used", payload: { slug } });
|
|
112417
|
+
finish("idle");
|
|
112418
|
+
});
|
|
112419
|
+
client2.send({ type: "prompts.content", payload: { slug } });
|
|
112420
|
+
};
|
|
112421
|
+
if (!options.requireSoloSession || !options.subagentsAllowed) {
|
|
112422
|
+
requestPrompt();
|
|
112423
|
+
return;
|
|
112424
|
+
}
|
|
112425
|
+
policyOff = client2.on("prefs.updated", (message) => {
|
|
112426
|
+
const payload = message.payload;
|
|
112427
|
+
if (options.sessionId && payload["sessionId"] !== options.sessionId) return;
|
|
112428
|
+
if (typeof payload["subagentsAllowed"] !== "boolean") return;
|
|
112429
|
+
if (payload["subagentsAllowed"] !== false) {
|
|
112430
|
+
finish("error");
|
|
112431
|
+
return;
|
|
112432
|
+
}
|
|
112433
|
+
policyOff();
|
|
112434
|
+
policyOff = () => {
|
|
112435
|
+
};
|
|
112436
|
+
requestPrompt();
|
|
112437
|
+
});
|
|
112438
|
+
options.setPrefs({ subagentsAllowed: false });
|
|
112439
|
+
client2.send({
|
|
112440
|
+
type: "prefs.update",
|
|
112441
|
+
payload: { subagentsAllowed: false, ...options.sessionId ? { sessionId: options.sessionId } : {} }
|
|
112442
|
+
});
|
|
112443
|
+
}
|
|
112444
|
+
|
|
112445
|
+
// src/components/WelcomeScreen.tsx
|
|
112446
|
+
init_perf_run_message();
|
|
112020
112447
|
init_utils();
|
|
112021
112448
|
init_view_navigation();
|
|
112022
112449
|
init_ws_client();
|
|
112023
112450
|
init_stores();
|
|
112024
112451
|
init_local_prefs();
|
|
112025
|
-
import { ArrowRight as ArrowRight3, Crosshair, KeyRound, Loader2 as Loader212, ShieldOff } from "lucide-react";
|
|
112026
|
-
import { useCallback as useCallback21, useEffect as useEffect56, useState as useState46 } from "react";
|
|
112027
|
-
import { useShallow as useShallow7 } from "zustand/react/shallow";
|
|
112028
112452
|
import { jsx as jsx73, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
112029
112453
|
var ELITE_BUG_HUNTER_SLUG = "elite-bug-hunter";
|
|
112030
112454
|
function directoryPaths(tree) {
|
|
@@ -112062,6 +112486,10 @@ function WelcomeScreen() {
|
|
|
112062
112486
|
const [bugHuntState, setBugHuntState] = useState46("idle");
|
|
112063
112487
|
const [bugHuntScope, setBugHuntScope] = useState46("");
|
|
112064
112488
|
const [bugHuntMaxBugs, setBugHuntMaxBugs] = useState46(1);
|
|
112489
|
+
const [perfState, setPerfState] = useState46("idle");
|
|
112490
|
+
const [perfScope, setPerfScope] = useState46("");
|
|
112491
|
+
const [perfMode, setPerfMode] = useState46("ratchet");
|
|
112492
|
+
const [perfMetric, setPerfMetric] = useState46("");
|
|
112065
112493
|
const scopeDirectories = directoryPaths(projectTree);
|
|
112066
112494
|
useEffect56(() => {
|
|
112067
112495
|
if (!wsConnected) return;
|
|
@@ -112086,71 +112514,33 @@ function WelcomeScreen() {
|
|
|
112086
112514
|
const client2 = getWSClient(wsUrl);
|
|
112087
112515
|
if (!client2.isConnected || bugHuntState === "loading") return;
|
|
112088
112516
|
setBugHuntState("loading");
|
|
112089
|
-
|
|
112090
|
-
|
|
112091
|
-
|
|
112092
|
-
|
|
112093
|
-
|
|
112094
|
-
|
|
112095
|
-
|
|
112096
|
-
|
|
112097
|
-
clearTimeout(timeout);
|
|
112098
|
-
policyOff();
|
|
112099
|
-
contentOff();
|
|
112100
|
-
setBugHuntState(next);
|
|
112101
|
-
};
|
|
112102
|
-
const timeout = setTimeout(() => finish("error"), 8e3);
|
|
112103
|
-
const requestPrompt = () => {
|
|
112104
|
-
contentOff = client2.on("prompts.content", (message) => {
|
|
112105
|
-
const payload = message.payload;
|
|
112106
|
-
if (payload?.slug !== ELITE_BUG_HUNTER_SLUG) return;
|
|
112107
|
-
const content = payload.content?.trim() ?? "";
|
|
112108
|
-
if (!payload.found || !content) {
|
|
112109
|
-
finish("error");
|
|
112110
|
-
return;
|
|
112111
|
-
}
|
|
112517
|
+
launchBuiltinRound({
|
|
112518
|
+
client: client2,
|
|
112519
|
+
slug: ELITE_BUG_HUNTER_SLUG,
|
|
112520
|
+
requireSoloSession: true,
|
|
112521
|
+
subagentsAllowed,
|
|
112522
|
+
sessionId,
|
|
112523
|
+
setPrefs,
|
|
112524
|
+
compose: (content) => {
|
|
112112
112525
|
const scopeText = bugHuntScope ? `${bugHuntScope} and all of its descendants` : "the whole project";
|
|
112113
|
-
|
|
112526
|
+
return buildBugHuntMessage(
|
|
112114
112527
|
`${content}
|
|
112115
112528
|
|
|
112116
112529
|
## WebUI run configuration (mandatory)
|
|
112117
112530
|
This run may complete up to ${bugHuntMaxBugs} proven bug ${bugHuntMaxBugs === 1 ? "round" : "rounds"}. Work on only one bug at a time; after its proof, fix, verification, and cleanup are complete, continue to the next round only while below this limit. Stop early when no further proven bug is available. Stay strictly within ${scopeText}. This configuration overrides the prompt's one-issue total limit, but not its one-issue-per-round discipline.`,
|
|
112118
112531
|
{ scope: bugHuntScope, maxBugs: bugHuntMaxBugs }
|
|
112119
112532
|
);
|
|
112120
|
-
|
|
112533
|
+
},
|
|
112534
|
+
onSent: (id, content) => {
|
|
112121
112535
|
addMessage({
|
|
112122
112536
|
id,
|
|
112123
112537
|
role: "user",
|
|
112124
|
-
content
|
|
112538
|
+
content,
|
|
112125
112539
|
bugHunt: { scope: bugHuntScope, maxBugs: bugHuntMaxBugs }
|
|
112126
112540
|
});
|
|
112127
112541
|
setLoading(true);
|
|
112128
|
-
|
|
112129
|
-
|
|
112130
|
-
});
|
|
112131
|
-
client2.send({ type: "prompts.content", payload: { slug: ELITE_BUG_HUNTER_SLUG } });
|
|
112132
|
-
};
|
|
112133
|
-
if (!subagentsAllowed) {
|
|
112134
|
-
requestPrompt();
|
|
112135
|
-
return;
|
|
112136
|
-
}
|
|
112137
|
-
policyOff = client2.on("prefs.updated", (message) => {
|
|
112138
|
-
const payload = message.payload;
|
|
112139
|
-
if (sessionId && payload["sessionId"] !== sessionId) return;
|
|
112140
|
-
if (typeof payload["subagentsAllowed"] !== "boolean") return;
|
|
112141
|
-
if (payload["subagentsAllowed"] !== false) {
|
|
112142
|
-
finish("error");
|
|
112143
|
-
return;
|
|
112144
|
-
}
|
|
112145
|
-
policyOff();
|
|
112146
|
-
policyOff = () => {
|
|
112147
|
-
};
|
|
112148
|
-
requestPrompt();
|
|
112149
|
-
});
|
|
112150
|
-
setPrefs({ subagentsAllowed: false });
|
|
112151
|
-
client2.send({
|
|
112152
|
-
type: "prefs.update",
|
|
112153
|
-
payload: { subagentsAllowed: false, ...sessionId ? { sessionId } : {} }
|
|
112542
|
+
},
|
|
112543
|
+
onSettle: setBugHuntState
|
|
112154
112544
|
});
|
|
112155
112545
|
}, [
|
|
112156
112546
|
addMessage,
|
|
@@ -112163,6 +112553,54 @@ This run may complete up to ${bugHuntMaxBugs} proven bug ${bugHuntMaxBugs === 1
|
|
|
112163
112553
|
subagentsAllowed,
|
|
112164
112554
|
wsUrl
|
|
112165
112555
|
]);
|
|
112556
|
+
const startPerfRun = useCallback21(() => {
|
|
112557
|
+
const client2 = getWSClient(wsUrl);
|
|
112558
|
+
if (!client2.isConnected || perfState === "loading") return;
|
|
112559
|
+
setPerfState("loading");
|
|
112560
|
+
launchBuiltinRound({
|
|
112561
|
+
client: client2,
|
|
112562
|
+
slug: PERF_MODE_SLUGS[perfMode],
|
|
112563
|
+
// Only the modes that may edit production code force a solo session; an
|
|
112564
|
+
// audit or a triage is read-only and has no attribution to protect.
|
|
112565
|
+
requireSoloSession: PERF_MUTATING_MODES.has(perfMode),
|
|
112566
|
+
subagentsAllowed,
|
|
112567
|
+
sessionId,
|
|
112568
|
+
setPrefs,
|
|
112569
|
+
compose: (content) => {
|
|
112570
|
+
const scopeText = perfScope ? `${perfScope} and all of its descendants` : "the whole project";
|
|
112571
|
+
const metricLine = perfMetric ? `Optimise for ${PERF_RUN_METRIC_LABELS[perfMetric]} (\`${perfMetric}\`). A change that improves another metric while making this one worse is a regression for this round.` : "Pick the metric the user actually feels for this workload, name it explicitly, and state why it is the one that matters before you measure anything.";
|
|
112572
|
+
return buildPerfRunMessage(
|
|
112573
|
+
`${content}
|
|
112574
|
+
|
|
112575
|
+
## WebUI run configuration (mandatory)
|
|
112576
|
+
Stay strictly within ${scopeText}. ${metricLine}
|
|
112577
|
+
Record the baseline, every attempt, and every keep/revert verdict in \`PERF_LOG.md\` as you go \u2014 a result that is not in the ledger did not happen.`,
|
|
112578
|
+
{ scope: perfScope, mode: perfMode, metric: perfMetric }
|
|
112579
|
+
);
|
|
112580
|
+
},
|
|
112581
|
+
onSent: (id, content) => {
|
|
112582
|
+
addMessage({
|
|
112583
|
+
id,
|
|
112584
|
+
role: "user",
|
|
112585
|
+
content,
|
|
112586
|
+
perfRun: { scope: perfScope, mode: perfMode, metric: perfMetric }
|
|
112587
|
+
});
|
|
112588
|
+
setLoading(true);
|
|
112589
|
+
},
|
|
112590
|
+
onSettle: setPerfState
|
|
112591
|
+
});
|
|
112592
|
+
}, [
|
|
112593
|
+
addMessage,
|
|
112594
|
+
perfMetric,
|
|
112595
|
+
perfMode,
|
|
112596
|
+
perfScope,
|
|
112597
|
+
perfState,
|
|
112598
|
+
sessionId,
|
|
112599
|
+
setLoading,
|
|
112600
|
+
setPrefs,
|
|
112601
|
+
subagentsAllowed,
|
|
112602
|
+
wsUrl
|
|
112603
|
+
]);
|
|
112166
112604
|
const toggleSoloSession = useCallback21(() => {
|
|
112167
112605
|
const allowed = !subagentsAllowed;
|
|
112168
112606
|
setPrefs({ subagentsAllowed: allowed });
|
|
@@ -112276,7 +112714,76 @@ This run may complete up to ${bugHuntMaxBugs} proven bug ${bugHuntMaxBugs === 1
|
|
|
112276
112714
|
)
|
|
112277
112715
|
] })
|
|
112278
112716
|
] }),
|
|
112279
|
-
bugHuntState === "error" && /* @__PURE__ */ jsx73("p", { className: "mt-2 text-xs text-destructive", role: "alert", children: t("setup:welcome.bugHunterError") })
|
|
112717
|
+
bugHuntState === "error" && /* @__PURE__ */ jsx73("p", { className: "mt-2 text-xs text-destructive", role: "alert", children: t("setup:welcome.bugHunterError") }),
|
|
112718
|
+
/* @__PURE__ */ jsxs68("div", { className: "mt-3 rounded-md border border-primary/35 bg-primary/8 p-4", children: [
|
|
112719
|
+
/* @__PURE__ */ jsxs68("div", { className: "flex items-center gap-3", children: [
|
|
112720
|
+
/* @__PURE__ */ jsx73("span", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-md bg-primary/15 text-primary", children: perfState === "loading" ? /* @__PURE__ */ jsx73(Loader212, { className: "h-5 w-5 animate-spin" }) : /* @__PURE__ */ jsx73(Gauge2, { className: "h-5 w-5" }) }),
|
|
112721
|
+
/* @__PURE__ */ jsxs68("span", { className: "min-w-0 flex-1", children: [
|
|
112722
|
+
/* @__PURE__ */ jsx73("span", { className: "block text-sm font-semibold", children: t("setup:welcome.perfTitle") }),
|
|
112723
|
+
/* @__PURE__ */ jsx73("span", { className: "mt-0.5 block text-xs leading-relaxed text-muted-foreground", children: t("setup:welcome.perfBody") })
|
|
112724
|
+
] })
|
|
112725
|
+
] }),
|
|
112726
|
+
/* @__PURE__ */ jsxs68("div", { className: "mt-3 grid gap-2 sm:grid-cols-[minmax(0,1fr)_minmax(0,1fr)]", children: [
|
|
112727
|
+
/* @__PURE__ */ jsx73("label", { className: "sr-only", htmlFor: "perf-scope", children: t("setup:welcome.perfScope") }),
|
|
112728
|
+
/* @__PURE__ */ jsxs68(
|
|
112729
|
+
"select",
|
|
112730
|
+
{
|
|
112731
|
+
id: "perf-scope",
|
|
112732
|
+
value: perfScope,
|
|
112733
|
+
onChange: (event) => setPerfScope(event.target.value),
|
|
112734
|
+
disabled: !wsConnected || perfState === "loading",
|
|
112735
|
+
className: "min-w-0 rounded-md border border-border bg-background px-3 py-2 text-sm",
|
|
112736
|
+
children: [
|
|
112737
|
+
/* @__PURE__ */ jsx73("option", { value: "", children: t("setup:welcome.perfWholeProject") }),
|
|
112738
|
+
scopeDirectories.map((path) => /* @__PURE__ */ jsx73("option", { value: path, children: t("setup:welcome.perfDirectoryScope", { path }) }, path))
|
|
112739
|
+
]
|
|
112740
|
+
}
|
|
112741
|
+
),
|
|
112742
|
+
/* @__PURE__ */ jsx73("label", { className: "sr-only", htmlFor: "perf-mode", children: t("setup:welcome.perfMode") }),
|
|
112743
|
+
/* @__PURE__ */ jsx73(
|
|
112744
|
+
"select",
|
|
112745
|
+
{
|
|
112746
|
+
id: "perf-mode",
|
|
112747
|
+
value: perfMode,
|
|
112748
|
+
onChange: (event) => setPerfMode(event.target.value),
|
|
112749
|
+
disabled: !wsConnected || perfState === "loading",
|
|
112750
|
+
className: "min-w-0 rounded-md border border-border bg-background px-3 py-2 text-sm",
|
|
112751
|
+
children: PERF_RUN_MODES.map((mode) => /* @__PURE__ */ jsx73("option", { value: mode, children: PERF_RUN_MODE_LABELS[mode] }, mode))
|
|
112752
|
+
}
|
|
112753
|
+
)
|
|
112754
|
+
] }),
|
|
112755
|
+
/* @__PURE__ */ jsxs68("div", { className: "mt-2 grid gap-2 sm:grid-cols-[minmax(0,1fr)_auto]", children: [
|
|
112756
|
+
/* @__PURE__ */ jsx73("label", { className: "sr-only", htmlFor: "perf-metric", children: t("setup:welcome.perfMetric") }),
|
|
112757
|
+
/* @__PURE__ */ jsxs68(
|
|
112758
|
+
"select",
|
|
112759
|
+
{
|
|
112760
|
+
id: "perf-metric",
|
|
112761
|
+
value: perfMetric,
|
|
112762
|
+
onChange: (event) => setPerfMetric(event.target.value),
|
|
112763
|
+
disabled: !wsConnected || perfState === "loading",
|
|
112764
|
+
className: "min-w-0 rounded-md border border-border bg-background px-3 py-2 text-sm",
|
|
112765
|
+
children: [
|
|
112766
|
+
/* @__PURE__ */ jsx73("option", { value: "", children: t("setup:welcome.perfMetricAuto") }),
|
|
112767
|
+
PERF_RUN_METRICS.map((metric) => /* @__PURE__ */ jsx73("option", { value: metric, children: PERF_RUN_METRIC_LABELS[metric] }, metric))
|
|
112768
|
+
]
|
|
112769
|
+
}
|
|
112770
|
+
),
|
|
112771
|
+
/* @__PURE__ */ jsxs68(
|
|
112772
|
+
"button",
|
|
112773
|
+
{
|
|
112774
|
+
type: "button",
|
|
112775
|
+
onClick: startPerfRun,
|
|
112776
|
+
disabled: !wsConnected || savedCount === 0 || perfState === "loading",
|
|
112777
|
+
className: "group flex items-center justify-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-semibold text-primary-foreground transition-colors hover:bg-primary/90 disabled:cursor-not-allowed disabled:opacity-50",
|
|
112778
|
+
children: [
|
|
112779
|
+
t("setup:welcome.perfStart"),
|
|
112780
|
+
/* @__PURE__ */ jsx73(ArrowRight3, { className: "h-4 w-4 transition-transform group-hover:translate-x-0.5" })
|
|
112781
|
+
]
|
|
112782
|
+
}
|
|
112783
|
+
)
|
|
112784
|
+
] })
|
|
112785
|
+
] }),
|
|
112786
|
+
perfState === "error" && /* @__PURE__ */ jsx73("p", { className: "mt-2 text-xs text-destructive", role: "alert", children: t("setup:welcome.perfError") })
|
|
112280
112787
|
] })
|
|
112281
112788
|
] })
|
|
112282
112789
|
] }),
|
|
@@ -112308,13 +112815,14 @@ This run may complete up to ${bugHuntMaxBugs} proven bug ${bugHuntMaxBugs === 1
|
|
|
112308
112815
|
}
|
|
112309
112816
|
|
|
112310
112817
|
// src/components/ChatView/AgentTabs.tsx
|
|
112818
|
+
init_dropdown_menu();
|
|
112311
112819
|
init_i18n();
|
|
112312
112820
|
init_agent_session();
|
|
112313
112821
|
init_task_brief_preview();
|
|
112314
112822
|
init_utils();
|
|
112315
112823
|
init_ws_client();
|
|
112316
112824
|
init_stores();
|
|
112317
|
-
import { Bot as Bot9, CheckCircle2 as CheckCircle28, Crown as Crown5, Loader2 as Loader213, Square as Square4 } from "lucide-react";
|
|
112825
|
+
import { Bot as Bot9, Check as Check11, CheckCircle2 as CheckCircle28, ChevronDown as ChevronDown6, Crown as Crown5, Loader2 as Loader213, Square as Square4, X as X16 } from "lucide-react";
|
|
112318
112826
|
import { useShallow as useShallow8 } from "zustand/react/shallow";
|
|
112319
112827
|
import { jsx as jsx74, jsxs as jsxs69 } from "react/jsx-runtime";
|
|
112320
112828
|
var TAB_LED = {
|
|
@@ -112324,6 +112832,56 @@ var TAB_LED = {
|
|
|
112324
112832
|
timeout: { led: "bg-warning", pulse: false },
|
|
112325
112833
|
stopped: { led: "bg-muted-foreground", pulse: false }
|
|
112326
112834
|
};
|
|
112835
|
+
var MAX_INLINE_SUBAGENTS = 3;
|
|
112836
|
+
function SubagentTabButton({
|
|
112837
|
+
agent,
|
|
112838
|
+
active,
|
|
112839
|
+
onOpen,
|
|
112840
|
+
onRemove,
|
|
112841
|
+
removeLabel
|
|
112842
|
+
}) {
|
|
112843
|
+
const meta2 = TAB_LED[agent.status] ?? TAB_LED.stopped;
|
|
112844
|
+
return /* @__PURE__ */ jsxs69(
|
|
112845
|
+
"button",
|
|
112846
|
+
{
|
|
112847
|
+
type: "button",
|
|
112848
|
+
role: "tab",
|
|
112849
|
+
"aria-selected": active,
|
|
112850
|
+
title: agent.description ? taskBriefPreview(agent.description, 180) : agent.name,
|
|
112851
|
+
onClick: onOpen,
|
|
112852
|
+
className: cn(
|
|
112853
|
+
"flex shrink-0 items-center gap-1.5 rounded-md px-2 py-0.5 text-[11px] font-medium transition-colors border",
|
|
112854
|
+
active ? "bg-primary/15 text-primary border-primary/30 shadow-xs" : "text-muted-foreground border-transparent hover:bg-muted/50 hover:text-foreground"
|
|
112855
|
+
),
|
|
112856
|
+
children: [
|
|
112857
|
+
/* @__PURE__ */ jsx74(
|
|
112858
|
+
"span",
|
|
112859
|
+
{
|
|
112860
|
+
className: cn("led shrink-0", meta2.led, meta2.pulse && "led-pulse"),
|
|
112861
|
+
"aria-hidden": "true"
|
|
112862
|
+
}
|
|
112863
|
+
),
|
|
112864
|
+
/* @__PURE__ */ jsx74("span", { className: "max-w-[10rem] truncate", children: agent.name }),
|
|
112865
|
+
onRemove && /* @__PURE__ */ jsx74(
|
|
112866
|
+
"span",
|
|
112867
|
+
{
|
|
112868
|
+
role: "button",
|
|
112869
|
+
tabIndex: -1,
|
|
112870
|
+
"data-testid": "agent-tab-close",
|
|
112871
|
+
"aria-label": removeLabel,
|
|
112872
|
+
title: removeLabel,
|
|
112873
|
+
onClick: (e) => {
|
|
112874
|
+
e.stopPropagation();
|
|
112875
|
+
onRemove();
|
|
112876
|
+
},
|
|
112877
|
+
className: "-mr-0.5 flex shrink-0 items-center rounded-sm p-0.5 text-muted-foreground/60 transition-colors hover:bg-destructive/15 hover:text-destructive",
|
|
112878
|
+
children: /* @__PURE__ */ jsx74(X16, { className: "h-2.5 w-2.5", "aria-hidden": "true" })
|
|
112879
|
+
}
|
|
112880
|
+
)
|
|
112881
|
+
]
|
|
112882
|
+
}
|
|
112883
|
+
);
|
|
112884
|
+
}
|
|
112327
112885
|
function AgentTabs() {
|
|
112328
112886
|
const { t } = useTranslation();
|
|
112329
112887
|
const currentSessionId = useActiveSessionId();
|
|
@@ -112333,10 +112891,20 @@ function AgentTabs() {
|
|
|
112333
112891
|
const leaderName = useFleetStore((s) => leaderId ? s.agents.get(leaderId)?.name : void 0);
|
|
112334
112892
|
const focusId = useUIStore((s) => s.subagentChatFocusId);
|
|
112335
112893
|
const setFocus = useUIStore((s) => s.setSubagentChatFocus);
|
|
112894
|
+
const removeAgent = useFleetStore((s) => s.removeAgent);
|
|
112336
112895
|
const agents = allAgents.filter((a) => agentBelongsToSession(a.sessionId, currentSessionId));
|
|
112337
112896
|
const subagents = agents.filter((a) => a.id !== leaderId);
|
|
112338
112897
|
const runningSubs = subagents.filter((a) => a.status === "running").length;
|
|
112339
112898
|
const finishedSubs = subagents.length - runningSubs;
|
|
112899
|
+
const inlineSubs = subagents.slice(0, MAX_INLINE_SUBAGENTS);
|
|
112900
|
+
const overflowSubs = subagents.slice(MAX_INLINE_SUBAGENTS);
|
|
112901
|
+
const overflowFocusActive = overflowSubs.some((a) => a.id === focusId);
|
|
112902
|
+
const anyOverflowRunning = overflowSubs.some((a) => a.status === "running");
|
|
112903
|
+
const openAgent = (id) => {
|
|
112904
|
+
setFocus(id, currentSessionId);
|
|
112905
|
+
useUIStore.getState().setCurrentView("chat");
|
|
112906
|
+
};
|
|
112907
|
+
const closeLabel = (name) => t("activity:agents.closeTab", { name });
|
|
112340
112908
|
return /* @__PURE__ */ jsxs69(
|
|
112341
112909
|
"div",
|
|
112342
112910
|
{
|
|
@@ -112371,38 +112939,89 @@ function AgentTabs() {
|
|
|
112371
112939
|
]
|
|
112372
112940
|
}
|
|
112373
112941
|
),
|
|
112374
|
-
|
|
112375
|
-
|
|
112376
|
-
|
|
112377
|
-
|
|
112942
|
+
inlineSubs.map((a) => /* @__PURE__ */ jsx74(
|
|
112943
|
+
SubagentTabButton,
|
|
112944
|
+
{
|
|
112945
|
+
agent: a,
|
|
112946
|
+
active: focusId === a.id,
|
|
112947
|
+
onOpen: () => openAgent(a.id),
|
|
112948
|
+
onRemove: a.status !== "running" ? () => removeAgent(a.id) : void 0,
|
|
112949
|
+
removeLabel: closeLabel(a.name)
|
|
112950
|
+
},
|
|
112951
|
+
a.id
|
|
112952
|
+
)),
|
|
112953
|
+
overflowSubs.length > 0 && /* @__PURE__ */ jsxs69(DropdownMenu, { children: [
|
|
112954
|
+
/* @__PURE__ */ jsx74(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs69(
|
|
112378
112955
|
"button",
|
|
112379
112956
|
{
|
|
112380
112957
|
type: "button",
|
|
112381
|
-
|
|
112382
|
-
"
|
|
112383
|
-
|
|
112384
|
-
onClick: () => {
|
|
112385
|
-
setFocus(a.id, currentSessionId);
|
|
112386
|
-
useUIStore.getState().setCurrentView("chat");
|
|
112387
|
-
},
|
|
112958
|
+
"data-testid": "agent-tabs-overflow",
|
|
112959
|
+
title: t("activity:agents.moreTabsTitle", { n: overflowSubs.length }),
|
|
112960
|
+
"aria-label": t("activity:agents.moreTabsTitle", { n: overflowSubs.length }),
|
|
112388
112961
|
className: cn(
|
|
112389
|
-
"flex shrink-0 items-center gap-1
|
|
112390
|
-
|
|
112962
|
+
"flex shrink-0 items-center gap-1 rounded-md px-2 py-0.5 text-[11px] font-medium transition-colors border",
|
|
112963
|
+
overflowFocusActive ? "bg-primary/15 text-primary border-primary/30 shadow-xs" : "text-muted-foreground border-transparent hover:bg-muted/50 hover:text-foreground"
|
|
112391
112964
|
),
|
|
112392
112965
|
children: [
|
|
112393
112966
|
/* @__PURE__ */ jsx74(
|
|
112394
112967
|
"span",
|
|
112395
112968
|
{
|
|
112396
|
-
className: cn(
|
|
112969
|
+
className: cn(
|
|
112970
|
+
"led shrink-0",
|
|
112971
|
+
anyOverflowRunning ? "bg-success led-pulse" : "bg-muted-foreground"
|
|
112972
|
+
),
|
|
112397
112973
|
"aria-hidden": "true"
|
|
112398
112974
|
}
|
|
112399
112975
|
),
|
|
112400
|
-
/* @__PURE__ */
|
|
112976
|
+
/* @__PURE__ */ jsxs69("span", { className: "font-mono", children: [
|
|
112977
|
+
"+",
|
|
112978
|
+
overflowSubs.length
|
|
112979
|
+
] }),
|
|
112980
|
+
/* @__PURE__ */ jsx74(ChevronDown6, { className: "h-3 w-3 shrink-0 opacity-60" })
|
|
112401
112981
|
]
|
|
112402
|
-
}
|
|
112403
|
-
|
|
112404
|
-
)
|
|
112405
|
-
|
|
112982
|
+
}
|
|
112983
|
+
) }),
|
|
112984
|
+
/* @__PURE__ */ jsx74(DropdownMenuContent, { align: "start", className: "max-h-72 w-60 overflow-y-auto", children: overflowSubs.map((a) => {
|
|
112985
|
+
const meta2 = TAB_LED[a.status] ?? TAB_LED.stopped;
|
|
112986
|
+
const active = focusId === a.id;
|
|
112987
|
+
return /* @__PURE__ */ jsxs69(
|
|
112988
|
+
DropdownMenuItem,
|
|
112989
|
+
{
|
|
112990
|
+
"data-testid": "agent-tabs-overflow-item",
|
|
112991
|
+
title: a.description ? taskBriefPreview(a.description, 180) : a.name,
|
|
112992
|
+
onSelect: () => openAgent(a.id),
|
|
112993
|
+
children: [
|
|
112994
|
+
/* @__PURE__ */ jsx74(
|
|
112995
|
+
"span",
|
|
112996
|
+
{
|
|
112997
|
+
className: cn("led shrink-0", meta2.led, meta2.pulse && "led-pulse"),
|
|
112998
|
+
"aria-hidden": "true"
|
|
112999
|
+
}
|
|
113000
|
+
),
|
|
113001
|
+
/* @__PURE__ */ jsx74("span", { className: "max-w-[12rem] flex-1 truncate", children: a.name }),
|
|
113002
|
+
active && /* @__PURE__ */ jsx74(Check11, { className: "h-3 w-3 shrink-0 text-primary", "aria-hidden": "true" }),
|
|
113003
|
+
a.status !== "running" && /* @__PURE__ */ jsx74(
|
|
113004
|
+
"span",
|
|
113005
|
+
{
|
|
113006
|
+
role: "button",
|
|
113007
|
+
tabIndex: -1,
|
|
113008
|
+
"data-testid": "agent-tab-close",
|
|
113009
|
+
"aria-label": closeLabel(a.name),
|
|
113010
|
+
title: closeLabel(a.name),
|
|
113011
|
+
onClick: (e) => {
|
|
113012
|
+
e.stopPropagation();
|
|
113013
|
+
removeAgent(a.id);
|
|
113014
|
+
},
|
|
113015
|
+
className: "flex shrink-0 items-center rounded-sm p-1 text-muted-foreground/60 transition-colors hover:bg-destructive/15 hover:text-destructive",
|
|
113016
|
+
children: /* @__PURE__ */ jsx74(X16, { className: "h-3 w-3", "aria-hidden": "true" })
|
|
113017
|
+
}
|
|
113018
|
+
)
|
|
113019
|
+
]
|
|
113020
|
+
},
|
|
113021
|
+
a.id
|
|
113022
|
+
);
|
|
113023
|
+
}) })
|
|
113024
|
+
] })
|
|
112406
113025
|
] }),
|
|
112407
113026
|
/* @__PURE__ */ jsxs69("div", { className: "flex shrink-0 items-center gap-2 pl-2 border-l border-border/30", children: [
|
|
112408
113027
|
isLoading ? /* @__PURE__ */ jsxs69("div", { className: "inline-flex items-center gap-1", children: [
|
|
@@ -112608,14 +113227,14 @@ init_utils();
|
|
|
112608
113227
|
import {
|
|
112609
113228
|
Activity as Activity5,
|
|
112610
113229
|
AlertTriangle as AlertTriangle11,
|
|
112611
|
-
Brain as
|
|
112612
|
-
ChevronDown as
|
|
113230
|
+
Brain as Brain5,
|
|
113231
|
+
ChevronDown as ChevronDown10,
|
|
112613
113232
|
History as History4,
|
|
112614
113233
|
PanelLeftOpen,
|
|
112615
113234
|
Pencil as Pencil2,
|
|
112616
113235
|
Terminal as Terminal4,
|
|
112617
113236
|
Wand2 as Wand23,
|
|
112618
|
-
Wrench as
|
|
113237
|
+
Wrench as Wrench10,
|
|
112619
113238
|
Zap as Zap13
|
|
112620
113239
|
} from "lucide-react";
|
|
112621
113240
|
|
|
@@ -112625,7 +113244,7 @@ init_i18n();
|
|
|
112625
113244
|
import {
|
|
112626
113245
|
Activity as Activity4,
|
|
112627
113246
|
ArrowRightLeft,
|
|
112628
|
-
ChevronDown as
|
|
113247
|
+
ChevronDown as ChevronDown7,
|
|
112629
113248
|
Pause as Pause2,
|
|
112630
113249
|
Play as Play2
|
|
112631
113250
|
} from "lucide-react";
|
|
@@ -112707,7 +113326,7 @@ function AutonomyPicker({
|
|
|
112707
113326
|
children: [
|
|
112708
113327
|
current?.icon,
|
|
112709
113328
|
!compact && /* @__PURE__ */ jsx77("span", { className: "truncate max-w-[7rem]", children: current ? t(`activity:autonomy.${current.labelKey}`) : value }),
|
|
112710
|
-
/* @__PURE__ */ jsx77(
|
|
113329
|
+
/* @__PURE__ */ jsx77(ChevronDown7, { className: "h-3 w-3 opacity-60" })
|
|
112711
113330
|
]
|
|
112712
113331
|
}
|
|
112713
113332
|
),
|
|
@@ -112746,7 +113365,7 @@ init_utils();
|
|
|
112746
113365
|
init_i18n();
|
|
112747
113366
|
init_stores();
|
|
112748
113367
|
import { expectDefined as expectDefined8 } from "@wrongstack/core/utils/expect-defined";
|
|
112749
|
-
import { Check as
|
|
113368
|
+
import { Check as Check12, ChevronDown as ChevronDown8, Gauge as Gauge3, Wrench as Wrench9, Zap as Zap12, FileSearch } from "lucide-react";
|
|
112750
113369
|
import { useCallback as useCallback22, useEffect as useEffect58, useRef as useRef26, useState as useState48 } from "react";
|
|
112751
113370
|
import { jsx as jsx78, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
112752
113371
|
function ContextModePicker() {
|
|
@@ -112818,11 +113437,11 @@ function ContextModePicker() {
|
|
|
112818
113437
|
),
|
|
112819
113438
|
title: t("activity:ctxMode.triggerTitle"),
|
|
112820
113439
|
children: [
|
|
112821
|
-
/* @__PURE__ */ jsx78(
|
|
113440
|
+
/* @__PURE__ */ jsx78(Gauge3, { className: "h-3 w-3" }),
|
|
112822
113441
|
t("activity:ctxMode.ctxPrefix"),
|
|
112823
113442
|
" ",
|
|
112824
113443
|
/* @__PURE__ */ jsx78("span", { className: "font-mono", children: contextMode || active.id }),
|
|
112825
|
-
/* @__PURE__ */ jsx78(
|
|
113444
|
+
/* @__PURE__ */ jsx78(ChevronDown8, { className: "h-3 w-3 opacity-60" })
|
|
112826
113445
|
]
|
|
112827
113446
|
}
|
|
112828
113447
|
),
|
|
@@ -112838,7 +113457,7 @@ function ContextModePicker() {
|
|
|
112838
113457
|
opsOpen && "bg-accent/50 text-foreground"
|
|
112839
113458
|
),
|
|
112840
113459
|
title: t("activity:ctxMode.opsHeading"),
|
|
112841
|
-
children: /* @__PURE__ */ jsx78(
|
|
113460
|
+
children: /* @__PURE__ */ jsx78(Wrench9, { className: "h-3 w-3" })
|
|
112842
113461
|
}
|
|
112843
113462
|
),
|
|
112844
113463
|
opsOpen && /* @__PURE__ */ jsxs73("div", { className: "absolute top-full right-0 mt-1 w-52 rounded-md border bg-popover shadow-lg z-40 py-1", children: [
|
|
@@ -112880,7 +113499,7 @@ function ContextModePicker() {
|
|
|
112880
113499
|
onClick: repair,
|
|
112881
113500
|
className: "w-full text-left px-3 py-2 hover:bg-accent/40 flex items-center gap-2",
|
|
112882
113501
|
children: [
|
|
112883
|
-
/* @__PURE__ */ jsx78(
|
|
113502
|
+
/* @__PURE__ */ jsx78(Wrench9, { className: "h-3.5 w-3.5 shrink-0 text-info" }),
|
|
112884
113503
|
/* @__PURE__ */ jsxs73("div", { children: [
|
|
112885
113504
|
/* @__PURE__ */ jsx78("div", { className: "text-xs", children: t("activity:ctxMode.repairContext") }),
|
|
112886
113505
|
/* @__PURE__ */ jsx78("div", { className: "text-[10px] text-muted-foreground", children: t("activity:ctxMode.repairDesc") })
|
|
@@ -112926,7 +113545,7 @@ function ContextModePicker() {
|
|
|
112926
113545
|
),
|
|
112927
113546
|
children: [
|
|
112928
113547
|
/* @__PURE__ */ jsx78(
|
|
112929
|
-
|
|
113548
|
+
Check12,
|
|
112930
113549
|
{
|
|
112931
113550
|
className: cn(
|
|
112932
113551
|
"h-3.5 w-3.5 mt-0.5 shrink-0",
|
|
@@ -113088,7 +113707,7 @@ init_useWebSocket();
|
|
|
113088
113707
|
init_utils();
|
|
113089
113708
|
init_i18n();
|
|
113090
113709
|
init_stores();
|
|
113091
|
-
import { Check as
|
|
113710
|
+
import { Check as Check13, ChevronDown as ChevronDown9 } from "lucide-react";
|
|
113092
113711
|
import { useEffect as useEffect60, useRef as useRef28, useState as useState50 } from "react";
|
|
113093
113712
|
import { jsx as jsx80, jsxs as jsxs75 } from "react/jsx-runtime";
|
|
113094
113713
|
function ModePicker() {
|
|
@@ -113138,7 +113757,7 @@ function ModePicker() {
|
|
|
113138
113757
|
t("activity:mode.modePrefix"),
|
|
113139
113758
|
" ",
|
|
113140
113759
|
/* @__PURE__ */ jsx80("span", { className: "font-mono", children: mode || "default" }),
|
|
113141
|
-
/* @__PURE__ */ jsx80(
|
|
113760
|
+
/* @__PURE__ */ jsx80(ChevronDown9, { className: "h-3 w-3 opacity-60" })
|
|
113142
113761
|
]
|
|
113143
113762
|
}
|
|
113144
113763
|
),
|
|
@@ -113158,7 +113777,7 @@ function ModePicker() {
|
|
|
113158
113777
|
),
|
|
113159
113778
|
children: [
|
|
113160
113779
|
/* @__PURE__ */ jsx80(
|
|
113161
|
-
|
|
113780
|
+
Check13,
|
|
113162
113781
|
{
|
|
113163
113782
|
className: cn(
|
|
113164
113783
|
"h-3.5 w-3.5 mt-0.5 shrink-0",
|
|
@@ -113311,7 +113930,7 @@ function ChatHeader({
|
|
|
113311
113930
|
title: t("chat:switchSession"),
|
|
113312
113931
|
children: [
|
|
113313
113932
|
/* @__PURE__ */ jsx81(History4, { className: "h-3 w-3" }),
|
|
113314
|
-
/* @__PURE__ */ jsx81(
|
|
113933
|
+
/* @__PURE__ */ jsx81(ChevronDown10, { className: "h-2.5 w-2.5" })
|
|
113315
113934
|
]
|
|
113316
113935
|
}
|
|
113317
113936
|
),
|
|
@@ -113370,7 +113989,7 @@ function ChatHeader({
|
|
|
113370
113989
|
onClick: () => setToolStatsOpen((v) => !v),
|
|
113371
113990
|
title: t("chat:header.toolStatsTitle", "Tool call stats"),
|
|
113372
113991
|
children: [
|
|
113373
|
-
/* @__PURE__ */ jsx81(
|
|
113992
|
+
/* @__PURE__ */ jsx81(Wrench10, { className: "h-4 w-4" }),
|
|
113374
113993
|
toolStatsOpen && /* @__PURE__ */ jsx81("span", { className: "absolute -bottom-0.5 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full bg-primary" })
|
|
113375
113994
|
]
|
|
113376
113995
|
}
|
|
@@ -113384,7 +114003,7 @@ function ChatHeader({
|
|
|
113384
114003
|
onClick: () => setMemoryPanelOpen((v) => !v),
|
|
113385
114004
|
title: t("chat:header.memoryContextTitle", "Memory context"),
|
|
113386
114005
|
children: [
|
|
113387
|
-
/* @__PURE__ */ jsx81(
|
|
114006
|
+
/* @__PURE__ */ jsx81(Brain5, { className: "h-4 w-4" }),
|
|
113388
114007
|
activeMemoryCount > 0 && /* @__PURE__ */ jsx81("span", { className: "absolute -top-0.5 -right-0.5 min-w-3.5 h-3.5 px-0.5 rounded-full bg-primary text-primary-foreground text-[9px] font-bold flex items-center justify-center tabular-nums", children: activeMemoryCount }),
|
|
113389
114008
|
memoryPanelOpen && /* @__PURE__ */ jsx81("span", { className: "absolute -bottom-0.5 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full bg-primary" })
|
|
113390
114009
|
]
|
|
@@ -113501,6 +114120,7 @@ import { memo as memo12 } from "react";
|
|
|
113501
114120
|
|
|
113502
114121
|
// src/components/MessageBubble/index.tsx
|
|
113503
114122
|
init_i18n();
|
|
114123
|
+
init_perf_run_message();
|
|
113504
114124
|
init_utils();
|
|
113505
114125
|
init_ws_client();
|
|
113506
114126
|
init_stores();
|
|
@@ -113512,9 +114132,10 @@ import {
|
|
|
113512
114132
|
Bot as Bot10,
|
|
113513
114133
|
Brain as Brain8,
|
|
113514
114134
|
Crosshair as Crosshair2,
|
|
113515
|
-
ChevronDown as
|
|
114135
|
+
ChevronDown as ChevronDown15,
|
|
113516
114136
|
ChevronRight as ChevronRight9,
|
|
113517
114137
|
FileCode2 as FileCode22,
|
|
114138
|
+
Gauge as Gauge4,
|
|
113518
114139
|
Info as Info3,
|
|
113519
114140
|
Pencil as Pencil3,
|
|
113520
114141
|
Pin as Pin2,
|
|
@@ -113534,10 +114155,10 @@ import { memo as memo4, useMemo as useMemo29, useState as useState51 } from "rea
|
|
|
113534
114155
|
import {
|
|
113535
114156
|
Activity as Activity6,
|
|
113536
114157
|
AlertOctagon,
|
|
113537
|
-
Brain as
|
|
113538
|
-
Check as
|
|
114158
|
+
Brain as Brain6,
|
|
114159
|
+
Check as Check14,
|
|
113539
114160
|
CheckCircle2 as CheckCircle29,
|
|
113540
|
-
ChevronDown as
|
|
114161
|
+
ChevronDown as ChevronDown11,
|
|
113541
114162
|
ChevronRight as ChevronRight5,
|
|
113542
114163
|
Compass,
|
|
113543
114164
|
Copy as Copy3,
|
|
@@ -113683,7 +114304,7 @@ var BrainDecisionCard = memo4(function BrainDecisionCard2({
|
|
|
113683
114304
|
"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border shadow-xs transition-transform duration-200 hover:scale-105",
|
|
113684
114305
|
isIntervention ? "border-warning/30 bg-warning/10 text-warning" : isDenied ? "border-destructive/30 bg-destructive/10 text-destructive" : isAskHuman ? "border-info/30 bg-info/10 text-info" : "border-primary/30 bg-primary/10 text-primary"
|
|
113685
114306
|
),
|
|
113686
|
-
children: isIntervention ? /* @__PURE__ */ jsx82(Zap14, { className: "h-5 w-5" }) : isDenied ? /* @__PURE__ */ jsx82(ShieldAlert4, { className: "h-5 w-5" }) : isAskHuman ? /* @__PURE__ */ jsx82(UserCheck2, { className: "h-5 w-5" }) : /* @__PURE__ */ jsx82(
|
|
114307
|
+
children: isIntervention ? /* @__PURE__ */ jsx82(Zap14, { className: "h-5 w-5" }) : isDenied ? /* @__PURE__ */ jsx82(ShieldAlert4, { className: "h-5 w-5" }) : isAskHuman ? /* @__PURE__ */ jsx82(UserCheck2, { className: "h-5 w-5" }) : /* @__PURE__ */ jsx82(Brain6, { className: "h-5 w-5" })
|
|
113687
114308
|
}
|
|
113688
114309
|
),
|
|
113689
114310
|
/* @__PURE__ */ jsxs77("div", { children: [
|
|
@@ -113703,7 +114324,7 @@ var BrainDecisionCard = memo4(function BrainDecisionCard2({
|
|
|
113703
114324
|
className: "inline-flex items-center gap-1 rounded-full border border-border bg-surface-1/60 hover:bg-surface-1 px-2.5 py-0.5 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer",
|
|
113704
114325
|
title: "Copy Brain Directive",
|
|
113705
114326
|
children: [
|
|
113706
|
-
copied ? /* @__PURE__ */ jsx82(
|
|
114327
|
+
copied ? /* @__PURE__ */ jsx82(Check14, { className: "h-3 w-3 text-success" }) : /* @__PURE__ */ jsx82(Copy3, { className: "h-3 w-3" }),
|
|
113707
114328
|
/* @__PURE__ */ jsx82("span", { className: "text-[11px]", children: copied ? "Copied" : "Copy" })
|
|
113708
114329
|
]
|
|
113709
114330
|
}
|
|
@@ -113781,7 +114402,7 @@ var BrainDecisionCard = memo4(function BrainDecisionCard2({
|
|
|
113781
114402
|
className: "text-[11px] text-primary hover:underline font-medium flex items-center gap-0.5 cursor-pointer",
|
|
113782
114403
|
children: [
|
|
113783
114404
|
/* @__PURE__ */ jsx82("span", { children: rationaleExpanded ? "Collapse" : "Expand" }),
|
|
113784
|
-
rationaleExpanded ? /* @__PURE__ */ jsx82(
|
|
114405
|
+
rationaleExpanded ? /* @__PURE__ */ jsx82(ChevronDown11, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx82(ChevronRight5, { className: "h-3 w-3" })
|
|
113785
114406
|
]
|
|
113786
114407
|
}
|
|
113787
114408
|
)
|
|
@@ -113820,9 +114441,9 @@ import { memo as memo5, useMemo as useMemo30, useState as useState52 } from "rea
|
|
|
113820
114441
|
import {
|
|
113821
114442
|
AlertTriangle as AlertTriangle12,
|
|
113822
114443
|
Award,
|
|
113823
|
-
Check as
|
|
114444
|
+
Check as Check15,
|
|
113824
114445
|
CheckCircle2 as CheckCircle210,
|
|
113825
|
-
ChevronDown as
|
|
114446
|
+
ChevronDown as ChevronDown12,
|
|
113826
114447
|
ChevronRight as ChevronRight6,
|
|
113827
114448
|
Clock as Clock6,
|
|
113828
114449
|
Coins,
|
|
@@ -113837,7 +114458,7 @@ import {
|
|
|
113837
114458
|
ShieldCheck,
|
|
113838
114459
|
Sparkles as Sparkles9,
|
|
113839
114460
|
Users as Users3,
|
|
113840
|
-
Wrench as
|
|
114461
|
+
Wrench as Wrench11,
|
|
113841
114462
|
XCircle as XCircle3,
|
|
113842
114463
|
Zap as Zap15
|
|
113843
114464
|
} from "lucide-react";
|
|
@@ -113904,7 +114525,7 @@ function getPersonaIcon(persona) {
|
|
|
113904
114525
|
if (p.includes("skeptic")) return /* @__PURE__ */ jsx83(ShieldAlert5, { className: "h-3.5 w-3.5" });
|
|
113905
114526
|
if (p.includes("security")) return /* @__PURE__ */ jsx83(Shield, { className: "h-3.5 w-3.5" });
|
|
113906
114527
|
if (p.includes("auditor") || p.includes("cost") || p.includes("budget")) return /* @__PURE__ */ jsx83(Coins, { className: "h-3.5 w-3.5" });
|
|
113907
|
-
if (p.includes("maintainer") || p.includes("architect")) return /* @__PURE__ */ jsx83(
|
|
114528
|
+
if (p.includes("maintainer") || p.includes("architect")) return /* @__PURE__ */ jsx83(Wrench11, { className: "h-3.5 w-3.5" });
|
|
113908
114529
|
if (p.includes("user") || p.includes("advocate")) return /* @__PURE__ */ jsx83(Users3, { className: "h-3.5 w-3.5" });
|
|
113909
114530
|
return /* @__PURE__ */ jsx83(Award, { className: "h-3.5 w-3.5" });
|
|
113910
114531
|
}
|
|
@@ -114074,7 +114695,7 @@ var CouncilDecisionCard = memo5(function CouncilDecisionCard2({
|
|
|
114074
114695
|
className: "inline-flex items-center gap-1 rounded-full border border-border bg-surface-1/60 hover:bg-surface-1 px-2.5 py-0.5 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer",
|
|
114075
114696
|
title: "Copy Council Summary",
|
|
114076
114697
|
children: [
|
|
114077
|
-
copied ? /* @__PURE__ */ jsx83(
|
|
114698
|
+
copied ? /* @__PURE__ */ jsx83(Check15, { className: "h-3 w-3 text-success" }) : /* @__PURE__ */ jsx83(Copy4, { className: "h-3 w-3" }),
|
|
114078
114699
|
/* @__PURE__ */ jsx83("span", { className: "text-[11px]", children: copied ? "Copied" : "Copy" })
|
|
114079
114700
|
]
|
|
114080
114701
|
}
|
|
@@ -114314,7 +114935,7 @@ var CouncilDecisionCard = memo5(function CouncilDecisionCard2({
|
|
|
114314
114935
|
className: "inline-flex items-center gap-0.5 text-primary hover:underline font-medium cursor-pointer",
|
|
114315
114936
|
children: [
|
|
114316
114937
|
/* @__PURE__ */ jsx83("span", { children: isExpanded ? "Hide" : "Rationale" }),
|
|
114317
|
-
isExpanded ? /* @__PURE__ */ jsx83(
|
|
114938
|
+
isExpanded ? /* @__PURE__ */ jsx83(ChevronDown12, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx83(ChevronRight6, { className: "h-3 w-3" })
|
|
114318
114939
|
]
|
|
114319
114940
|
}
|
|
114320
114941
|
) : null
|
|
@@ -114539,7 +115160,7 @@ function StreamingMarkdown({ text: text4 }) {
|
|
|
114539
115160
|
// src/components/MessageBubble/ToolLedgerCard.tsx
|
|
114540
115161
|
init_i18n();
|
|
114541
115162
|
import {
|
|
114542
|
-
ChevronDown as
|
|
115163
|
+
ChevronDown as ChevronDown14,
|
|
114543
115164
|
ChevronRight as ChevronRight8,
|
|
114544
115165
|
Clock as Clock7,
|
|
114545
115166
|
Download as Download5,
|
|
@@ -114547,124 +115168,6 @@ import {
|
|
|
114547
115168
|
} from "lucide-react";
|
|
114548
115169
|
import { memo as memo8, useState as useState59 } from "react";
|
|
114549
115170
|
|
|
114550
|
-
// src/lib/tool-icon.ts
|
|
114551
|
-
import { getToolIcon, TOOL_ICON_CONFIG } from "@wrongstack/tools/tool-icons";
|
|
114552
|
-
import {
|
|
114553
|
-
Brain as Brain6,
|
|
114554
|
-
ClipboardList as ClipboardList2,
|
|
114555
|
-
Code2 as Code22,
|
|
114556
|
-
Database as Database2,
|
|
114557
|
-
FileEdit as FileEdit2,
|
|
114558
|
-
FileJson as FileJson2,
|
|
114559
|
-
FileText as FileText7,
|
|
114560
|
-
FlaskConical,
|
|
114561
|
-
FolderOpen as FolderOpen4,
|
|
114562
|
-
FolderTree,
|
|
114563
|
-
GitBranch as GitBranch2,
|
|
114564
|
-
GitCompare as GitCompare3,
|
|
114565
|
-
Globe as Globe4,
|
|
114566
|
-
Hammer,
|
|
114567
|
-
Hash as Hash2,
|
|
114568
|
-
ListChecks,
|
|
114569
|
-
ListTodo as ListTodo2,
|
|
114570
|
-
Package as Package2,
|
|
114571
|
-
ScrollText as ScrollText2,
|
|
114572
|
-
Search as Search7,
|
|
114573
|
-
Settings,
|
|
114574
|
-
Shell,
|
|
114575
|
-
Wrench as Wrench11
|
|
114576
|
-
} from "lucide-react";
|
|
114577
|
-
var TOOL_LUCIDE = {
|
|
114578
|
-
file: FileText7,
|
|
114579
|
-
edit: FileEdit2,
|
|
114580
|
-
search: Search7,
|
|
114581
|
-
folder: FolderOpen4,
|
|
114582
|
-
terminal: Shell,
|
|
114583
|
-
web: Globe4,
|
|
114584
|
-
git: GitBranch2,
|
|
114585
|
-
tree: FolderTree,
|
|
114586
|
-
code: Code22,
|
|
114587
|
-
test: FlaskConical,
|
|
114588
|
-
package: Package2,
|
|
114589
|
-
document: ScrollText2,
|
|
114590
|
-
scaffold: Hammer,
|
|
114591
|
-
todo: ListTodo2,
|
|
114592
|
-
plan: ClipboardList2,
|
|
114593
|
-
task: ListChecks,
|
|
114594
|
-
meta: Wrench11,
|
|
114595
|
-
index: Database2,
|
|
114596
|
-
json: FileJson2,
|
|
114597
|
-
diff: GitCompare3,
|
|
114598
|
-
logs: Hash2,
|
|
114599
|
-
settings: Settings,
|
|
114600
|
-
brain: Brain6,
|
|
114601
|
-
fallback: Wrench11
|
|
114602
|
-
};
|
|
114603
|
-
function getToolVisual(name) {
|
|
114604
|
-
const id = getToolIcon(name);
|
|
114605
|
-
return { Icon: TOOL_LUCIDE[id], color: TOOL_ICON_CONFIG[id].color };
|
|
114606
|
-
}
|
|
114607
|
-
var TOOL_CATEGORY_LABELS = {
|
|
114608
|
-
file: "file read/write",
|
|
114609
|
-
edit: "file editing",
|
|
114610
|
-
search: "search & grep",
|
|
114611
|
-
folder: "folder navigation",
|
|
114612
|
-
terminal: "shell commands",
|
|
114613
|
-
web: "web fetch",
|
|
114614
|
-
git: "git operations",
|
|
114615
|
-
tree: "directory tree",
|
|
114616
|
-
code: "code quality",
|
|
114617
|
-
test: "testing",
|
|
114618
|
-
package: "package management",
|
|
114619
|
-
document: "documentation",
|
|
114620
|
-
scaffold: "project scaffolding",
|
|
114621
|
-
todo: "todo tracking",
|
|
114622
|
-
plan: "planning",
|
|
114623
|
-
task: "task management",
|
|
114624
|
-
meta: "tool orchestration",
|
|
114625
|
-
index: "code indexing",
|
|
114626
|
-
json: "JSON data",
|
|
114627
|
-
diff: "diff & patch",
|
|
114628
|
-
logs: "log viewing",
|
|
114629
|
-
settings: "configuration",
|
|
114630
|
-
brain: "memory",
|
|
114631
|
-
fallback: "external tool"
|
|
114632
|
-
};
|
|
114633
|
-
function getToolTooltip(name) {
|
|
114634
|
-
const id = getToolIcon(name);
|
|
114635
|
-
const colorName = hexToColorName(TOOL_ICON_CONFIG[id].color);
|
|
114636
|
-
const category = TOOL_CATEGORY_LABELS[id];
|
|
114637
|
-
return `${category} \u2014 ${colorName}`;
|
|
114638
|
-
}
|
|
114639
|
-
function hexToColorName(hex) {
|
|
114640
|
-
const colors = {
|
|
114641
|
-
"#60a5fa": "blue",
|
|
114642
|
-
"#fbbf24": "amber",
|
|
114643
|
-
"#a78bfa": "violet",
|
|
114644
|
-
"#38bdf8": "sky",
|
|
114645
|
-
"#67e8f9": "cyan-light",
|
|
114646
|
-
"#a3e635": "lime",
|
|
114647
|
-
"#34d399": "emerald",
|
|
114648
|
-
"#22d3ee": "cyan",
|
|
114649
|
-
"#818cf8": "indigo",
|
|
114650
|
-
"#4ade80": "green",
|
|
114651
|
-
"#f472b6": "pink",
|
|
114652
|
-
"#94a3b8": "slate",
|
|
114653
|
-
"#c084fc": "purple",
|
|
114654
|
-
"#facc15": "yellow",
|
|
114655
|
-
"#2dd4bf": "teal",
|
|
114656
|
-
"#5eead4": "teal-light",
|
|
114657
|
-
"#cbd5e1": "slate-light",
|
|
114658
|
-
"#06b6d4": "cyan-dark",
|
|
114659
|
-
"#eab308": "yellow-dark",
|
|
114660
|
-
"#93c5fd": "blue-light",
|
|
114661
|
-
"#a3a3a3": "neutral",
|
|
114662
|
-
"#9ca3af": "gray",
|
|
114663
|
-
"#e879f9": "fuchsia"
|
|
114664
|
-
};
|
|
114665
|
-
return colors[hex] ?? "colored";
|
|
114666
|
-
}
|
|
114667
|
-
|
|
114668
115171
|
// src/lib/tool-summary.ts
|
|
114669
115172
|
import { FALLBACK_HEAD_FIELDS, summarizeToolInput } from "@wrongstack/tools/tool-summary";
|
|
114670
115173
|
|
|
@@ -114675,7 +115178,7 @@ init_DiffView();
|
|
|
114675
115178
|
// src/components/ToolResult.tsx
|
|
114676
115179
|
init_utils();
|
|
114677
115180
|
init_i18n();
|
|
114678
|
-
import { Brain as Brain7, ChevronDown as
|
|
115181
|
+
import { Brain as Brain7, ChevronDown as ChevronDown13, ChevronRight as ChevronRight7, ChevronsDown, ChevronsUp } from "lucide-react";
|
|
114679
115182
|
import { memo as memo7, useMemo as useMemo32, useState as useState57 } from "react";
|
|
114680
115183
|
|
|
114681
115184
|
// src/lib/sage-block.ts
|
|
@@ -114933,7 +115436,7 @@ function JsonResult({
|
|
|
114933
115436
|
className: "w-full flex items-center justify-between px-2 py-1 border-b bg-muted/30 text-[11px] text-muted-foreground hover:text-foreground",
|
|
114934
115437
|
children: [
|
|
114935
115438
|
/* @__PURE__ */ jsxs84("span", { className: "flex items-center gap-1", children: [
|
|
114936
|
-
expanded ? /* @__PURE__ */ jsx90(
|
|
115439
|
+
expanded ? /* @__PURE__ */ jsx90(ChevronDown13, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx90(ChevronRight7, { className: "h-3 w-3" }),
|
|
114937
115440
|
/* @__PURE__ */ jsx90("span", { className: "font-mono", children: t("activity:toolResult.jsonLines", { count: lineCount2 }) })
|
|
114938
115441
|
] }),
|
|
114939
115442
|
/* @__PURE__ */ jsx90("span", { children: expanded ? t("activity:toolResult.collapse") : t("activity:toolResult.expand") })
|
|
@@ -115027,7 +115530,7 @@ var ToolLedgerCard = memo8(function ToolLedgerCard2({
|
|
|
115027
115530
|
}
|
|
115028
115531
|
),
|
|
115029
115532
|
typeof message.toolDurationMs === "number" && /* @__PURE__ */ jsx92("span", { className: "text-[10px]", children: formatToolDuration(message.toolDurationMs) }),
|
|
115030
|
-
status === "running" ? /* @__PURE__ */ jsx92(Loader214, { className: "h-3 w-3 animate-spin text-warning" }) : hasBody ? expanded ? /* @__PURE__ */ jsx92(
|
|
115533
|
+
status === "running" ? /* @__PURE__ */ jsx92(Loader214, { className: "h-3 w-3 animate-spin text-warning" }) : hasBody ? expanded ? /* @__PURE__ */ jsx92(ChevronDown14, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx92(ChevronRight8, { className: "h-3.5 w-3.5" }) : null
|
|
115031
115534
|
] })
|
|
115032
115535
|
]
|
|
115033
115536
|
}
|
|
@@ -115110,6 +115613,9 @@ var MessageBubble = memo9(function MessageBubble2({
|
|
|
115110
115613
|
const isUser = message.role === "user";
|
|
115111
115614
|
const bugHunt = message.bugHunt;
|
|
115112
115615
|
const isBugHunt = !!bugHunt;
|
|
115616
|
+
const perfRun = message.perfRun;
|
|
115617
|
+
const isPerfRun = !!perfRun;
|
|
115618
|
+
const isPromptCard = isBugHunt || isPerfRun;
|
|
115113
115619
|
const isTool = message.role === "tool";
|
|
115114
115620
|
const isThinkingLog = !!message.thinkingLog;
|
|
115115
115621
|
const isSystem = message.role === "system" && !isThinkingLog;
|
|
@@ -115343,6 +115849,22 @@ var MessageBubble = memo9(function MessageBubble2({
|
|
|
115343
115849
|
}
|
|
115344
115850
|
)
|
|
115345
115851
|
] })
|
|
115852
|
+
] }) : isPerfRun ? /* @__PURE__ */ jsxs87("div", { className: "min-w-[15rem]", children: [
|
|
115853
|
+
/* @__PURE__ */ jsxs87("div", { className: "flex items-center gap-2 text-sm font-semibold text-primary", children: [
|
|
115854
|
+
/* @__PURE__ */ jsx93(Gauge4, { className: "h-4 w-4" }),
|
|
115855
|
+
/* @__PURE__ */ jsx93("span", { children: PERF_RUN_MODE_LABELS[perfRun.mode] })
|
|
115856
|
+
] }),
|
|
115857
|
+
/* @__PURE__ */ jsxs87("div", { className: "mt-2 flex flex-wrap gap-2 text-xs", children: [
|
|
115858
|
+
/* @__PURE__ */ jsx93(
|
|
115859
|
+
"span",
|
|
115860
|
+
{
|
|
115861
|
+
className: "max-w-full truncate rounded-full border border-border bg-background/60 px-2 py-1",
|
|
115862
|
+
title: perfRun.scope || "Whole project",
|
|
115863
|
+
children: perfRun.scope ? `${perfRun.scope} and below` : "Whole project"
|
|
115864
|
+
}
|
|
115865
|
+
),
|
|
115866
|
+
perfRun.metric && /* @__PURE__ */ jsx93("span", { className: "rounded-full border border-primary/25 bg-primary/10 px-2 py-1", children: PERF_RUN_METRIC_LABELS[perfRun.metric] })
|
|
115867
|
+
] })
|
|
115346
115868
|
] }) : editing && isUser ? /* @__PURE__ */ jsxs87("div", { className: "flex flex-col gap-2 min-w-[280px]", children: [
|
|
115347
115869
|
/* @__PURE__ */ jsx93(
|
|
115348
115870
|
"textarea",
|
|
@@ -115408,7 +115930,7 @@ var MessageBubble = memo9(function MessageBubble2({
|
|
|
115408
115930
|
dur: durationLabel,
|
|
115409
115931
|
lines: t("activity:message.linesSuffix", { count: lineCount2 })
|
|
115410
115932
|
}) }),
|
|
115411
|
-
/* @__PURE__ */ jsx93("span", { className: "ml-auto text-muted-foreground/60", children: thinkingExpanded ? /* @__PURE__ */ jsx93(
|
|
115933
|
+
/* @__PURE__ */ jsx93("span", { className: "ml-auto text-muted-foreground/60", children: thinkingExpanded ? /* @__PURE__ */ jsx93(ChevronDown15, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx93(ChevronRight9, { className: "h-3.5 w-3.5" }) })
|
|
115412
115934
|
]
|
|
115413
115935
|
}
|
|
115414
115936
|
),
|
|
@@ -115569,7 +116091,7 @@ var MessageBubble = memo9(function MessageBubble2({
|
|
|
115569
116091
|
}
|
|
115570
116092
|
);
|
|
115571
116093
|
})(),
|
|
115572
|
-
!isTool && !
|
|
116094
|
+
!isTool && !isPromptCard && message.content && !message.streaming && /* @__PURE__ */ jsx93(
|
|
115573
116095
|
CopyButton,
|
|
115574
116096
|
{
|
|
115575
116097
|
text: message.content,
|
|
@@ -115593,7 +116115,7 @@ var MessageBubble = memo9(function MessageBubble2({
|
|
|
115593
116115
|
]
|
|
115594
116116
|
}
|
|
115595
116117
|
),
|
|
115596
|
-
isUser && !
|
|
116118
|
+
isUser && !isPromptCard && !editing && !isLoading && /* @__PURE__ */ jsxs87(Fragment27, { children: [
|
|
115597
116119
|
message.status === "failed" && /* @__PURE__ */ jsxs87(
|
|
115598
116120
|
"button",
|
|
115599
116121
|
{
|
|
@@ -115665,7 +116187,7 @@ var MessageBubble = memo9(function MessageBubble2({
|
|
|
115665
116187
|
init_utils();
|
|
115666
116188
|
init_i18n();
|
|
115667
116189
|
import { expectDefined as expectDefined11 } from "@wrongstack/core/utils/expect-defined";
|
|
115668
|
-
import { CheckCircle2 as CheckCircle211, ChevronDown as
|
|
116190
|
+
import { CheckCircle2 as CheckCircle211, ChevronDown as ChevronDown16, ChevronRight as ChevronRight10, Loader2 as Loader215, Terminal as Terminal6, XCircle as XCircle4 } from "lucide-react";
|
|
115669
116191
|
import { memo as memo10, useState as useState61 } from "react";
|
|
115670
116192
|
import { jsx as jsx94, jsxs as jsxs88 } from "react/jsx-runtime";
|
|
115671
116193
|
function formatDuration(ms) {
|
|
@@ -115705,7 +116227,7 @@ var ToolGroup = memo10(function ToolGroup2({
|
|
|
115705
116227
|
"border border-border/40 bg-muted/30"
|
|
115706
116228
|
),
|
|
115707
116229
|
children: [
|
|
115708
|
-
open ? /* @__PURE__ */ jsx94(
|
|
116230
|
+
open ? /* @__PURE__ */ jsx94(ChevronDown16, { className: "h-3.5 w-3.5 text-muted-foreground" }) : /* @__PURE__ */ jsx94(ChevronRight10, { className: "h-3.5 w-3.5 text-muted-foreground" }),
|
|
115709
116231
|
/* @__PURE__ */ jsx94(Terminal6, { className: "h-3.5 w-3.5 text-muted-foreground" }),
|
|
115710
116232
|
/* @__PURE__ */ jsx94("span", { className: "font-mono text-xs", children: t("activity:toolGroup.toolCalls", { count: tools.length }) }),
|
|
115711
116233
|
running > 0 ? /* @__PURE__ */ jsx94(Loader215, { className: "h-3 w-3 animate-spin text-warning" }) : errored > 0 ? /* @__PURE__ */ jsx94(XCircle4, { className: "h-3 w-3 text-destructive" }) : /* @__PURE__ */ jsx94(CheckCircle211, { className: "h-3 w-3 text-success" }),
|
|
@@ -115900,12 +116422,12 @@ import {
|
|
|
115900
116422
|
AlertCircle as AlertCircle2,
|
|
115901
116423
|
Bot as Bot11,
|
|
115902
116424
|
Brain as Brain9,
|
|
115903
|
-
Check as
|
|
116425
|
+
Check as Check17,
|
|
115904
116426
|
CircleDot as CircleDot4,
|
|
115905
116427
|
Info as Info4,
|
|
115906
116428
|
Maximize2 as Maximize22,
|
|
115907
116429
|
Wrench as Wrench12,
|
|
115908
|
-
X as
|
|
116430
|
+
X as X17
|
|
115909
116431
|
} from "lucide-react";
|
|
115910
116432
|
import { memo as memo13, useEffect as useEffect63, useRef as useRef30, useState as useState62 } from "react";
|
|
115911
116433
|
import { Fragment as Fragment28, jsx as jsx97, jsxs as jsxs91 } from "react/jsx-runtime";
|
|
@@ -115960,7 +116482,7 @@ var TranscriptRow = memo13(function TranscriptRow2({ entry }) {
|
|
|
115960
116482
|
if (entry.kind === "tool_use" || entry.kind === "tool_result") {
|
|
115961
116483
|
const isUse = entry.kind === "tool_use";
|
|
115962
116484
|
const ok = entry.toolOk !== false;
|
|
115963
|
-
const Icon3 = isUse ? Wrench12 : ok ?
|
|
116485
|
+
const Icon3 = isUse ? Wrench12 : ok ? Check17 : X17;
|
|
115964
116486
|
return /* @__PURE__ */ jsxs91(
|
|
115965
116487
|
"div",
|
|
115966
116488
|
{
|
|
@@ -116095,7 +116617,7 @@ function SubagentTranscriptView({ agentId }) {
|
|
|
116095
116617
|
"aria-label": t("activity:transcript.returnToLeader"),
|
|
116096
116618
|
className: "ml-0.5 inline-flex shrink-0 items-center gap-0.5 rounded bg-primary/15 px-1.5 py-0.5 text-[10px] font-medium text-primary transition-colors hover:bg-primary/25",
|
|
116097
116619
|
children: [
|
|
116098
|
-
/* @__PURE__ */ jsx97(
|
|
116620
|
+
/* @__PURE__ */ jsx97(X17, { className: "h-3 w-3" }),
|
|
116099
116621
|
t("activity:transcript.returnToLeader")
|
|
116100
116622
|
]
|
|
116101
116623
|
}
|
|
@@ -116906,7 +117428,7 @@ function ChatView() {
|
|
|
116906
117428
|
onClick: () => state.setInputCollapsed(true),
|
|
116907
117429
|
className: "mb-1 flex w-full items-center gap-1.5 rounded px-2 py-0.5 text-[10px] text-muted-foreground/50 hover:text-muted-foreground/80 transition-colors",
|
|
116908
117430
|
children: [
|
|
116909
|
-
/* @__PURE__ */ jsx100(
|
|
117431
|
+
/* @__PURE__ */ jsx100(ChevronDown17, { className: "h-3 w-3" }),
|
|
116910
117432
|
/* @__PURE__ */ jsx100("span", { children: t("chat:input.collapseInput", "Collapse") })
|
|
116911
117433
|
]
|
|
116912
117434
|
}
|
|
@@ -116962,7 +117484,7 @@ import {
|
|
|
116962
117484
|
BarChart3 as BarChart33,
|
|
116963
117485
|
Cpu as Cpu8,
|
|
116964
117486
|
FileText as FileText8,
|
|
116965
|
-
Gauge as
|
|
117487
|
+
Gauge as Gauge5,
|
|
116966
117488
|
HardDrive,
|
|
116967
117489
|
Layers as Layers4,
|
|
116968
117490
|
MessageSquare as MessageSquare7,
|
|
@@ -117419,7 +117941,7 @@ function PressureSection({
|
|
|
117419
117941
|
const { t } = useTranslation();
|
|
117420
117942
|
const zone = zoneFor(pct);
|
|
117421
117943
|
const accent = pct > 85 ? "danger" : pct > 60 ? "warning" : "success";
|
|
117422
|
-
return /* @__PURE__ */ jsxs97(SectionCard, { title: t("activity:ctxDash.contextPressure"), icon:
|
|
117944
|
+
return /* @__PURE__ */ jsxs97(SectionCard, { title: t("activity:ctxDash.contextPressure"), icon: Gauge5, accent, children: [
|
|
117423
117945
|
/* @__PURE__ */ jsxs97("div", { className: "flex flex-col sm:flex-row items-center gap-4", children: [
|
|
117424
117946
|
/* @__PURE__ */ jsx103(
|
|
117425
117947
|
"div",
|
|
@@ -118018,7 +118540,7 @@ import {
|
|
|
118018
118540
|
Radio,
|
|
118019
118541
|
Settings2,
|
|
118020
118542
|
Shield as Shield4,
|
|
118021
|
-
X as
|
|
118543
|
+
X as X26,
|
|
118022
118544
|
Zap as Zap20
|
|
118023
118545
|
} from "lucide-react";
|
|
118024
118546
|
import { useCallback as useCallback45, useEffect as useEffect84, useRef as useRef43, useState as useState87 } from "react";
|
|
@@ -119137,7 +119659,7 @@ init_button();
|
|
|
119137
119659
|
import {
|
|
119138
119660
|
AlertTriangle as AlertTriangle14,
|
|
119139
119661
|
Ban,
|
|
119140
|
-
ChevronDown as
|
|
119662
|
+
ChevronDown as ChevronDown18,
|
|
119141
119663
|
ChevronRight as ChevronRight11,
|
|
119142
119664
|
Clock as Clock8,
|
|
119143
119665
|
RefreshCw as RefreshCw12,
|
|
@@ -119215,7 +119737,7 @@ function ModelRow({
|
|
|
119215
119737
|
onClick: () => setExpanded((e) => !e),
|
|
119216
119738
|
className: "flex w-full items-center gap-2 px-3 py-2 text-left hover:bg-muted/50 transition-colors rounded-md",
|
|
119217
119739
|
children: [
|
|
119218
|
-
/* @__PURE__ */ jsx112("span", { className: "shrink-0 text-muted-foreground", children: expanded ? /* @__PURE__ */ jsx112(
|
|
119740
|
+
/* @__PURE__ */ jsx112("span", { className: "shrink-0 text-muted-foreground", children: expanded ? /* @__PURE__ */ jsx112(ChevronDown18, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx112(ChevronRight11, { className: "h-3.5 w-3.5" }) }),
|
|
119219
119741
|
/* @__PURE__ */ jsx112(
|
|
119220
119742
|
"span",
|
|
119221
119743
|
{
|
|
@@ -121175,8 +121697,8 @@ init_dialog();
|
|
|
121175
121697
|
init_input();
|
|
121176
121698
|
init_tabs();
|
|
121177
121699
|
import {
|
|
121178
|
-
Check as
|
|
121179
|
-
ChevronDown as
|
|
121700
|
+
Check as Check19,
|
|
121701
|
+
ChevronDown as ChevronDown20,
|
|
121180
121702
|
ChevronRight as ChevronRight12,
|
|
121181
121703
|
Edit3 as Edit32,
|
|
121182
121704
|
Loader2 as Loader216,
|
|
@@ -121370,7 +121892,7 @@ function ServerCard({
|
|
|
121370
121892
|
className: "flex min-w-0 flex-1 items-center gap-2 text-left",
|
|
121371
121893
|
onClick: () => setExpanded(!expanded),
|
|
121372
121894
|
children: [
|
|
121373
|
-
expanded ? /* @__PURE__ */ jsx124(
|
|
121895
|
+
expanded ? /* @__PURE__ */ jsx124(ChevronDown20, { className: "h-4 w-4 text-muted-foreground" }) : /* @__PURE__ */ jsx124(ChevronRight12, { className: "h-4 w-4 text-muted-foreground" }),
|
|
121374
121896
|
/* @__PURE__ */ jsx124(StatusDot, { status: server.status }),
|
|
121375
121897
|
/* @__PURE__ */ jsx124("span", { className: "min-w-0 truncate font-medium", children: server.name }),
|
|
121376
121898
|
/* @__PURE__ */ jsx124("span", { className: "rounded bg-muted/60 px-1.5 py-0.5 text-xs text-muted-foreground", children: server.transport }),
|
|
@@ -121725,7 +122247,7 @@ function OfficialServerCard({
|
|
|
121725
122247
|
server.requiresEnvVars && server.requiresEnvVars.length > 0 && /* @__PURE__ */ jsx124("p", { className: "mt-1 text-xs text-warning", children: t("settings:mcp.requires", { vars: server.requiresEnvVars.join(", ") }) })
|
|
121726
122248
|
] }),
|
|
121727
122249
|
/* @__PURE__ */ jsx124("div", { className: "shrink-0", children: isAdded ? /* @__PURE__ */ jsxs117(Button, { variant: "ghost", size: "sm", disabled: true, children: [
|
|
121728
|
-
/* @__PURE__ */ jsx124(
|
|
122250
|
+
/* @__PURE__ */ jsx124(Check19, { className: "w-4 h-4 mr-1" }),
|
|
121729
122251
|
t("settings:mcp.added")
|
|
121730
122252
|
] }) : /* @__PURE__ */ jsxs117(Button, { size: "sm", variant: "outline", onClick: onAdd, children: [
|
|
121731
122253
|
/* @__PURE__ */ jsx124(Plus7, { className: "w-4 h-4 mr-1" }),
|
|
@@ -122364,7 +122886,7 @@ function ModelSection({
|
|
|
122364
122886
|
// src/components/SettingsPanel/ModelTiersSection.tsx
|
|
122365
122887
|
init_local_prefs();
|
|
122366
122888
|
init_button();
|
|
122367
|
-
import { Coins as Coins2, Plus as Plus8, X as
|
|
122889
|
+
import { Coins as Coins2, Plus as Plus8, X as X20 } from "lucide-react";
|
|
122368
122890
|
import { useCallback as useCallback32, useState as useState75 } from "react";
|
|
122369
122891
|
import { jsx as jsx129, jsxs as jsxs121 } from "react/jsx-runtime";
|
|
122370
122892
|
var LEADER_MODES = [
|
|
@@ -122481,7 +123003,7 @@ function ModelTiersSection({ syncPref }) {
|
|
|
122481
123003
|
className: "text-muted-foreground hover:text-destructive",
|
|
122482
123004
|
title: "Remove level",
|
|
122483
123005
|
"data-testid": `model-tier-remove-${id}`,
|
|
122484
|
-
children: /* @__PURE__ */ jsx129(
|
|
123006
|
+
children: /* @__PURE__ */ jsx129(X20, { className: "h-3 w-3" })
|
|
122485
123007
|
}
|
|
122486
123008
|
)
|
|
122487
123009
|
] }),
|
|
@@ -122589,7 +123111,7 @@ function ModelTiersSection({ syncPref }) {
|
|
|
122589
123111
|
onClick: () => removeRoute(key),
|
|
122590
123112
|
className: "text-muted-foreground hover:text-destructive",
|
|
122591
123113
|
title: "Remove rule",
|
|
122592
|
-
children: /* @__PURE__ */ jsx129(
|
|
123114
|
+
children: /* @__PURE__ */ jsx129(X20, { className: "h-3 w-3" })
|
|
122593
123115
|
}
|
|
122594
123116
|
)
|
|
122595
123117
|
]
|
|
@@ -122745,7 +123267,7 @@ import { useCallback as useCallback41, useEffect as useEffect81, useMemo as useM
|
|
|
122745
123267
|
// src/components/ui/api-key-display.tsx
|
|
122746
123268
|
init_utils();
|
|
122747
123269
|
init_i18n();
|
|
122748
|
-
import { Check as
|
|
123270
|
+
import { Check as Check21, Copy as Copy6 } from "lucide-react";
|
|
122749
123271
|
import { useCallback as useCallback35, useState as useState77 } from "react";
|
|
122750
123272
|
import { jsx as jsx131, jsxs as jsxs123 } from "react/jsx-runtime";
|
|
122751
123273
|
function ApiKeyDisplay({ maskedKey, className }) {
|
|
@@ -122774,7 +123296,7 @@ function ApiKeyDisplay({ maskedKey, className }) {
|
|
|
122774
123296
|
className: "shrink-0 rounded p-0.5 text-muted-foreground/50 opacity-0 transition-all hover:text-foreground group-hover:opacity-100 focus:opacity-100",
|
|
122775
123297
|
title: copied ? "Copied" : "Copy key preview",
|
|
122776
123298
|
"aria-label": t("activity:apikeydisplay.copyApiKeyToClipboard"),
|
|
122777
|
-
children: copied ? /* @__PURE__ */ jsx131(
|
|
123299
|
+
children: copied ? /* @__PURE__ */ jsx131(Check21, { className: "h-3 w-3 text-success" }) : /* @__PURE__ */ jsx131(Copy6, { className: "h-3 w-3" })
|
|
122778
123300
|
}
|
|
122779
123301
|
)
|
|
122780
123302
|
]
|
|
@@ -123288,7 +123810,7 @@ init_Toaster();
|
|
|
123288
123810
|
init_button();
|
|
123289
123811
|
import {
|
|
123290
123812
|
Brain as Brain11,
|
|
123291
|
-
Check as
|
|
123813
|
+
Check as Check23,
|
|
123292
123814
|
Clock as Clock9,
|
|
123293
123815
|
DollarSign,
|
|
123294
123816
|
Eye as Eye2,
|
|
@@ -123301,13 +123823,13 @@ import {
|
|
|
123301
123823
|
Trash2 as Trash212,
|
|
123302
123824
|
Video,
|
|
123303
123825
|
Wrench as Wrench14,
|
|
123304
|
-
X as
|
|
123826
|
+
X as X24
|
|
123305
123827
|
} from "lucide-react";
|
|
123306
123828
|
import { Fragment as Fragment37, useCallback as useCallback39, useMemo as useMemo39, useState as useState81 } from "react";
|
|
123307
123829
|
|
|
123308
123830
|
// src/components/SettingsPanel/ModelCatalogPicker.tsx
|
|
123309
123831
|
init_i18n();
|
|
123310
|
-
import { Loader2 as Loader220, Search as Search11, X as
|
|
123832
|
+
import { Loader2 as Loader220, Search as Search11, X as X22 } from "lucide-react";
|
|
123311
123833
|
import { useCallback as useCallback37, useEffect as useEffect79, useRef as useRef42, useState as useState79 } from "react";
|
|
123312
123834
|
import { jsx as jsx134, jsxs as jsxs126 } from "react/jsx-runtime";
|
|
123313
123835
|
function ModelCatalogPicker({ ws, onSelect, onClose }) {
|
|
@@ -123394,7 +123916,7 @@ function ModelCatalogPicker({ ws, onSelect, onClose }) {
|
|
|
123394
123916
|
type: "button",
|
|
123395
123917
|
onClick: onClose,
|
|
123396
123918
|
className: "text-muted-foreground hover:text-foreground",
|
|
123397
|
-
children: /* @__PURE__ */ jsx134(
|
|
123919
|
+
children: /* @__PURE__ */ jsx134(X22, { className: "h-4 w-4" })
|
|
123398
123920
|
}
|
|
123399
123921
|
)
|
|
123400
123922
|
] }),
|
|
@@ -123450,7 +123972,7 @@ init_i18n();
|
|
|
123450
123972
|
init_utils();
|
|
123451
123973
|
init_button();
|
|
123452
123974
|
import { MODELS_DEV_MODALITY_VALUES, modelsDevModelSchema } from "@wrongstack/core/models";
|
|
123453
|
-
import { Check as
|
|
123975
|
+
import { Check as Check22, X as X23 } from "lucide-react";
|
|
123454
123976
|
import { useCallback as useCallback38, useState as useState80 } from "react";
|
|
123455
123977
|
import { Fragment as Fragment36, jsx as jsx135, jsxs as jsxs127 } from "react/jsx-runtime";
|
|
123456
123978
|
function toFormState(modelId, md) {
|
|
@@ -123878,7 +124400,7 @@ function ModelSchemaEditor({
|
|
|
123878
124400
|
onClick: onCancel,
|
|
123879
124401
|
className: "h-8 gap-1.5 text-xs",
|
|
123880
124402
|
children: [
|
|
123881
|
-
/* @__PURE__ */ jsx135(
|
|
124403
|
+
/* @__PURE__ */ jsx135(X23, { className: "h-3.5 w-3.5" }),
|
|
123882
124404
|
t("common:action.cancel")
|
|
123883
124405
|
]
|
|
123884
124406
|
}
|
|
@@ -123891,7 +124413,7 @@ function ModelSchemaEditor({
|
|
|
123891
124413
|
onClick: showRaw ? handleRawSave : handleFormSave,
|
|
123892
124414
|
className: "h-8 gap-1.5 text-xs",
|
|
123893
124415
|
children: [
|
|
123894
|
-
/* @__PURE__ */ jsx135(
|
|
124416
|
+
/* @__PURE__ */ jsx135(Check22, { className: "h-3.5 w-3.5" }),
|
|
123895
124417
|
t("common:action.save")
|
|
123896
124418
|
]
|
|
123897
124419
|
}
|
|
@@ -124143,7 +124665,7 @@ function ModelListEditor({
|
|
|
124143
124665
|
"aria-label": t("settings:providerModels.usingModel", {
|
|
124144
124666
|
model: row.modelId
|
|
124145
124667
|
}),
|
|
124146
|
-
children: /* @__PURE__ */ jsx136(
|
|
124668
|
+
children: /* @__PURE__ */ jsx136(Check23, { className: "h-3.5 w-3.5" })
|
|
124147
124669
|
}
|
|
124148
124670
|
) : /* @__PURE__ */ jsx136(
|
|
124149
124671
|
"button",
|
|
@@ -124157,7 +124679,7 @@ function ModelListEditor({
|
|
|
124157
124679
|
title: t("settings:providerModels.useModel", {
|
|
124158
124680
|
model: row.modelId
|
|
124159
124681
|
}),
|
|
124160
|
-
children: /* @__PURE__ */ jsx136(
|
|
124682
|
+
children: /* @__PURE__ */ jsx136(Check23, { className: "h-3.5 w-3.5" })
|
|
124161
124683
|
}
|
|
124162
124684
|
)),
|
|
124163
124685
|
/* @__PURE__ */ jsx136(
|
|
@@ -124235,7 +124757,7 @@ function ModelListEditor({
|
|
|
124235
124757
|
type: "button",
|
|
124236
124758
|
onClick: () => setShowCustomEditor(false),
|
|
124237
124759
|
className: "text-muted-foreground hover:text-foreground",
|
|
124238
|
-
children: /* @__PURE__ */ jsx136(
|
|
124760
|
+
children: /* @__PURE__ */ jsx136(X24, { className: "h-4 w-4" })
|
|
124239
124761
|
}
|
|
124240
124762
|
)
|
|
124241
124763
|
] }),
|
|
@@ -125516,7 +126038,7 @@ init_useWebSocket();
|
|
|
125516
126038
|
init_i18n();
|
|
125517
126039
|
init_utils();
|
|
125518
126040
|
init_stores();
|
|
125519
|
-
import { ArrowDown as ArrowDown4, ArrowUp as ArrowUp4, Brain as Brain12, Loader2 as Loader223, Plus as Plus13, X as
|
|
126041
|
+
import { ArrowDown as ArrowDown4, ArrowUp as ArrowUp4, Brain as Brain12, Loader2 as Loader223, Plus as Plus13, X as X25 } from "lucide-react";
|
|
125520
126042
|
import { useCallback as useCallback43, useEffect as useEffect82, useMemo as useMemo42, useState as useState85 } from "react";
|
|
125521
126043
|
init_badge();
|
|
125522
126044
|
init_button();
|
|
@@ -126215,7 +126737,7 @@ function BrainSection() {
|
|
|
126215
126737
|
const next = config.models.map(entryLabel).filter((_, j) => j !== i);
|
|
126216
126738
|
sendPatch({ models: next.length > 0 ? next : null });
|
|
126217
126739
|
},
|
|
126218
|
-
children: /* @__PURE__ */ jsx141(
|
|
126740
|
+
children: /* @__PURE__ */ jsx141(X25, { className: "h-3 w-3" })
|
|
126219
126741
|
}
|
|
126220
126742
|
)
|
|
126221
126743
|
]
|
|
@@ -126317,7 +126839,7 @@ function BrainSection() {
|
|
|
126317
126839
|
className: "h-6 w-6 p-0 text-destructive",
|
|
126318
126840
|
disabled: busy,
|
|
126319
126841
|
onClick: () => setVoters(voters.filter((_, j) => j !== i)),
|
|
126320
|
-
children: /* @__PURE__ */ jsx141(
|
|
126842
|
+
children: /* @__PURE__ */ jsx141(X25, { className: "h-3 w-3" })
|
|
126321
126843
|
}
|
|
126322
126844
|
)
|
|
126323
126845
|
]
|
|
@@ -126607,7 +127129,7 @@ init_i18n();
|
|
|
126607
127129
|
init_badge();
|
|
126608
127130
|
init_button();
|
|
126609
127131
|
init_input();
|
|
126610
|
-
import { ChevronDown as
|
|
127132
|
+
import { ChevronDown as ChevronDown21, Loader2 as Loader224, Power, PowerOff, Search as Search13, Wrench as Wrench15 } from "lucide-react";
|
|
126611
127133
|
import { useCallback as useCallback44, useEffect as useEffect83, useState as useState86 } from "react";
|
|
126612
127134
|
import { jsx as jsx143, jsxs as jsxs134 } from "react/jsx-runtime";
|
|
126613
127135
|
function StatusDot2({ disabled, direct }) {
|
|
@@ -126659,7 +127181,7 @@ function ToolRow2({
|
|
|
126659
127181
|
onClick: () => setExpanded(!expanded),
|
|
126660
127182
|
"aria-label": expanded ? "Collapse" : "Expand",
|
|
126661
127183
|
children: /* @__PURE__ */ jsx143(
|
|
126662
|
-
|
|
127184
|
+
ChevronDown21,
|
|
126663
127185
|
{
|
|
126664
127186
|
className: `h-4 w-4 transition-transform ${expanded ? "rotate-180" : ""}`
|
|
126665
127187
|
}
|
|
@@ -127106,7 +127628,7 @@ function SettingsPanel() {
|
|
|
127106
127628
|
/* @__PURE__ */ jsx145("p", { className: "mt-0.5 text-[11px] text-muted-foreground", children: provider && activeModel ? `${provider} / ${activeModel}` : t("settings:subtitle") })
|
|
127107
127629
|
] })
|
|
127108
127630
|
] }),
|
|
127109
|
-
/* @__PURE__ */ jsx145(Button, { variant: "ghost", size: "icon", onClick: () => showPanel("chat"), children: /* @__PURE__ */ jsx145(
|
|
127631
|
+
/* @__PURE__ */ jsx145(Button, { variant: "ghost", size: "icon", onClick: () => showPanel("chat"), children: /* @__PURE__ */ jsx145(X26, { className: "h-4 w-4" }) }),
|
|
127110
127632
|
/* @__PURE__ */ jsx145(Button, { variant: "ghost", size: "sm", onClick: () => setResetOpen(true), children: t("settings:resetLabel") })
|
|
127111
127633
|
] }),
|
|
127112
127634
|
/* @__PURE__ */ jsx145(ScrollArea, { className: "min-h-0 flex-1", ref: scrollAreaRef, children: /* @__PURE__ */ jsx145("div", { className: "mx-auto max-w-7xl p-4 sm:p-6", children: /* @__PURE__ */ jsxs136(
|
|
@@ -127245,7 +127767,7 @@ import {
|
|
|
127245
127767
|
SlidersHorizontal as SlidersHorizontal2,
|
|
127246
127768
|
Target as Target2,
|
|
127247
127769
|
Users as Users6,
|
|
127248
|
-
X as
|
|
127770
|
+
X as X27
|
|
127249
127771
|
} from "lucide-react";
|
|
127250
127772
|
import { useEffect as useEffect92, useMemo as useMemo44, useState as useState95 } from "react";
|
|
127251
127773
|
|
|
@@ -127762,7 +128284,7 @@ init_agent_session();
|
|
|
127762
128284
|
init_agent_status();
|
|
127763
128285
|
init_utils();
|
|
127764
128286
|
init_stores();
|
|
127765
|
-
import { Bot as Bot15, Check as
|
|
128287
|
+
import { Bot as Bot15, Check as Check24, Clock as Clock10, Copy as Copy7, Cpu as Cpu15, MessageSquare as MessageSquare8, Wrench as Wrench16, XCircle as XCircle7 } from "lucide-react";
|
|
127766
128288
|
import { useCallback as useCallback47, useMemo as useMemo43, useState as useState89 } from "react";
|
|
127767
128289
|
import { jsx as jsx147, jsxs as jsxs138 } from "react/jsx-runtime";
|
|
127768
128290
|
var STATUS_CONFIG = {
|
|
@@ -127928,7 +128450,7 @@ function FleetPanel({ className }) {
|
|
|
127928
128450
|
className: "inline-flex items-center gap-1 text-[10px] text-muted-foreground hover:text-foreground hover:bg-muted px-1.5 py-0.5 rounded transition-colors cursor-pointer",
|
|
127929
128451
|
title: t("activity:fleet.copyOutput"),
|
|
127930
128452
|
children: [
|
|
127931
|
-
copiedId === agent.id ? /* @__PURE__ */ jsx147(
|
|
128453
|
+
copiedId === agent.id ? /* @__PURE__ */ jsx147(Check24, { className: "h-3 w-3 text-success" }) : /* @__PURE__ */ jsx147(Copy7, { className: "h-3 w-3" }),
|
|
127932
128454
|
/* @__PURE__ */ jsx147("span", { children: copiedId === agent.id ? t("common:action.copied") : t("common:action.copy") })
|
|
127933
128455
|
]
|
|
127934
128456
|
}
|
|
@@ -127949,7 +128471,7 @@ init_i18n();
|
|
|
127949
128471
|
init_ws_client();
|
|
127950
128472
|
import {
|
|
127951
128473
|
CheckCircle2 as CheckCircle216,
|
|
127952
|
-
ChevronDown as
|
|
128474
|
+
ChevronDown as ChevronDown22,
|
|
127953
128475
|
ChevronRight as ChevronRight13,
|
|
127954
128476
|
Circle as Circle4,
|
|
127955
128477
|
Clock as Clock11,
|
|
@@ -128037,7 +128559,7 @@ function GoalPanel({ goal, className }) {
|
|
|
128037
128559
|
children: t(`activity:goal.${stateCfg.labelKey}`)
|
|
128038
128560
|
}
|
|
128039
128561
|
),
|
|
128040
|
-
collapsed ? /* @__PURE__ */ jsx148(ChevronRight13, { className: "h-3.5 w-3.5 text-muted-foreground shrink-0" }) : /* @__PURE__ */ jsx148(
|
|
128562
|
+
collapsed ? /* @__PURE__ */ jsx148(ChevronRight13, { className: "h-3.5 w-3.5 text-muted-foreground shrink-0" }) : /* @__PURE__ */ jsx148(ChevronDown22, { className: "h-3.5 w-3.5 text-muted-foreground shrink-0" })
|
|
128041
128563
|
]
|
|
128042
128564
|
}
|
|
128043
128565
|
),
|
|
@@ -129101,7 +129623,7 @@ function WorkspaceDockInspector({ sessionId }) {
|
|
|
129101
129623
|
className: "absolute right-3 top-3 inline-flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
|
|
129102
129624
|
"aria-label": t("activity:dock.closeWorkspaceInspector"),
|
|
129103
129625
|
title: t("activity:dock.closeWorkspaceInspector"),
|
|
129104
|
-
children: /* @__PURE__ */ jsx156(
|
|
129626
|
+
children: /* @__PURE__ */ jsx156(X27, { className: "h-4 w-4" })
|
|
129105
129627
|
}
|
|
129106
129628
|
)
|
|
129107
129629
|
] }),
|
|
@@ -129383,7 +129905,7 @@ var TerminalPanelLazy = lazy5(
|
|
|
129383
129905
|
// src/components/WorkbenchTopbar.tsx
|
|
129384
129906
|
import {
|
|
129385
129907
|
Bot as Bot33,
|
|
129386
|
-
Check as
|
|
129908
|
+
Check as Check50,
|
|
129387
129909
|
Command as Command2,
|
|
129388
129910
|
Menu,
|
|
129389
129911
|
Moon as Moon4,
|
|
@@ -129578,12 +130100,12 @@ import {
|
|
|
129578
130100
|
Bell as Bell4,
|
|
129579
130101
|
BellOff,
|
|
129580
130102
|
BellRing,
|
|
129581
|
-
Check as
|
|
130103
|
+
Check as Check49,
|
|
129582
130104
|
CheckCheck as CheckCheck2,
|
|
129583
130105
|
Clock as Clock24,
|
|
129584
130106
|
Info as Info6,
|
|
129585
130107
|
Trash2 as Trash230,
|
|
129586
|
-
X as
|
|
130108
|
+
X as X63,
|
|
129587
130109
|
XCircle as XCircle16
|
|
129588
130110
|
} from "lucide-react";
|
|
129589
130111
|
import { useCallback as useCallback87, useMemo as useMemo86, useState as useState163 } from "react";
|
|
@@ -129610,7 +130132,7 @@ function formatRelativeTime(timestamp2, t) {
|
|
|
129610
130132
|
}
|
|
129611
130133
|
function NotificationIcon({ variant }) {
|
|
129612
130134
|
if (variant === "success") {
|
|
129613
|
-
return /* @__PURE__ */ jsx286(
|
|
130135
|
+
return /* @__PURE__ */ jsx286(Check49, { className: "h-4 w-4 text-success shrink-0" });
|
|
129614
130136
|
}
|
|
129615
130137
|
if (variant === "error") {
|
|
129616
130138
|
return /* @__PURE__ */ jsx286(XCircle16, { className: "h-4 w-4 text-destructive shrink-0" });
|
|
@@ -129692,7 +130214,7 @@ function NotificationItem({
|
|
|
129692
130214
|
className: "rounded p-0.5 text-muted-foreground hover:bg-accent hover:text-foreground",
|
|
129693
130215
|
title: t("toasts:menu.markAsRead", { defaultValue: "Mark as read" }),
|
|
129694
130216
|
"aria-label": t("toasts:menu.markAsRead", { defaultValue: "Mark as read" }),
|
|
129695
|
-
children: /* @__PURE__ */ jsx286(
|
|
130217
|
+
children: /* @__PURE__ */ jsx286(Check49, { className: "h-3 w-3" })
|
|
129696
130218
|
}
|
|
129697
130219
|
),
|
|
129698
130220
|
/* @__PURE__ */ jsx286(
|
|
@@ -129706,7 +130228,7 @@ function NotificationItem({
|
|
|
129706
130228
|
className: "rounded p-0.5 text-muted-foreground opacity-60 hover:opacity-100 hover:bg-destructive/10 hover:text-destructive transition-opacity",
|
|
129707
130229
|
title: t("toasts:menu.remove", { defaultValue: "Remove notification" }),
|
|
129708
130230
|
"aria-label": t("toasts:menu.remove", { defaultValue: "Remove notification" }),
|
|
129709
|
-
children: /* @__PURE__ */ jsx286(
|
|
130231
|
+
children: /* @__PURE__ */ jsx286(X63, { className: "h-3 w-3" })
|
|
129710
130232
|
}
|
|
129711
130233
|
),
|
|
129712
130234
|
!item.read && /* @__PURE__ */ jsx286(
|
|
@@ -130190,7 +130712,7 @@ function WorkbenchTopbar({
|
|
|
130190
130712
|
}
|
|
130191
130713
|
),
|
|
130192
130714
|
/* @__PURE__ */ jsx287("span", { className: "flex-1", children: t(option.labelKey) }),
|
|
130193
|
-
palette === option.id ? /* @__PURE__ */ jsx287(
|
|
130715
|
+
palette === option.id ? /* @__PURE__ */ jsx287(Check50, { className: "h-3.5 w-3.5 text-primary", "aria-hidden": true }) : null
|
|
130194
130716
|
]
|
|
130195
130717
|
},
|
|
130196
130718
|
option.id
|