@wrongstack/webui 1.0.19 → 1.0.26
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-udJ14GYq.js +12 -0
- package/dist/assets/{AnalyticsDashboard-DmQd0E0V.js → AnalyticsDashboard-DwF-0cUA.js} +1 -1
- package/dist/assets/AudienceMemoryPanel-DpBGeZv_.js +3 -0
- package/dist/assets/ChangesView-BfM0T_aS.js +3 -0
- package/dist/assets/ChimeraReviewsView-Q_5C4DU1.js +1 -0
- package/dist/assets/ChronicleDashboard-D6LnZzhy.js +1 -0
- package/dist/assets/CodeEditor-DonrWH9u.js +2 -0
- package/dist/assets/CodeMap-Dxtc378S.js +1 -0
- package/dist/assets/{CronJobsPanel-TcZy_W2t.js → CronJobsPanel-Cn2PQO_p.js} +1 -1
- package/dist/assets/{DeadCodeScanPanel-BOD2JEyf.js → DeadCodeScanPanel-Mc5py-kJ.js} +1 -1
- package/dist/assets/{DebugDashboard-DFPNPzQ_.js → DebugDashboard-D0LRcT4J.js} +1 -1
- package/dist/assets/{DesignGalleryView-BXABwAji.js → DesignGalleryView-DAD-wRUc.js} +1 -1
- package/dist/assets/GoalView-CqeSw0tK.js +1 -0
- package/dist/assets/KanbanView-V-bkFftp.js +3 -0
- package/dist/assets/{MailboxDetailView-QyNmt1Gv.js → MailboxDetailView-CTEjap3r.js} +1 -1
- package/dist/assets/{MemoryDrawer-BZsyD1dh.js → MemoryDrawer-RCduY0FV.js} +1 -1
- package/dist/assets/MemoryManager-B-p6-Bic.js +1 -0
- package/dist/assets/{ProcessMonitor-Bz0jZvHJ.js → ProcessMonitor-B9tpPo4r.js} +1 -1
- package/dist/assets/PromptJournalView-DVNqlac9.js +1 -0
- package/dist/assets/ProviderTestView-mmfpnAbZ.js +1 -0
- package/dist/assets/QueuePanel-BB9qozjm.js +1 -0
- package/dist/assets/{RefreshDebugView-_XPrBDq3.js → RefreshDebugView-CCCWzq29.js} +1 -1
- package/dist/assets/{RepositoryHistoryView-Wlnvi5r1.js → RepositoryHistoryView-RQVRkkUU.js} +2 -2
- package/dist/assets/RequirementIntakeView-D_JRhgzW.js +1 -0
- package/dist/assets/{SageTabs-qrBn3VQr.js → SageTabs--k2hQTvl.js} +2 -2
- package/dist/assets/SddFlowGraph-DKrrRXKy.js +1 -0
- package/dist/assets/SddHub-B5XO56oY.js +2 -0
- package/dist/assets/{SessionInspectView-CuRk2DS0.js → SessionInspectView-j3VJwXNi.js} +1 -1
- package/dist/assets/SessionList-CCVHBseu.js +1 -0
- package/dist/assets/{SessionsDashboard-CSkm28Bx.js → SessionsDashboard-DsM7sXQw.js} +1 -1
- package/dist/assets/SetupScreen-DeuR8Y8S.js +1 -0
- package/dist/assets/SkillDetailView-BeZyGIpW.js +3 -0
- package/dist/assets/TechStackView-CpSMRQE0.js +2 -0
- package/dist/assets/TerminalPanel-BVJ5w-5R.js +1 -0
- package/dist/assets/activity-BS2aW_NN.js +10 -0
- package/dist/assets/activity-CR2KFruY.js +10 -0
- package/dist/assets/activity-Cd0qM2Hx.js +10 -0
- package/dist/assets/activity-DyXRoY2s.js +10 -0
- package/dist/assets/activity-bBAOetvE.js +10 -0
- package/dist/assets/activity-fI3Jy_jD.js +10 -0
- package/dist/assets/activity-t6fUmVjo.js +10 -0
- package/dist/assets/{button-BbeB5Qm8.js → button-UuKTnoM-.js} +1 -1
- package/dist/assets/chat-9GLubejR.js +1 -0
- package/dist/assets/chat-B50ssTLh.js +1 -0
- package/dist/assets/chat-CDioiM1L.js +1 -0
- package/dist/assets/chat-Cll_3gXD.js +1 -0
- package/dist/assets/chat-Cqhc6jQa.js +1 -0
- package/dist/assets/chat-DN1MggWt.js +1 -0
- package/dist/assets/chat-fyvZyUZM.js +1 -0
- package/dist/assets/chat-store-uzGtJfDz.js +1 -0
- package/dist/assets/{codemap-activity-store-Ha7XbGgq.js → codemap-activity-store-WjfEZe4_.js} +1 -1
- package/dist/assets/common-Bjl7V12m.js +1 -0
- package/dist/assets/common-BtyQBZBN.js +1 -0
- package/dist/assets/common-D0QL7rwb.js +1 -0
- package/dist/assets/common-DJRPtYAt.js +1 -0
- package/dist/assets/common-DPPTV3yw.js +1 -0
- package/dist/assets/common-DvjdaRhB.js +1 -0
- package/dist/assets/common-opV6EoLd.js +1 -0
- package/dist/assets/config-store-P5_updTQ.js +21 -0
- package/dist/assets/{dialog-b-Ai37sa.js → dialog-BDUaV5gY.js} +1 -1
- package/dist/assets/{empty-state-pfuS5znr.js → empty-state-BzoEa04Q.js} +1 -1
- package/dist/assets/{fonts-DRGbd-AM.js → fonts-C303yVU_.js} +2 -2
- package/dist/assets/i18n-t7rIS4DB.js +3 -0
- package/dist/assets/index-B4ELbNoz.js +181 -0
- package/dist/assets/index-qdrakcnP.css +1 -0
- package/dist/assets/{input-BA6D2L3K.js → input-DMnC2O7-.js} +1 -1
- package/dist/assets/{mailbox-store-ZQO_Rv6E.js → mailbox-store-DyOOYbni.js} +1 -1
- package/dist/assets/roster-ws-szSqUkqP.js +1 -0
- package/dist/assets/settings-BMHZcBqe.js +1 -0
- package/dist/assets/settings-BQ5J8WXE.js +1 -0
- package/dist/assets/settings-BfNJfO4z.js +1 -0
- package/dist/assets/settings-ClDQ01ie.js +1 -0
- package/dist/assets/settings-DD31lC4f.js +1 -0
- package/dist/assets/settings-Da3EIcna.js +1 -0
- package/dist/assets/settings-Dl_QM2QZ.js +1 -0
- package/dist/assets/{shared-BFJvAYzX.js → shared-CLNEiW00.js} +1 -1
- package/dist/assets/stores-Cx52UOxM.js +7 -0
- package/dist/assets/toasts-3tM1krOo.js +1 -0
- package/dist/assets/toasts-BrHW33qA.js +1 -0
- package/dist/assets/toasts-Buww129h.js +1 -0
- package/dist/assets/toasts-CSN9Fy47.js +1 -0
- package/dist/assets/toasts-DOoYxbHd.js +1 -0
- package/dist/assets/toasts-DkDnbhs_.js +1 -0
- package/dist/assets/toasts-Jo4VH13n.js +1 -0
- package/dist/assets/ui-store-DI0iusYZ.js +1 -0
- package/dist/assets/{utils-CKsqCaP8.js → utils-B21Devim.js} +1 -1
- package/dist/assets/{vector-memory-panel-YWv6xcza.js → vector-memory-panel-DnX-ODHC.js} +1 -1
- package/dist/assets/{vendor-V3ydTHqN.js → vendor-BfBvt432.js} +28 -28
- package/dist/assets/{view-navigation-DTs4cSQ6.js → view-navigation-Cvrp_uJm.js} +1 -1
- package/dist/components/BrowserLivePane.d.ts +2 -0
- package/dist/components/ChangesView.d.ts +3 -1
- package/dist/components/ChatInput/chat-input-bars.d.ts +1 -1
- package/dist/components/ChatInput/image-attachments.d.ts +19 -2
- package/dist/components/ChatInput/skill-mention-picker.d.ts +10 -0
- package/dist/components/ChatInput/slash-routing.d.ts +18 -0
- package/dist/components/ChatInput/use-paste-drop.d.ts +3 -0
- package/dist/components/ChatInput/use-prompt-queue-view.d.ts +13 -0
- package/dist/components/ChatView/BackgroundShellStrip.d.ts +16 -0
- package/dist/components/ChatView/TerminalStrip.d.ts +8 -0
- package/dist/components/CodeMap.d.ts +0 -12
- package/dist/components/CustomRosterPanel.d.ts +0 -1
- package/dist/components/GoalPanel.d.ts +2 -1
- package/dist/components/ImageDiffView.d.ts +12 -0
- package/dist/components/KanbanTaskExecution.d.ts +64 -0
- package/dist/components/KanbanTaskInspector.d.ts +1 -1
- package/dist/components/MessageBubble/AttachmentGallery.d.ts +1 -1
- package/dist/components/MessageBubble/GeneratedImagePreview.d.ts +10 -0
- package/dist/components/OfficeMapCanvas.d.ts +0 -7
- package/dist/components/SessionTabBar/summaries.d.ts +4 -0
- package/dist/components/SettingsPanel/BrainSection.d.ts +1 -1
- package/dist/components/SettingsPanel/JevSection.d.ts +4 -0
- package/dist/components/SettingsPanel/LimitsSection.d.ts +7 -0
- package/dist/components/SettingsPanel/MCPSection.d.ts +1 -37
- package/dist/components/SettingsPanel/MCPServerCards.d.ts +67 -0
- package/dist/components/SettingsPanel/MCPServerDialog.d.ts +11 -0
- package/dist/components/SettingsPanel/OAuthLoginSection.d.ts +2 -0
- package/dist/components/SettingsPanel/PreferenceControls.d.ts +8 -0
- package/dist/components/SettingsPanel/ProviderSavedProfiles.d.ts +50 -0
- package/dist/components/SettingsPanel/ProviderSection.d.ts +2 -79
- package/dist/components/SettingsPanel/SettingsNavigation.d.ts +12 -0
- package/dist/components/SettingsPanel/brain-section-options.d.ts +2 -3
- package/dist/components/SettingsPanel/contracts.d.ts +1 -0
- package/dist/components/SettingsPanel/official-servers.d.ts +1 -0
- package/dist/components/SettingsPanel/provider-section-types.d.ts +79 -0
- package/dist/components/SettingsPanel/use-brain-section.d.ts +28 -0
- package/dist/components/SidePanel/SessionList.d.ts +1 -34
- package/dist/components/SidePanel/session-history.d.ts +61 -0
- package/dist/components/SkillDetailView.d.ts +1 -1
- package/dist/components/SystemPromptPresetEditor.d.ts +9 -0
- package/dist/components/TerminalPanel.d.ts +8 -1
- package/dist/components/WorkspaceDock.d.ts +2 -2
- package/dist/components/chronicle-event-detail.d.ts +51 -0
- package/dist/components/context-dashboard-sections.d.ts +79 -0
- package/dist/components/review/ReviewDiff.d.ts +21 -0
- package/dist/components/review/ReviewTray.d.ts +15 -0
- package/dist/components/review/review-diff-model.d.ts +31 -0
- package/dist/components/use-code-map-flow.d.ts +25 -0
- package/dist/components/use-office-map-canvas.d.ts +42 -0
- package/dist/components/use-office-map-topology.d.ts +31 -0
- package/dist/components/use-skill-detail.d.ts +177 -0
- package/dist/components/vector-memory-panel/model.d.ts +9 -0
- package/dist/hooks/use-live-browser.d.ts +7 -0
- package/dist/hooks/useProviderModels.d.ts +2 -0
- package/dist/hooks/useWebSocket.d.ts +4 -5
- package/dist/hooks/ws-handlers/brain-handlers.d.ts +18 -0
- package/dist/hooks/ws-handlers/goal-handlers.d.ts +9 -0
- package/dist/hooks/ws-handlers/misc-handlers.d.ts +2 -21
- package/dist/hooks/ws-handlers/prompt-queue-handlers.d.ts +18 -0
- package/dist/index.css +3013 -3013
- package/dist/index.html +19 -19
- package/dist/index.js +98758 -91674
- package/dist/lib/auth-operation.d.ts +5 -0
- package/dist/lib/compact-file-tree.d.ts +30 -0
- package/dist/lib/project-image.d.ts +26 -0
- package/dist/lib/provider-warm.d.ts +3 -0
- package/dist/lib/sdd-theme.d.ts +2 -2
- package/dist/lib/ws-client-actions.d.ts +2 -0
- package/dist/lib/ws-client-domain-methods.d.ts +1 -1
- package/dist/lib/ws-client-session-methods.d.ts +3 -1
- package/dist/lib/ws-client.d.ts +3 -3
- package/dist/stores/chat-lane-data.d.ts +153 -0
- package/dist/stores/chat-lanes.d.ts +3 -174
- package/dist/stores/chat-queue-helpers.d.ts +9 -0
- package/dist/stores/chat-store-types.d.ts +3 -0
- package/dist/stores/chat-store.d.ts +1 -1
- package/dist/stores/context-editor-store.d.ts +1 -1
- package/dist/stores/council-log-store.d.ts +4 -0
- package/dist/stores/fleet-transcript.d.ts +14 -0
- package/dist/stores/git-changes-store.d.ts +3 -0
- package/dist/stores/goal-run-store.d.ts +8 -0
- package/dist/stores/goal-state-store.d.ts +3 -0
- package/dist/stores/goal-store.d.ts +9 -11
- package/dist/stores/local-prefs-defaults.d.ts +340 -0
- package/dist/stores/local-prefs.d.ts +2 -318
- package/dist/stores/notification-store.d.ts +9 -0
- package/dist/stores/review-store.d.ts +54 -0
- package/dist/stores/session-activity.d.ts +33 -0
- package/dist/stores/session-tab-store.d.ts +1 -46
- package/dist/stores/terminal-strip-store.d.ts +26 -0
- package/dist/stores/ui-store-chrome.d.ts +1 -1
- package/dist/stores/ui-store-persist.d.ts +2 -2
- package/dist/stores/ui-store-types.d.ts +4 -4
- package/dist/stores/ui-store.d.ts +5 -5
- package/dist/types/brain.d.ts +4 -2
- package/dist/types/client-message.d.ts +132 -11
- package/dist/types/jev.d.ts +62 -0
- package/dist/types/prompt-queue.d.ts +55 -0
- package/dist/types/protocol-core.d.ts +4 -216
- package/dist/types/runtime.d.ts +6 -39
- package/dist/types/server-message-files.d.ts +22 -0
- package/dist/types/server-message-mcp.d.ts +30 -0
- package/dist/types/server-message-system.d.ts +114 -0
- package/dist/types/server-message.d.ts +4 -3
- package/dist/types/system.d.ts +4 -24
- package/package.json +11 -10
- package/dist/assets/AgentRosterView-D4TuVXe8.js +0 -12
- package/dist/assets/AudienceMemoryPanel-DHJM4rf1.js +0 -3
- package/dist/assets/ChangesView-CZ-nCe26.js +0 -1
- package/dist/assets/ChimeraReviewsView-CNeRLesP.js +0 -1
- package/dist/assets/ChronicleDashboard-CYELq7EO.js +0 -1
- package/dist/assets/CodeEditor-CLscjkIR.js +0 -2
- package/dist/assets/CodeMap-CdVy9Q7V.js +0 -1
- package/dist/assets/GoalView-Cepqrg9l.js +0 -1
- package/dist/assets/KanbanView-FSePkLch.js +0 -3
- package/dist/assets/MemoryManager-IHmhWn4P.js +0 -1
- package/dist/assets/PromptJournalView-Ct8cLcGU.js +0 -1
- package/dist/assets/ProviderTestView-Dy3k2bVu.js +0 -1
- package/dist/assets/QueuePanel-oVkTB68Q.js +0 -1
- package/dist/assets/RequirementIntakeView-Cj5arGFF.js +0 -1
- package/dist/assets/SddFlowGraph-DS8R2zEj.js +0 -1
- package/dist/assets/SddHub-C8pHQYSM.js +0 -2
- package/dist/assets/SessionList-BgRb1Mp4.js +0 -1
- package/dist/assets/SetupScreen-CNcJ_9O9.js +0 -1
- package/dist/assets/SkillDetailView-Bc9owpaX.js +0 -3
- package/dist/assets/TechStackView-BHiGCRBT.js +0 -2
- package/dist/assets/TerminalPanel-7VeXK8LB.js +0 -1
- package/dist/assets/activity-1wlPY6yi.js +0 -10
- package/dist/assets/activity-BVbAv0x7.js +0 -10
- package/dist/assets/activity-BmJTU8kX.js +0 -10
- package/dist/assets/activity-By_aWEsY.js +0 -10
- package/dist/assets/activity-Cps_29WN.js +0 -10
- package/dist/assets/activity-Du_fOnvF.js +0 -10
- package/dist/assets/activity-p_2o4eC6.js +0 -10
- package/dist/assets/chat-6dE2AJNN.js +0 -1
- package/dist/assets/chat-B3AJmhGD.js +0 -1
- package/dist/assets/chat-BHsbpaVt.js +0 -1
- package/dist/assets/chat-BITJe8-v.js +0 -1
- package/dist/assets/chat-U-Jjb8_k.js +0 -1
- package/dist/assets/chat-_Xp5fDnj.js +0 -1
- package/dist/assets/chat-mSbSzPl5.js +0 -1
- package/dist/assets/chat-store-C-PKlsCR.js +0 -1
- package/dist/assets/common-BXosnbIt.js +0 -1
- package/dist/assets/common-CzfPgMjC.js +0 -1
- package/dist/assets/common-DDDPz7Dv.js +0 -1
- package/dist/assets/common-DYx9oSoC.js +0 -1
- package/dist/assets/common-DZ-05t4z.js +0 -1
- package/dist/assets/common-MjX8fcng.js +0 -1
- package/dist/assets/common-ipsuLC3n.js +0 -1
- package/dist/assets/config-store-xSv1mChc.js +0 -21
- package/dist/assets/i18n--QdD6NCn.js +0 -3
- package/dist/assets/index-DiX5j910.css +0 -1
- package/dist/assets/index-FWwLmwjx.js +0 -177
- package/dist/assets/roster-ws-CxKDc-ET.js +0 -1
- package/dist/assets/settings-B5Jy-ObI.js +0 -1
- package/dist/assets/settings-BXTJJ4n-.js +0 -1
- package/dist/assets/settings-BcXAVecM.js +0 -1
- package/dist/assets/settings-ByPfZHGm.js +0 -1
- package/dist/assets/settings-CCe4iHcn.js +0 -1
- package/dist/assets/settings-D2GLiaDO.js +0 -1
- package/dist/assets/settings-gB9nKL3f.js +0 -1
- package/dist/assets/stores-2kakt8j9.js +0 -7
- package/dist/assets/toasts-BsmyGP95.js +0 -1
- package/dist/assets/toasts-CgXHu8ZB.js +0 -1
- package/dist/assets/toasts-DZ6HdKgG.js +0 -1
- package/dist/assets/toasts-DizCJjAR.js +0 -1
- package/dist/assets/toasts-NC2MT4uN.js +0 -1
- package/dist/assets/toasts-bPl097de.js +0 -1
- package/dist/assets/toasts-tCVo15mP.js +0 -1
- package/dist/assets/ui-store-DC3mkswy.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`Ayarlar`,t=`Ajan çalışma alanınızın tüm ayarları`,n={browse:`Göz at`,search:`Ayar ara…`,clearSearch:`Aramayı temizle`,noResults:`Eşleşen ayar yok`,workspace:`Çalışma alanı`,models:`Modeller ve bağlantılar`,behavior:`Ajan davranışı`,system:`Sistem ve güvenlik`,label:`Ayar bölümleri`},r={title:`Sağlayıcı Testi`,description:`Kayıtlı sağlayıcıları ve abonelikleri test edin; kota, kimlik doğrulama, gecikme ve token sınırı hatalarını inceleyin.`,open:`Sağlayıcı Testini Aç`},i={general:`Genel`,provider:`Sağlayıcı`,connection:`Bağlantılar`,agent:`Vekil`,execution:`Yürütme`,fallbacks:`Yedekler`,routing:`Yönlendirme`,fleet:`Filo`,integrations:`Entegrasyonlar`,chimera:`Chimera`,context:`Bağlam`,logs:`Günlükler`,security:`Güvenlik`,display:`Görünüm`,displayDesc:`Çalışma alanı görünümü, durum çipi, refine zamanlayıcıları ve araç/bellek enjeksiyonu anahtarları — TUI SettingsPicker ile aynı.`,generalDesc:`Görünüm, dil ve görüntü tercihleri — TUI Ayarlar seçicisini yansıtır.`,providerDesc:`API anahtarları, kayıtlı sağlayıcılar ve sağlayıcı kataloğu.`,connectionDesc:`WebSocket sunucu adresi ve bağlantı durumu.`,agentDesc:`Otonomi, istem iyileştirme, akıl yürütme ve model yönlendirme.`,executionDesc:`Yineleme sınırları, çıkış davranışı ve süreç devre kesici.`,fallbacksDesc:`Model yedek zinciri, favoriler ve adlandırılmış yedek profiller.`,routingDesc:`Aşama ve rol başına model yönlendirme matrisi.`,fleetDesc:`Alt vekil eşzamanlılığı, akış ve sonraki adım tahmini.`,integrationsDesc:`HQ istemcisi, MCP sunucuları ve Telegram bildirimleri.`,chimeraDesc:`Oturum sonrası kod inceleme ajanı yapılandırması.`,contextDesc:`Özellik bayrakları, bağlam stratejisi, sıkıştırıcı ve eklenti denetimleri.`,logsDesc:`Günlük düzeyi, denetim ayrıntısı, dosya sistemi erişim kapsamı ve hata ayıklama akışı.`,securityDesc:`Beyin karar kontrolü, gölge ajan ve araç erişimi.`,fonts:`Yazı tipleri`,fontsDesc:`Arayüz, sohbet, editör ve terminal fontları; boyut, satır yüksekliği ve ligatürler.`,jev:`Jev`,jevDesc:`TypeSafe / Jev`},a={heading:`Model`,loading:`Modeller yükleniyor...`,notFound:`Bu sağlayıcı için model bulunamadı. Katalog boş olabilir veya hâlâ yükleniyor olabilir.`,selectProviderFirst:`Önce bir sağlayıcı seçin`,context:`{{count}}k bağlam`},o={providerHealth:{heading:`Sağlayıcı Sağlığı`,hint:`Hangi sağlayıcı/model çiftlerinin sağlıklı, bozulmuş veya engellenmiş olduğu ve nedenleri.`,refresh:`Yenile`,empty:`Henüz izlenen sağlayıcı yok.`,summary:`{{blocked}} engellenmiş · {{degraded}} bozulmuş · {{healthy}} sağlıklı`,totalFailures:`hata`,rateLimits:`oran limiti`,state:{blocked:`Engelli`,degraded:`Bozulmuş`,healthy:`Sağlıklı`},blocked:`Engelli`,degraded:`Bozulmuş`,consecutive:`ardışık hata`,retryNow:`Şimdi dene`,clear:`Temizle`,allHealthy:`İzlenen tüm sağlayıcılar sağlıklı.`,statSuccesses:`başarılı`,statFailures:`hata`,statRateLimits:`oran limiti`,statConsecutive:`ardışık`,lastError:`Son hata`,recentErrors:`Son hatalar`,autoRecovery:`Otomatik kurtarma saati`,expired:`Süresi dolmuş`,remainingSecs:`{{secs}}sn`,remainingMins:`{{mins}}dk`,remainingHours:`{{hours}}s {{mins}}dk`,explainHealthy:`Normal yanıt veriyor.`,explain402:`Faturalandırma limiti aşıldı (402). Kota sıfırlanana kadar ~15 dakika engelli.`,explain403quota:`Bu faturalandırma döngüsü için kullanım limiti aşıldı. Bir sonraki döngü sıfırlamasına kadar (~15 dk) engelli.`,explain403auth:`İzin/kimlik doğrulama hatası. Yeniden denenemez — API anahtarınızı ve erişim haklarınızı kontrol edin.`,explain429:`Oran limiti aşıldı (429). Geçici darboğaz — otomatik olarak düzelir.`,explain529:`Sunucu aşırı yüklü (529). Sağlayıcı yoğun yük altında.`,explain5xx:`Sunucu hatası ({{status}}). Geçici arka uç sorunu.`,explainNetwork:`Ağ erişilemez. İnternetinizi veya sağlayıcının durum sayfasını kontrol edin.`,explainTimeout:`İstek zaman aşımına uğradı (408). Sağlayıcı yavaş yanıt verdi.`,explainStreamHang:`Akış durdu (599). Sağlayıcı yanıt ortasında durdu.`,explainQuota:`Kota tükendi. Sıfırlama penceresine kadar engelli.`,explainUnknown:`Hata türü: {{kind}} / durum: {{status}}.`},wsUrlLabel:`WebSocket Sunucu URL'si`,wsUrlPlaceholder:`ws://localhost:3456`,wsUrlHint:`Vekil WebSocket sunucusunun URL'si. Sunucu CLI ile birlikte çalışır.`,startingHeading:`WebSocket Sunucusunu Başlatma`,startingBody:`Geliştirme için repo kökünden ./dev.ps1 çalıştırın (isteğe bağlı olarak önce WS_HOST/WS_PORT ayarlayın). Aksi hâlde WebUI'yi CLI ile başlatın: wstack --webui.`,healthHeading:`Bağlantı sağlığı`,healthHint:`Proje servislerinin sahiplik, depolama, kuyruk, izleyici ve gecikme raporu.`,healthRefresh:`Yenile`,healthLoading:`Servisler denetleniyor…`,healthUnknown:`Sağlık bilinmiyor`,healthDisconnected:`WebUI WebSocket bağlantısı kesik.`,healthRestartRequired:`Bağlantı sağlık raporunu etkinleştirmek için backend'i bir kez yeniden başlatın.`,healthOptional:`İsteğe bağlı`,endpointInvalidBadge:`socket yolu çok uzun`,endpointInvalidRemedy:`IPC soket yolu bu platformun uzunluk sınırını aştığı için paylaşılan arka plan hizmeti başlatılamıyor. Sorgular daha yavaş bir işlem-yerel moduna düşüyor. Çözüm: daha kısa bir TMPDIR ayarlayın (ör. export TMPDIR=/tmp) ve WrongStack'i yeniden başlatın.`,healthCounts:`{{healthy}} sağlıklı · {{attention}} dikkat · {{sleeping}} uykuda`,healthOverall:{healthy:`Zorunlu servisler sağlıklı`,degraded:`Zorunlu servis zayıflamış`,error:`Zorunlu servis kullanılamıyor`},healthStatus:{healthy:`Sağlıklı`,degraded:`Zayıflamış`,offline:`Uykuda`,unavailable:`Kullanılamıyor`,error:`Hata`},services:{kanban:{label:`Kanban IPC`},mailbox:{label:`Mailbox IPC`}},serviceActionRestart:`Yeniden başlat {{label}}`,webuiTransport:`WebUI taşıması`,serviceAutoRestarting:`Otomatik yeniden başlatılıyor…`},s={removeProfileConfirm:`“{{alias}}” auth profili ve tüm key'leri silinsin mi?`,removeProfileBody:`Kayıtlı credential'lar ve model yönlendirmelerindeki bu hesaba ait referanslar kaldırılacak.`,deleteKeyConfirm:`“{{alias}}” hesabındaki “{{label}}” key'i silinsin mi?`,addProfile:`Hesap / auth profili ekle`,profileAlias:`Auth profili aliası`,profileHint:`Her hesap kendi aliası ve credential kaydıyla tutulur. Fallback hedefi alias/model biçimindedir.`,profileExists:`“{{alias}}” auth profili zaten var. Başka bir alias seçin.`,operationTimeout:`Sunucudan yanıt gelmedi. Bağlantıyı kontrol edip tekrar deneyin.`,subscriptionHeading:`Abonelik girişi`,apiKeysHeading:`API anahtarı sağlayıcıları`,apiKeysBody:`Katalogdan bir sağlayıcı seçip API anahtarı ekleyin veya kayıtlı sağlayıcıları yönetin.`,tabCatalog:`Katalog`,tabSaved:`Kayıtlı ({{count}})`,searchPlaceholder:`{{count}} sağlayıcıda ara (ad / kimlik / aile)…`,loadingCatalog:`Katalog yükleniyor...`,noMatch:`"{{query}}" ile eşleşen sağlayıcı yok.`,configured:`Yapılandırıldı`,reachable:`Erişilebilir`,envVar:`ENV: {{var}}`,modelCount_one:`{{count}} model`,modelCount_other:`{{count}} model`,keyPlaceholder:`{{name}} API anahtarı`,orEnv:`Veya bunun yerine ortamda {{env}} ayarlayın.`,addApiKey:`API anahtarı ekle`,manageKeys:`API anahtarlarınızı ve sağlayıcı yapılandırmalarınızı yönetin`,addProvider:`Sağlayıcı Ekle`,addCustomHeading:`Özel Sağlayıcı Ekle`,localServers:`Yerel sunucular — doldurmak için tıklayın:`,providerIdPlaceholder:`Sağlayıcı kimliği (örn. my-llm-server)`,apiKeyOptionalPlaceholder:`API Anahtarı (isteğe bağlı)`,noSaved:`Henüz kayıtlı sağlayıcı yok`,noSavedHint:`Başlamak için bir sağlayıcı ekleyin`,apiKeysLabel:`API Anahtarları`,savedProviderCount_one:`{{count}} sağlayıcı`,savedProviderCount_other:`{{count}} sağlayıcı`,keyCount_one:`{{count}} anahtar yapılandırıldı`,keyCount_other:`{{count}} anahtar yapılandırıldı`,activeKeyCount_one:`{{count}} etkin anahtar`,activeKeyCount_other:`{{count}} etkin anahtar`,addKey:`Anahtar Ekle`,noKeys:`Yapılandırılmış anahtar yok`,active:`Etkin`,setActive:`Etkin Yap`,keyLabelPlaceholder:`Anahtar etiketi (örn. default, production)`,apiKeyPlaceholder:`API anahtarı`,saveKey:`Anahtarı Kaydet`,savedToast:`{{name}} için anahtar kaydedildi`},c={addCustom:`Özel model ekle`,addCustomTitle:`Özel model ekle`,addFromCatalog:`Katalogdan ekle`,catalogSearchPlaceholder:`models.dev kataloğunda ara…`,catalogSearchTitle:`models.dev kataloğunda ara`,colActions:`İşlemler`,colCaps:`Yetenekler`,colContext:`Bağlam`,colCost:`Maliyet`,colModalities:`Modaliteler`,colModel:`Model`,colOutput:`Çıktı`,colSource:`Kaynak`,editModel:`Modeli düzenle`,emptyState:`Henüz model yok — katalogdan ekleyin veya özel bir model oluşturun.`,fieldContext:`Bağlam penceresi`,fieldCostInput:`Girdi maliyeti`,fieldCostOutput:`Çıktı maliyeti`,fieldDescription:`Açıklama`,fieldFamily:`Aile`,fieldInputLimit:`Girdi limiti`,fieldInputModalities:`Girdi modaliteleri`,fieldLastUpdated:`Son güncelleme`,fieldName:`Ad`,fieldOutput:`Maks. çıktı`,fieldOutputModalities:`Çıktı modaliteleri`,fieldReleaseDate:`Yayın tarihi`,modelAdded:`{{model}} eklendi`,modelRemoved:`{{model}} kaldırıldı`,modelSaved:`{{model}} kaydedildi`,noResults:`Model bulunamadı`,removeModel:`Modeli kaldır`,sectionCapabilities:`Yetenek bayrakları`,sectionDates:`Tarihler`,sectionIdentity:`Kimlik`,sectionLimits:`Sınırlar`,sectionModalities:`Modaliteler`,sectionPricing:`Fiyatlandırma (1M token başına, USD)`,tabForm:`Form`,tabRawJson:`Ham JSON`,typeToSearch:`Aramak için yazın…`,useModel:`{{model}} kullan`,usingModel:`{{model}} kullanılıyor`,filterPlaceholder:`Modelleri filtrele…`},l={status:{connected:`Bağlandı`,connecting:`Bağlanıyor`,sleeping:`Uyuyor`,discovering:`Keşfediliyor`,error:`Hata`,stopped:`Durduruldu`,unknown:`Bilinmiyor`},disabled:`MCP sunucuları devre dışı.`,wakeTitle:`Sunucuyu uyandır`,sleepTitle:`Sunucuyu uyut`,discoverTitle:`Araçları keşfet`,editTitle:`Düzenle`,removeTitle:`Kaldır`,statusLabel:`Durum:`,enabledLabel:`Etkin:`,yes:`Evet`,no:`Hayır`,descriptionLabel:`Açıklama:`,pidLabel:`PID:`,errorLabel:`Hata:`,toolsLabel:`Araçlar ({{count}}):`,noTools:`Henüz araç keşfedilmedi`,serverNameRequired:`Sunucu adı zorunludur`,dialogTitleEdit:`MCP Sunucusunu Düzenle`,dialogTitleAdd:`MCP Sunucusu Ekle`,dialogTitleAddCustom:`Özel MCP Sunucusu Ekle`,fieldName:`Ad`,fieldNamePlaceholder:`örn., github, filesystem`,fieldTransport:`Aktarım`,fieldUrl:`URL`,fieldCommand:`Komut`,fieldCommandPlaceholder:`örn., npx`,fieldArgs:`Argümanlar`,fieldArgsHint:`(boşlukla ayrılmış)`,fieldArgsPlaceholder:`örn., -y @modelcontextprotocol/server-github`,fieldEnv:`Ortam değişkenleri`,fieldEnvHint:`(KEY=değer, satır başına bir tane)`,fieldDescription:`Açıklama`,fieldDescriptionPlaceholder:`Depo erişimi için GitHub MCP sunucusu`,enableServer:`Sunucuyu etkinleştir`,lazyConnect:`Tembel bağlan`,lazyConnectHint:`(ilk araç çağrısına kadar başlatma; boştayken otomatik uyur)`,saveChanges:`Değişiklikleri Kaydet`,addServer:`Sunucu Ekle`,requires:`Gerektirir: {{vars}}`,added:`Eklendi`,heading:`MCP Sunucuları`,summary:`{{connected}} bağlı · {{sleeping}} uyuyor · {{total}} toplam`,addCustom:`Özel Ekle`,tabRecommended:`Önerilen`,tabServers:`Sunucular`,tabAddCustom:`Özel Ekle`,recommendedBody:`Popüler MCP sunucularını tek tıkla ekleyin. Yapılandırmayı öndoldurmak için Ekle'ye tıklayın, sonra onaylayın. Kimlik bilgisi gerektiren sunucuların kullanımdan önce ortam değişkenleri ayarlanmalıdır.`,loadingServers:`Sunucular yükleniyor...`,noServers:`Yapılandırılmış MCP sunucusu yok`,noServersHint:`Popüler sunucular eklemek için Önerilen sekmesine, kendi sunucunuz için Özel Ekle'ye geçin.`,addCustomBody:`stdio, SSE veya HTTP aktarımıyla özel bir MCP sunucusu yapılandırın.`,addCustomBodyHint:`Popüler sunucular için bunun yerine Önerilen sekmesini kullanın — her şey sizin için önceden yapılandırılmıştır.`,removeConfirmTitle:`"{{name}}" sunucusu kaldırılsın mı?`,removeConfirmBody:`Bu, MCP sunucusunu yapılandırmanızdan kaldırır.`,toastAdded:`"{{name}}" sunucusu eklendi`,toastRemoved:`"{{name}}" sunucusu kaldırıldı`,toastDiscovered:`"{{name}}" sunucusundan {{count}} araç keşfedildi`,toastSleeping:`"{{name}}" sunucusu artık uyuyor`,toastConnected:`"{{name}}" sunucusu bağlandı`,toastReconnected:`"{{name}}" sunucusu yeniden bağlandı`,toastDisconnected:`"{{name}}" sunucusu bağlantısı koptu: {{reason}}`,toastError:`"{{name}}" sunucusu hatası: {{error}}`,authRequired:`Oturum açma gerekli`,authorized:`Yetkilendirildi`,authorizeTitle:`OAuth ile yetkilendir`,authSignOutTitle:`OAuth kimlik bilgilerini kaldır`,authSignOutBody:`"{{name}}" için kayıtlı OAuth kimlik bilgileri kaldırılsın mı? Yeniden yetkilendirmeniz gerekecek.`,authPromptTitle:`"{{name}}" için oturum açmayı tamamlayın`,authPromptBody:`Yetkilendirme sayfasını açın ve erişimi onaylayın. Sağlayıcı geri yönlendirdiğinde bu panel güncellenir.`,authPromptOpen:`Yetkilendirme sayfasını aç`,toastAuthorized:`"{{name}}" yetkilendirildi`,toastAuthFailed:`"{{name}}" yetkilendirme gerektiriyor{{suffix}}`},u={title:`Kayıtlı izin listesi temizlensin mi?`,body_one:`Sabitlenen model {{provider}} için kaldırılacak. Model seçici models.dev kataloğuna geri dönecek.`,body_other:`{{count}} sabitlenen model {{provider}} için kaldırılacak. Model seçici models.dev kataloğuna geri dönecek.`,undoHint:`Onayladıktan sonra 8 saniye boyunca geri alabilirsiniz.`,keepTitle:`İzin listesini tut (Esc)`,clearTitle:`İzin listesini temizle (Enter)`,clear:`İzin listesini temizle`},d={termsWarning:`Bir API anahtarı yerine abonelikle oturum açın. Aboneliği resmi istemcisi dışında kullanmak sağlayıcının Şartlarını ihlal edebilir — hesabınız hız sınırına takılabilir veya yasaklanabilir. API anahtarı programatik kullanım için onaylı yoldur.`,signIn:`Oturum aç`,waitingBrowser:`Oturum açmanız bekleniyor…`,openSignIn:`Oturum açma sayfasını aç`,pasteLoopbackBusy:`Loopback portu meşgul — yönlendirme URL'sini yapıştırın`,pasteCantReach:`Tarayıcı bu sunucuya ulaşamıyor mu? Yönlendirme URL'sini yapıştırın`,submit:`Gönder`,enterCode:`Bu kodu doğrulama sayfasına girin:`,openVerification:`Doğrulama sayfasını aç`,waitingCode:`Yetkilendirme bekleniyor…`,exchanging:`Tokenlar değiştiriliyor…`,fetchingModels:`Modeller getiriliyor…`,signedIn:`Oturum açıldı.`,signedInToast:`Oturum açıldı — {{provider}}`,signInFailed:`Oturum açma başarısız`,accountCount_one:`{{count}} hesap kayıtlı`,accountCount_other:`{{count}} hesap kayıtlı`,active:`Aktif`,inactive:`Pasif`,retry:`Yeniden dene`,retryLogin:`Bu hesabı yeniden doğrula`,newAccount:`Yeni hesap`,aliasPlaceholder:`örn. {{default}}`},f={themeHeading:`Tema`,themeLight:`Açık`,themeDark:`Koyu`,themeSystem:`Sistem`,themeSystemHint:`Sistem, işletim sistemi düzeyindeki açık/koyu tercihinizi izler.`,preferencesHeading:`Tercihler`,compactDensity:`Sıkışık yoğunluk`,compactDensityHint:`Sohbet boyunca daha dar aralıklar.`,soundOnComplete:`Tamamlanınca ses çal`,soundOnCompleteHint:`Bir çalışma bitince hafif bir çan sesi çal.`,titleAnimation:`Başlık animasyonu`,titleAnimationHint:`CLI'da animasyonlu terminal başlığını göster.`,thinkingWordLabel:`Düşünme kelimesi (CLI/TUI)`,thinkingWordHint:`TUI durum çipinde gösterilen kelime. Tek kısa bir kelime.`,statuslineModeLabel:`Durum satırı modu (CLI/TUI)`,statuslineModeHint:`TUI durum satırının yoğunluğu.`,statuslineModeDetailed:`Ayrıntılı`,statuslineModeMinimum:`Asgari`,statuslineModeNoColor:`Renksiz`,animationStyleLabel:`Animasyon stili (CLI/TUI)`,animationStyleHint:`TUI çalışma durumu çipinin animasyonu.`,animationStyleRainbow:`Gökkuşağı`,animationStyleWave:`Dalga`,animationStylePulse:`Nabız`,animationStyleDots:`Noktalar`,animationStyleBreathe:`Nefes`,animationStyleStatic:`Sabit`,animationStyleCycle:`Döngü`,showThinkingLabel:`Düşünme kayıtlarını göster`,showThinkingHint:`Tamamlanan akıl yürütme bloklarını sohbet geçmişinde görüntüle.`,groupToolCallsLabel:`Araç çağrılarını grupla`,groupToolCallsHint:`Ardışık araç çağrılarını tek bir çipte topla.`,autoCollapseInputLabel:`Giriş alanını geçmiş altına otomatik daralt`,autoCollapseInputHint:`Mesaj içeren bir oturum yüklendiğinde, giriş alanını geçmiş altına daralt. Varsayılan olarak kapalıdır — siz manuel olarak daraltana kadar açık kalır.`,languageHeading:`Dil`,languageLabel:`Arayüz dili`,languageHint:`Yalnızca arayüz metnini değiştirir. Promptlar, beceriler ve model çıktısı etkilenmez.`,paletteHeading:`Renk paleti`,paletteSwitcherTitle:`Renk paleti`,paletteHint:`Ana rengi (ve türevlerini) seçin. Nötr yüzeyler aynı kalır.`,paletteSignal:`Sinyal`,paletteEmeraldGold:`Zümrüt & Altın`,paletteBlueNavy:`Lacivert`,palettePurplePink:`Mor & Pembe`,paletteCyanTeal:`Camgöbeği & Deniz Mavisi`,paletteRoseCopper:`Gül & Bakır`,paletteIndigoAmber:`Çivit Mavisi & Kehribar`,paletteSageSand:`Adaçayı & Kum`,paletteSlateViolet:`Lacivert & Menekşe`,paletteCoralMint:`Mercan & Nane`,paletteArcticEmber:`Kuzey & Ateş`,paletteMossRust:`Çim & Pas`},p={autonomyHeading:`Otonomi ve Davranış`,autonomyModeLabel:`Otonomi modu`,autonomyModeHint:`Ajanın turlar arasında ne kadar bağımsız ilerlediği.`,autonomyModeOff:`Kapalı — tam manuel kontrol`,autonomyModeSuggest:`Öner — sonraki adımları önerir`,autonomyModeAuto:`Otomatik — kısa onay gecikmesi`,autonomyModeEternal:`Sonsuz — hedef bitene kadar otonom`,autonomyModeEternalParallel:`Sonsuz Paralel — çok-ajanlı filo`,autoProceedDelayLabel:`Otomatik ilerleme gecikmesi`,autoProceedDelayHint:`Otomatik modda ajan otomatik ilerlemeden önceki milisaniye. 0 = anında.`,yoloLabel:`YOLO modu`,yoloHint:`Arac cagrilarini sormadan calistir - asagida listelenen zarar turleri haric.`,yoloConfirmHeading:`Yine de sor`,yoloConfirmIntro:`YOLO geri kalan her seyi sormadan calistirir. Bunlar durup once sana sordugu zarar turleri.`,yoloConfirmLockedNote:`Bu ikisi her zaman sorar. Sana sorulup sorulmayacagina karar veren dosyalari yazdiklari icin, kapatmak ajanin kendi onay sistemini kapatmasina izin vermek olurdu.`,yoloKindLocked:`her zaman sorar`,yoloKind:{"disk-wipe":{label:`Diski siler`,hint:`mkfs, ham aygita dd, format C:, fork bomb`},"system-halt":{label:`Kapatir veya yeniden baslatir`,hint:`shutdown, reboot`},"delete-outside":{label:`Proje disini siler`,hint:`projeden cikan ozyinelemeli zorla silme veya sistem/ev dizini koku`},"git-history":{label:`Git gecmisini yeniden yazar`,hint:`reset --hard, clean -f, push --force, filter-branch`},publish:{label:`Yayimlar veya dagitir`,hint:`npm publish, docker push, kubectl delete namespace`},"download-and-run":{label:`Indirdigi kodu calistirir`,hint:`curl | sh ve indirip calistiran satir ici yukler`},"bulk-delete":{label:`Toplu siler`,hint:`find -exec rm, cok sayida yolda satir ici rmSync`},"agent-state":{label:`WrongStack'in kendi durumunu yazar`,hint:`config.json, trust.json, auth.json`},"credential-bind":{label:`API anahtarini bir uca baglar`,hint:`bilinen bir anahtari secilen saglayici adresine ilistirme`}},refineHeading:`İstem İyileştirme`,enableRefineLabel:`İyileştirmeyi etkinleştir`,enableRefineHint:`Göndermeden önce istemleri yeniden yazar — daha net talimatlar, daha iyi sonuçlar.`,refineDelayLabel:`İyileştirme gecikmesi`,refineDelayHint:`İyileştirilmiş istem otomatik gönderilmeden önceki geri sayım.`,refineLanguageLabel:`İyileştirme dili`,refineLanguageHint:`Dilinizi koruyun veya model için İngilizceye çevirin.`,refineLanguageOriginal:`Orijinal — dilinizi koruyun`,refineLanguageEnglish:`İngilizce — İngilizceye çevir`,refinerProviderLabel:`İyileştirici sağlayıcı`,refinerProviderHint:`Hedef iyileştirme için sağlayıcı. Yapılandırılmış sağlayıcılarınızdan seçin.`,refinerProviderDefault:`Oturum sağlayıcısı`,refinerModelLabel:`İyileştirici model`,refinerModelHint:`Hedef iyileştirme için model. Önce bir iyileştirici sağlayıcı seçilmelidir.`,refinerModelDefault:`Oturum modeli`,refinerProfileLabel:`İyileştirici yedek profili`,refinerProfileHint:`Hedef iyileştirme için adlandırılmış yedek profili. Sağlayıcı+modeli geçersiz kılar.`,refinerProfileDefault:`Yok — sağlayıcı+model veya oturum varsayılanlarını kullan`,reasoningHeading:`Akıl Yürütme ve Önbellek`,reasoningModeLabel:`Akıl yürütme modu`,reasoningModeHint:`Modelin genişletilmiş düşünmeyi nasıl kullandığını kontrol edin. Otomatik = sağlayıcı varsayılanı.`,reasoningModeAuto:`Otomatik — sağlayıcı varsayılanı`,reasoningModeOn:`Açık — düşünmeyi zorla`,reasoningModeOff:`Kapalı — düşünmeyi kapat`,reasoningEffortLabel:`Akıl yürütme çabası`,reasoningEffortAuto:`Otomatik (genel)`,reasoningEffortAutoHint:`Genel ayar: {{value}}`,reasoningEffortHint:`Modelin düşünmeye harcadığı işlem gücü. Yalnızca model desteklediğinde gönderilir.`,reasoningEffortNone:`Yok`,reasoningEffortMinimal:`Minimal`,reasoningEffortLow:`Düşük`,reasoningEffortMedium:`Orta`,reasoningEffortHigh:`Yüksek`,reasoningEffortXhigh:`Çok Yüksek`,reasoningEffortMax:`Maks`,preserveThinkingLabel:`Düşünmeyi koru`,preserveThinkingHint:`Bağlam sürekliliği için akıl yürütme bloklarını turlar arasında tut.`,cacheTtlLabel:`Önbellek TTL`,cacheTtlHint:`İstem önbelleği yaşam süresi. 1h yazmada pahalıdır ama tekrarlanan okumalarda tasarruf sağlar (Anthropic).`,cacheTtlDefault:`Varsayılan — sağlayıcı varsayılanı`,cacheTtl5m:`5 dakika`,cacheTtl1h:`1 saat`,capsHint:`Mevcut modelin ne desteklediğini kontrol etmek için wstack models caps kullanın. Desteklenmeyen ayarlar istek başına sessizce atlanır.`,routingHeading:`Model Yönlendirme`,routingRouteKey:`Model rotası anahtarı`,routingPhasesGroup:`Aşamalar`,routingRolesGroup:`{{label}} rolleri`,routingCustomGroup:`Özel mevcut rotalar`,routingTargetAria:`Model rota hedefi`,routingTargetEmpty:`— Rotayı temizle —`,routingTargetProfilesGroup:`Yedek Profilleri`,routingTargetModelsGroup:`Modeller (sağlayıcı/model)`,routingSet:`Ayarla`,routingReasoningModeAria:`Yeni rota akıl yürütme modu`,routingReasoningEffortAria:`Yeni rota akıl yürütme çabası`,routingReasoningPreserveAria:`Yeni rota akıl yürütme koruması`,routingReasoningModeFor:`{{key}} için akıl yürütme modu`,routingReasoningEffortFor:`{{key}} için akıl yürütme çabası`,routingReasoningPreserveFor:`{{key}} için akıl yürütme koruması`,noRoutes:`Henüz model rotası yok.`,leaderModel:`lider model`,autonomyDelayMsLabel:`Otomatik devam gecikmesi`,autonomyDelayMsHint:`Auto modunda ajanın otomatik devam etmeden önce bekleme süresi (milisaniye). 0 = anında.`,refineCountdownLabel:`İyileştirme geri sayımı`,refineCountdownHint:`İyileştirilmiş istemin otomatik gönderilmeden önceki bekleme süresi (milisaniye).`,reasoningEffortModelSet:`aktif modelin desteklediği seviyeler`,reasoningEffortUnsupported:`Bu model tarafından sunulmuyor (desteklenenler: {{levels}}) — ayar atlanacak.`},m={heading:`Yürütme`,maxIterationsLabel:`Çalışma başına maks iterasyon`,unlimitedLabel:`Limitsiz`,maxIterationsHint:`Çalıştırma başına maksimum LLM turu. 0 = limitsiz.`,autoProceedMaxIterationsLabel:`Otomatik ilerleme maks iterasyon`,autoProceedMaxIterationsHint:`N iterasyondan sonra otomatik ilerlemeyi durdur. 0 = sınırsız.`,confirmExitLabel:`Çıkıştan önce onayla`,confirmExitHint:`İlk Ctrl+C işi iptal eder, ikincisi çıkışı onaylar.`,chimeLabel:`Tamamlanmada ses`,chimeHint:`Bir ajan çalışması bittiğinde terminal zili.`,breakerLabel:`Süreç devre kesici`,breakerHint:`Tekrarlanan hatalardan sonra bash/exec engellenir; tetiklenince kill/reset geri sayımı başlar.`,breakerTimeoutLabel:`Devre kesici kill/reset süresi`,breakerTimeoutHint:`Tetiklenince otomatik kill/reset öncesi gecikme. 0 = manuel kurtarma.`,availabilityHeading:`Provider/model availability calendar`,availabilityHint:`Prevent autonomous and overnight runs from using selected providers or models during recurring windows.`},h={heading:`Fallback / round-robin modelleri`,body:`Aktif model hız sınırlarsa (429/529), 5xx hatası verirse veya takılırsa — kendi yeniden denemelerinden sonra — ajan bu zincirdeki bir sonraki modele geçer. Ayrıca SDD işçi alt-ajanları için varsayılan olarak kullanılır.`,autoFallbackLabel:`Otomatik yedek`,autoFallbackHint:`Yukarıdaki zincir boşsa, anahtarlı sağlayıcılarınızdan otomatik türet.`,favoritesOnlyLabel:`Sadece favoriler`,favoritesOnlyHint:`Otomatik yedek bir zincir türettiğinde, onu favori modellerinizle sınırlandır.`,profilesHeading:`Fallback / round-robin profilleri`,addProfile:`Ekle`,noProfiles:`Henüz adlandırılmış yedek profili yok.`,createDefault:`Aktif modelden varsayılan oluştur`,useChain:`Zinciri kullan`,setLeader:`Lideri ayarla`,profileEmpty:`Profil boş.`,favoritesHeading:`Favori Modeller`,favoritesEmpty:`Favoriler önce gösterilir ve otomatik yedeği kısıtlayabilir.`,addModelToProfile:`Profile modele ekle…`,addFavoriteModel:`Favori modele ekle…`,inactive:`devre dışı`},g={heading:`Filo ve Akış`,fleetChatVerbosityLabel:`Filo olaylarını akıt`,fleetChatVerbosityHint:`Filo panelinde canlı alt-ajan etkinliğini göster.`,maxConcurrentLabel:`Maks eşzamanlı alt-ajan`,maxConcurrentHint:`Aynı anda çalışabilecek maks alt-ajan sayısı.`,nextPredictionLabel:`Sonraki adım tahmini`,nextPredictionHint:`Bir tur tamamlandıktan sonra olası sonraki adımları tahmin et.`,nextStepsToolLabel:`Nextsteps aracı`,nextStepsToolHint:`Ajan, öneri bloğunu elle yazmak yerine bir araç çağrısıyla kaydedebilsin. Sonraki oturumda geçerli olur.`},_={hqHeading:`HQ İstemcisi`,hqPublishingLabel:`HQ yayınlama`,hqPublishingHint:`Bu WebUI/istemci oturumunu WrongStack HQ'ya yayınlayın. Aynı makine istemcileri yerel HQ kimlik doğrulamasını otomatik keşfedebilir; uzak istemciler aşağıdaki URL/tokenı kullanır.`,hqUrlLabel:`HQ URL`,hqUrlHint:`Aynı makine otomatik keşfi için boş bırakın.`,hqTokenLabel:`HQ istemci tokenı`,hqRawContentLabel:`Ham HQ içeriği`,hqRawContentHint:`HQ'ya sansürlenmiş önizlemeler yerine ham içerik önizlemeleri gönder.`,wrongProxyHeading:`WrongProxy / WrongTrace`,wrongProxyEnabledLabel:`Temel URL'leri yerel proxy üzerinden yönlendir`,wrongProxyEnabledHint:`Etkinleştirildiğinde, her sağlayıcının temel URL'si yapılandırılmış proxy üzerinden yeniden yazılır (varsayılan http://localhost:3444/proxy/<host><path>). openai-codex hariç tutulur — OAuth belirteciyle doğrudan ChatGPT arka ucuyla konuşur.`,wrongProxyUrlLabel:`Proxy URL'si`,wrongProxyUrlHint:`Yerel proxy daemon'unun dinlediği adres. Sistem periyodik olarak <url>/api/health'i yoklar; ulaşılamayan daemon, her tuşa basışta yeniden denemeden yeniden yazmayı devre dışı bırakır.`,wrongProxyChangesApply:`Değişiklikler sonraki isteklere anında uygulanır — yeniden başlatma gerekmez.`,telegramHeading:`Telegram Bildirimleri`,telegramSessionEndLabel:`Oturum sonu`,telegramSessionEndHint:`Bir oturum bittiğinde özet gönder.`,telegramDelegateLabel:`Temsilci tamamlandı`,telegramDelegateHint:`Bir alt-ajan tamamlandığında insanlaştırılmış not gönder.`,telegramLongToolLabel:`Uzun süren araçlar`,telegramLongToolHint:`Bir araç {{ms}}ms aşarsa bildir. Devre dışı bırakmak için 0 ayarla.`,telegramChangesApply:`Değişiklikler hemen uygulanır.`,telegramNotConfigured:`Telegram yapılandırılmamış. Önce bir bot bağlamak için CLI'da /telegram-setup çalıştırın.`,heading:`Integrations`,disabledHint:`Bu bölümü kullanmak için Bağlam sekmesindeki ilgili özellik bayrağını etkinleştirin.`},v={chimeraDedicatedHeading:`Chimera — Post-session Code Review`,chimeraDedicatedHint:`Automated code quality review that runs after every agent session. Catches regressions, anti-patterns, and potential bugs.`,chimeraSectionEnabled:`Post-session review (Chimera)`,chimeraSectionEnabledHint:`Run a code review agent after every iteration.`,chimeraProviderLabel:`Chimera provider`,chimeraProviderHint:`Provider for the review agent. Select one from your configured providers.`,chimeraProviderSessionDefault:`Session default`,chimeraModelLabel:`Model`,chimeraModelSessionDefault:`Session default`,chimeraModelHint:`Model for the review agent. Requires a provider first.`,chimeraMaxFilesLabel:`Max files per review`,chimeraMaxFilesHint:`Maximum number of changed files included in a single review call.`,chimeraAutoFixLabel:`Auto-fix mode`,chimeraAutoFixHint:`Whether the review agent should automatically apply fixes for issues it finds.`,chimeraAutoFixOff:`Off — review only`,chimeraAutoFixAsk:`Ask — confirm before applying`,chimeraAutoFixAuto:`Auto — apply without confirmation`,autoReviewCascadeOnLabel:`Şu seviyede kaskad`,autoReviewCascadeOnHint:`Bir inceleme bu veya daha yüksek önem derecesinde sorun bulduğunda takip ajanları başlat.`,autoReviewCascadeOnOff:`Kapalı`,autoReviewCascadeOnHigh:`Yüksek ve üstü`,autoReviewCascadeOnCritical:`Yalnızca kritik`,chimeraPickModel:`Pick provider/model for Chimera`,chimeraPickModelHint:`Select a provider and model for post-session code review.`,autoReviewSectionEnabled:`Mid-session review (Auto-Review)`,autoReviewSectionEnabledHint:`Run a review agent mid-session on every file change.`,autoReviewFallbackProfileLabel:`Fallback / round-robin profili`,autoReviewFallbackProfileHint:`Otomatik inceleme için model profili; fallback havuzunu ve round-robin veya rastgele seçim modellerini sağlar.`,autoReviewFallbackProfileNone:`None — use provider+model or session defaults`,autoReviewModelSelectionLabel:`Profil seçimi`,autoReviewModelSelectionHint:`Sıradaki profil modelini veya her inceleme için rastgele bir başlangıç modelini seçer.`,autoReviewModelSelectionRoundRobin:`Round-robin — profil sırasıyla`,autoReviewModelSelectionRandom:`Rastgele — profilden seç`,autoReviewFallbackModelsLabel:`Fallback / round-robin modelleri`,autoReviewFallbackModelsEmpty:`Fallback / round-robin modeli yapılandırılmadı`,autoReviewFallbackModelsHint:`Profil veya global zincirdeki modeller; seçim havuzunu ve yeniden deneme zincirini oluşturur.`,autoReviewModelLabel:`Model`,autoReviewModelHint:`Model for the auto-review agent. Requires a provider first.`,autoReviewDebounceLabel:`Debounce interval (ms)`,autoReviewDebounceHint:`Minimum gap between review triggers after a file change.`,autoReviewMaxFilesLabel:`Max files per batch`,autoReviewMaxFilesHint:`Files per auto-review call.`,autoReviewMaxConcurrentLabel:`Max concurrent reviews`,autoReviewMaxConcurrentHint:`Parallel review subagent cap.`,autoReviewCascadeLabel:`Cascade on`,autoReviewCascadeHint:`Follow-up agent threshold — spawns security-scanner and bug-hunter above this severity.`,autoReviewCascadeOff:`Off — no cascade`,autoReviewCascadeCritical:`Critical — only critical findings`,autoReviewCascadeHigh:`High — critical or high findings`,autoReviewPickModel:`Pick provider/model for Auto-Review`,autoReviewPickModelHint:`Select a provider and model, or a named fallback profile, for mid-session auto-review.`,pluginsPerPluginHint:`Enable or disable individual plugins. Changes take effect on next session.`},y={flagsHeading:`Özellik Bayrakları`,mcpLabel:`MCP sunucuları`,mcpHint:`Model Context Protocol entegrasyonlarını etkinleştir.`,pluginsLabel:`Eklentiler`,pluginsHint:`Kullanıcı tarafından yüklenen eklentileri yükle ve çalıştır.`,memoryLabel:`Bellek`,memoryHint:`Oturumlar arasında bilgileri kalıcı kıl ve hatırla.`,skillsLabel:`Beceriler`,skillsHint:`Alan özelinde beceri istemlerini yükle.`,modelsRegistryLabel:`Model kayıt defteri`,modelsRegistryHint:`Salayıcı keşfi için models.dev kataloğunu kullan.`,indexOnStartLabel:`Başlangıçta dizine ekle`,indexOnStartHint:`Oturum başlangıcında kod tabanı sembol dizinini oluştur.`,pluginsPerPluginHeading:`🔌 Per-Plugin Controls`,pluginSearch:`Eklenti ara`,pluginEnabledOnly:`Yalnız açık olanlar`,pluginNoMatches:`Bu filtreyle eşleşen eklenti yok.`,pluginsPerPluginHint:`Enable or disable individual plugins. Changes take effect on next session.`,pluginChimera:`Chimera — post-session code review`,pluginSkills:`Skills — skill library & authoring`,pluginPrompts:`Prompts — prompt library & gen`,pluginCostTracker:`Cost Tracker — token & cost tracking`,pluginTelegram:`Telegram — notification bot`,pluginErrorLens:`Error Lens — failure diagnostics`,pluginSecretScanner:`Secret Scanner — credential detection`,pluginLintGate:`Lint Gate — lint before iteration`,pluginDiffSummary:`Diff Summary — compact diffs`,pluginDepGuard:`Dep Guard — dependency rules`,pluginTypeGate:`Type Gate — typecheck before iteration`,pluginInjectionShield:`Injection Shield — prompt injection`,pluginPromptFirewall:`Prompt Firewall — input filtering`,pluginTokenBudget:`Token Budget — token limits`,pluginLoopBreaker:`Loop Breaker — runaway detection`,heading:`Bağlam ve Hata Ayıklama`,autoCompactLabel:`Bağlamı otomatik sıkıştır`,autoCompactHint:`Sınırlara yakınken bağlam penceresini otomatik kırp.`,compactorStrategyLabel:`Sıkıştırma stratejisi`,compactorStrategyHint:`Bağlam çok büyüdüğünde nasıl sıkıştırılacağı.`,compactorStrategyHybrid:`Karma — hızlı kurallar (varsayılan)`,compactorStrategyIntelligent:`Akıllı — LLM özetleme`,compactorStrategySelective:`Seçici — LLM odaklı seçim`,contextModeLabel:`Bağlam modu`,contextModeHint:`Bağlam penceresi ilkesi — dengeli varsayılandır.`,contextModeBalanced:`Dengeli — normal bağlam kullanımı`,contextModeFrugal:`Tasarruflu — muhafazakar token kullanımı`,contextModeDeep:`Derin — karmaşık görevler için daha büyük bağlam`,tokenSavingLabel:`Token tasarrufu modu`,tokenSavingHint:`Sonraki oturumun doğrudan tool şemalarını ve system prompt boyutunu kontrol eder.`,tokenSavingAuto:`Otomatik — promptu model penceresine uyarla`,tokenSavingOff:`Kapalı — token tasarrufu yok`,tokenSavingMinimal:`Minimal — temel optimizasyon`,tokenSavingLight:`Hafif — orta derecede azaltma`,tokenSavingMedium:`Orta — önemli tasarruflar`,tokenSavingAggressive:`Agresif — en küçük doğrudan yüzey ve prompt`},b={logLevelLabel:`Günlük seviyesi`,logLevelHint:`Sunucu tarafı günlükleme için minimum şiddet.`,logLevelDebug:`Hata ayıkla — her şey`,logLevelInfo:`Bilgi — normal akış`,logLevelWarn:`Uyarı — sadece sorunlar`,logLevelError:`Hata — sadece başarısızlıklar`,auditLevelLabel:`Denetim seviyesi`,auditLevelHint:`Oturum denetim günlükleri için ayrıntı seviyesi.`,auditLevelMinimal:`Minimal — sadece hatalar`,auditLevelStandard:`Standart — araç çağrıları + hatalar`,auditLevelFull:`Tam — her olay (büyük günlükler)`,fsAccessLabel:`Dosya sistemi erişimi`,fsAccessHint:`Dosya araçlarının kapsamı. Bir sonraki oturumda geçerli olur.`,fsAccessUnrestricted:`Sınırsız — herhangi bir yol`,fsAccessProject:`Proje — proje köküyle sınırlı`,debugStreamLabel:`Hata ayıklama akışı`,debugStreamHint:`Sağlayıcı hata ayıklaması için sunucu stderr çıkışına ham SSE hex dökümü.`,heading:`Logs & Debug`},x={heading:`Security & Monitoring`,brainHeading:`🧠 Beyin — Karar Denetimi`,brainHint:`Karar modelleri, konsey, yükseltme ve risk tavanı — anında uygulanır, genel yapılandırmaya kaydedilir.`,shadowHeading:`👁 Gölge Ajan — Filo İzleyici`,shadowHint:`Gölge Ajan tüm filo ajanlarını izler, görevlerini takip eder ve anormallikleri saptar.`,toolsHeading:`🔧 Tool Access Control`,toolsHint:`Araçları tek tek etkinleştirin veya devre dışı bırakın. Değişiklik yapan araçlar amber renkle işaretlidir.`,breakerHeading:`Process Circuit Breaker`,breakerHint:`Tekrarlanan hatalardan sonra bash/exec erişimini kısıtla; devreye girmesi sonlandırma/sıfırlama geri sayımını başlatır.`},S={switchingTo:`{{provider}} / {{model}} modeline geçiliyor…`,switching:`Model değiştiriliyor…`,switchingToTarget:`{{target}} modeline geçiliyor…`,previousModel:`önceki model`,modelSwitchedNextRequest:`Model değiştirildi: {{from}} → {{to}}. Sonraki LLM isteğinde aktif olacak.`,modelSwitchedRunActive:`Model değiştirildi: {{from}} → {{to}}. Sonraki LLM isteğinde aktif olacak; mevcut çalışma devam eder ve yeniden başlatılmaz.`,fallbackExists:`"{{name}}" yedek profili zaten var`,selectProviderModelFirst:`Önce bir sağlayıcı ve model seçin`,defaultProfileCreated:`Varsayılan yedek profili oluşturuldu`,profileEmpty:`"{{name}}" yedek profili boş`,leaderSetFrom:`Lider {{name}} adından ayarlandı`,modelSwitchTimeout:`Model geçişi zaman aşamına uğradı. Lütfen tekrar deneyin.`},C={workbenchHeading:`Çalışma alanı görünümü`,workbenchHint:`Sohbet görünümünde çalışma alanı yüzeylerinin görünürlüğünü değiştirir.`,showModelReasoningLabel:`Model muhakemesini göster`,showModelReasoningHint:`Sohbet geçmişinde LLM muhakeme/düşünme bloklarını render eder (TUI uyumluluğu).`,showAgentSwarmPanelLabel:`Agent swarm paneli`,showAgentSwarmPanelHint:`Agent swarm (fleet + görev kuyruğu) panelinin nerede gösterileceğini kontrol eder.`,swarmPanelBottom:`Alt panel`,swarmPanelSidebar:`Sağ kenar çubuğu`,swarmPanelOff:`Kapalı`,titleAnimationLabel:`Başlık animasyonu`,titleAnimationHint:`Terminal/sekme başlığını çalışma durumuyla canlandırır (TUI uyumluluğu).`,keyboardShortcutsLabel:`Klavye kısayolları`,keyboardShortcutsHint:`Genel klavye kısayollarını (Ctrl+K, Alt+1..4, Vim tuşları, vb.) etkinleştirir. Varsayılan olarak kapalıdır.`,statusChipHeading:`Durum çipi ve durum çubuğu`,statusChipHint:`TUI/CLI durum çubuğu ve çalışma çipi için görsel stil.`,thinkingWordLabel:`Düşünme kelimesi`,thinkingWordHint:`Ajan çalışırken TUI durum çipinde gösterilen tek kısa kelime.`,thinkingWordInvalid:`En fazla 16 harf, rakam, alt çizgi veya kısa çizgiden oluşan tek bir kelime kullanın.`,statuslineModeLabel:`Durum çubuğu modu`,statuslineModeHint:`TUI durum çubuğu yoğunluğu.`,statuslineModeMinimum:`Minimum`,statuslineModeDetailed:`Ayrıntılı`,statuslineModeNoColor:`Rensiz`,animationStyleLabel:`Animasyon stili`,animationStyleHint:`TUI çalışma çipinin animasyonu.`,animationStyleRainbow:`Gökkuşağı`,animationStyleWave:`Dalga`,animationStylePulse:`Nabız`,animationStyleDots:`Noktalar`,animationStyleBreathe:`Nefes`,animationStyleStatic:`Sabit`,animationStyleCycle:`Döngü`,refineHeading:`Refine geri sayımı ve diffler`,refineHint:`Refine öncesi bekleme süresini ve çoklu diff özet altbilgisi eşiğini yapılandırır.`,preRefineSecondsLabel:`Refine öncesi geri sayım`,preRefineSecondsHint:`Refiner başlamadan önceki bekleme süresi (saniye). 0 = geri sayımı atla ve hemen refine et.`,preRefineSecondsPresets:`Ön ayarlar: {{presets}} saniye (0 = kapalı).`,multiDiffSummaryLabel:`Çoklu diff özeti`,multiDiffSummaryHint:`Dosya başına blokların üzerinde toplu 'N dosya · +X -Y' altbilgisinin gösterilmesi için gereken minimum dosya sayısı.`,multiDiffSummaryPresets:`Ön ayarlar: {{presets}} (0 = kapalı).`,memoryHeading:`Read aracı ve SAGE bellek enjeksiyonu`,memoryHint:`Read aracının neleri içerdiğini ve SAGE bellek bloklarının araç sonuçlarında ne zaman görüneceğini değiştirir.`,readSymbolsLabel:`Sembolleri oku`,readSymbolsHint:`Açıkken, read aracı dosya içeriğinin yanı sıra kod tabanı dizin sembollerini de içerir.`,showSageMemoryInjectLabel:`SAGE Memory Inject göster`,showSageMemoryInjectHint:`Açıkken, SAGE bellek enjeksiyonu bloklarını araç sonuçlarında gösterir.`,sageMemoryInjectThresholdLabel:`SAGE Memory Inject eşiği`,sageMemoryInjectThresholdHint:`Enjekte edilen bir SAGE belleği için gereken minimum ilişki gücü (0.72–0.95).`,footnote:`Bu ayarlar TUI /settings seçiciyle aynıdır. Anahtarlar anında uygulanır; bazı alanlar oturum yeniden başlatması gerektirir.`,sageRelaxed:`0,72 (gevşek)`,sageDefault:`0,85 (varsayılan)`,sageStrict:`0,95 (katı)`},w=`Yerel tercihleri temizle`,T=`İptal`,E=`Bu tarayıcının tercihleri temizlensin mi?`,D=`Bu tarayıcıda saklanan tercihler temizlenir ve sayfa yenilenir. Bağlı ayarlar sunucudan yeniden yüklenir.`,O=`Temizle ve yenile`,k=JSON.parse(`{"heading":"Beyin","headingHint":"Karar modelleri, konsey, yükseltme ve risk tavanı — canlı uygulanır, genel yapılandırmaya kaydedilir.","riskHeading":"Otonomi tavanı","escalationHeading":"Yükseltme","escalationModeLabel":"Mod","escalationModeHint":"Başsız: Beyin asla bir insanı beklemez — yanıtlanmayan yükseltmeler güvenli uç politika ile çözülür. CLI/TUI oturumları için geçerlidir; bağımsız WebUI Beyni her zaman başsızdır.","escalationDecisionTimeoutLabel":"Karar zaman aşımı","escalationDecisionTimeoutHint":"Tek bir Beyin kararı için LLM çağrısı başına süre bütçesi.","escalationHumanTimeoutLabel":"İnsan yanıt zaman aşımı","escalationHumanTimeoutHint":"Etkileşimli mod: bir yükseltme isteminin, uç politika çözmeden önce bekleyebileceği süre.","escalationTerminalPolicyLabel":"Uç politika","escalationTerminalPolicyHint":"Başsız bir yükseltmenin, uygun insan yokken nasıl çözüldüğü. Muhafazakâr, düşük/orta riskte önerilen bir seçeneği kabul eder; tümünü-reddet asla otomatik kabul etmez; önerilenle-devam HER riskte önerilen bir seçeneği kabul eder.","escalationDecisionLogSizeLabel":"Karar günlüğü boyutu","escalationDecisionLogSizeHint":"Durum görünümü için tutulan döngüsel bellek içi karar günlüğü.","rulesHeading":"Deterministik kurallar","rulesConfigured":"{{count}} yapılandırıldı","rulesBody":"Her sağlayıcı çağrısından önce değerlendirilir — ilk eşleşme kazanır. Bunları genel yapılandırma dosyasında düzenleyin; bu görünüm salt okunurdur.","rulesOff":"kapalı","rulesDropped":"{{count}} kural atlandı","heuristicsHeading":"Sezgisel kurallar","heuristicsBody":"Herhangi bir model çalışmadan önce bir soruyu çözen ücretsiz desen tahminleri. Varsayılan olarak hepsi açık — tahmini iş yükünüz için yanlış olanı kapatın.","heuristicsLowRiskLabel":"Düşük riskli otomatik yanıt","heuristicsLowRiskHint":"Zaten önerilen bir seçenek taşıyan düşük riskli istekleri otomatik yanıtla.","heuristicsBlockedLabel":"Engellendi-çözüldü","heuristicsBlockedHint":"'blocked …' artı bağlamdaki açık bir çözüm işareti devam olarak çözülür.","heuristicsDeadlockLabel":"Kilitlenmeyi atla","heuristicsDeadlockHint":"'deadlock' artı bağlamdaki başarısız iş birimleri atlayıp devam olarak çözülür.","heuristicsRetryLabel":"Yeniden deneme tükendi","heuristicsRetryHint":"'failed'/'retry' artı kanıtlanmış şekilde tükenmiş yeniden denemeler birimi başarısız işaretler ve devam eder.","heuristicsPingLabel":"Devam pingi","heuristicsPingHint":"Rakip alternatifi olmayan çıplak bir devam/ilerle pingi devam olarak çözülür.","heuristicsMarkers":"İşaretçiler: {{markers}}","qualityHeading":"LLM kalitesi","qualityCircuit_one":"devre {{state}} · {{count}} hata","qualityCircuit_other":"devre {{state}} · {{count}} hata","qualityResponseBudgetLabel":"Yanıt bütçesi","qualityResponseBudgetHint":"Karar çağrısı başına çıktı belirteci. Bir Beyin yanıtı, bir karar artı tek cümlelik bir gerekçedir.","qualityRejectLabel":"Belirsiz yanıtları reddet","qualityRejectHint":"Reddedilen veya boş bir yanıtı, yanıt olarak kabul etmek yerine 'bu katman karar veremedi' olarak değerlendir.","qualityMinConfidenceLabel":"Minimum güven","qualityMinConfidenceHint":"Kendi bildirdiği güveni bunun altında olan yanıtları reddet. Güven bildirmeyen yanıtlar her zaman geçer.","qualityDenyTerminalLabel":"Reddetme terminaldir","qualityDenyTerminalHint":"Tek-LLM katmanından gelen bir reddin kararı bitirip bitirmediği. 'when-decided' gerçek bir reddi terminal yapar; altyapı hataları yine de yükseltilir.","traceHeading":"Yeniden oynatma izi","traceRecordLabel":"Karar izlerini kaydet","traceRecordHint":"Her katman, havuz hedefi ve konsey oyu için zamanlama ve belirteç kullanımıyla birlikte karar başına JSONL. Varsayılan olarak kapalı — etkinleştirmek karar içeriğini diske yazar.","traceContentLabel":"İz içeriği","traceContentHint":"'full' soruyu ve bağlamı korur (kararı yeniden oynatmak için gerekir); 'redacted' serbest metni kısaltır; 'none' yalnızca meta veriyi kaydeder.","cacheHeading":"Karar önbelleği","cacheStats":"{{hits}} isabet / {{misses}} ıska · {{size}} canlı","cacheReplayLabel":"Aynı kararları yeniden oynat","cacheReplayHint":"Aynı tekrarlanan soru için önceki bir konsey/LLM kararını yeniden kullan. Deterministik katmanlar ve insana-sor asla önbelleğe alınmaz; günlüğün başarısız olduğunu gözlemlediği bir karar çıkarılır.","cacheLifetimeLabel":"Girdi ömrü","cacheLifetimeHint":"Önbelleğe alınmış bir kararın ne kadar süre yeniden oynatılabilir kaldığı.","cacheMaxEntriesLabel":"Maksimum girdi","cacheMaxEntriesHint":"Canlı önbelleğe alınmış karar sınırı.","monitorHeading":"İzleyici","monitorBody":"Sıkıntı sinyali kendi kendine etkinleştirme. İzleyici başlangıçta bir kez kurulur, bu yüzden bunlar canlı yerine sonraki oturuma uygulanır.","monitorWatchLabel":"Sıkıntı sinyallerini izle","monitorWatchHint":"Araç hata serileri, hata fırtınaları, ajan duraklamaları ve dosya hareketliliği Beyni kendi başına devreye sokar.","monitorPolicyLabel":"Sinyal politikası","monitorPolicyHint":"Algılanan bir sinyalin nasıl çözüldüğü. 'llm' Beyne danışır; 'steer' her zaman müdahale eder ve 'observe' asla etmez — ikisi de sağlayıcı çağrısı olmadan.","modelsHeading":"Karar modelleri","modelsSessionBadge":"oturum modeli","modelsResolvedBadge":"{{resolved}}/{{total}} çözüldü","modelsUseSessionLabel":"Oturum modelini kullan","modelsUseSessionHint":"Oturumun çalıştırdığı modelle karar ver. Aşağıya model ekleyerek kapat.","modelsAddModel":"Model ekle","modelsPoolStrategyLabel":"Havuz stratejisi","modelsPoolStrategyHint":"Yedek: ilk model birincildir, geri kalanı hata durumunda sırayla denenir. Dönüşümlü: kararlar havuzda döner.","councilHeading":"Konsey","councilConvened":"toplandı","councilDisabled":"devre dışı","councilEnableLabel":"Çok-LLM konseyini etkinleştir","councilEnableHint":"Yüksek riskli sorular, tek model yerine bağımsız koltuklar (yürütücü / veto hakkı olan şüpheci / denetçi) tarafından oylanır. ≥2 çözülebilir seçmen gerekir (aşağıda açık koltuklar veya ≥2 modelli havuz).","councilSeatsDerived":"Havuzdan türetilen koltuklar: {{seats}}","councilCustomLens":"Özel karar merceği — koltuğa aynen gönderilir.","councilCustomOption":"{{persona}} (özel)","councilVeto":"veto","councilAddVoter":"Seçmen ekle","councilRiskFloorLabel":"Risk tabanı","councilRiskFloorHint":"Tek model katmanı yerine konseyi toplayan minimum soru riski.","councilJudge":"Hakem","councilJudgeDesc":"Her oyun gerekçesini gören eşitlik bozan model.","councilResolved":"çözüldü: {{model}}","councilAlsoVoter":"⚠ ayrıca bir seçmen","councilAuto":"otomatik","councilPick":"Seç…","councilAutoReset":"Otomatik","councilQuorumLabel":"Yeter sayı","councilQuorumHint":"Geçerli bir oy döndürmesi gereken koltuk oranı.","councilApprovalLabel":"Onay","councilApprovalHint":"Kazanan seçeneğin aşması gereken kullanılmış oy ağırlığı oranı.","councilPerSeatTimeoutLabel":"Koltuk başına zaman aşımı","councilPerSeatTimeoutHint":"Tek bir koltuğun oyu için süre bütçesi. Karar zaman aşımından yavaş olması, tek bir takılmış koltuğun oyu geciktirdiği anlamına gelir.","councilMaxConcurrencyLabel":"Maksimum eşzamanlılık","councilMaxConcurrencyHint":"Kaç koltuğun paralel oy verdiği. Havuz tek hız sınırlı sağlayıcıyı paylaştığında bunu düşürün.","councilDistinctnessLabel":"Koltuk farklılığı","councilDistinctnessHint":"Yinelenen koltukları reddet: 'model' farklı modeller gerektirir, 'provider' tek bir kesintinin oyu etkileyememesi için bağımsız sağlayıcılar gerektirir.","councilVoterBudgetLabel":"Oy veren yanıt bütçesi","councilVoterBudgetHint":"Koltuk başına çıktı belirteci — akıl yürüten modeller düşünme belirteçlerini bu bütçeden harcar.","councilRoundsLabel":"Müzakere turu","councilRoundsHint":"1. tur bağımsızdır. Sonraki turlarda her koltuk diğerlerinin oylarını görüp kendi görüşünü gözden geçirir. Yalnızca son tur sayılır — ve her tur koltuk başına bir çağrı daha demektir.","councilJudgeBudgetLabel":"Hakem yanıt bütçesi","councilJudgeBudgetHint":"Eşitlik bozan hakem çağrısı için çıktı belirteci.","councilSeatTemplate":"Koltuk şablonu:","ledgerHeading":"Karar günlüğü","ledgerRecordLabel":"Kararları + sonuçları kaydet","ledgerRecordHint":"Her kararı ve gözlemlenen sonucunu kalıcılaştırır; benzer geçmiş sonuçlar gelecekteki Beyin istemlerine geri beslenir.","ledgerAutoDenyLabel":"Başarısızlıklardan sonra otomatik reddet","ledgerAutoDenyHint":"Bir karar grubunun ardışık onayları, gözlemlenen başarısızlıklarla bu kadar kez sonlandıktan sonra deterministik olarak (LLM olmadan) reddet.","ledgerMemoryEntriesLabel":"Bellek içi girdiler","ledgerMemoryEntriesHint":"Bellekte tutulan halka boyutu ve başlangıçta diskten yüklenen geçmiş girdi sayısı.","ledgerRetryWindowLabel":"Müdahale yeniden deneme penceresi","ledgerRetryWindowHint":"Aynı tür bir izleyici müdahalesinin bu pencerede yeniden tetiklenmesi önceki yönlendirmeyi başarısız işaretler.","recentHeading":"Son kararlar ({{count}})","recentEmpty":"Bu oturumda henüz karar kaydedilmedi.","optInteractive":"Etkileşimli (bana sor)","optHeadless":"Başsız (asla sorma)","optConservative":"Muhafazakâr (varsayılan)","optDenyAll":"Tümünü reddet","optContinueRecommended":"Önerilenle devam et","optNeverDefault":"Asla (varsayılan)","optWhenDecided":"Karar verildiğinde","optAlways":"Her zaman","optFullDefault":"Tam (varsayılan)","optRedacted":"Kısaltılmış","optMetadataOnly":"Yalnızca meta veri","optConsultBrain":"Beyne danış (varsayılan)","optAlwaysSteer":"Her zaman yönlendir","optObserveOnly":"Yalnızca gözlemle","optFallback":"Yedek","optRoundRobin":"Dönüşümlü","optMediumPlus":"Orta+","optHighPlus":"Yüksek+","optCriticalOnly":"Yalnızca kritik","optNoneDefault":"Hiçbiri (varsayılan)","optDistinctModels":"Farklı modeller","optDistinctProviders":"Farklı sağlayıcılar","optDefault3":"Varsayılan (3)","optOff":"Kapalı","pickPoolTitle":"Beyin havuz modeli ekle","pickPoolHint":"Sıralı karar havuzu — ilki birincildir.","pickVoterTitle":"Konsey seçmeni ekle","pickVoterHint":"İletişim kutusu açık kalır — ≥2 seçmen ekleyin, sonra kapatın.","pickJudgeTitle":"Konsey hakemi seç","pickJudgeHint":"Her oyu gören eşitlik bozan.","persistError":"Ayarlar canlı uygulandı ancak kaydedilmedi.","riskCopy":{"off":"Her şeye insan karar verir","low":"Yalnızca düşük riski otomatik kararlaştır","medium":"Orta riske kadar otomatik kararlaştır","high":"Yüksek riske kadar otomatik kararlaştır","all":"Her şeyi otomatik kararlaştır"},"rulesConfigured_one":"{{count}} yapılandırıldı","rulesConfigured_other":"{{count}} yapılandırıldı"}`),A={default15s:`Varsayılan (15sn)`,waitForever:`Süresiz bekle`,defaultHalf:`Varsayılan (0,5)`,all:`Tümü`,n200Default:`200 (varsayılan)`,offDefault:`Kapalı (varsayılan)`,n20Default:`20 (varsayılan)`,m5Default:`5dk (varsayılan)`,default:`Varsayılan`,oneSerial:`1 (sıralı)`,roundsOff:`1 (müzakere yok)`,default500:`Varsayılan (500)`,default10m:`Varsayılan (10dk)`},j={capToolCall:`Araç çağrısı`,capReasoning:`Akıl yürütme`,capTemperature:`Sıcaklık`,capAttachment:`Ek`,capStructuredOutput:`Yapılandırılmış çıktı`,capOpenWeights:`Açık ağırlıklar`},M={presetsHeading:`Hazır font grupları`,presetsHint:`Bir hazır grup tüm rolleri birden ayarlar; fontlar yalnızca ilk kullanıldığında indirilir.`,presets:{workbench:{label:`Tezgâh`,description:`Varsayılan operatör tezgâhı görünümü.`},plex:{label:`IBM Plex`,description:`Baştan sona tek, mühendislik ürünü bir aile.`},modern:{label:`Modern`,description:`Nötr Inter, kod için JetBrains Mono.`},geist:{label:`Geist`,description:`Net Geist sans ve mono eşleşmesi.`},classic:{label:`Klasik`,description:`Adobe'nin Source Sans, Serif ve Code Pro ailesi.`},editorial:{label:`Editoryal`,description:`Serif başlıklar ve kitap tadında sohbet fontu.`},readable:{label:`Okunaklı`,description:`Uzun oturumlar için yüksek okunaklılık.`},friendly:{label:`Samimi`,description:`Yumuşak, rahat hatlar ve Fira Code.`},monospace:{label:`Eş aralıklı`,description:`Her yerde eş aralıklı, terminal havası.`},system:{label:`Sistem`,description:`İşletim sistemi fontları, indirme yok.`}},rolesHeading:`Rollere göre fontlar`,rolesHint:`Hazır grubun üstüne istediğiniz rolü değiştirin. “… ile aynı” yazan roller üst rollerini izler.`,roles:{ui:{label:`Arayüz ve paneller`,hint:`Düğmeler, menüler, kenar çubukları, listeler ve ayarlar.`},display:{label:`Başlıklar`,hint:`Sayfa ve bölüm başlıkları.`},reading:{label:`Sohbet ve belgeler`,hint:`Asistan yanıtları, markdown ve posta kutusu mesajları.`},code:{label:`Satır içi kod ve veri`,hint:`Kod blokları, günlükler, kimlikler ve tablo verileri.`},editor:{label:`Kod editörü`,hint:`Monaco dosya editörü ve fark görünümü.`},terminal:{label:`Terminal`,hint:`Tümleşik terminal oturumları.`}},fromPreset:`Hazır grup ({{name}})`,inherit:`{{role}} ile aynı ({{name}})`,categories:{sans:`Sans serif`,serif:`Serif`,mono:`Eş aralıklı`},systemTag:`sistem`,sizeHeading:`Boyut ve aralık`,sizeHint:`Arayüz yazı boyutu tüm panelleri ölçekler; editör ve terminal boyutları piksel olarak ayarlanır.`,sizePresets:{compact:`Kompakt`,normal:`Normal`,comfortable:`Rahat`,large:`Büyük`,custom:`Özel`},controls:{uiScale:{label:`Arayüz yazı boyutu`,hint:`Paneller, sohbet ve pencerelerdeki metni ölçekler.`},editorFontSize:{label:`Editör yazı boyutu`,hint:`Monaco editör ve fark görünümü.`},codeLineHeight:{label:`Kod satır yüksekliği`,hint:`Editör, fark görünümü ve kod blokları.`},terminalFontSize:{label:`Terminal yazı boyutu`,hint:`Tümleşik terminal.`},terminalLineHeight:{label:`Terminal satır yüksekliği`,hint:`Terminaldeki satır aralığı.`},ligatures:{label:`Kod ligatürleri`,hint:`Destekleyen fontlarda (Fira Code, Cascadia, JetBrains Mono…) => !== >= tek glif olarak birleşir. Terminalde uygulanmaz.`}},previewHeading:`Canlı önizleme`,preview:{heading:`Oturum yükleyicisini yeniden düzenle`,body:`Ajan 12 dosya okudu ve iki adımlı bir değişiklik önerdi. Uygulamadan önce farkı inceleyin.`,label:`Arayüz etiketi`},resetAll:`Tüm font ayarlarını sıfırla`,resetOverrides:`Rol değişikliklerini temizle`},N={description:`Karar sağlayıcısını yönetin ve Jev’in nerede kullanıldığını izleyin.`,loading:`Jev ayarları yükleniyor…`,timeout:`Sunucudan yanıt gelmedi. Yeniden bağlanıp deneyin.`,route:`Karar sağlayıcısı`,routeChange:`Sağlayıcı değişince eski anahtar, endpoint ve model temizlenir. Yeni anahtarı girin veya sağlayıcının ortam değişkenini kullanın.`,key:`API anahtarı`,keyHint:`Mevcut anahtarı korumak için boş bırakın`,removeKey:`Kayıtlı anahtarı kaldır (ortam anahtarı hâlâ kullanılabilir)`,endpoint:`Özel endpoint`,model:`Özel model`,defaultHint:`Boş bırakılırsa sağlayıcı varsayılanı`,requestTimeout:`İstek zaman aşımı (ms)`,featureHint:`Anahtarlar Jev kullanım iznini belirler. Gerçek kullanım, aşağıdaki bağımlılıklara ve tetiklenme koşullarına da bağlıdır.`,save:`Jev ayarlarını kaydet`,test:`Kayıtlı bağlantıyı test et`,testHint:`Test küçük, ücretli bir istek gönderir. Önce kaydedin. Tüm tüketicilere uygulanması için mevcut oturumları yeniden başlatın.`,activity:`Jev işlem kayıtları`,activityHint:`3 saniyede bir yenilenir. Bu sunucu sürecinin tüm oturumlarındaki son 300 isteği gösterir. Prompt, anahtar ve ham hata kaydedilmez. Disk kaydı 5 MB’da döner. Answered yanıt alındığını belirtir; tüketicinin kararı kabul ettiğini garanti etmez.`,filter:`Özellik`,all:`Tümü`,empty:`Henüz eşleşen Jev isteği yok. Bağlantıyı test edin veya etkin bir özelliği kullanın.`,features:{brain:`Brain kararları`,memoryTriage:`Bellek sınıflandırma`,topicShift:`Konu değişimi`,memoryRecall:`Bellek hatırlama`,compaction:`Bağlam sıkıştırma`,kanbanVerify:`Kanban doğrulama`,modelTier:`Alt ajan model seviyesi`,semanticLint:`Anlamsal lint`,tool:`Ajan karar aracı`,skillSuggestion:`Skill önerileri`,fleetDispatch:`Fleet dağıtımı`},readinessScope:`Bunlar kayıtlı profil koşullarıdır; tüm oturumların canlı durumu değildir. İstek kaydı servisin çağrıldığını gösterir, yanıtın kabul edildiğini değil.`,unknownReadiness:`Bu sunucuda hazırlık bilgisi yok`,unsaved:`Kaydedilmemiş değişiklik`,lastRequest:`Son gerçek kullanım isteği`,notObserved:`Görüntülenen son kayıtlarda gerçek kullanım isteği yok.`,contextStrategy:`Profil sıkıştırma stratejisi`,contextScope:`Selective, Jev seçim yolunu açar. Kaydedip mevcut oturumları yeniden başlatın; oturuma özel strateji profil ayarını geçersiz kılabilir.`,openContext:`Oturum bağlam ayarlarını aç`,configureTiers:`Model seviyelerini yapılandır`,tiersHint:`Seviye sistemini açıp en ucuzdan başlayarak en az iki seviye tanımlayın. Model veya fallback profillerini ve varsayılan seviyeyi seçin. Buradaki değişiklikler anında kaydedilir.`,checkHeading:`Canlı yetenek kontrolleri`,checkHint:`Kayıtlı hesapla, kapalı özellikler dahil 11 alanda 22 sentetik vaka çalıştırır. Ücretli API çağrıları yapar; proje içeriği göndermez ve özellik ayarlarını değiştirmez. Başarılı sonuç gerçek iş kalitesini veya oturumun bu özelliği kullandığını kanıtlamaz.`,checkAll:`11 özelliği canlı test et`,checkRunning:`Canlı kontroller çalışıyor…`,expected:`Beklenen`,actual:`Gelen`,includeChecks:`Tanılama isteklerini göster`,selfTest:`Tanılama`,account:{ready:`Hesap yapılandırılmış`,unconfigured:`Hesap gerekli`,unusable:`Hesap ayarları geçersiz`},readiness:{disabled:`Kapalı`,"account-required":`Hesap gerekli`,blocked:`Kurulum gerekli`,conditional:`Yapılandırılmış · tetiklenmeyi bekliyor`},reasons:{disabled:`Bu özelliğin Jev kullanmasına izin verilmiyor.`,"account-required":`Önce geçerli bir Jev hesabı yapılandırın.`,"selective-required":`Jev seçicisi selective sıkıştırma gerektirir; hybrid ve intelligent bu seçiciyi kullanmaz.`,"tiers-disabled":`Model seviye sistemi kapalı.`,"tiers-required":`En az iki model seviyesi tanımlayın.`,"skills-disabled":`Genel skill özelliği kapalı.`,"trigger-required":`Yalnızca tetiklenme koşulları sağlanınca çalışır.`,"memory-disabled":`Genel bellek veya SAGE sistemi kapalı.`,"recall-injection-required":`SAGE konuşma başı bellek getirme kapalı; Jev recall filtresi bu yol gerektirir.`},triggers:{brain:`Sonraki karar katmanlarından önce çalışır; belirsiz yanıtı sonraki katmana bırakır.`,memoryTriage:`Triage değer değerlendirmesinde ve bellek birleştirme kararlarında çalışır.`,topicShift:`Konu değişimi ön kontrolleri karar gerektirirse çalışır; tekrarlanan sonuç önbellekten gelebilir.`,memoryRecall:`SAGE konuşma başında aday bellek getirince ilgilerini değerlendirir; önbellekteki kararlar yeniden kullanılır.`,compaction:`Selective sıkıştırmada konuşmanın orta turlarını puanlar; sağlayıcı ve yeterli geçmiş gerekir.`,kanbanVerify:`Açık agent türü kriterleri değişen dosyalar ve diff üzerinden değerlendirir.`,modelTier:`Açık model/seviye seçimi ve eşleşen rol/faz kuralı olmayan delegasyonlarda seviye önerir.`,semanticLint:`Anlamsal lint komutu aday bulduğunda çalışır; otomatik edit izleyicisi değildir.`,tool:`Ajan jev aracını kanıt ve yapılandırılmış sorularla çağırdığında çalışır.`,skillSuggestion:`Skill sistemi, en az iki skill ve gate/fit eşiklerinin geçilmesi gerekir; önbellek kullanılabilir.`,fleetDispatch:`Yalnızca birden fazla aday rol arasında belirsiz yönlendirmede çalışır.`},recallTurnContext:`SAGE konuşma başı bellek getirme`,recallTurnHint:`Her yeni turda uygun bellekleri bağlama ekler; Jev filtresi bu yolda çalışır. Genel bellek ve SAGE de açık olmalıdır. Kaydedip mevcut oturumları yeniden başlatın.`},P={title:e,subtitle:t,navigation:n,providerTest:r,tabs:i,model:a,connection:o,provider:s,providerModels:c,mcp:l,allowlist:u,oauth:d,general:f,agent:p,execution:m,fallbacks:h,fleet:g,integrations:_,features:v,context:y,logs:b,security:x,toast:S,display:C,resetLabel:w,cancel:T,resetConfirmTitle:E,resetConfirmBody:D,resetConfirmAction:O,brain:k,brainOpt:A,modelSchema:j,fonts:M,jev:N};export{p as agent,u as allowlist,k as brain,A as brainOpt,T as cancel,o as connection,y as context,P as default,C as display,m as execution,h as fallbacks,v as features,g as fleet,M as fonts,f as general,_ as integrations,N as jev,b as logs,l as mcp,a as model,j as modelSchema,n as navigation,d as oauth,s as provider,c as providerModels,r as providerTest,O as resetConfirmAction,D as resetConfirmBody,E as resetConfirmTitle,w as resetLabel,x as security,t as subtitle,i as tabs,e as title,S as toast};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./react-core-wiHys0m2.js";import{t}from"./utils-
|
|
1
|
+
import{t as e}from"./react-core-wiHys0m2.js";import{t}from"./utils-B21Devim.js";var n=e(),r=[`fact`,`decision`,`convention`,`preference`,`warning`,`anti_pattern`,`workflow`,`bug_root_cause`,`file_note`,`symbol_note`,`command_note`,`summary`],i=[`active`,`stale`,`superseded`,`contradicted`,`archived`,`deleted`],a=[`active`,`stale`,`superseded`,`contradicted`,`archived`],o=[`project`,`user`,`session`,`file`,`symbol`],s=[`file`,`directory`,`symbol`,`package`,`command`,`test`,`git`,`agent`],c={fact:`Fact`,decision:`Decision`,convention:`Convention`,preference:`Preference`,warning:`Warning`,anti_pattern:`Anti-pattern`,workflow:`Workflow`,bug_root_cause:`Root cause`,file_note:`File note`,symbol_note:`Symbol note`,command_note:`Command note`,summary:`Summary`};function l(e){let t=[];return e.roles?.length&&t.push(`roles: ${e.roles.join(`, `)}`),e.taskTypes?.length&&t.push(`tasks: ${e.taskTypes.join(`, `)}`),e.modes?.length&&t.push(`modes: ${e.modes.join(`, `)}`),t.join(` · `)}function u(){return{text:``,kind:`fact`,status:`active`,scope:`project`,tags:``,importance:.5,confidence:.8,freshness:1,anchors:[],audienceRoles:``,audienceTaskTypes:``,audienceModes:``,supersedes:``,contradicts:``}}function d(e){return{text:e.text,kind:e.kind,status:e.status,scope:e.scope,tags:e.tags.join(`, `),importance:e.importance,confidence:e.confidence,freshness:e.freshness,anchors:e.anchors.map(e=>({...e})),audienceRoles:(e.audience?.roles??[]).join(`, `),audienceTaskTypes:(e.audience?.taskTypes??[]).join(`, `),audienceModes:(e.audience?.modes??[]).join(`, `),supersedes:(e.supersedes??[]).join(`, `),contradicts:(e.contradicts??[]).join(`, `)}}function f(e){return[...new Set(e.split(`,`).map(e=>e.trim()).filter(Boolean))]}function p(e,t=170){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n}function m(e){if(!e)return`Never`;let t=Date.parse(e);return Number.isFinite(t)?new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(t):`Unknown`}function h(e){if(!e)return`never`;let t=Date.parse(e);if(!Number.isFinite(t))return`unknown`;let n=Math.max(0,Math.round((Date.now()-t)/1e3));return n<60?`just now`:n<3600?`${Math.round(n/60)}m ago`:n<86400?`${Math.round(n/3600)}h ago`:n<604800?`${Math.round(n/86400)}d ago`:m(e)}function g(e){return e>=.85?`high`:e>=.55?`medium`:`low`}function _(e){switch(e){case`active`:return`border-success/35 bg-success/10 text-success`;case`stale`:return`border-warning/40 bg-warning/10 text-warning`;case`contradicted`:return`border-destructive/40 bg-destructive/10 text-destructive`;case`superseded`:return`border-warning/30 bg-warning/5 text-warning`;case`archived`:return`border-info/35 bg-info/10 text-info`;case`deleted`:return`border-border bg-muted text-muted-foreground`}}function v(e){return e===`warning`||e===`anti_pattern`||e===`bug_root_cause`?`text-destructive`:e===`decision`||e===`workflow`?`text-warning`:e===`convention`||e===`preference`?`text-success`:e===`file_note`||e===`symbol_note`||e===`command_note`?`text-info`:`text-foreground`}function y(e){return e.path??e.command??e.role??``}function b(e,t){return e.type===`command`?{type:e.type,command:t}:e.type===`agent`?{type:e.type,role:t}:{type:e.type,path:t,...e.type===`symbol`&&e.symbol?{symbol:e.symbol}:{}}}function x(e){let t=[];for(let n of e){let e=y(n).trim(),r=n.symbol?.trim();if(e||r){if(n.type===`command`){t.push({type:`command`,command:e});continue}if(n.type===`agent`){t.push({type:`agent`,role:e.toLowerCase()});continue}t.push({type:n.type,...e?{path:e}:{},...r?{symbol:r}:{}})}}return t}function S({status:e}){return(0,n.jsxs)(`span`,{className:t(`inline-flex items-center gap-1 border px-2 py-0.5 text-[10px] font-bold uppercase`,_(e)),children:[(0,n.jsx)(`span`,{className:`size-1.5 bg-current`,"aria-hidden":`true`}),e]})}function C({label:e,value:r,hint:i,tone:a=`default`}){return(0,n.jsxs)(`div`,{className:`border border-border/70 bg-card/55 px-3 py-2.5 shadow-[inset_0_1px_0_hsl(var(--foreground)/0.035)]`,children:[(0,n.jsx)(`p`,{className:`text-[9px] font-bold uppercase tracking-[0.16em] text-muted-foreground`,children:e}),(0,n.jsxs)(`div`,{className:`mt-1 flex items-end justify-between gap-2`,children:[(0,n.jsx)(`p`,{className:t(`font-mono text-xl font-bold tabular-nums`,a===`success`?`text-success`:a===`warning`?`text-warning`:a===`info`?`text-info`:`text-foreground`),children:r}),(0,n.jsx)(`p`,{className:`truncate text-[9px] text-muted-foreground`,children:i})]})]})}function w({id:e,label:t,value:r,onChange:i}){return(0,n.jsxs)(`div`,{className:`border border-border/65 bg-background/35 p-3`,children:[(0,n.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,n.jsx)(`label`,{htmlFor:e,className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:t}),(0,n.jsxs)(`span`,{className:`font-mono text-xs font-bold tabular-nums text-info`,children:[Math.round(r*100),`% · `,g(r)]})]}),(0,n.jsx)(`input`,{id:e,type:`range`,min:`0`,max:`1`,step:`0.05`,value:r,onChange:e=>i(Number.parseFloat(e.target.value)),className:`mt-3 h-1.5 w-full cursor-pointer accent-[hsl(var(--info))]`})]})}export{x as _,o as a,b,w as c,d,u as f,p as g,v as h,r as i,S as l,m,a as n,i as o,l as p,c as r,C as s,s as t,y as u,h as v,f as y};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{Bt as e,Ot as t,Pt as n,Tt as r,j as i}from"./config-store-P5_updTQ.js";import{Co as a,So as o,bo as s,xo as c}from"./vendor-BfBvt432.js";import"./i18n-t7rIS4DB.js";import"./mailbox-store-DyOOYbni.js";import"./ui-store-DI0iusYZ.js";import"./chat-store-uzGtJfDz.js";import"./codemap-activity-store-WjfEZe4_.js";var l=`__bug_hunt_continuation_pending__`,u=c()(s((e,t)=>({runs:{},start:(t,n)=>e(e=>({runs:{...e.runs,[t]:n}})),ownsRequest:(e,n)=>{let r=t().runs[e];return!!(r&&n!==void 0&&r.requestId!==null&&r.requestId!==l&&r.requestId===n)},advance:(n,r)=>{let i=t().runs[n];if(!i||i.requestId===l||r!==void 0&&i.requestId!==null&&i.requestId!==r)return null;if(i.currentRound>=i.totalRounds)return t().clear(n),null;let a={...i,currentRound:i.currentRound+1,requestId:l};return e(e=>({runs:{...e.runs,[n]:a}})),a},setRequestId:(t,n)=>e(e=>{let r=e.runs[t];return!r||r.requestId!==l?e:{runs:{...e.runs,[t]:{...r,requestId:n}}}}),stop:(e,n)=>{let r=t().runs[e];!r||n&&r.requestId!==null&&r.requestId!==n||t().clear(e)},recover:(t,n)=>e(e=>({runs:{...e.runs,[t]:{...n,requestId:null}}})),clear:t=>e(e=>{let{[t]:n,...r}=e.runs;return{runs:r}})}),{name:`wrongstack-bug-hunt-runs`,partialize:e=>({runs:e.runs})})),d=8;function f(i,s={}){let c=Math.max(1,s.max??d),l=new Map,u=e=>e&&e.length>0?e:r,f=e=>{let t=u(e),n=l.get(t);if(n)return n;for(;l.size>=c;){let e=[...l.keys()].find(e=>e!==t);if(e===void 0)break;l.delete(e)}let r=a(i);return l.set(t,r),r},p=(t=>{let n=o(e,e=>e.activeSessionId);return o(f(n),t)});return p.getState=()=>f(t()).getState(),p.setState=e=>f(t()).setState(e),p.subscribe=e=>f(t()).subscribe(e),p.for=f,p.dropSession=e=>{l.delete(u(e))},p.sessionIds=()=>[...l.keys()],n(e=>p.dropSession(e)),p}function p(e,t){return t>=100?`danger`:`warning`}function m(e,t){switch(e){case`budget.threshold_reached`:{let e=t,n=e.limit>0?Math.round(e.used/e.limit*100):0;return`${e.subagentId} [${e.kind}] ${n}% (${e.used}/${e.limit})`}case`budget.decision`:{let e=t;return`${e.subagentId} [${e.kind}] → ${e.decision}`}case`consensus.vote_initiated`:{let e=t;return`Vote: "${e.title}" — ${e.eligible.length} voters`}case`consensus.vote_cast`:{let e=t;return`${e.voterId} voted ${e.value}`}case`consensus.vote_resolved`:{let e=t;return`${e.result} — ✅${e.approveCount} ❌${e.rejectCount}`}case`task.pending`:return`Task queued: "${t.description.slice(0,60)}"`;case`task.started`:{let e=t;return`${e.subagentId} started ${e.taskId}`}case`task.completed`:{let e=t;return`Task ${e.taskId} ${e.status} (${e.durationMs}ms)`}case`task.failed`:{let e=t;return`Task ${e.taskId} failed: ${e.error.slice(0,60)}`}case`subagent.budget_extended`:{let e=t;return`${e.subagentId} [${e.kind}] extended → ${e.extendedTo}ms`}default:return e}}var h=200,ee=50,g=300,_=200,v=100;function y(e,t,n){if(!(e.size<=t)){if(n)for(let[r,i]of e){if(e.size<=t)break;n(i)&&e.delete(r)}for(let n of e.keys()){if(e.size<=t)break;e.delete(n)}}}var b=f(e=>({coordinatorStatus:`idle`,subagents:new Map,events:[],consensusVotes:new Map,tasks:new Map,taskCounts:{pending:0,running:0,completed:0,failed:0},budgetAlerts:[],lastUpdated:Date.now(),setCoordinatorStatus:(t,n)=>e(e=>({coordinatorStatus:t,coordinatorMode:n,lastUpdated:Date.now()})),updateCoordinatorStats:t=>e(e=>{let n=new Map(e.subagents);for(let e of t.subagentStatuses??[]){let t=n.get(e.id);n.set(e.id,{id:e.id,name:e.name,role:t?.role??`agent`,status:e.status,currentTask:e.currentTask,budgetLimits:t?.budgetLimits,budgetUsage:t?.budgetUsage,lastSeen:t?.lastSeen??Date.now()})}return y(n,_,e=>e.status===`stopped`),{subagents:n,taskCounts:{pending:t.pending,running:t.inFlight,completed:t.completed,failed:0},lastUpdated:Date.now()}}),updateSubagentBudget:(t,n)=>e(e=>{let r=new Map(e.subagents),i=r.get(t);return r.set(t,{id:t,name:i?.name??t,role:i?.role??`agent`,status:i?.status??`idle`,...i,...n,lastSeen:Date.now()}),y(r,_,e=>e.status===`stopped`),{subagents:r,lastUpdated:Date.now()}}),pushEvent:(t,n,r,i,a)=>e(e=>{let o=n.kind??t,s=(t.includes(`budget`)||t.includes(`threshold`))&&typeof n.limit==`number`&&n.limit>0?Math.round(n.used/n.limit*100):void 0,c=s===void 0?t.includes(`consensus.vote_resolved`)?`info`:t.includes(`consensus.vote_initiated`)?`warning`:`info`:s>=100?`danger`:s>=85?`warning`:`info`;return{events:[{id:`${r}-${t}`,ts:r,type:t,subagentId:i,taskId:a,payload:n,kind:o,level:c,message:m(t,n)},...e.events].slice(0,h),lastUpdated:Date.now()}}),pushConsensusVote:(t,n,r)=>e(e=>{let i=new Map(e.consensusVotes);return i.set(t,{changeId:t,title:n,status:`pending`,eligible:r,votes:[],approveCount:0,rejectCount:0,abstainCount:0,expiresAt:Date.now()+3e5}),y(i,v,e=>e.status!==`pending`),{consensusVotes:i,lastUpdated:Date.now()}}),recordConsensusVote:(t,n,r,i)=>e(e=>{let a=new Map(e.consensusVotes),o=a.get(t);if(!o)return{};let s={...o,votes:[...o.votes.filter(e=>e.agentId!==n),{agentId:n,agentName:r,value:i,votedAt:Date.now()}],approveCount:i===`approve`?o.approveCount+1:o.approveCount,rejectCount:i===`reject`?o.rejectCount+1:o.rejectCount,abstainCount:i===`abstain`?o.abstainCount+1:o.abstainCount};return a.set(t,s),{consensusVotes:a,lastUpdated:Date.now()}}),resolveConsensusVote:(t,n,r,i)=>e(e=>{let a=new Map(e.consensusVotes),o=a.get(t);return o?(a.set(t,{...o,status:n,approveCount:r,rejectCount:i,resolvedAt:Date.now()}),{consensusVotes:a,lastUpdated:Date.now()}):{}}),pushTaskPending:(t,n,r)=>e(e=>{let i=new Map(e.tasks);return i.set(t,{id:t,description:n,status:`pending`,priority:r,queuedAt:Date.now()}),y(i,g,e=>e.status===`completed`||e.status===`failed`),{tasks:i,taskCounts:{...e.taskCounts,pending:e.taskCounts.pending+1},lastUpdated:Date.now()}}),startTask:(t,n)=>e(e=>{let r=new Map(e.tasks),i=r.get(t);return i?r.set(t,{...i,status:`running`,subagentId:n,startedAt:Date.now()}):r.set(t,{id:t,description:``,status:`running`,subagentId:n,startedAt:Date.now()}),{tasks:r,taskCounts:{...e.taskCounts,pending:Math.max(0,e.taskCounts.pending-1),running:e.taskCounts.running+1},lastUpdated:Date.now()}}),completeTask:(t,n,r)=>e(e=>{let i=new Map(e.tasks),a=i.get(t);return a&&i.set(t,{...a,status:n,completedAt:Date.now(),durationMs:r}),y(i,g,e=>e.status===`completed`||e.status===`failed`),{tasks:i,taskCounts:{...e.taskCounts,running:Math.max(0,e.taskCounts.running-1),completed:n===`completed`?e.taskCounts.completed+1:e.taskCounts.completed,failed:n===`failed`?e.taskCounts.failed+1:e.taskCounts.failed},lastUpdated:Date.now()}}),failTask:(t,n)=>e(e=>{let r=new Map(e.tasks),i=r.get(t);return i&&r.set(t,{...i,status:`failed`,error:n,completedAt:Date.now()}),y(r,g,e=>e.status===`completed`||e.status===`failed`),{tasks:r,taskCounts:{...e.taskCounts,running:Math.max(0,e.taskCounts.running-1),failed:e.taskCounts.failed+1},lastUpdated:Date.now()}}),recordBudgetDecision:(t,n,r,i)=>e(e=>{let a=new Map;for(let t of e.budgetAlerts){let e=`${t.subagentId}:${t.kind}`;a.has(e)||a.set(e,t)}let o=`${t}:${n}`,s=a.get(o);return s&&a.set(o,{...s,decision:r,newLimit:i,level:r===`extend`?`warning`:`danger`}),{budgetAlerts:Array.from(a.values()),lastUpdated:Date.now()}}),recordBudgetAlert:(t,n,r,i)=>e(e=>{let a=`${Date.now()}-${t}-${n}`,o=i>0?Math.round(r/i*100):0;return{budgetAlerts:[{id:a,ts:Date.now(),subagentId:t,kind:n,level:p(n,o),used:r,limit:i,pct:o},...e.budgetAlerts].slice(0,ee),lastUpdated:Date.now()}}),recordBudgetExtended:(t,n,r)=>e(e=>{let i=new Map(e.subagents),a=i.get(t);if(a?.budgetLimits){let e={...a.budgetLimits};n===`timeout`&&r&&(e.timeoutMs=r),n===`iterations`&&(e.maxIterations=r),n===`tool_calls`&&(e.maxToolCalls=r),i.set(t,{...a,budgetLimits:e,lastSeen:Date.now()})}return{subagents:i,lastUpdated:Date.now()}}),clear:()=>e({coordinatorStatus:`idle`,coordinatorMode:void 0,subagents:new Map,events:[],consensusVotes:new Map,tasks:new Map,taskCounts:{pending:0,running:0,completed:0,failed:0},budgetAlerts:[],lastUpdated:Date.now()})}),{max:4});function x(e,t){return{seatId:C(e.seatId)??`seat`,persona:C(e.persona)??`voter`,status:C(e.status)??`valid`,optionId:C(e.optionId),stance:C(e.stance),rationale:C(e.rationale),providerId:C(e.providerId),model:C(e.model),veto:T(e.veto),weight:w(e.weight),durationMs:w(e.durationMs),error:C(e.error),round:w(e.round),changed:T(e.changed),at:w(e.at)??t}}function te(e){if(e.phase===`voting`){let t=e.seats.reduce((e,t)=>Math.max(e,t.round??1),1),n=e.seats.filter(e=>(e.round??1)===t).length;return`voting${t>1?` r${t}`:``} · ${n} seat${n===1?``:`s`} in`}let t=e.configuredSeatCount??e.seats.length,n=[e.resolution??e.status??`resolved`,`${e.validVoteCount??e.seats.length}/${t} seats`,`${e.distinctTargetCount??0} distinct target${e.distinctTargetCount===1?``:`s`}`];if(e.rounds!==void 0&&e.rounds>1){let t=e.deliberationChanges??0;n.push(`${e.rounds} rounds${t>0?`, ${t} changed`:`, none changed`}`)}return e.judgeUsed&&n.push(`judge${e.judgeLabel?` ${e.judgeLabel}`:``}`+(e.judgeIsVoter?` (also a voter)`:``)),e.durationMs!==void 0&&n.push(`${Math.round(e.durationMs/100)/10}s`),e.totalTokens&&n.push(`${e.totalTokens} tok`),n.join(` · `)}function S(e,t,n,r){let i=e.findIndex(e=>e.requestId===t);if(i>=0){let t=e[i],n=r(t);if(n===t)return e;let a=[...e];return a[i]=n,a}return[r({requestId:t,phase:`voting`,startedAt:n,seats:[]}),...e].slice(0,50)}var ne=f(e=>({panels:[],questions:new Map,recordVote:t=>{let n=C(t.requestId);if(!n)return;let r=w(t.at),i=r??Date.now();e(e=>({panels:S(e.panels,n,i,a=>{let o=C(t.seatId)??`seat`,s=x(t,i),c=a.seats.find(e=>e.seatId===o),l=a.question??e.questions.get(n);return a.phase===`resolved`&&(r===void 0?!c:r>(a.resolvedAt??a.startedAt))?{requestId:n,phase:`voting`,startedAt:i,seats:[s],question:l}:a.phase===`resolved`&&a.hasFinalVotes?a:c?(s.round??1)<(c.round??1)||(s.round??1)===(c.round??1)&&s.at<c.at?a:{...a,question:l,seats:a.seats.map(e=>e.seatId===o?s:e)}:{...a,question:l,seats:[...a.seats,s]}})}))},recordResolution:t=>{let n=C(t.requestId);if(!n)return;let r=w(t.at),i=r??Date.now(),a=t.usage;e(e=>({panels:S(e.panels,n,i,o=>r!==void 0&&(r<o.startedAt||o.resolvedAt!==void 0&&r<=o.resolvedAt)?o:{...o,question:o.question??e.questions.get(n),phase:`resolved`,hasFinalVotes:Array.isArray(t.votes),seats:Array.isArray(t.votes)?t.votes.filter(e=>e&&typeof e==`object`&&!Array.isArray(e)).map(e=>x(e,i)):o.seats,resolvedAt:w(t.at)??i,status:C(t.status),resolution:C(t.resolution),optionId:C(t.optionId),reason:C(t.reason),configuredSeatCount:w(t.configuredSeatCount),validVoteCount:w(t.validVoteCount),distinctTargetCount:w(t.distinctTargetCount),judgeUsed:T(t.judgeUsed),judgeLabel:C(t.judgeLabel),judgeIsVoter:T(t.judgeIsVoter),rounds:w(t.rounds),deliberationChanges:w(t.deliberationChanges),totalTokens:w(a?.totalTokens),durationMs:w(a?.durationMs),warnings:Array.isArray(t.warnings)?t.warnings.filter(e=>typeof e==`string`):void 0})}))},noteQuestion:(t,n)=>{let r=n.trim();t&&r&&e(e=>{let n=e.panels.findIndex(e=>e.requestId===t);if(n<0){if(e.questions.get(t)===r)return e;let n=new Map(e.questions);for(n.delete(t),n.set(t,r);n.size>50;)n.delete(n.keys().next().value);return{questions:n}}let i=e.panels[n];if(i.question===r)return e;let a=[...e.panels];return a[n]={...i,question:r},{panels:a}})},clear:()=>e({panels:[],questions:new Map})}));function C(e){return typeof e==`string`&&e.trim()?e:void 0}function w(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function T(e){return typeof e==`boolean`?e:void 0}var E=c()(e=>({snapshot:null,lastFiredAt:{},revision:0,setSnapshot:t=>e(e=>({snapshot:t,revision:e.revision+1})),recordFired:(t,n)=>e(e=>({lastFiredAt:{...e.lastFiredAt,[t]:n},revision:e.revision+1})),clear:()=>e({snapshot:null,lastFiredAt:{},revision:0})}));function D(){return`ref_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function O(e){switch(e.split(`.`).pop()?.toLowerCase()??``){case`ts`:case`tsx`:return`typescript`;case`js`:case`jsx`:return`javascript`;case`json`:return`json`;case`md`:case`mdx`:return`markdown`;case`css`:return`css`;case`scss`:return`scss`;case`html`:case`htm`:return`html`;case`py`:return`python`;case`rs`:return`rust`;case`go`:return`go`;case`rb`:return`ruby`;case`java`:return`java`;case`c`:return`c`;case`cpp`:case`hpp`:return`cpp`;case`h`:return`c`;case`sh`:case`bash`:return`bash`;case`sql`:return`sql`;case`yaml`:case`yml`:return`yaml`;case`toml`:return`toml`;default:return``}}function k(e,t=20,n=2e3){let r=e.split(`
|
|
2
|
+
`),i=!1,a=e;return r.length>t&&(a=r.slice(0,t).join(`
|
|
3
|
+
`),i=!0),a.length>n&&(a=a.slice(0,n),i=!0),i&&(a=a.replace(/\s+$/,``)+`
|
|
4
|
+
…`),{text:a,truncated:i}}function A(e){return e.length===0?``:[`[File reference contract]`,`Before answering or modifying anything related to these references, use the available file-reading tools to read each complete project file:`,...e.map(e=>`- ${JSON.stringify(e)}`),`If a read is paginated or chunked, continue on the same path until EOF. Do not treat an inline preview as the complete file.`].join(`
|
|
5
|
+
`)}function j(e,t){if(e.length===0)return``;let n=[],r=new Set;for(let i of e){if(i.kind===`file`){let e=t?.[i.path];if(e){let t=O(i.path),a=t?`\`\`\`${t}`:"```",o=k(e),s=o.truncated?`preview; complete read required`:`entire file`;n.push(`${a}\n// ${i.path} (${s})\n${o.text}\n\`\`\``),o.truncated&&r.add(i.path)}else n.push(`@${i.path}`),r.add(i.path);continue}let e=O(i.path),a=e?`\`\`\`${e}`:"```",o=`// ${i.path}:${i.startLine}-${i.endLine}`,s=k(i.kind===`snippet`?i.content:i.preview);n.push(`${a}\n${o}\n${s.text}\n\`\`\``),s.truncated&&r.add(i.path)}let i=A([...r]);return[...n,i].filter(Boolean).join(`
|
|
6
|
+
|
|
7
|
+
`)}var re=c()((e,t)=>({refs:[],addRef:n=>{let r=t();if(n.kind===`file`&&r.refs.find(e=>e.kind===`file`&&e.path===n.path))return;let i={...n,id:D()};e({refs:[...r.refs,i]})},removeRef:t=>{e(e=>({refs:e.refs.filter(e=>e.id!==t)}))},clearRefs:()=>e({refs:[]})})),ie=c()(e=>({info:null,setInfo:t=>e({info:t}),clear:()=>e({info:null})})),ae=c()((e,t)=>({result:null,loading:!1,currentSeq:0,setResult:t=>e(e=>t.reqSeq===e.currentSeq?{result:t,loading:!1}:{}),setLoading:()=>e({loading:!0,result:null}),clear:()=>e({result:null,loading:!1}),nextSeq:()=>{let n=t().currentSeq+1;return e({currentSeq:n}),n}})),M=c()(e=>({phases:[],activePhaseId:null,overallPercent:0,autonomous:!1,title:null,graphId:null,goal:null,status:`idle`,multiBoard:!1,lastEvent:null,lastError:null,graphs:[],progress:null,finalVerification:null,setState:t=>e(e=>({phases:t.phases??e.phases,activePhaseId:t.activePhaseId===void 0?e.activePhaseId:t.activePhaseId,overallPercent:t.overallPercent??e.overallPercent,autonomous:t.autonomous??e.autonomous,title:t.title===void 0?e.title:t.title,graphId:t.graphId===void 0?e.graphId:t.graphId,goal:t.goal===void 0?e.goal:t.goal,status:t.status??e.status,multiBoard:t.multiBoard??e.multiBoard,lastEvent:t.lastEvent===void 0?e.lastEvent:t.lastEvent,lastError:t.lastError===void 0?e.lastError:t.lastError,graphs:t.graphs??e.graphs,progress:t.progress===void 0?e.progress:t.progress,finalVerification:t.finalVerification===void 0?e.finalVerification:t.finalVerification})),clear:()=>e({phases:[],activePhaseId:null,overallPercent:0,autonomous:!1,title:null,graphId:null,goal:null,status:`idle`,multiBoard:!1,lastEvent:null,lastError:null,graphs:[],progress:null,finalVerification:null}),hydrateFromServer:e=>{e({type:`goal.list`}),e({type:`goal.status`})}}));function N(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return!(typeof t.iteration!=`number`||!Number.isFinite(t.iteration)||t.task!==void 0&&typeof t.task!=`string`||t.status!==void 0&&typeof t.status!=`string`||t.progress!==void 0&&(typeof t.progress!=`number`||!Number.isFinite(t.progress))||t.progressNote!==void 0&&typeof t.progressNote!=`string`||t.timestamp!==void 0&&typeof t.timestamp!=`string`)}function P(e){return!e||typeof e.goal!=`string`||!e.goal.trim()?null:{goal:e.goal,refinedGoal:typeof e.refinedGoal==`string`?e.refinedGoal:void 0,goalState:[`active`,`paused`,`completed`,`failed`,`abandoned`].includes(e.goalState)?e.goalState:`active`,iterations:typeof e.iterations==`number`?e.iterations:0,progress:typeof e.progress==`number`?e.progress:0,progressNote:typeof e.progressNote==`string`?e.progressNote:void 0,progressTrend:e.progressTrend===`accelerating`?`up`:e.progressTrend===`stalling`?`down`:e.progressTrend===`steady`?`stable`:void 0,deliverables:Array.isArray(e.deliverables)?e.deliverables.map((e,t)=>typeof e==`string`?{id:`d${t}`,text:e,status:/^\[[x✓]\]|✅|\(done\)/i.test(e)?`done`:`pending`}:e):void 0,journal:Array.isArray(e.journal)?e.journal.filter(N):void 0,lastTask:typeof e.lastTask==`string`?e.lastTask:void 0,lastStatus:typeof e.lastStatus==`string`?e.lastStatus:void 0}}var F=c()(e=>({goal:null,missionId:null,refiningMissionId:null,setGoal:t=>e(e=>{let n=typeof t?.missionId==`string`?t.missionId:typeof t?.setAt==`string`?t.setAt:null;return{goal:P(t),missionId:n,refiningMissionId:n===e.missionId?e.refiningMissionId:null}}),setRefining:(t,n)=>e(e=>e.missionId===t?{refiningMissionId:n?t:null}:e),clear:()=>e({goal:null,missionId:null,refiningMissionId:null}),appendJournalEntry:t=>e(e=>e.goal?{goal:{...e.goal,iterations:Math.max(e.goal.iterations,t.iteration),lastTask:t.task??e.goal.lastTask,lastStatus:t.status??e.goal.lastStatus,journal:[t,...e.goal.journal??[]].slice(0,200)}}:e),refresh:()=>{try{i()?.send?.({type:`goal-state.get`})}catch{}}}));function I(e,t){return e.presence?.some(e=>e.active)===!0||e.tags?.some(e=>e.startsWith(`session:`)&&t.includes(e.slice(8)))===!0}var L=3e5,R=c()((e,t)=>({boards:[],boardTotal:0,activeBoardTotal:0,orphanedBoardTotal:0,activeBoardId:null,activeBoard:null,loading:!1,lastOutboundAction:null,error:null,queueHealth:null,supervisorSnapshot:null,workbench:null,verificationActivity:{},boardHistory:[],fetchBoardHistory:e=>{t().sendKanban(`kanban.board.history`,{boardId:e})},setLoading:t=>e({loading:t}),sendKanban:(t,n)=>(e({loading:!0,lastOutboundAction:t}),t),transitionTask:(t,n,r,i)=>{let a=`kanban.task.transition`;return e({loading:!0,lastOutboundAction:a}),a},dispatchTask:(t,n,r)=>{let i=`kanban.task.dispatch`;return e({loading:!0,lastOutboundAction:i}),i},moveTask:(t,n,r)=>{let i=`kanban.task.move`;return e({loading:!0,lastOutboundAction:i}),i},removeTask:(t,n)=>{let r=`kanban.task.remove`;return e({loading:!0,lastOutboundAction:r}),r},setActiveBoardId:t=>e({activeBoardId:t,queueHealth:null,supervisorSnapshot:null,verificationActivity:{}}),setError:t=>e({error:t}),setQueueHealth:t=>e({queueHealth:t}),handleResult:(n,r)=>{if(!r.success){e({loading:!1,error:r.error??`Kanban request failed`});return}let i=r.data;if((n===`kanban.supervisor.status`||n===`kanban.supervisor.audit`)&&i){e({supervisorSnapshot:i,loading:!1,error:null});return}if(n===`kanban.health`&&r.data){e({queueHealth:r.data,loading:!1,error:null});return}if(n===`kanban.workbench`&&r.data){e({workbench:r.data,loading:!1,error:null});return}if(n===`kanban.list`){let t=U(i)?i:null,n=t?t.items:Array.isArray(i)?i:[];e({boards:n,boardTotal:t?.total??n.length,activeBoardTotal:t?.activeTotal??n.filter(e=>W(e)).length,orphanedBoardTotal:t?.orphanedTotal??n.filter(e=>!W(e)).length,loading:!1,error:null});return}if(n===`kanban.delete`){let n=t().activeBoardId,r=i,a=r?.removed===!0,o=r?.boardId??n;e(e=>{let t=a?e.boards.find(e=>e.id===o):void 0,n=t?W(t):void 0;return{boards:a?e.boards.filter(e=>e.id!==o):e.boards,boardTotal:a?Math.max(0,e.boardTotal-1):e.boardTotal,activeBoardTotal:n===!0?Math.max(0,e.activeBoardTotal-1):e.activeBoardTotal,orphanedBoardTotal:n===!1?Math.max(0,e.orphanedBoardTotal-1):e.orphanedBoardTotal,activeBoardId:a&&e.activeBoardId===o?null:e.activeBoardId,activeBoard:a&&e.activeBoard?.id===o?null:e.activeBoard,loading:!1,error:null}});return}if(n===`kanban.task.remove`){let t=i;e(e=>{let n=z(t?.board)?t.board:null;if(n&&e.activeBoardId===n.id)return{boards:q(e.boards,K(n)),activeBoard:n,loading:!1,error:null};let r=t?.boardId,i=t?.taskId,a=t?.removed===!0&&i&&e.activeBoard&&(!r||e.activeBoard.id===r)?{...e.activeBoard,tasks:e.activeBoard.tasks.filter(e=>e.id!==i)}:e.activeBoard;return{activeBoard:a,boards:a?q(e.boards,K(a)):e.boards,loading:!1,error:null}});return}if(n===`kanban.board.history`){Array.isArray(i)&&e({boardHistory:i});return}if(n===`kanban.task.verification_started`){let t=i;if(t?.boardId&&t.taskId){let n=`${t.boardId}:${t.taskId}`;e(e=>{let t=Date.now(),r=Object.fromEntries(Object.entries(e.verificationActivity).filter(([,e])=>t-e.startedAt<L));return r[n]={startedAt:t},{verificationActivity:r,loading:!1,error:null}})}return}if(n===`kanban.task.verification_completed`&&V(i)){let t=`${i.boardId}:${i.task.id}`;e(e=>{let n={...e.verificationActivity};if(delete n[t],e.activeBoard&&e.activeBoard.id===i.boardId){let t=J(e.activeBoard,i.task);return{verificationActivity:n,boards:q(e.boards,K(t)),activeBoard:t,loading:!1,error:null}}return{verificationActivity:n,loading:!1,error:null}});return}if(H(i)){let t=i.board;e(e=>({boards:q(e.boards,K(t)),activeBoard:e.activeBoardId===t.id?t:e.activeBoard,loading:!1,error:null}));return}if(V(i)){e(e=>{if(e.activeBoard&&e.activeBoard.id===i.boardId){let t=J(e.activeBoard,i.task);return{boards:q(e.boards,K(t)),activeBoard:t,loading:!1,error:null}}return{loading:!1,error:null}});return}if(z(i)){let t=K(i);if(n!==`kanban.create`&&n!==`kanban.duplicate`&&n!==`kanban.generate`){e(e=>({boards:q(e.boards,t),activeBoard:e.activeBoardId===i.id?i:e.activeBoard,loading:!1,error:null}));return}e(e=>({boards:q(e.boards,t),activeBoardId:i.id,activeBoard:i,loading:!1,error:null}));return}if(B(i)){e(e=>({...e.activeBoard?(()=>{let t=J(e.activeBoard,i);return{activeBoard:t,boards:q(e.boards,K(t))}})():{activeBoard:e.activeBoard},loading:!1,error:null}));return}if(Array.isArray(i)&&i.every(G)){e(e=>({...e.activeBoard?(()=>{let t={...e.activeBoard,columns:i};return{activeBoard:t,boards:q(e.boards,K(t))}})():{activeBoard:e.activeBoard},loading:!1,error:null}));return}e({loading:!1,error:null})}}));function z(e){return!!e&&typeof e==`object`&&Array.isArray(e.columns)&&Array.isArray(e.tasks)}function B(e){return!!e&&typeof e==`object`&&typeof e.title==`string`}function V(e){return!!e&&typeof e==`object`&&typeof e.boardId==`string`&&B(e.task)}function H(e){return!!e&&typeof e==`object`&&z(e.board)}function U(e){return!!e&&typeof e==`object`&&Array.isArray(e.items)&&typeof e.total==`number`}function W(e){return I(e,[])}function G(e){return!!e&&typeof e==`object`&&typeof e.id==`string`}function K(e){return{id:e.id,title:e.title,description:e.description,tags:e.tags,presence:e.presence,createdAt:e.createdAt,updatedAt:e.updatedAt,columnCount:e.columns.length,taskCount:e.tasks.length,completedTaskCount:e.tasks.filter(e=>e.status===`completed`).length}}function q(e,t){return[t,...e.filter(e=>e.id!==t.id)].sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt))}function J(e,t){let n=e.tasks.some(e=>e.id===t.id)?e.tasks.map(e=>e.id===t.id?t:e):[...e.tasks,t];return{...e,tasks:n}}function oe(e){switch(e){case`tui`:return`tui`;case`cli`:case`repl`:return`repl`;case`webui`:return`webui`;default:return`webui`}}function se(e){let t={tui:0,webui:0,repl:0},n=0,r=0,i={toolCalls:0,costUsd:0,tokensIn:0,tokensOut:0};for(let a of e){t[oe(a.clientType)]+=1;for(let e of a.agents)n+=1,(e.status===`running`||e.status===`streaming`)&&(r+=1),i.toolCalls+=e.toolCalls??0,i.costUsd+=e.costUsd??0,i.tokensIn+=e.tokensIn??0,i.tokensOut+=e.tokensOut??0}return{clientCounts:t,totalAgents:n,activeAgents:r,aggregate:i}}function ce(e){if(e!==void 0)return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function le(e){return e.map(e=>({...e,agents:e.agents.map(e=>({...e,ctxPct:ce(e.ctxPct)}))}))}var ue=0,Y=c()(e=>({clientCounts:{tui:0,webui:0,repl:0},mailActivity:[],totalMessages:0,openMessages:0,unreadMessages:0,totalAgents:0,activeAgents:0,currentSession:{},liveSessions:[],aggregate:{toolCalls:0,costUsd:0,tokensIn:0,tokensOut:0},lastUpdated:Date.now(),setClientCounts:t=>e({clientCounts:t,lastUpdated:Date.now()}),setLiveSessions:t=>{let n=le(t),r=Y.getState().liveSessions;if(r.length===n.length){let e=!0;for(let t=0;t<n.length;t++){let i=n[t],a=r[t];if(i.sessionId!==a.sessionId||i.status!==a.status||i.agentCount!==a.agentCount||i.startedAt!==a.startedAt||i.lastHeartbeatAt!==a.lastHeartbeatAt){e=!1;break}let o=i.agents??[],s=a.agents??[];if(o.length!==s.length){e=!1;break}for(let t=0;t<o.length;t++)if(o[t].id!==s[t].id||o[t].name!==s[t].name||o[t].status!==s[t].status||o[t].currentTool!==s[t].currentTool||o[t].iterations!==s[t].iterations||o[t].toolCalls!==s[t].toolCalls||o[t].ctxPct!==s[t].ctxPct||o[t].tokensIn!==s[t].tokensIn||o[t].tokensOut!==s[t].tokensOut||o[t].costUsd!==s[t].costUsd||o[t].recentTools?.[0]?.id!==s[t].recentTools?.[0]?.id||o[t].recentMail?.[0]?.id!==s[t].recentMail?.[0]?.id||o[t].activity?.reads!==s[t].activity?.reads||o[t].activity?.writes!==s[t].activity?.writes||o[t].activity?.edits!==s[t].activity?.edits||o[t].activity?.terminalCalls!==s[t].activity?.terminalCalls||o[t].activity?.mailReceived!==s[t].activity?.mailReceived||o[t].activity?.mailSent!==s[t].activity?.mailSent||o[t].activity?.linesAdded!==s[t].activity?.linesAdded||o[t].activity?.linesRemoved!==s[t].activity?.linesRemoved){e=!1;break}if(!e)break}if(e)return}e({liveSessions:n,...se(n),lastUpdated:Date.now()})},addMailActivity:t=>e(e=>({mailActivity:[{...t,seq:t.seq??++ue},...e.mailActivity].slice(0,50),lastUpdated:Date.now()})),setMailStats:(t,n,r)=>e({totalMessages:t,openMessages:n,unreadMessages:r,lastUpdated:Date.now()}),setAgentStats:(t,n)=>e({totalAgents:t,activeAgents:n,lastUpdated:Date.now()}),setCurrentSession:t=>e({currentSession:{...Y.getState().currentSession,...t},lastUpdated:Date.now()}),clear:()=>e({clientCounts:{tui:0,webui:0,repl:0},mailActivity:[],totalMessages:0,openMessages:0,unreadMessages:0,totalAgents:0,activeAgents:0,currentSession:{},liveSessions:[],aggregate:{toolCalls:0,costUsd:0,tokensIn:0,tokensOut:0},lastUpdated:Date.now()})})),de=[3e4,6e4,12e4,3e5,6e5],X=12e4,fe=c()(s(e=>({viewMode:`office`,showHud:!0,showLegend:!0,showMinimap:!0,showControls:!0,animateEdges:!0,showFeed:!0,background:`dots`,waitThresholdMs:X,setViewMode:t=>e({viewMode:t}),setShowHud:t=>e({showHud:t}),setShowLegend:t=>e({showLegend:t}),setShowMinimap:t=>e({showMinimap:t}),setShowControls:t=>e({showControls:t}),setAnimateEdges:t=>e({animateEdges:t}),setShowFeed:t=>e({showFeed:t}),setBackground:t=>e({background:t}),setWaitThresholdMs:t=>e({waitThresholdMs:Number.isFinite(t)&&t>0?Math.round(t):X})}),{name:`wrongstack-officemap`}));function Z(e){return`${e.providerId}\u0000${e.meterId}`}function pe(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.providerId==`string`&&typeof t.meterId==`string`&&Array.isArray(t.windows)&&typeof t.capturedAt==`number`}var me=c(e=>({meters:{},apply:t=>e(e=>{let n={...e.meters};for(let e of t){if(!pe(e))continue;let t=n[Z(e)];n[Z(e)]={...e,...e.planLabel===void 0&&t?.planLabel!==void 0?{planLabel:t.planLabel}:{},...e.meterLabel===void 0&&t?.meterLabel!==void 0?{meterLabel:t.meterLabel}:{}}}return{meters:n}}),clear:()=>e({meters:{}})}));function he(e){let t;for(let n of Object.values(e))for(let e of n.windows){if(!t||e.usedPercent>t.window.usedPercent){t={snapshot:n,window:e};continue}if(e.usedPercent===t.window.usedPercent){let r=e.resetsAt,i=t.window.resetsAt;r!==void 0&&(i===void 0||r<i)&&(t={snapshot:n,window:e})}}return t}function ge(e){if(e.label)return e.label;let t=e.windowMinutes;return t!==void 0&&Number.isFinite(t)&&t>0?t%1440==0?`${t/1440}d`:t%60==0?`${t/60}h`:`${t}m`:e.id}function _e(e,t=Date.now()){if(e?.resetsAt===void 0)return;let n=e.resetsAt*1e3-t;if(n<=0)return;let r=Math.floor(n/6e4);if(r<1)return`${Math.max(1,Math.round(n/1e3))}s`;let i=Math.floor(r/1440),a=Math.floor(r%1440/60),o=r%60;return i>0?a>0?`${i}d ${a}h`:`${i}d`:a>0?o>0?`${a}h ${o}m`:`${a}h`:`${o}m`}var Q=e=>`${e.providerId}\u0000${e.model}`,ve=c(e=>({entries:{},audit:[],summary:null,loading:!1,error:null,update:t=>e(e=>{let n={...e.entries},r=Q(t);if(t.state===`healthy`)delete n[r];else{let e=n[r],i=Object.fromEntries(Object.entries(t).filter(e=>e[1]!==void 0));n[r]={...e,...i}}return{entries:n}}),hydrate:t=>e({entries:Object.fromEntries(t.filter(e=>e.state!==`healthy`).map(e=>[Q(e),e]))}),applySnapshot:t=>{let n=t.statuses;if(!Array.isArray(n)){e({error:`Invalid snapshot from server`,loading:!1});return}let r={};for(let e of n){if(!e||typeof e!=`object`)continue;let t=e,n=typeof t.providerId==`string`?t.providerId:``,i=typeof t.model==`string`?t.model:``;if(!n||!i)continue;let a=t.state;(a===`healthy`||a===`degraded`||a===`blocked`)&&(r[`${n}\u0000${i}`]={providerId:n,model:i,state:a,reason:(typeof t.lastErrorKind==`string`?t.lastErrorKind:``)||a,updatedAt:typeof t.lastFailureAt==`number`?t.lastFailureAt:Date.now(),...typeof t.stateExpiresAt==`number`?{stateExpiresAt:t.stateExpiresAt}:{},...typeof t.consecutiveFailures==`number`?{consecutiveFailures:t.consecutiveFailures}:{},...typeof t.totalFailures==`number`?{totalFailures:t.totalFailures}:{},...typeof t.rateLimitHits==`number`?{rateLimitHits:t.rateLimitHits}:{},...typeof t.lastErrorMessage==`string`?{lastErrorMessage:t.lastErrorMessage}:{},...typeof t.lastErrorKind==`string`?{lastErrorKind:t.lastErrorKind}:{},...typeof t.lastErrorStatus==`number`?{lastErrorStatus:t.lastErrorStatus}:{},...Array.isArray(t.recentErrors)?{recentErrors:t.recentErrors.slice(0,20)}:{},...typeof t.lastSessionId==`string`?{lastSessionId:t.lastSessionId}:{},...typeof t.lastAgentId==`string`?{lastAgentId:t.lastAgentId}:{},...typeof t.lastFailureAt==`number`?{lastFailureAt:t.lastFailureAt}:{}})}let i=t;e({entries:r,summary:{totalPairs:typeof i.totalPairs==`number`?i.totalPairs:0,healthy:typeof i.healthy==`number`?i.healthy:0,degraded:typeof i.degraded==`number`?i.degraded:0,blocked:typeof i.blocked==`number`?i.blocked:0,totalFailures:typeof i.totalFailures==`number`?i.totalFailures:0,totalRateLimits:typeof i.totalRateLimits==`number`?i.totalRateLimits:0},error:null,loading:!1})},setAudit:t=>e({audit:t}),setLoading:t=>e({loading:t}),setError:t=>e({error:t,loading:!1}),removeEntry:(t,n)=>e(e=>{let r={...e.entries};return delete r[Q({providerId:t,model:n})],{entries:r}}),clear:()=>e({entries:{},audit:[],summary:null,error:null})})),ye=c()(e=>({snapshot:null,boards:[],lifecycleResult:null,destroying:!1,setSnapshot:t=>e({snapshot:t}),setBoards:t=>e({boards:t}),setLifecycleResult:t=>e({lifecycleResult:t}),setDestroying:t=>e({destroying:t})})),be=f(e=>({sideEffects:[],loading:!1,setSideEffects:t=>e({sideEffects:t,loading:!1}),setLoading:t=>e({loading:t}),clear:()=>e({sideEffects:[],loading:!1})})),xe=c()(e=>({specs:[],detail:null,expandedSpecId:null,setSpecs:t=>e({specs:t}),setDetail:t=>e({detail:t}),setExpanded:t=>e({expandedSpecId:t,detail:null})})),Se=new Set([`idle`,`queued`,`discovering`,`inventorying`,`enriching`,`researching`,`synthesizing`,`completed`,`failed`,`cancelled`]);function Ce(e){return Se.has(e)?e:void 0}var $={snapshot:null,stale:!1,loading:!1,error:null,activeJob:null,lastWorkspaceId:null,reportId:null},we=c()(e=>({...$,setSnapshot:(t,n=!1)=>e(e=>({snapshot:t,stale:n,loading:!1,error:null,activeJob:e.activeJob?{...e.activeJob,status:`completed`,error:null}:null})),setLoading:t=>e({loading:t}),setError:t=>e({error:t,loading:!1}),jobStarted:(t,n)=>e({activeJob:{id:t,kind:n,status:`queued`,progress:null,error:null},error:null,loading:!0}),jobProgress:(t,n)=>e(e=>{if(e.activeJob?.id!==t)return e;let r=Ce(n.phase);return r?{activeJob:{...e.activeJob,status:r,progress:n},loading:!0}:e}),jobFailed:(t,n)=>e(e=>e.activeJob?.id===t?{activeJob:{...e.activeJob,status:`failed`,error:n},error:n,loading:!1}:e),jobCancelled:t=>e(e=>({activeJob:e.activeJob?.id===t?{...e.activeJob,status:`cancelled`,error:null}:e.activeJob,loading:!1})),workspaceCompleted:t=>e({lastWorkspaceId:t}),reportReady:t=>e({reportId:t}),clear:()=>e($)})),Te=c()(e=>({worktrees:[],baseBranch:``,activity:[],orphans:[],canClean:!1,cleanResult:null,mergeResult:null,diffByDir:{},setSnapshot:(t,n)=>e({worktrees:t,baseBranch:n}),pushEvent:t=>e(e=>({activity:[...e.activity,t].slice(-40)})),setOrphans:(t,n,r)=>e({orphans:t,canClean:n,cleanBlockedReason:r}),setCleanResult:t=>e({cleanResult:t}),setMergeResult:t=>e({mergeResult:t}),setDiff:(t,n)=>e(e=>({diffByDir:{...e.diffByDir,[t]:n}}))}));export{te as C,u as D,f as E,E as S,b as T,M as _,ye as a,j as b,ge as c,de as d,fe as f,F as g,I as h,be as i,he as l,R as m,we as n,ve as o,Y as p,xe as r,_e as s,Te as t,me as u,ae as v,ne as w,re as x,ie as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={saved:`Sessão salva`,loaded:`Sessão carregada`,deleted:`Sessão excluída`},t={generic:`Algo deu errado.`,connectionLost:`Conexão perdida. Reconectando…`,reconnected:`Reconectado.`},n={title:`Notificações`,unreadCount:`{{count}} não lidas`,allRead:`Tudo em dia`,markAllRead:`Marcar todas como lidas`,clearAll:`Limpar tudo`,tabAll:`Todas`,tabUnread:`Não lidas`,filterType:`Mostrar`,filterImportant:`Avisos e erros`,filterAll:`Todos os tipos`,filterErrors:`Erros`,filterWarnings:`Avisos`,filterSuccess:`Sucessos`,filterInfo:`Informações`,emptyFiltered:`Nenhuma notificação correspondente`,emptyFilteredHint:`Escolha outro tipo para ver mais notificações.`,empty:`Nenhuma notificação`,emptyHint:`As notificações do sistema aparecerão aqui.`,markAsRead:`Marcar como lida`,remove:`Remover notificação`,justNow:`Agora mesmo`,secondsAgo:`há {{count}} s`,minutesAgo:`há {{count}} min`,hoursAgo:`há {{count}} h`,daysAgo:`há {{count}} d`},r={session:e,error:t,menu:n};export{r as default,t as error,n as menu,e as session};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={saved:`Sesión guardada`,loaded:`Sesión cargada`,deleted:`Sesión eliminada`},t={generic:`Algo salió mal.`,connectionLost:`Conexión perdida. Reconectando…`,reconnected:`Reconectado.`},n={title:`Notificaciones`,unreadCount:`{{count}} sin leer`,allRead:`Todo al día`,markAllRead:`Marcar todo como leído`,clearAll:`Borrar todo`,tabAll:`Todas`,tabUnread:`Sin leer`,filterType:`Mostrar`,filterImportant:`Advertencias y errores`,filterAll:`Todos los tipos`,filterErrors:`Errores`,filterWarnings:`Advertencias`,filterSuccess:`Éxitos`,filterInfo:`Información`,emptyFiltered:`No hay notificaciones que coincidan`,emptyFilteredHint:`Elige otro tipo para ver más notificaciones.`,empty:`No hay notificaciones`,emptyHint:`Las notificaciones y avisos del sistema aparecerán aquí.`,markAsRead:`Marcar como leído`,remove:`Eliminar notificación`,justNow:`Ahora mismo`,secondsAgo:`hace {{count}} s`,minutesAgo:`hace {{count}} m`,hoursAgo:`hace {{count}} h`,daysAgo:`hace {{count}} d`},r={session:e,error:t,menu:n};export{r as default,t as error,n as menu,e as session};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-hePW80VL.js";var t=e({default:()=>a,error:()=>r,menu:()=>i,session:()=>n}),n={saved:`Session saved`,loaded:`Session loaded`,deleted:`Session deleted`},r={generic:`Something went wrong.`,connectionLost:`Connection lost. Reconnecting…`,reconnected:`Reconnected.`},i={title:`Notifications`,unreadCount:`{{count}} unread`,allRead:`All caught up`,markAllRead:`Mark all as read`,clearAll:`Clear all`,tabAll:`All`,tabUnread:`Unread`,filterType:`Show`,filterImportant:`Warnings and errors`,filterAll:`Every type`,filterErrors:`Errors`,filterWarnings:`Warnings`,filterSuccess:`Success`,filterInfo:`Information`,emptyFiltered:`No matching notifications`,emptyFilteredHint:`Choose another type to see more notifications.`,empty:`No notifications`,emptyHint:`Toasts and system notifications will appear here.`,markAsRead:`Mark as read`,remove:`Remove notification`,justNow:`Just now`,secondsAgo:`{{count}}s ago`,minutesAgo:`{{count}}m ago`,hoursAgo:`{{count}}h ago`,daysAgo:`{{count}}d ago`},a={session:n,error:r,menu:i};export{t as n,a as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={saved:`Sessione salvata`,loaded:`Sessione caricata`,deleted:`Sessione eliminata`},t={generic:`Qualcosa è andato storto.`,connectionLost:`Connessione persa. Riconnessione…`,reconnected:`Riconnesso.`},n={title:`Notifiche`,unreadCount:`{{count}} non lette`,allRead:`Tutto in pari`,markAllRead:`Segna tutte come lette`,clearAll:`Cancella tutto`,tabAll:`Tutte`,tabUnread:`Non lette`,filterType:`Mostra`,filterImportant:`Avvisi ed errori`,filterAll:`Tutti i tipi`,filterErrors:`Errori`,filterWarnings:`Avvisi`,filterSuccess:`Operazioni riuscite`,filterInfo:`Informazioni`,emptyFiltered:`Nessuna notifica corrispondente`,emptyFilteredHint:`Scegli un altro tipo per vedere più notifiche.`,empty:`Nessuna notifica`,emptyHint:`Le notifiche di sistema appariranno qui.`,markAsRead:`Segna come letta`,remove:`Rimuovi notifica`,justNow:`Proprio ora`,secondsAgo:`{{count}}s fa`,minutesAgo:`{{count}} min fa`,hoursAgo:`{{count}} ore fa`,daysAgo:`{{count}} gg fa`},r={session:e,error:t,menu:n};export{r as default,t as error,n as menu,e as session};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={saved:`Oturum kaydedildi`,loaded:`Oturum yüklendi`,deleted:`Oturum silindi`},t={generic:`Bir şeyler ters gitti.`,connectionLost:`Bağlantı koptu. Yeniden bağlanıyor…`,reconnected:`Yeniden bağlandı.`},n={title:`Bildirimler`,unreadCount:`{{count}} okunmamış`,allRead:`Tümü okundu`,markAllRead:`Tümünü okundu işaretle`,clearAll:`Tümünü temizle`,tabAll:`Tümü`,tabUnread:`Okunmamış`,filterType:`Göster`,filterImportant:`Uyarılar ve hatalar`,filterAll:`Tüm türler`,filterErrors:`Hatalar`,filterWarnings:`Uyarılar`,filterSuccess:`Başarılı işlemler`,filterInfo:`Bilgiler`,emptyFiltered:`Eşleşen bildirim yok`,emptyFilteredHint:`Diğer bildirimler için farklı bir tür seçin.`,empty:`Henüz bildirim yok`,emptyHint:`Sistem bildirimleri ve uyarılar burada listelenir.`,markAsRead:`Okundu olarak işaretle`,remove:`Bildirimi kaldır`,justNow:`Az önce`,secondsAgo:`{{count}} sn önce`,minutesAgo:`{{count}} dk önce`,hoursAgo:`{{count}} sa önce`,daysAgo:`{{count}} gün önce`},r={session:e,error:t,menu:n};export{r as default,t as error,n as menu,e as session};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={saved:`Session enregistrée`,loaded:`Session chargée`,deleted:`Session supprimée`},t={generic:`Une erreur est survenue.`,connectionLost:`Connexion perdue. Reconnexion…`,reconnected:`Reconnecté.`},n={title:`Notifications`,unreadCount:`{{count}} non lue(s)`,allRead:`Tout est à jour`,markAllRead:`Tout marquer comme lu`,clearAll:`Tout effacer`,tabAll:`Toutes`,tabUnread:`Non lues`,filterType:`Afficher`,filterImportant:`Avertissements et erreurs`,filterAll:`Tous les types`,filterErrors:`Erreurs`,filterWarnings:`Avertissements`,filterSuccess:`Succès`,filterInfo:`Informations`,emptyFiltered:`Aucune notification correspondante`,emptyFilteredHint:`Choisissez un autre type pour voir plus de notifications.`,empty:`Aucune notification`,emptyHint:`Les notifications système apparaîtront ici.`,markAsRead:`Marquer comme lu`,remove:`Supprimer la notification`,justNow:`À l'instant`,secondsAgo:`il y a {{count}} s`,minutesAgo:`il y a {{count}} min`,hoursAgo:`il y a {{count}} h`,daysAgo:`il y a {{count}} j`},r={session:e,error:t,menu:n};export{r as default,t as error,n as menu,e as session};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={saved:`Sitzung gespeichert`,loaded:`Sitzung geladen`,deleted:`Sitzung gelöscht`},t={generic:`Etwas ist schiefgelaufen.`,connectionLost:`Verbindung verloren. Verbindung wird wiederhergestellt…`,reconnected:`Verbindung wiederhergestellt.`},n={title:`Benachrichtigungen`,unreadCount:`{{count}} ungelesen`,allRead:`Alles gelesen`,markAllRead:`Alle als gelesen markieren`,clearAll:`Alle löschen`,tabAll:`Alle`,tabUnread:`Ungelesen`,filterType:`Anzeigen`,filterImportant:`Warnungen und Fehler`,filterAll:`Alle Typen`,filterErrors:`Fehler`,filterWarnings:`Warnungen`,filterSuccess:`Erfolge`,filterInfo:`Informationen`,emptyFiltered:`Keine passenden Benachrichtigungen`,emptyFilteredHint:`Wählen Sie einen anderen Typ, um weitere Benachrichtigungen zu sehen.`,empty:`Keine Benachrichtigungen`,emptyHint:`Benachrichtigungen und Systemmeldungen werden hier angezeigt.`,markAsRead:`Als gelesen markieren`,remove:`Benachrichtigung entfernen`,justNow:`Gerade eben`,secondsAgo:`vor {{count}} s`,minutesAgo:`vor {{count}} Min.`,hoursAgo:`vor {{count}} Std.`,daysAgo:`vor {{count}} T.`},r={session:e,error:t,menu:n};export{r as default,t as error,n as menu,e as session};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{bo as e,xo as t}from"./vendor-BfBvt432.js";var n=[`chat`,`agents`,`files`,`changes`,`mailbox`,`skills`,`design`];function r(e){return n.includes(e)?e:e===`context`||e===`history`||e===`sessions`||e===`projects`?`chat`:e===`worktrees`?`changes`:`chat`}var i=`chat.settings.provider-test.memory.roster.context.goal.kanban.sddhub.files.changes.history.sessions.session-inspect.setup.skill.mailbox.debug.design-gallery.refresh-debug.analytics.codemap.techstack.chronicle.intake.deadcode.prompts.chimera`.split(`.`);function a(e){return i.includes(e)?e:`chat`}var o=[`goal`,`goal-state`,`fleet`,`work`,`worktrees`,`collab`,`browser`];function s(e){return e==null||!o.includes(e)?null:e}var c=[`general`,`fonts`,`provider`,`jev`,`connection`,`agent`,`execution`,`fallbacks`,`routing`,`fleet`,`integrations`,`chimera`,`context`,`logs`,`security`,`display`];function l(e){return c.includes(e)?e:`general`}function u(){if(typeof window>`u`)return!1;if(window.wrongstackDesktopHost)return!0;try{return new URLSearchParams(window.location.search).get(`shell`)===`desktop`}catch{return!1}}function d(e={}){return{currentView:`chat`,activeActivity:`chat`,sidebarOpen:e.sidebarOpen??!1,dockSection:null,chromeSessionId:null,chromeBySession:{},dockCustomizeOpen:!1,fleetMonitorOpen:!1,agentsMonitorOpen:!1,processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,sideContextBreakdownOpen:!1,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,subagentChatFocusId:null,subagentChatFocusSessionId:null,terminalOpen:!1,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,modelSwitcherOpen:!1,promptLibraryOpen:!1,selectedMailMessage:null,refinePanel:null,skillsState:f(),chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1}}function f(){return{selectedSkill:null,navHistory:[],historyIndex:-1,detailOpen:!1,knownRefs:{},updateAvailableCount:0}}function p(){return{sidebarOpen:!0,activeActivity:`chat`,currentView:`chat`,inspectSessionId:null,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,scrollTarget:null,modelSwitcherOpen:!1,promptLibraryOpen:!1,promptInsertRequest:null,refinePanel:null,draftInput:``,draftImages:[],processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,sideContextBreakdownOpen:!1,terminalOpen:!1,dockSection:null,workDashboardTab:`todos`,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,agentRosterActiveTab:`live`,changesPanelTab:`changes`,dockCustomizeOpen:!1,skillsState:f(),selectedMailMessage:null,scrollPositions:{},chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1}}function m(e){return{sidebarOpen:e.sidebarOpen,activeActivity:e.activeActivity,currentView:e.currentView,inspectSessionId:e.inspectSessionId,searchOpen:e.searchOpen,searchQuery:e.searchQuery,searchActiveMessageId:e.searchActiveMessageId,scrollTarget:e.scrollTarget,modelSwitcherOpen:e.modelSwitcherOpen,promptLibraryOpen:e.promptLibraryOpen,promptInsertRequest:e.promptInsertRequest,refinePanel:e.refinePanel,draftInput:e.draftInput,draftImages:e.draftImages,processMonitorOpen:e.processMonitorOpen,queuePanelOpen:e.queuePanelOpen,cronJobsOpen:e.cronJobsOpen,sideContextBreakdownOpen:e.sideContextBreakdownOpen,terminalOpen:e.terminalOpen,dockSection:e.dockSection,workDashboardTab:e.workDashboardTab,inspectorOpen:e.inspectorOpen,inspectorTab:e.inspectorTab,inspectorTarget:e.inspectorTarget,inspectorFocusedAgentId:e.inspectorFocusedAgentId,agentRosterActiveTab:e.agentRosterActiveTab,changesPanelTab:e.changesPanelTab,dockCustomizeOpen:e.dockCustomizeOpen,skillsState:e.skillsState,selectedMailMessage:e.selectedMailMessage,scrollPositions:e.scrollPositions,chatSwitcherOpen:e.chatSwitcherOpen,chatCheckpointOpen:e.chatCheckpointOpen,chatMemoryPanelOpen:e.chatMemoryPanelOpen,chatContextBreakdownOpen:e.chatContextBreakdownOpen,chatContextEditorOpen:e.chatContextEditorOpen,chatToolStatsOpen:e.chatToolStatsOpen,chatInputCollapsed:e.chatInputCollapsed}}function h(e,t){return e.chromeSessionId?{chromeBySession:{...e.chromeBySession,[e.chromeSessionId]:{...m(e),...t}}}:{}}var g={name:`wrongstack-ui`,version:8,migrate:(e,t)=>{let i=e??{};if(i.activeActivity=r(i.activeActivity),typeof i.sidebarWidth==`number`&&(i.sidebarWidth=Math.max(240,Math.min(560,i.sidebarWidth))),t<2&&(delete i.fleetDrawerOpen,delete i.agentsDrawerOpen),`currentView`in i&&(i.currentView=a(i.currentView)),`dockSection`in i&&(i.dockSection=s(i.dockSection)),`settingsActiveTab`in i&&(i.settingsActiveTab=l(i.settingsActiveTab)),`activityBarOrder`in i&&i.activityBarOrder!=null){let e=i.activityBarOrder,t=new Set(n),r=Array.isArray(e.panels)?Array.from(new Set(e.panels.filter(e=>typeof e==`string`&&t.has(e)))):[],o=Array.isArray(e.views)?Array.from(new Set(e.views.map(a))):[];i.activityBarOrder=r.length||o.length?{panels:r,views:o}:null}return t<6&&delete i.draftInput,t<7&&(delete i.chromeSessionId,delete i.chromeBySession),i},merge:(e,t)=>{let n={...t,...e??{}};return n.activeActivity=r(n.activeActivity),n.currentView=a(n.currentView),n.dockSection=s(n.dockSection),n.settingsActiveTab=l(n.settingsActiveTab),typeof n.chromeSessionId!=`string`&&(n.chromeSessionId=null),(typeof n.chromeBySession!=`object`||n.chromeBySession===null)&&(n.chromeBySession={}),n.sidebarWidth=Math.max(240,Math.min(560,n.sidebarWidth)),u()?{...n,...d({sidebarOpen:!1})}:n},partialize:e=>({sidebarOpen:e.sidebarOpen,activeActivity:e.activeActivity,sidebarWidth:e.sidebarWidth,promptHistory:e.promptHistory,pinnedIds:e.pinnedIds,compactMode:e.compactMode,favoriteSessionIds:e.favoriteSessionIds,sessionNicknames:e.sessionNicknames,fileExplorerWidth:e.fileExplorerWidth,refineEnabled:e.refineEnabled,hiddenChips:e.hiddenChips,workDashboardTab:e.workDashboardTab,inspectorOpen:e.inspectorOpen,inspectorTab:e.inspectorTab,skillsState:e.skillsState,activityBarOrder:e.activityBarOrder,currentView:e.currentView,dockSection:e.dockSection,settingsActiveTab:e.settingsActiveTab,scrollPositions:e.scrollPositions})},_=8388608,v=`application/pdf`;function y(e){return e.type===`application/pdf`||/\.pdf$/i.test(e.name)}function b(e){return e.mediaType===v}var x=2048,S=2097152,C=new Set([`image/png`,`image/jpeg`,`image/webp`,`image/gif`]),w=class extends Error{reason;constructor(e,t){super(e),this.reason=t,this.name=`ImageAttachmentError`}};function T(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(r.error),r.readAsDataURL(e)})}function E(e){let t=e.indexOf(`,`),n=t>=0?e.length-t-1:e.length;return Math.floor(n*3/4)}function D(e){return/^data:([^;,]+)/.exec(e)?.[1]??`image/png`}async function O(e){try{return await createImageBitmap(e)}catch{let t=URL.createObjectURL(e);try{return await new Promise((e,n)=>{let r=new Image;r.onload=()=>e(r),r.onerror=()=>n(Error(`image decode failed`)),r.src=t})}finally{URL.revokeObjectURL(t)}}}function k(e,t,n,r,i){let a=document.createElement(`canvas`);a.width=t,a.height=n;let o=a.getContext(`2d`);if(!o)throw new w(`canvas 2d context unavailable`,`decode_failed`);o.drawImage(e,0,0,t,n);let s=a.toDataURL(`image/webp`,i);return s.startsWith(`data:image/webp`)?s:r?a.toDataURL(`image/png`):a.toDataURL(`image/jpeg`,i)}var A=0;function j(){return A+=1,`img_${Date.now()}_${A}`}async function M(e){let t=C.has(e.type),n;try{n=await O(e)}catch{throw new w(`Could not decode image "${e.name}"`,`decode_failed`)}let r=n.width,i=n.height,a=Math.max(r,i);if(!(!t||a>x||e.size>S)){let t=await T(e);return{id:j(),dataUrl:t,mediaType:e.type,bytes:E(t),name:e.name||void 0,width:r,height:i}}let o=e.type!==`image/jpeg`,s=Math.min(1,x/a),c=.85,l=k(n,Math.max(1,Math.round(r*s)),Math.max(1,Math.round(i*s)),o,c);E(l)>4194304&&(s=Math.min(s,1280/a),c=.7,l=k(n,Math.max(1,Math.round(r*s)),Math.max(1,Math.round(i*s)),o,c)),`close`in n&&n.close();let u=E(l);if(u>4194304)throw new w(`Image "${e.name}" is too large after compression`,`too_large`);return{id:j(),dataUrl:l,mediaType:D(l),bytes:u,name:e.name||void 0,width:Math.max(1,Math.round(r*s)),height:Math.max(1,Math.round(i*s))}}async function N(e){if(e.size>8388608)throw new w(`PDF "${e.name}" is too large`,`pdf_too_large`);let t;try{t=await T(e)}catch{throw new w(`Could not read "${e.name}"`,`pdf_read_failed`)}let n=t.indexOf(`,`);return{id:j(),dataUrl:`data:${v};base64,${n>=0?t.slice(n+1):``}`,mediaType:v,bytes:e.size,name:e.name||`document.pdf`}}function P(e){return e.map(e=>{let t=e.dataUrl.indexOf(`,`);return{data:t>=0?e.dataUrl.slice(t+1):e.dataUrl,mediaType:e.mediaType,...e.name?{name:e.name}:{}}})}var F=t()(e(e=>({sidebarOpen:!0,activeActivity:`chat`,settingsOpen:!1,currentView:`chat`,showConfirmDialog:!1,confirmInfo:null,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,scrollTarget:null,promptHistory:[],sidebarWidth:304,pinnedIds:[],compactMode:!1,modelSwitcherOpen:!1,favoriteSessionIds:[],sessionNicknames:{},fileExplorerWidth:220,refineEnabled:!0,refinePanel:null,promptLibraryOpen:!1,promptInsertRequest:null,dockSection:null,workDashboardTab:`todos`,chromeSessionId:null,chromeBySession:{},hiddenChips:[],dockCustomizeOpen:!1,fleetMonitorOpen:!1,agentsMonitorOpen:!1,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,subagentChatFocusId:null,subagentChatFocusSessionId:null,processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,inspectSessionId:null,terminalOpen:!1,terminalCreateNonce:0,agentRosterActiveTab:`live`,changesPanelTab:`changes`,settingsActiveTab:`general`,scrollPositions:{},activityBarOrder:null,draftInput:``,draftImages:[],sideContextBreakdownOpen:!1,chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1,selectedMailMessage:null,skillsState:f(),selectActivity:t=>e(e=>({activeActivity:t,...h(e,{activeActivity:t})})),toggleSidebar:()=>e(e=>{let t=!e.sidebarOpen;return{sidebarOpen:t,...h(e,{sidebarOpen:t})}}),setSidebarOpen:t=>e(e=>({sidebarOpen:t,...h(e,{sidebarOpen:t})})),setSettingsOpen:t=>e({settingsOpen:t}),setCurrentView:t=>e(e=>{let n=a(t);return{currentView:n,...h(e,{currentView:n})}}),showConfirm:t=>e({showConfirmDialog:!0,confirmInfo:t}),hideConfirm:()=>e({showConfirmDialog:!1,confirmInfo:null}),setPaletteOpen:t=>e({paletteOpen:t}),setShortcutsOpen:t=>e({shortcutsOpen:t}),setSearchOpen:t=>e(e=>({searchOpen:t,searchQuery:``,searchActiveMessageId:null,...h(e,{searchOpen:t,searchQuery:``,searchActiveMessageId:null})})),setSearchQuery:t=>e(e=>({searchQuery:t,...h(e,{searchQuery:t})})),setSearchActiveMessageId:t=>e(e=>({searchActiveMessageId:t,...h(e,{searchActiveMessageId:t})})),requestScrollToMessage:t=>e(e=>{let n={id:t,nonce:(e.scrollTarget?.nonce??0)+1};return{scrollTarget:n,...h(e,{scrollTarget:n})}}),pushPrompt:t=>e(e=>{let n=t.trim();return n?{promptHistory:[n,...e.promptHistory.filter(e=>e!==n)].slice(0,50)}:e}),setSidebarWidth:t=>e({sidebarWidth:Math.max(240,Math.min(560,Math.round(t)))}),togglePin:t=>e(e=>({pinnedIds:e.pinnedIds.includes(t)?e.pinnedIds.filter(e=>e!==t):[...e.pinnedIds,t]})),unpinAll:()=>e({pinnedIds:[]}),toggleCompactMode:()=>e(e=>({compactMode:!e.compactMode})),setModelSwitcherOpen:t=>e(e=>({modelSwitcherOpen:t,...h(e,{modelSwitcherOpen:t})})),toggleFavoriteSession:t=>e(e=>({favoriteSessionIds:e.favoriteSessionIds.includes(t)?e.favoriteSessionIds.filter(e=>e!==t):[...e.favoriteSessionIds,t]})),setSessionNickname:(t,n)=>e(e=>{let r=n.trim(),i={...e.sessionNicknames};return r?i[t]=r:delete i[t],{sessionNicknames:i}}),setFileExplorerWidth:t=>e({fileExplorerWidth:Math.max(160,Math.min(400,Math.round(t)))}),toggleRefineEnabled:()=>e(e=>({refineEnabled:!e.refineEnabled})),setRefinePanel:t=>e(e=>({refinePanel:t,...h(e,{refinePanel:t})})),setPromptLibraryOpen:t=>e(e=>({promptLibraryOpen:t,...h(e,{promptLibraryOpen:t})})),requestPromptInsert:t=>e(e=>({promptInsertRequest:t,promptLibraryOpen:!1,...h(e,{promptInsertRequest:t,promptLibraryOpen:!1})})),clearPromptInsert:()=>e(e=>({promptInsertRequest:null,...h(e,{promptInsertRequest:null})})),setDockSection:t=>e(e=>({dockSection:t,...h(e,{dockSection:t,inspectorOpen:!t&&e.inspectorOpen}),...t?{inspectorOpen:!1}:{}})),setWorkDashboardTab:t=>e(e=>({workDashboardTab:t,...h(e,{workDashboardTab:t})})),bindSessionChrome:t=>e(e=>{if(e.chromeSessionId===t)return{};let n={...e.chromeBySession};if(e.chromeSessionId){let t=m(e);n[e.chromeSessionId]=t.refinePanel?{...t,refinePanel:null,draftInput:t.refinePanel.original}:t}let r=(t?n[t]:void 0)??p();return{chromeSessionId:t,chromeBySession:n,subagentChatFocusId:null,subagentChatFocusSessionId:t,sidebarOpen:r.sidebarOpen??p().sidebarOpen,activeActivity:r.activeActivity,currentView:r.currentView,inspectSessionId:r.inspectSessionId,searchOpen:r.searchOpen,searchQuery:r.searchQuery,searchActiveMessageId:r.searchActiveMessageId,scrollTarget:r.scrollTarget,modelSwitcherOpen:r.modelSwitcherOpen,promptLibraryOpen:r.promptLibraryOpen,promptInsertRequest:r.promptInsertRequest,refinePanel:r.refinePanel,draftInput:r.draftInput,draftImages:r.draftImages,processMonitorOpen:r.processMonitorOpen,queuePanelOpen:r.queuePanelOpen,cronJobsOpen:r.cronJobsOpen,sideContextBreakdownOpen:r.sideContextBreakdownOpen,terminalOpen:r.terminalOpen,dockSection:r.dockSection,workDashboardTab:r.workDashboardTab,inspectorOpen:r.inspectorOpen,inspectorTab:r.inspectorTab,inspectorTarget:r.inspectorTarget,inspectorFocusedAgentId:r.inspectorFocusedAgentId,agentRosterActiveTab:r.agentRosterActiveTab,changesPanelTab:r.changesPanelTab,dockCustomizeOpen:r.dockCustomizeOpen??!1,skillsState:r.skillsState??f(),selectedMailMessage:r.selectedMailMessage??null,scrollPositions:r.scrollPositions??{},chatSwitcherOpen:r.chatSwitcherOpen??!1,chatCheckpointOpen:r.chatCheckpointOpen??!1,chatMemoryPanelOpen:r.chatMemoryPanelOpen??!1,chatContextBreakdownOpen:r.chatContextBreakdownOpen??!1,chatContextEditorOpen:r.chatContextEditorOpen??!1,chatInputCollapsed:r.chatInputCollapsed??!1}}),toggleDockSection:t=>e(e=>{let n=e.dockSection===t?null:t;return{dockSection:n,...h(e,{dockSection:n,inspectorOpen:!n&&e.inspectorOpen}),...n?{inspectorOpen:!1}:{}}}),toggleChipHidden:t=>e(e=>{let n=e.hiddenChips.includes(t),r=!n&&e.dockSection===t?null:e.dockSection;return{hiddenChips:n?e.hiddenChips.filter(e=>e!==t):[...e.hiddenChips,t],dockSection:r,...h(e,{dockSection:r})}}),showDockChip:t=>e(e=>({hiddenChips:e.hiddenChips.filter(e=>e!==t)})),setDockCustomizeOpen:t=>e(e=>({dockCustomizeOpen:t,...h(e,{dockCustomizeOpen:t})})),setAgentRosterActiveTab:t=>e(e=>({agentRosterActiveTab:t,...h(e,{agentRosterActiveTab:t})})),setChangesPanelTab:t=>e(e=>({changesPanelTab:t,...h(e,{changesPanelTab:t})})),setFleetMonitorOpen:t=>e(e=>({fleetMonitorOpen:!1,inspectorOpen:t?!0:e.inspectorTab!==`fleet`&&e.inspectorOpen,inspectorTab:t?`fleet`:e.inspectorTab,...h(e,{inspectorOpen:t?!0:e.inspectorTab!==`fleet`&&e.inspectorOpen,inspectorTab:t?`fleet`:e.inspectorTab,dockSection:t?null:e.dockSection}),...t?{dockSection:null}:{}})),setAgentsMonitorOpen:t=>e(e=>({agentsMonitorOpen:!1,inspectorOpen:t?!0:e.inspectorTab!==`agents`&&e.inspectorOpen,inspectorTab:t?`agents`:e.inspectorTab,...h(e,{inspectorOpen:t?!0:e.inspectorTab!==`agents`&&e.inspectorOpen,inspectorTab:t?`agents`:e.inspectorTab,dockSection:t?null:e.dockSection}),...t?{dockSection:null}:{}})),setInspectorOpen:t=>e(e=>({inspectorOpen:t,...t?{dockSection:null}:{inspectorTarget:null},...h(e,{inspectorOpen:t,dockSection:t?null:e.dockSection,inspectorTarget:t?e.inspectorTarget:null})})),setInspectorTab:t=>e(e=>({inspectorTab:t,...h(e,{inspectorTab:t})})),openInspectorTarget:t=>e(e=>{let n=e.inspectorTab,r=e.inspectorFocusedAgentId;return t.kind===`fleet`?n=t.tab??`fleet`:t.kind===`agent`?(n=`agents`,r=t.agentId):t.kind===`sideEffects`?n=`sideEffects`:t.kind===`council`&&(n=`council`),{inspectorOpen:!0,inspectorTarget:t,inspectorTab:n,inspectorFocusedAgentId:r,dockSection:null,...h(e,{inspectorOpen:!0,inspectorTarget:t,inspectorTab:n,inspectorFocusedAgentId:r,dockSection:null})}}),closeInspector:()=>e(e=>({inspectorOpen:!1,inspectorTarget:null,...h(e,{inspectorOpen:!1,inspectorTarget:null})})),setInspectorFocusedAgentId:t=>e(e=>({inspectorFocusedAgentId:t,...h(e,{inspectorFocusedAgentId:t})})),setSubagentChatFocus:(t,n)=>e(e=>({subagentChatFocusId:t,subagentChatFocusSessionId:(n===``?null:n)??e.chromeSessionId??e.subagentChatFocusSessionId??null})),forgetSession:t=>e(e=>{let n=e.subagentChatFocusSessionId===t,r=t in e.chromeBySession||e.chromeSessionId===t;if(!n&&!r)return e;let i={...e.chromeBySession};delete i[t];let a=e.subagentChatFocusSessionId===t,o=e.chromeSessionId===t;return{chromeBySession:i,...a?{subagentChatFocusId:null,subagentChatFocusSessionId:null}:{},...o?{chromeSessionId:null,...p()}:{}}}),toggleInspector:()=>e(e=>{let t=!e.inspectorOpen,n=t?null:e.dockSection;return{inspectorOpen:t,dockSection:n,...h(e,{inspectorOpen:t,dockSection:n})}}),setProcessMonitorOpen:t=>e(e=>({processMonitorOpen:t,...h(e,{processMonitorOpen:t})})),setQueuePanelOpen:t=>e(e=>({queuePanelOpen:t,...h(e,{queuePanelOpen:t})})),setCronJobsOpen:t=>e(e=>({cronJobsOpen:t,...h(e,{cronJobsOpen:t})})),setInspectSession:t=>e(e=>({inspectSessionId:t,currentView:`session-inspect`,...h(e,{inspectSessionId:t,currentView:`session-inspect`})})),clearInspectSession:()=>e(e=>({inspectSessionId:null,currentView:`chat`,...h(e,{inspectSessionId:null,currentView:`chat`})})),setTerminalOpen:t=>e(e=>({terminalOpen:t,...h(e,{terminalOpen:t})})),toggleTerminal:()=>e(e=>{let t=!e.terminalOpen;return{terminalOpen:t,...h(e,{terminalOpen:t})}}),requestTerminalCreate:()=>e(e=>({terminalCreateNonce:e.terminalCreateNonce+1})),setSettingsActiveTab:t=>e({settingsActiveTab:l(t)}),setScrollPosition:(t,n)=>e(e=>{let r={...e.scrollPositions,[t]:n};return{scrollPositions:r,...h(e,{scrollPositions:r})}}),setActivityBarOrder:t=>e({activityBarOrder:t}),setDraftInput:t=>e(e=>({draftInput:t,...h(e,{draftInput:t})})),setDraftImages:t=>e(e=>{let n=t.slice(-8);return{draftImages:n,...h(e,{draftImages:n})}}),setSideContextBreakdownOpen:t=>e(e=>({sideContextBreakdownOpen:t,...h(e,{sideContextBreakdownOpen:t})})),setChatSwitcherOpen:t=>e(e=>({chatSwitcherOpen:t,...h(e,{chatSwitcherOpen:t})})),setChatCheckpointOpen:t=>e(e=>({chatCheckpointOpen:t,...h(e,{chatCheckpointOpen:t})})),setChatMemoryPanelOpen:t=>e(e=>({chatMemoryPanelOpen:t,...h(e,{chatMemoryPanelOpen:t})})),setChatContextBreakdownOpen:t=>e(e=>({chatContextBreakdownOpen:t,...h(e,{chatContextBreakdownOpen:t})})),setChatToolStatsOpen:t=>e(e=>({chatToolStatsOpen:t,...h(e,{chatToolStatsOpen:t})})),setChatContextEditorOpen:t=>e(e=>({chatContextEditorOpen:t,...h(e,{chatContextEditorOpen:t})})),setChatInputCollapsed:t=>e(e=>({chatInputCollapsed:t,...h(e,{chatInputCollapsed:t})})),setSkillsState:t=>e(e=>({skillsState:t,...h(e,{skillsState:t})})),setSelectedMailMessage:t=>e(e=>({selectedMailMessage:t,...h(e,{selectedMailMessage:t})}))}),g));function I(e={}){F.setState(d(e))}export{b as a,N as c,_ as i,P as l,F as n,y as o,w as r,M as s,I as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{At as e,kt as t}from"./vendor-
|
|
1
|
+
import{At as e,kt as t}from"./vendor-BfBvt432.js";function n(...n){return t(e(n))}function r(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}export{r as n,n as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-core-wiHys0m2.js";import{
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-core-wiHys0m2.js";import{Fr as r,Pa as i,Qt as a}from"./vendor-BfBvt432.js";import{a as o,i as s,n as c,o as l,r as u,t as d}from"./dialog-BDUaV5gY.js";import{t as f}from"./button-UuKTnoM-.js";var p=e(t(),1);async function m(e=``){let t=await fetch(`${e}/api/vector-memory/status`,{credentials:`include`});if(!t.ok)throw Error(`status failed: HTTP ${t.status}`);return await t.json()}async function h(e,t={}){let n=new URLSearchParams;n.set(`q`,e),t.limit!==void 0&&n.set(`limit`,String(t.limit)),t.threshold!==void 0&&n.set(`threshold`,String(t.threshold)),t.similarity===!0&&n.set(`similarity`,`1`);let r=await fetch(`${t.baseUrl??``}/api/vector-memory/search?${n.toString()}`,{credentials:`include`});if(!r.ok)throw Error(`search failed: HTTP ${r.status}`);return await r.json()}function g(e,t=170){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n}async function _(e,t={}){let n=await fetch(`${t.baseUrl??``}/api/vector-memory/store/${encodeURIComponent(e)}`,{method:`DELETE`,credentials:`include`});if(!n.ok)throw Error(`forget failed: HTTP ${n.status}`);return await n.json()}var v=n();function y({hit:e,busy:t,error:n,onCancel:i,onConfirm:p,onOpenChange:m}){return(0,v.jsx)(d,{open:e!==null,onOpenChange:m,children:(0,v.jsxs)(c,{className:`max-w-md`,children:[(0,v.jsxs)(o,{children:[(0,v.jsx)(`span`,{className:`mb-2 flex size-10 items-center justify-center border border-destructive/35 bg-destructive/10 text-destructive`,children:(0,v.jsx)(a,{className:`size-4`})}),(0,v.jsx)(l,{children:`Forget this vector memory?`}),(0,v.jsx)(u,{className:`leading-6`,children:`This removes the entry and its embedding from the vector memory store.`})]}),(0,v.jsx)(`div`,{className:`border border-border/70 bg-background/45 p-3 text-xs text-muted-foreground`,children:g(e?.text??``,180)}),n===void 0?null:(0,v.jsx)(`p`,{role:`alert`,className:`text-xs text-destructive`,children:n}),(0,v.jsxs)(s,{children:[(0,v.jsx)(f,{variant:`outline`,onClick:i,disabled:t,children:`Cancel`}),(0,v.jsxs)(f,{variant:`destructive`,onClick:p,disabled:t,children:[t?(0,v.jsx)(r,{className:`size-4 animate-spin`}):(0,v.jsx)(a,{className:`size-4`}),t?`Forgetting…`:`Forget memory`]})]})]})})}function b({baseUrl:e=``}={}){let[t,n]=(0,p.useState)(),[r,a]=(0,p.useState)(),[o,s]=(0,p.useState)(``),[c,l]=(0,p.useState)(10),[u,d]=(0,p.useState)(void 0),[f,b]=(0,p.useState)([]),[S,C]=(0,p.useState)(),[w,T]=(0,p.useState)(),[E,D]=(0,p.useState)(!1),[O,k]=(0,p.useState)(null),[A,j]=(0,p.useState)(null),[M,N]=(0,p.useState)(!1),[P,F]=(0,p.useState)(),[I,L]=(0,p.useState)(0),R=(0,p.useRef)(0),z=(0,p.useRef)(!1),B=(0,p.useRef)(e);(0,p.useEffect)(()=>{let t=!1;return B.current!==e&&(B.current=e,z.current=!1,n(void 0),a(void 0)),m(e).then(e=>{t||(z.current=!0,n(e),a(void 0))}).catch(e=>{t||z.current||(n(void 0),a(e instanceof Error?e.message:String(e)))}),()=>{t=!0}},[e,I]);let V=async()=>{let t=o.trim();if(t.length!==0){D(!0),T(void 0),k(null),j(null),F(void 0);try{let n=await h(t,{limit:c,...u===void 0?{}:{threshold:u},similarity:!0,baseUrl:e});b(n.hits),C(n.similarity)}catch(e){b([]),C(void 0),T(e instanceof Error?e.message:String(e))}finally{R.current+=1,D(!1)}}},H=async()=>{if(A===null)return;let t=A.id,n=R.current,r=f,i=S;N(!0),F(void 0);try{let{removed:a}=await _(t,{baseUrl:e});if(a){if(R.current===n){let e=r.findIndex(e=>e.id===t);b(r.filter(e=>e.id!==t)),i!==void 0&&e>=0&&C(i.filter((t,n)=>n!==e).map(t=>t.filter((t,n)=>n!==e))),O===t&&k(null)}j(e=>e?.id===t?null:e),L(e=>e+1)}else F(`The store reported the entry was not removed.`)}catch(e){F(e instanceof Error?e.message:String(e))}finally{N(!1)}};return r===void 0?t===void 0?(0,v.jsxs)(`div`,{className:`vector-memory-panel vector-memory-panel--loading`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsx)(`p`,{children:`Loading status…`})]}):t.enabled?(0,v.jsxs)(`div`,{className:`vector-memory-panel`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsxs)(`dl`,{className:`vector-memory-panel__status`,children:[(0,v.jsx)(`dt`,{children:`Active provider`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.providerId??`unknown`})}),(0,v.jsx)(`dt`,{children:`Model`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.modelId??`unknown`})}),(0,v.jsx)(`dt`,{children:`Dimensions`}),(0,v.jsx)(`dd`,{children:t.dimensions??`unknown`}),(0,v.jsx)(`dt`,{children:`Entries / vectors`}),(0,v.jsxs)(`dd`,{children:[t.entries??0,` / `,t.vectors??0]}),(0,v.jsx)(`dt`,{children:`Store path`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.storePath??`(project root)`})}),(0,v.jsx)(`dt`,{children:`Model cache`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.modelCacheDir??`(project root)`})}),(0,v.jsx)(`dt`,{children:`Providers`}),(0,v.jsx)(`dd`,{children:t.providers?.join(`, `)??``}),t.cache?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`dt`,{children:`Embedding cache`}),(0,v.jsxs)(`dd`,{children:[t.cache.entries,` entries · `,t.cache.providers,` provider`,t.cache.providers===1?``:`s`,` · `,t.cache.totalUseCount,` hits`]})]}):null]}),(0,v.jsxs)(`div`,{className:`vector-memory-panel__search`,children:[(0,v.jsx)(`label`,{htmlFor:`vm-query`,children:`Query`}),(0,v.jsx)(`input`,{id:`vm-query`,type:`text`,value:o,onChange:e=>s(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&V()},placeholder:`apple banana`}),(0,v.jsxs)(`div`,{className:`vector-memory-panel__controls`,children:[(0,v.jsxs)(`label`,{children:[`limit`,(0,v.jsx)(`input`,{type:`number`,min:1,max:50,value:c,onChange:e=>l(Math.max(1,Math.min(50,Number(e.currentTarget.value)||10)))})]}),(0,v.jsxs)(`label`,{children:[`threshold`,(0,v.jsx)(`input`,{type:`number`,min:0,max:1,step:.05,value:u??``,onChange:e=>{let t=e.currentTarget.value;d(t===``?void 0:Number.parseFloat(t))}})]}),(0,v.jsx)(`button`,{type:`button`,onClick:()=>void V(),disabled:E,children:E?`Searching…`:`Search`})]})]}),w===void 0?null:(0,v.jsxs)(`p`,{className:`vector-memory-panel__error`,children:[`Search error: `,w]}),(0,v.jsxs)(`ol`,{className:`vector-memory-panel__hits`,children:[f.map(e=>{let t=O===e.id;return(0,v.jsxs)(`li`,{className:t?`vector-memory-panel__hit vector-memory-panel__hit--expanded`:`vector-memory-panel__hit`,children:[(0,v.jsxs)(`button`,{type:`button`,className:`vector-memory-panel__hit-toggle`,"aria-expanded":t,onClick:()=>k(t?null:e.id),children:[(0,v.jsx)(i,{"aria-hidden":`true`,className:t?`vector-memory-panel__hit-chevron vector-memory-panel__hit-chevron--open`:`vector-memory-panel__hit-chevron`}),(0,v.jsx)(`span`,{className:`vector-memory-panel__hit-score`,children:e.score.toFixed(3)}),e.summary?(0,v.jsx)(`span`,{className:`vector-memory-panel__hit-summary`,children:e.summary}):null]}),(0,v.jsx)(`p`,{className:`vector-memory-panel__hit-text`,children:t?e.text:g(e.text)}),e.tags.length>0?(0,v.jsx)(`p`,{className:`vector-memory-panel__hit-tags`,children:e.tags.map(e=>(0,v.jsx)(`span`,{className:`vector-memory-panel__hit-tag`,children:e},e))}):null,t?(0,v.jsxs)(`div`,{className:`vector-memory-panel__hit-detail`,children:[(0,v.jsxs)(`dl`,{className:`vector-memory-panel__hit-fields`,children:[(0,v.jsx)(`dt`,{children:`id`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:e.id})}),(0,v.jsx)(`dt`,{children:`score`}),(0,v.jsx)(`dd`,{children:e.score.toFixed(3)}),e.summary?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`dt`,{children:`summary`}),(0,v.jsx)(`dd`,{children:e.summary})]}):null]}),(0,v.jsx)(`div`,{className:`vector-memory-panel__hit-actions`,children:(0,v.jsx)(`button`,{type:`button`,className:`vector-memory-panel__forget`,onClick:()=>{F(void 0),j(e)},children:`Forget`})})]}):null]},e.id)}),f.length===0&&E===!1&&o.trim().length>0?(0,v.jsx)(`li`,{className:`vector-memory-panel__no-hits`,children:`No results.`}):null]}),S!==void 0&&S.length>1?(0,v.jsxs)(`div`,{className:`vector-memory-panel__heatmap`,"data-testid":`vector-memory-heatmap`,children:[(0,v.jsx)(`h4`,{children:`Result similarity`}),(0,v.jsx)(`p`,{className:`vector-memory-panel__heatmap-hint`,children:`Pairwise cosine similarity between returned hits. Darker cells = more similar. A bright diagonal with mostly dark off-diagonals means results form a tight cluster; a noisy grid means the search returned mixed topics.`}),(0,v.jsxs)(`div`,{className:`vector-memory-panel__heatmap-grid`,style:{gridTemplateColumns:`auto repeat(${S.length}, minmax(20px, 1fr))`},role:`table`,"aria-label":`Pairwise cosine similarity between returned hits`,children:[(0,v.jsx)(`div`,{className:`vector-memory-panel__heatmap-corner`}),S.map((e,t)=>(0,v.jsx)(`div`,{className:`vector-memory-panel__heatmap-col-label`,children:t+1},`col-${t}`)),S.map((e,t)=>(0,v.jsx)(x,{row:e,index:t},`row-${t}`))]})]}):null,(0,v.jsx)(y,{hit:A,busy:M,error:P,onCancel:()=>j(null),onConfirm:()=>void H(),onOpenChange:e=>{!e&&!M&&j(null)}})]}):(0,v.jsxs)(`div`,{className:`vector-memory-panel vector-memory-panel--disabled`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsx)(`p`,{children:`Disabled — the webui-server host does not have a vector memory store wired.`})]}):(0,v.jsxs)(`div`,{className:`vector-memory-panel vector-memory-panel--error`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsxs)(`p`,{children:[`Status unavailable: `,r]})]})}function x({row:e,index:t}){return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`div`,{className:`vector-memory-panel__heatmap-row-label`,children:t+1}),e.map((e,n)=>{let r=t===n,i=Math.max(0,Math.min(1,e)),a=95-i*60,o=`hsl(220, ${r?0:35}%, ${a}%)`;return(0,v.jsx)(`div`,{className:r?`vector-memory-panel__heatmap-cell vector-memory-panel__heatmap-cell--diagonal`:`vector-memory-panel__heatmap-cell`,style:{background:o},role:`cell`,"aria-label":`hit ${t+1} vs hit ${n+1}: ${i.toFixed(2)}`,title:`hit ${t+1} ↔ hit ${n+1}: ${i.toFixed(3)}`,children:i>=.5?i.toFixed(2):``},`cell-${t}-${n}`)})]})}export{b as VectorMemoryPanel};
|