specrails-desktop 2.58.0 → 2.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -5
- package/client/dist/assets/{ActivityFeedPage-BQGppIR0.js → ActivityFeedPage-DBFt8ZHP.js} +1 -1
- package/client/dist/assets/AgentBrowserCapture-DiQx0W67.js +1 -0
- package/client/dist/assets/AgentModeAnalyticsPane-BmDSXp_J.js +2 -0
- package/client/dist/assets/AgentModeCodePane-BLQLPSwr.js +2 -0
- package/client/dist/assets/{AgentModeJobsPane-DR_06oqH.js → AgentModeJobsPane-BbTXdKUa.js} +1 -1
- package/client/dist/assets/{AgentsPage-BKIKjm_1.js → AgentsPage-Dei1jGR8.js} +3 -3
- package/client/dist/assets/{AnalyticsPage-069npRVo.js → AnalyticsPage-BhkeGIGn.js} +1 -1
- package/client/dist/assets/CodePage-B_9yYWUx.js +3 -0
- package/client/dist/assets/{DesktopAnalyticsPage-qtWAPM47.js → DesktopAnalyticsPage-DAcfEJac.js} +1 -1
- package/client/dist/assets/DocsDialog-WCuiYgsc.js +11 -0
- package/client/dist/assets/DocsPage-bGVYTMTU.js +11 -0
- package/client/dist/assets/{ExportDropdown-BcMpvV89.js → ExportDropdown-CsodZ-yb.js} +1 -1
- package/client/dist/assets/InteractiveJobComposer-D5fh_eVL.js +19 -0
- package/client/dist/assets/JobDetailModal-DlpXF61O.js +1 -0
- package/client/dist/assets/JobDetailPage-2yR19_Lb.js +1 -0
- package/client/dist/assets/JobsPage-CS9IR6Dq.js +1 -0
- package/client/dist/assets/LoopBuilderPage-BwiAtmOr.js +1 -0
- package/client/dist/assets/{LoopPreviewModal-je5pSCf-.js → LoopPreviewModal--upwvgTv.js} +1 -1
- package/client/dist/assets/LoopWindowSurface-DRnUixtl.js +1 -0
- package/client/dist/assets/LoopsPage-Xm3nRToQ.js +2 -0
- package/client/dist/assets/MinimizedChatsContext-D_8L4EWZ.js +1 -0
- package/client/dist/assets/PluginsPage-CAFQ1B4Q.js +2 -0
- package/client/dist/assets/ProjectSettingsDialog-DYSO4v90.js +1 -0
- package/client/dist/assets/{RepositoryDeliveries-BiwJuS8r.js → RepositoryDeliveries-CbQmW7Qx.js} +1 -1
- package/client/dist/assets/RepositoryScopeSelector-DKzvIGSZ.js +2 -0
- package/client/dist/assets/ReviewPacketPage-SDBhYdQB.js +4 -0
- package/client/dist/assets/TemplatePreviewModal-DHBUds51.js +1 -0
- package/client/dist/assets/TicketDetailModalContext-UAeNm7BB.js +16 -0
- package/client/dist/assets/{Trans-D3AfDylf.js → Trans-DExd3Z00.js} +1 -1
- package/client/dist/assets/agent-BElLtdKP.js +1 -0
- package/client/dist/assets/agent-C-m9VugX.js +1 -0
- package/client/dist/assets/agent-CGSKxfZk.js +1 -0
- package/client/dist/assets/agent-CW74ODDP.js +1 -0
- package/client/dist/assets/agent-DeCAZDhL.js +1 -0
- package/client/dist/assets/agent-DrM4qned.js +1 -0
- package/client/dist/assets/agent-KdIXq3w5.js +1 -0
- package/client/dist/assets/agent-jK8mCisM.js +1 -0
- package/client/dist/assets/{agentRuntime-DGz_IqKW.js → agentRuntime-15Pkk6we.js} +1 -1
- package/client/dist/assets/agentRuntime-Bpx3yWHK.js +1 -0
- package/client/dist/assets/{agentRuntime-Bg9tbmqm.js → agentRuntime-C78n13To.js} +1 -1
- package/client/dist/assets/{agentRuntime-D-GJVGkj.js → agentRuntime-CCI7XF4c.js} +1 -1
- package/client/dist/assets/{agentRuntime-D2__CVI_.js → agentRuntime-CKDHe2-a.js} +1 -1
- package/client/dist/assets/{agentRuntime-D35dGVOP.js → agentRuntime-Ddqvp2bP.js} +1 -1
- package/client/dist/assets/{agentRuntime-hInH9Fzj.js → agentRuntime-TXPQowKJ.js} +1 -1
- package/client/dist/assets/{agentRuntime-O1liDt6G.js → agentRuntime-hqZRy08E.js} +1 -1
- package/client/dist/assets/{builder-DGETbtZj.js → builder-B9gorTnT.js} +1 -1
- package/client/dist/assets/{builder-DyQperXU.js → builder-Bvw5s3Mi.js} +1 -1
- package/client/dist/assets/{builder-C1neIYGR.js → builder-CL5l4dU3.js} +1 -1
- package/client/dist/assets/{builder-DXEJUlC0.js → builder-CVDTVrQX.js} +1 -1
- package/client/dist/assets/{builder-CzW5ovyI.js → builder-CpS9liE9.js} +1 -1
- package/client/dist/assets/{builder-CvnFm0im.js → builder-DNctIL9Q.js} +1 -1
- package/client/dist/assets/{builder-D06L7iPy.js → builder-De2NxX6o.js} +1 -1
- package/client/dist/assets/{builder-C0FyvM83.js → builder-DeYT7Y-m.js} +1 -1
- package/client/dist/assets/{button-Ccc9Dc-D.js → button-D1xExSTF.js} +1 -1
- package/client/dist/assets/{common-DmsclwjP.js → common-Bdi0qN4S.js} +1 -1
- package/client/dist/assets/{common-C4Yvvhp6.js → common-Bhb9zN1P.js} +1 -1
- package/client/dist/assets/{common-od8WThlf.js → common-BykKlZg1.js} +1 -1
- package/client/dist/assets/{common-C0BOdeNi.js → common-CvnNNSJA.js} +1 -1
- package/client/dist/assets/{common-BCK7c9Pv.js → common-D5zk_mqq.js} +1 -1
- package/client/dist/assets/{common-DpLWwgI1.js → common-DQNO_al5.js} +1 -1
- package/client/dist/assets/{common-OCvl3c8t.js → common-Dax30Vmp.js} +1 -1
- package/client/dist/assets/{common-c0aujEZC.js → common-DkllpVSb.js} +1 -1
- package/client/dist/assets/{dialog-xXB2q5HJ.js → dialog-CMgps2MY.js} +1 -1
- package/client/dist/assets/external-link-D6XxC_Cu.js +1 -0
- package/client/dist/assets/file-text-BcLCfcWZ.js +1 -0
- package/client/dist/assets/{formatDistanceToNow-aBss1Nai.js → formatDistanceToNow-aw7H5ORC.js} +1 -1
- package/client/dist/assets/{getTimezoneOffsetInMilliseconds-DOGj1Mfz.js → getTimezoneOffsetInMilliseconds-NyC7gZJX.js} +1 -1
- package/client/dist/assets/index-CahchzS5.css +2 -0
- package/client/dist/assets/index-JSTZVJfe.js +83 -0
- package/client/dist/assets/integrations-BkpRUbvp.js +1 -0
- package/client/dist/assets/integrations-Bo8qbJf4.js +1 -0
- package/client/dist/assets/integrations-CmSrKzZb.js +1 -0
- package/client/dist/assets/integrations-DGtq26Rr.js +1 -0
- package/client/dist/assets/integrations-De38GFnQ.js +1 -0
- package/client/dist/assets/integrations-Dw6zdtb-.js +1 -0
- package/client/dist/assets/integrations-Dwl9KQp0.js +1 -0
- package/client/dist/assets/integrations-Refg_d2I.js +1 -0
- package/client/dist/assets/jira-api-DlXaRwA3.js +1 -0
- package/client/dist/assets/{jobs-KG4Sn12X.js → jobs-1G3wodhl.js} +1 -1
- package/client/dist/assets/{jobs-6_-r75yC.js → jobs-B4pu8TdF.js} +1 -1
- package/client/dist/assets/{jobs-pPv4KWjb.js → jobs-BD47Ov11.js} +1 -1
- package/client/dist/assets/{jobs-B1yqyId5.js → jobs-BLOoVRRl.js} +1 -1
- package/client/dist/assets/{jobs-BKiK-ZWh.js → jobs-CSrRx5lD.js} +1 -1
- package/client/dist/assets/{jobs-BFuV7ttH.js → jobs-DZAbh1m2.js} +1 -1
- package/client/dist/assets/{jobs-DmKV7b7d.js → jobs-epP7gt8W.js} +1 -1
- package/client/dist/assets/{jobs-BKa8LuwA.js → jobs-tWjcDF_6.js} +1 -1
- package/client/dist/assets/loops--KWr0X-w.js +1 -0
- package/client/dist/assets/{loops-BO3V8244.js → loops-3IutojWt.js} +1 -1
- package/client/dist/assets/{loops-C-hZK8pf.js → loops-BAosWtXE.js} +1 -1
- package/client/dist/assets/{loops-eUnCfLjC.js → loops-BISDssL5.js} +1 -1
- package/client/dist/assets/{loops-Dv849ckF.js → loops-Cm55CXJ4.js} +1 -1
- package/client/dist/assets/{loops-CDOWZ0ci.js → loops-D7tL_Saw.js} +1 -1
- package/client/dist/assets/{loops-BJDY9FTh.js → loops-DHQtnfze.js} +1 -1
- package/client/dist/assets/{loops-Q9LIgGkq.js → loops-kIJJkaxf.js} +1 -1
- package/client/dist/assets/nav--u7iPYlS.js +1 -0
- package/client/dist/assets/nav-C5Jgfaby.js +1 -0
- package/client/dist/assets/nav-CAna_Wpt.js +1 -0
- package/client/dist/assets/nav-CCLqeyHo.js +1 -0
- package/client/dist/assets/nav-Cf3c90Jk.js +1 -0
- package/client/dist/assets/nav-DMYQaQjR.js +1 -0
- package/client/dist/assets/nav-Df_PkZ9F.js +1 -0
- package/client/dist/assets/nav-VyNGBJwj.js +1 -0
- package/client/dist/assets/{project-repositories-CSnfzUpg.js → project-repositories-DXhb9FP4.js} +1 -1
- package/client/dist/assets/provider-capabilities-lePfeT_Y.js +1 -0
- package/client/dist/assets/save-OsUqVn99.js +1 -0
- package/client/dist/assets/settings-B5Hy_Kol.js +1 -0
- package/client/dist/assets/settings-BBj_kZaD.js +1 -0
- package/client/dist/assets/settings-ByVE7jdZ.js +1 -0
- package/client/dist/assets/settings-COlH_P33.js +1 -0
- package/client/dist/assets/settings-D77mC_Lb.js +1 -0
- package/client/dist/assets/settings-DZKy7MqN.js +1 -0
- package/client/dist/assets/settings-Dbyd6gmj.js +1 -0
- package/client/dist/assets/settings-Dn-pXukr.js +1 -0
- package/client/dist/assets/setup-Be485n2u.js +1 -0
- package/client/dist/assets/setup-CKGUxKr-.js +1 -0
- package/client/dist/assets/setup-Ck1Uwd7_.js +1 -0
- package/client/dist/assets/setup-Cm774a6v.js +1 -0
- package/client/dist/assets/setup-DIqMQpxt.js +1 -0
- package/client/dist/assets/setup-DfCsoNFL.js +1 -0
- package/client/dist/assets/setup-DkeE8mP0.js +1 -0
- package/client/dist/assets/setup-xVntVaz1.js +1 -0
- package/client/dist/assets/{spending-HBSk-6jv.js → spending-BdcyVkcd.js} +1 -1
- package/client/dist/assets/subscriptionUsage-Cf87DeS_.js +1 -0
- package/client/dist/assets/subscriptionUsage-D6u7VBdz.js +1 -0
- package/client/dist/assets/subscriptionUsage-DQ02J25O.js +1 -0
- package/client/dist/assets/subscriptionUsage-DWF3zKp4.js +1 -0
- package/client/dist/assets/subscriptionUsage-DkIf6Zuh.js +1 -0
- package/client/dist/assets/subscriptionUsage-DoWQv7l1.js +1 -0
- package/client/dist/assets/subscriptionUsage-N9hB-ARf.js +1 -0
- package/client/dist/assets/subscriptionUsage-zRcRPHkP.js +1 -0
- package/client/dist/assets/tauri-shell-DE6LfGPw.js +2 -0
- package/client/dist/assets/{useDesktop-0unHDBJJ.js → useDesktop-D07TvesS.js} +1 -1
- package/client/dist/assets/{useRuntimeRuns-BN1rhyEm.js → useRuntimeRuns-pGLmtAC6.js} +1 -1
- package/client/dist/assets/useSharedWebSocket-TzKtPRp9.js +2 -0
- package/client/dist/index.html +33 -32
- package/docs/README.md +1 -9
- package/docs/agent-live-steering.md +0 -6
- package/docs/agents/README.md +0 -2
- package/docs/agents/mcp.md +1 -14
- package/docs/cli.md +0 -13
- package/docs/codex.md +2 -75
- package/docs/creating-specs.md +0 -39
- package/docs/customizing.md +1 -15
- package/docs/getting-started.md +0 -23
- package/docs/guide/de/agents/2-profiles-and-the-balanced-default.md +0 -8
- package/docs/guide/de/agents/4-custom-agents-catalog.md +0 -15
- package/docs/guide/de/getting-started/1-what-is-specrails.md +0 -2
- package/docs/guide/de/getting-started/2-installing-and-first-run.md +0 -2
- package/docs/guide/de/getting-started/3-adding-your-first-project.md +0 -4
- package/docs/guide/de/getting-started/4-the-dashboard-tour.md +0 -5
- package/docs/guide/de/integrations/1-ai-providers.md +2 -50
- package/docs/guide/de/integrations/2-plugins.md +0 -8
- package/docs/guide/de/integrations/5-mcp-server.md +1 -14
- package/docs/guide/de/integrations/6-agent-chat.md +0 -11
- package/docs/guide/de/integrations/7-local-engines.md +0 -4
- package/docs/guide/de/pipeline/1-rails-and-jobs.md +0 -13
- package/docs/guide/de/pipeline/2-the-job-detail-view.md +0 -3
- package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +0 -20
- package/docs/guide/de/pipeline/5-the-loop-builder.md +0 -6
- package/docs/guide/de/specs/2-add-spec-quick-mode.md +0 -7
- package/docs/guide/en/agents/2-profiles-and-the-balanced-default.md +0 -10
- package/docs/guide/en/agents/4-custom-agents-catalog.md +0 -25
- package/docs/guide/en/getting-started/1-what-is-specrails.md +0 -2
- package/docs/guide/en/getting-started/2-installing-and-first-run.md +0 -2
- package/docs/guide/en/getting-started/3-adding-your-first-project.md +0 -4
- package/docs/guide/en/getting-started/4-the-dashboard-tour.md +0 -5
- package/docs/guide/en/insights/3-code-explorer.md +0 -5
- package/docs/guide/en/integrations/1-ai-providers.md +10 -99
- package/docs/guide/en/integrations/2-plugins.md +0 -8
- package/docs/guide/en/integrations/5-mcp-server.md +1 -1
- package/docs/guide/en/integrations/6-agent-chat.md +0 -17
- package/docs/guide/en/integrations/7-local-engines.md +0 -4
- package/docs/guide/en/pipeline/1-rails-and-jobs.md +2 -24
- package/docs/guide/en/pipeline/2-the-job-detail-view.md +0 -3
- package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +10 -65
- package/docs/guide/en/pipeline/5-the-loop-builder.md +0 -7
- package/docs/guide/en/specs/2-add-spec-quick-mode.md +0 -11
- package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +0 -8
- package/docs/guide/es/agents/4-custom-agents-catalog.md +0 -15
- package/docs/guide/es/getting-started/1-what-is-specrails.md +0 -2
- package/docs/guide/es/getting-started/2-installing-and-first-run.md +0 -2
- package/docs/guide/es/getting-started/3-adding-your-first-project.md +0 -4
- package/docs/guide/es/getting-started/4-the-dashboard-tour.md +0 -5
- package/docs/guide/es/integrations/1-ai-providers.md +10 -75
- package/docs/guide/es/integrations/2-plugins.md +0 -8
- package/docs/guide/es/integrations/5-mcp-server.md +1 -1
- package/docs/guide/es/integrations/6-agent-chat.md +0 -11
- package/docs/guide/es/integrations/7-local-engines.md +0 -4
- package/docs/guide/es/pipeline/1-rails-and-jobs.md +3 -13
- package/docs/guide/es/pipeline/2-the-job-detail-view.md +0 -3
- package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +10 -53
- package/docs/guide/es/pipeline/5-the-loop-builder.md +1 -6
- package/docs/guide/es/specs/2-add-spec-quick-mode.md +0 -7
- package/docs/guide/fr/agents/2-profiles-and-the-balanced-default.md +0 -8
- package/docs/guide/fr/agents/4-custom-agents-catalog.md +0 -15
- package/docs/guide/fr/getting-started/1-what-is-specrails.md +0 -2
- package/docs/guide/fr/getting-started/2-installing-and-first-run.md +0 -2
- package/docs/guide/fr/getting-started/3-adding-your-first-project.md +0 -4
- package/docs/guide/fr/getting-started/4-the-dashboard-tour.md +0 -5
- package/docs/guide/fr/integrations/1-ai-providers.md +2 -50
- package/docs/guide/fr/integrations/2-plugins.md +0 -8
- package/docs/guide/fr/integrations/5-mcp-server.md +1 -14
- package/docs/guide/fr/integrations/6-agent-chat.md +0 -11
- package/docs/guide/fr/integrations/7-local-engines.md +0 -4
- package/docs/guide/fr/pipeline/1-rails-and-jobs.md +0 -13
- package/docs/guide/fr/pipeline/2-the-job-detail-view.md +0 -3
- package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +0 -22
- package/docs/guide/fr/pipeline/5-the-loop-builder.md +0 -6
- package/docs/guide/fr/specs/2-add-spec-quick-mode.md +0 -7
- package/docs/guide/it/agents/2-profiles-and-the-balanced-default.md +0 -8
- package/docs/guide/it/agents/4-custom-agents-catalog.md +0 -15
- package/docs/guide/it/getting-started/1-what-is-specrails.md +0 -2
- package/docs/guide/it/getting-started/2-installing-and-first-run.md +0 -2
- package/docs/guide/it/getting-started/3-adding-your-first-project.md +0 -4
- package/docs/guide/it/getting-started/4-the-dashboard-tour.md +0 -5
- package/docs/guide/it/integrations/1-ai-providers.md +2 -48
- package/docs/guide/it/integrations/2-plugins.md +0 -8
- package/docs/guide/it/integrations/5-mcp-server.md +1 -14
- package/docs/guide/it/integrations/6-agent-chat.md +0 -11
- package/docs/guide/it/integrations/7-local-engines.md +0 -4
- package/docs/guide/it/pipeline/1-rails-and-jobs.md +2 -13
- package/docs/guide/it/pipeline/2-the-job-detail-view.md +0 -3
- package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +0 -20
- package/docs/guide/it/pipeline/5-the-loop-builder.md +1 -6
- package/docs/guide/it/specs/2-add-spec-quick-mode.md +0 -7
- package/docs/guide/ja/agents/2-profiles-and-the-balanced-default.md +0 -9
- package/docs/guide/ja/agents/4-custom-agents-catalog.md +0 -15
- package/docs/guide/ja/getting-started/1-what-is-specrails.md +0 -2
- package/docs/guide/ja/getting-started/2-installing-and-first-run.md +0 -2
- package/docs/guide/ja/getting-started/3-adding-your-first-project.md +0 -4
- package/docs/guide/ja/getting-started/4-the-dashboard-tour.md +0 -5
- package/docs/guide/ja/integrations/1-ai-providers.md +1 -69
- package/docs/guide/ja/integrations/2-plugins.md +0 -8
- package/docs/guide/ja/integrations/5-mcp-server.md +1 -14
- package/docs/guide/ja/integrations/6-agent-chat.md +0 -10
- package/docs/guide/ja/integrations/7-local-engines.md +0 -4
- package/docs/guide/ja/pipeline/1-rails-and-jobs.md +0 -13
- package/docs/guide/ja/pipeline/2-the-job-detail-view.md +0 -3
- package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +0 -21
- package/docs/guide/ja/pipeline/5-the-loop-builder.md +0 -6
- package/docs/guide/ja/specs/2-add-spec-quick-mode.md +0 -7
- package/docs/guide/pt/agents/2-profiles-and-the-balanced-default.md +0 -8
- package/docs/guide/pt/agents/4-custom-agents-catalog.md +0 -15
- package/docs/guide/pt/getting-started/1-what-is-specrails.md +0 -2
- package/docs/guide/pt/getting-started/2-installing-and-first-run.md +0 -2
- package/docs/guide/pt/getting-started/3-adding-your-first-project.md +0 -4
- package/docs/guide/pt/getting-started/4-the-dashboard-tour.md +0 -5
- package/docs/guide/pt/integrations/1-ai-providers.md +2 -48
- package/docs/guide/pt/integrations/2-plugins.md +0 -8
- package/docs/guide/pt/integrations/5-mcp-server.md +1 -14
- package/docs/guide/pt/integrations/6-agent-chat.md +0 -10
- package/docs/guide/pt/integrations/7-local-engines.md +0 -4
- package/docs/guide/pt/pipeline/1-rails-and-jobs.md +0 -13
- package/docs/guide/pt/pipeline/2-the-job-detail-view.md +0 -2
- package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +0 -21
- package/docs/guide/pt/pipeline/5-the-loop-builder.md +0 -6
- package/docs/guide/pt/specs/2-add-spec-quick-mode.md +0 -7
- package/docs/guide/zh/agents/2-profiles-and-the-balanced-default.md +0 -7
- package/docs/guide/zh/agents/4-custom-agents-catalog.md +0 -15
- package/docs/guide/zh/getting-started/1-what-is-specrails.md +0 -2
- package/docs/guide/zh/getting-started/2-installing-and-first-run.md +0 -2
- package/docs/guide/zh/getting-started/3-adding-your-first-project.md +0 -4
- package/docs/guide/zh/getting-started/4-the-dashboard-tour.md +0 -5
- package/docs/guide/zh/integrations/1-ai-providers.md +1 -67
- package/docs/guide/zh/integrations/2-plugins.md +0 -8
- package/docs/guide/zh/integrations/5-mcp-server.md +1 -14
- package/docs/guide/zh/integrations/6-agent-chat.md +0 -9
- package/docs/guide/zh/integrations/7-local-engines.md +0 -4
- package/docs/guide/zh/pipeline/1-rails-and-jobs.md +0 -13
- package/docs/guide/zh/pipeline/2-the-job-detail-view.md +0 -2
- package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +0 -20
- package/docs/guide/zh/pipeline/5-the-loop-builder.md +0 -6
- package/docs/guide/zh/specs/2-add-spec-quick-mode.md +0 -7
- package/docs/internals/adding-a-provider.md +7 -0
- package/docs/internals/desktop-owned-workflows.md +121 -0
- package/docs/internals/operations-runbook.md +20 -0
- package/docs/internals/programmatic-agent-runtime.md +34 -28
- package/docs/internals/project-builder.md +34 -11
- package/docs/internals/source-map.md +51 -3
- package/docs/internals/spec-addenda.md +11 -5
- package/docs/local-providers.md +8 -13
- package/docs/mcp.md +1 -17
- package/docs/platforms/macos.md +0 -40
- package/docs/platforms/windows-parity.md +1 -1
- package/docs/platforms/windows.md +0 -8
- package/docs/running-pipelines.md +1 -46
- package/docs/subscription-usage.md +19 -0
- package/docs/terminal.md +0 -2
- package/docs/tracking-cost.md +2 -33
- package/package.json +1 -1
- package/server/dist/core-execution.js +24 -15
- package/server/dist/desktop-db.js +23 -10
- package/server/dist/desktop-router.js +8 -4
- package/server/dist/index.js +10 -5
- package/server/dist/mcp/guide.js +1 -0
- package/server/dist/mcp/tools/jobs.js +1 -1
- package/server/dist/mcp/tools/loops.js +2 -0
- package/server/dist/mcp/tools/meta.js +6 -7
- package/server/dist/mcp/tools/projects.js +31 -6
- package/server/dist/mcp/tools/rails.js +6 -3
- package/server/dist/mcp/tools/setup.js +10 -0
- package/server/dist/mcp/tools/specs.js +1 -1
- package/server/dist/modules/accounting/runtime/pricing.js +6 -1
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-bridge.js +55 -12
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-metrics.js +1 -1
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings-router.js +1 -1
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings.js +42 -0
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-verification-suggestions.js +10 -4
- package/server/dist/modules/builder/runtime/milestone-chain.js +76 -10
- package/server/dist/modules/delivery/runtime/delivery-evidence.js +3 -2
- package/server/dist/modules/delivery/runtime/multi-repo-execution.js +3 -0
- package/server/dist/modules/delivery/runtime/rail-isolated-launch.js +1 -0
- package/server/dist/modules/delivery/runtime/rail-launch-parser.js +8 -0
- package/server/dist/modules/delivery/runtime/rails-router.js +48 -26
- package/server/dist/modules/delivery/runtime/review-packet.js +1 -1
- package/server/dist/modules/loops/runtime/loop-agent-defaults.json +6 -0
- package/server/dist/modules/loops/runtime/loop-agents.js +21 -0
- package/server/dist/modules/loops/runtime/loop-command-catalog.js +1 -1
- package/server/dist/modules/loops/runtime/loop-core-factory.js +19 -3
- package/server/dist/modules/loops/runtime/loop-definition.js +79 -12
- package/server/dist/modules/loops/runtime/loop-effect.js +1 -1
- package/server/dist/modules/loops/runtime/loop-executors.js +24 -9
- package/server/dist/modules/loops/runtime/loop-factory.js +1 -1
- package/server/dist/modules/loops/runtime/loop-graph.js +5 -14
- package/server/dist/modules/loops/runtime/loop-implement-recipe.js +49 -0
- package/server/dist/modules/loops/runtime/loop-run-manager.js +3 -3
- package/server/dist/modules/loops/runtime/loop-templates.js +29 -5
- package/server/dist/modules/loops/runtime/loops-router.js +17 -0
- package/server/dist/modules/missions/runtime/agent-context-resolver.js +1 -1
- package/server/dist/modules/missions/runtime/agent-operator-prompt.js +17 -8
- package/server/dist/modules/specs/runtime/spec-models.js +4 -7
- package/server/dist/modules/subscription-usage/adapters/claude.js +113 -0
- package/server/dist/modules/subscription-usage/adapters/codex.js +164 -0
- package/server/dist/modules/subscription-usage/adapters/errors.js +15 -0
- package/server/dist/modules/subscription-usage/adapters/http.js +20 -0
- package/server/dist/modules/subscription-usage/adapters/local-auth.js +61 -0
- package/server/dist/modules/subscription-usage/application.js +11 -0
- package/server/dist/modules/subscription-usage/domain.js +70 -0
- package/server/dist/modules/subscription-usage/index.js +2 -0
- package/server/dist/modules/subscription-usage/ports.js +2 -0
- package/server/dist/modules/subscription-usage/runtime/composition.js +20 -0
- package/server/dist/modules/subscription-usage/runtime/usage-service.js +111 -0
- package/server/dist/project-registry.js +16 -1
- package/server/dist/project-repositories.js +51 -2
- package/server/dist/project-router-helpers.js +1 -1
- package/server/dist/project-router-loop-runs.js +4 -1
- package/server/dist/providers/claude-adapter.js +6 -4
- package/server/dist/providers/codex-adapter.js +4 -5
- package/server/dist/schemas/workflow-definition.schema.json +2 -0
- package/client/dist/assets/AgentBrowserCapture-PI-cxyxi.js +0 -1
- package/client/dist/assets/AgentModeAnalyticsPane-mQsOqdXx.js +0 -2
- package/client/dist/assets/AgentModeCodePane-BL-vpmlY.js +0 -2
- package/client/dist/assets/CodePage-Alitorrv.js +0 -3
- package/client/dist/assets/DocsDialog-DwL6rgcT.js +0 -11
- package/client/dist/assets/DocsPage-BA1hiJZ-.js +0 -11
- package/client/dist/assets/InteractiveJobComposer-B3H1YHr6.js +0 -19
- package/client/dist/assets/JobDetailModal-XZQ9eAAy.js +0 -1
- package/client/dist/assets/JobDetailPage-B-SIaq_q.js +0 -1
- package/client/dist/assets/JobsPage-iQXAv2mx.js +0 -1
- package/client/dist/assets/LoopBuilderPage-B_gbFAHn.js +0 -1
- package/client/dist/assets/LoopsPage-BZwcY5cu.js +0 -2
- package/client/dist/assets/MinimizedChatsContext-CNx_0bZu.js +0 -1
- package/client/dist/assets/PluginsPage-DFocnoHX.js +0 -2
- package/client/dist/assets/ProjectSettingsDialog-Bh3S6EBB.js +0 -1
- package/client/dist/assets/RepositoryScopeSelector-C2mvWBQ6.js +0 -1
- package/client/dist/assets/ReviewPacketPage-CrAf-WDy.js +0 -4
- package/client/dist/assets/TemplatePreviewModal-C7DordpN.js +0 -1
- package/client/dist/assets/TicketDetailModalContext-B-DySpKL.js +0 -16
- package/client/dist/assets/agent-BaG10AN6.js +0 -1
- package/client/dist/assets/agent-CH4aJ884.js +0 -1
- package/client/dist/assets/agent-CLc9fA7v.js +0 -1
- package/client/dist/assets/agent-DHh9-AdL.js +0 -1
- package/client/dist/assets/agent-DkKnd6Wv.js +0 -1
- package/client/dist/assets/agent-aiVhqFW1.js +0 -1
- package/client/dist/assets/agent-dbznD3eO.js +0 -1
- package/client/dist/assets/agent-sMVFcPwL.js +0 -1
- package/client/dist/assets/agentRuntime-BeUb3g9g.js +0 -1
- package/client/dist/assets/file-text-CFT-xXKN.js +0 -1
- package/client/dist/assets/index-BS7KCWkV.css +0 -2
- package/client/dist/assets/index-C4Mv6tV6.js +0 -80
- package/client/dist/assets/integrations-CH0zy1Mw.js +0 -1
- package/client/dist/assets/integrations-CIAjhd7L.js +0 -1
- package/client/dist/assets/integrations-CZdwOe8A.js +0 -1
- package/client/dist/assets/integrations-Ct7omMld.js +0 -1
- package/client/dist/assets/integrations-D6MSxy3-.js +0 -1
- package/client/dist/assets/integrations-DbZa-Zyc.js +0 -1
- package/client/dist/assets/integrations-b8pH-vfl.js +0 -1
- package/client/dist/assets/integrations-mB-7zoyT.js +0 -1
- package/client/dist/assets/jira-api-BYbEPlkr.js +0 -1
- package/client/dist/assets/layers-eDMjG41I.js +0 -1
- package/client/dist/assets/loops-B4_D-nbg.js +0 -1
- package/client/dist/assets/nav-B-tpjyc2.js +0 -1
- package/client/dist/assets/nav-BJNXGg29.js +0 -1
- package/client/dist/assets/nav-BdhtRLP7.js +0 -1
- package/client/dist/assets/nav-ByYgyN5T.js +0 -1
- package/client/dist/assets/nav-DA0Mva2c.js +0 -1
- package/client/dist/assets/nav-DcJm_Jg_.js +0 -1
- package/client/dist/assets/nav-DhMPtAXc.js +0 -1
- package/client/dist/assets/nav-DhPb-Isc.js +0 -1
- package/client/dist/assets/provider-capabilities-Vi1ZGvAK.js +0 -1
- package/client/dist/assets/save-B6wGWwBR.js +0 -1
- package/client/dist/assets/settings-3o4Ntzi5.js +0 -1
- package/client/dist/assets/settings-B97jlkwD.js +0 -1
- package/client/dist/assets/settings-BTaT_bsS.js +0 -1
- package/client/dist/assets/settings-CT8w7WiC.js +0 -1
- package/client/dist/assets/settings-Cvr8_tvh.js +0 -1
- package/client/dist/assets/settings-Dn1qgAC8.js +0 -1
- package/client/dist/assets/settings-EShDdg4J.js +0 -1
- package/client/dist/assets/settings-tfLhQZRN.js +0 -1
- package/client/dist/assets/setup-CBMu3tqH.js +0 -1
- package/client/dist/assets/setup-CPh-e6J2.js +0 -1
- package/client/dist/assets/setup-CRKLp_ke.js +0 -1
- package/client/dist/assets/setup-Cy302v4J.js +0 -1
- package/client/dist/assets/setup-D681vTPf.js +0 -1
- package/client/dist/assets/setup-DYK0VBkE.js +0 -1
- package/client/dist/assets/setup-KAuiIiVs.js +0 -1
- package/client/dist/assets/setup-OGX-oCfI.js +0 -1
- package/client/dist/assets/useSharedWebSocket-BZMrX4jr.js +0 -2
- package/client/dist/assets/wrench-BfmNO9Vw.js +0 -1
- package/docs/agy-cli-provider-study.md +0 -257
- package/docs/gemini-cli-provider-study.md +0 -301
- package/docs/gemini-core-support-evaluation.md +0 -160
- package/docs/gemini.md +0 -257
- package/docs/kimi.md +0 -291
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Intégrations`,subtitle:`Plugins par projet. Chaque projet choisit indépendamment les intégrations à activer.`,selectProject:`Sélectionnez un projet pour gérer les intégrations.`,deprecated:`Obsolète`,loadError:`Échec du chargement des plugins.`,empty:`Aucun plugin n'est inclus dans cette version.`},t={statusActive:`Actif`,statusDeactivated:`Désactivé`,statusDegraded:`Dégradé`,updateAvailable:`Mise à jour disponible`,requires:`Requiert : {{list}}`,deactivatedHint:`Installé mais désactivé — Claude ne le chargera pas à la prochaine session. Basculez sur <strong>Actif</strong> pour le réactiver.`,install:`Installer`,uninstall:`Désinstaller`},n={titleActive:`Actif — cliquez pour désactiver`,titleDeactivated:`Désactivé — cliquez pour activer`},r={body:`Claude a le plugin du marketplace <strong>installé mais désactivé</strong> dans son cache. Il peut encore résoudre le serveur depuis <code>~/.claude/plugins/cache/...</code> même si l'interrupteur est désactivé. Pour forcer la portée projet uniquement, désinstallez le plugin du marketplace depuis Claude :`,runInstruction:`Exécutez dans une session Claude active, puis redémarrez Claude dans ce projet.`},i={body:`Le manifeste inclus a changé depuis votre installation (probablement un renommage en amont). Réécrivez <code>.mcp.json</code> avec l'entrée canonique — opération chirurgicale, seules les clés possédées par le plugin sont touchées.`,button:`Mettre à jour l'entrée <code>.mcp.json</code>`},a={body:`<strong>{{name}}</strong> est aussi activé globalement via le marketplace de plugins de Claude, ce qui masque cette installation au niveau du projet. Pour que cette carte passe en Actif, désactivez la version globale ci-dessous — elle peut être réactivée depuis Claude à tout moment.`,disableButton:`Désactiver <code>{{key}}</code>`},o={badge:`Orphelin`,removeButton:`Supprimer l'orphelin`},s={title:`Installer {{name}}`,computingChanges:`Calcul des modifications…`,filesHeading:`Fichiers qui seront modifiés`,prerequisites:`Prérequis`,autoInstall:`Installation automatique`,progress:`Progression`,installingPrereq:`Installation de {{name}}…`,prereqStartFailed:`Échec du démarrage : {{message}}`},c={title:`Désinstaller {{name}} ?`,body:`Cela annulera les entrées gérées par le plugin dans <code>.mcp.json</code> et supprimera les fichiers créés par le plugin. Votre code, votre historique et les autres plugins ne sont pas affectés.`},l={title:`Documentation`,dialogDescription:`Parcourez la documentation incluse de Specrails. Utilisez la barre latérale pour passer d'un guide à l'autre.`,sidebarEmpty:`Pas encore de docs`,indexEmpty:`La documentation apparaîtra ici. Le guide utilisateur est fourni avec l’app sous docs/guide/ ; déposez des fichiers Markdown sous ~/.specrails/docs/guide/ pour la personnaliser.`,categoryEmpty:`Aucun document dans cette catégorie pour l'instant.`,documentCount_one:`{{count}} document`,documentCount_other:`{{count}} documents`,categoryCount_one:`{{count}} catégorie`,categoryCount_other:`{{count}} catégories`,summary:`{{documents}} répartis dans {{categories}}.`,loadError:`Échec du chargement du document`},u={title:`Jira`,category:`Suivi des tickets`,description:`Adossez les specs de ce projet à un tableau Jira — synchronisation bidirectionnelle du statut, plus un commentaire à la fin d'un rail.`,connectedDescription:`Synchronisé avec {{key}}. Les specs reflètent votre tableau Jira dans les deux sens.`,connect:`Connecter`,connected:`Connecté`,manage:`Gérer`,modalTitle:`Se connecter à Jira`,manageTitle:`Connexion Jira`,bullet1:`Synchronisation bidirectionnelle du statut avec votre tableau Jira.`,bullet2:`Publie un commentaire à la fin d'un rail.`,bullet3:`Votre backlog Jira apparaît comme des specs sur le tableau.`,requires:`Nécessite un compte Jira Cloud ou Data Center.`},d={page:{title:`Plugins`,subtitle:`Outils globaux et intégrations de projet, gérés au même endroit.`,readyCount_one:`{{count}} prêt`,readyCount_other:`{{count}} prêts`},search:{placeholder:`Rechercher des plugins`},filters:{all:`tous`,global:`globaux`,project:`projet`},sections:{installed:`Installés`,available:`Disponibles`},scope:{global:`global`,project:`projet`},groups:{global:{title:`Globaux`,detail:`S’applique à tout Specrails`},project:{title:`Locaux au projet`,detail:`Configurés par dépôt`}},empty:{installedSearch:`Aucun plugin installé ne correspond à cette recherche.`,installed:`Aucun plugin installé pour le moment.`,availableSearch:`Aucun plugin disponible ne correspond à cette recherche.`,allInstalled:`Tous les plugins sont installés.`},actions:{install:`Installer`,installing:`Installation`,manage:`Gérer`,review:`Examiner`,cancel:`Annuler`},status:{attention:`attention requise`,active:`actif`,externalActive:`externe actif`,external:`externe`,installed:`installé`,available:`disponible`,configuredCount_one:`{{count}} configuré`,configuredCount_other:`{{count}} configurés`,installedCount_one:`{{count}} installé`,installedCount_other:`{{count}} installés`},catalog:{headroom:{description:`Optimise les lancements Codex et Claude via Headroom AI.`},jira:{description:`Synchronise les specs du projet avec un tableau Jira, le mapping des statuts et les commentaires de fin.`},serena:{description:`Navigation sémantique locale au projet via Serena MCP.`}},headroom:{title:`Headroom AI`,dialogDescription:`Gérez l’installation globale de Headroom et le routage par fournisseur.`,panelDescription:`Installé globalement, activé séparément pour Codex et Claude.`,issueCode:`Code : {{code}}`,confirmDetach:`Cela désactive le routage Specrails et arrête le proxy. L’installation Headroom système existante reste intacte.`,confirmUninstall:`Cela désactive les routes Codex et Claude, arrête le proxy et supprime l’outil Headroom géré par Specrails.`,metrics:{install:`Installation`,checking:`Vérification`,ready:`Prêt`,missing:`Manquant`,source:`Source`,system:`Système`,specrails:`Specrails`,none:`Aucun`,proxy:`Proxy`,starting:`Démarrage`,off:`Désactivé`},actions:{installWithUv:`Installer avec uv inclus`,disableAllRoutes:`Désactiver toutes les routes`,viewDiagnostics:`Voir les diagnostics`,detachHeadroom:`Détacher Headroom`,uninstallHeadroom:`Désinstaller Headroom`,detach:`Détacher`,uninstall:`Désinstaller`},port:{label:`Port du proxy`,apply:`Appliquer`},provider:{noProjectUsesProvider:`Aucun projet Specrails n’utilise ce fournisseur`,routedThroughHeadroom:`Routé via Headroom`,detectedExternalRoute:`Route externe détectée`,notRouted:`Non routé`},savings:{title:`Économies de tokens Headroom`,learningOn:`sortie mesurée`,waitingForOutputSamples:`sortie non mesurée`,baseline:`référence {{method}}`,updatedLive:`mis à jour en direct`,baselineSamples_one:`{{count}} échantillon de référence`,baselineSamples_other:`{{count}} échantillons de référence`,tokens:`tokens`,learning:`Aucune donnée`,off:`Désactivé`,requestDetail:`{{method}} · {{count}} requêtes`,requestCount:`{{count}} requêtes`,detected:`détecté`,totals:`Totaux`,input:`Entrée`,output:`Sortie`,processed:`Traités`,saved:`Économisés`,noData:`Aucune donnée`,inputSaved:`Entrée économisée`,outputSaved:`Sortie économisée`,inputSavingsActive:`Routage via Headroom`,statusInputOutput:`Entrée + sortie`,statusInputOnly:`Entrée active`,statusRouting:`Routage actif`,statusInactive:`Inactif`,methods:{estimated:`estimée`,measured:`mesurée`,none:`aucune`},waitingForShapedResponses:`Aucune réponse de sortie mesurée`,outputObserved:`{{value}} de sortie observés`,routeDisabled:`Route désactivée`},issues:{uv_missing_or_corrupt:{title:`Le uv inclus n’est pas disponible`,guidance:`Specrails n’a pas pu démarrer son runtime uv inclus. Réinstallez Specrails ou utilisez Réparer quand le runtime sera disponible.`},network_unavailable:{title:`Headroom n’a pas pu être téléchargé`,guidance:`Vérifiez votre connexion réseau puis réessayez. Specrails gardera l’installation isolée dans son propre dossier d’outils.`},package_resolution_failed:{title:`Les dépendances de Headroom n’ont pas pu être résolues`,guidance:`Réessayez l’installation. Si l’échec persiste, ouvrez les diagnostics et partagez la sortie uv.`},install_permission_failed:{title:`Specrails ne peut pas écrire dans son dossier d’outils`,guidance:`Vérifiez les permissions sous ~/.specrails/tools, puis réessayez l’installation.`},headroom_not_found_after_install:{title:`L’installation est terminée mais Headroom est introuvable`,guidance:`Lancez Réparer l’installation. Specrails réinstallera Headroom et vérifiera l’exécutable.`},learning_setup_failed:{title:`L’apprentissage Headroom n’a pas pu être activé`,guidance:`Headroom est installé, mais la calibration des économies de sortie n’est pas terminée. Continuez à utiliser le routage proxy pendant la collecte d’échantillons.`},metrics_unavailable:{title:`Les métriques Headroom ne sont pas encore disponibles`,guidance:`Commencez à router du trafic via Headroom. Specrails actualisera les économies de tokens dès que le proxy rapportera des échantillons.`},proxy_port_busy:{title:`Le port du proxy Headroom est déjà utilisé`,guidance:`Choisissez un autre port ou arrêtez le processus utilisant le port actuel, puis réessayez l’activation.`},proxy_unhealthy:{title:`Le proxy Headroom n’est pas devenu sain`,guidance:`Réessayez l’activation. Si cela se reproduit, ouvrez les diagnostics pour inspecter la sortie du proxy.`},provider_route_failed:{title:`La vérification de la route du fournisseur a échoué`,guidance:`Specrails n’a pas pu vérifier la route du fournisseur. Le fournisseur reste inactif ; réessayez après avoir consulté les diagnostics.`},provider_config_conflict:{title:`La configuration fournisseur existante entre en conflit avec Headroom`,guidance:`Consultez les diagnostics avant d’activer le routage système. Le routage géré par Specrails reste réversible.`},activation_partially_applied:{title:`L’activation n’a été appliquée que partiellement`,guidance:`Specrails a tenté un rollback. Consultez les diagnostics et réessayez le fournisseur concerné.`},not_installed:{title:`Headroom n’est pas installé`,guidance:`Installez Headroom d’abord, puis activez Codex ou Claude.`},uninstall_failed:{title:`Headroom n’a pas pu être désinstallé`,guidance:`Specrails a désactivé le routage Headroom mais n’a pas pu supprimer l’outil géré. Ouvrez les diagnostics puis réessayez.`},unknown:{title:`L’opération Headroom a échoué`,guidance:`Réessayez l’opération. Si cela se reproduit, ouvrez les diagnostics et partagez les détails.`}}},projectWizard:{configureJira:`Configurer Jira`,installSerena:`Installer Serena`,description:`Sélectionnez le projet où ce plugin local au projet doit être configuré.`,chooseProject:`Choisir un projet`,requiresClaudeProvider:`Nécessite le fournisseur Claude`,selectProjectToContinue:`Sélectionnez un projet pour continuer.`},serena:{loading:`Chargement de Serena…`,titleForProject:`Serena pour {{name}}`,description:`Installe la configuration MCP et l’état du plugin localement au projet. Les autres projets ne sont pas touchés.`,status:`Statut : {{status}}`,files:`Fichiers`,prerequisites:`Prérequis`},projectStatus:{installed:`installé`,deactivated:`désactivé`,"not-installed":`non installé`,orphan:`orphelin`,degraded:`dégradé`},diagnostics:{title:`Diagnostics Headroom`,description:`État technique de l’installation Headroom gérée par Specrails et du proxy.`}},f={page:e,card:t,toggle:n,cachedNotice:r,update:i,conflict:a,orphan:o,installDialog:s,uninstallDialog:c,docs:l,jiraCard:u,plugins:d};export{r as cachedNotice,t as card,a as conflict,f as default,l as docs,s as installDialog,u as jiraCard,o as orphan,e as page,d as plugins,n as toggle,c as uninstallDialog,i as update};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`集成`,subtitle:`按项目管理的插件。每个项目独立决定启用哪些集成。`,selectProject:`选择一个项目以管理集成。`,deprecated:`已弃用`,loadError:`加载插件失败。`,empty:`此构建未捆绑任何插件。`},t={statusActive:`已启用`,statusDeactivated:`已停用`,statusDegraded:`已降级`,updateAvailable:`有可用更新`,requires:`需要:{{list}}`,deactivatedHint:`已安装但已停用 — Claude 下次会话不会加载它。切换<strong>启用</strong>以重新启用。`,install:`安装`,uninstall:`卸载`},n={titleActive:`已启用 — 点击停用`,titleDeactivated:`已停用 — 点击启用`},r={body:`Claude 的缓存中<strong>已安装但已禁用</strong>该 marketplace 插件。即使开关已关闭,它仍可能从 <code>~/.claude/plugins/cache/...</code> 解析该服务器。如需强制仅项目范围,请从 Claude 卸载该 marketplace 插件:`,runInstruction:`在活动的 Claude 会话中运行,然后在此项目中重启 Claude。`},i={body:`自你安装以来,捆绑的 manifest 已发生变化(可能是上游重命名)。用规范条目重写 <code>.mcp.json</code> — 精准操作,仅改动插件所拥有的键。`,button:`更新 <code>.mcp.json</code> 条目`},a={body:`<strong>{{name}}</strong> 也已通过 Claude 的插件 marketplace 全局启用,这会遮蔽此项目范围的安装。要使此卡片变为“已启用”,请在下方禁用全局版本 — 随时可从 Claude 重新启用。`,disableButton:`禁用 <code>{{key}}</code>`},o={badge:`孤立`,removeButton:`移除孤立项`},s={title:`安装 {{name}}`,computingChanges:`正在计算变更…`,filesHeading:`将更改的文件`,prerequisites:`前置条件`,autoInstall:`自动安装`,progress:`进度`,installingPrereq:`正在安装 {{name}}…`,prereqStartFailed:`启动失败:{{message}}`},c={title:`卸载 {{name}}?`,body:`这将还原 <code>.mcp.json</code> 中由插件管理的条目,并删除插件创建的文件。你的代码、历史记录和其他插件不受影响。`},l={title:`文档`,dialogDescription:`浏览捆绑的 Specrails 文档。使用侧边栏在指南间切换。`,sidebarEmpty:`暂无文档`,indexEmpty:`文档将在此处显示。用户指南随应用提供,位于 docs/guide/;将 Markdown 文件放在 ~/.specrails/docs/guide/ 下即可自定义。`,categoryEmpty:`此分类下暂无文档。`,documentCount_one:`{{count}} 篇文档`,documentCount_other:`{{count}} 篇文档`,categoryCount_one:`{{count}} 个分类`,categoryCount_other:`{{count}} 个分类`,summary:`共 {{documents}},分布在 {{categories}}中。`,loadError:`加载文档失败`},u={title:`Jira`,category:`事务跟踪`,description:`用 Jira 看板支撑此项目的规格——状态双向同步,并在 rail 结束时发布完成评论。`,connectedDescription:`已与 {{key}} 同步。规格与你的 Jira 看板双向镜像。`,connect:`连接`,connected:`已连接`,manage:`管理`,modalTitle:`连接到 Jira`,manageTitle:`Jira 连接`,bullet1:`与你的 Jira 看板进行状态双向同步。`,bullet2:`rail 结束时发布完成评论。`,bullet3:`你的 Jira 待办会作为规格出现在看板上。`,requires:`需要 Jira Cloud 或 Data Center 账户。`},d={page:{title:`插件`,subtitle:`在一个位置管理全局工具和项目集成。`,readyCount_one:`{{count}} 个就绪`,readyCount_other:`{{count}} 个就绪`},search:{placeholder:`搜索插件`},filters:{all:`全部`,global:`全局`,project:`项目`},sections:{installed:`已安装`,available:`可用`},scope:{global:`全局`,project:`项目`},groups:{global:{title:`全局`,detail:`适用于整个 Specrails`},project:{title:`项目本地`,detail:`按仓库配置`}},empty:{installedSearch:`没有匹配此搜索的已安装插件。`,installed:`尚未安装插件。`,availableSearch:`没有匹配此搜索的可用插件。`,allInstalled:`所有插件都已安装。`},actions:{install:`安装`,installing:`安装中`,manage:`管理`,review:`检查`,cancel:`取消`},status:{attention:`需要注意`,active:`已启用`,externalActive:`外部已启用`,external:`外部`,installed:`已安装`,available:`可用`,configuredCount_one:`已配置 {{count}} 个`,configuredCount_other:`已配置 {{count}} 个`,installedCount_one:`已安装 {{count}} 个`,installedCount_other:`已安装 {{count}} 个`},catalog:{headroom:{description:`通过 Headroom AI 优化 Codex 和 Claude 启动。`},jira:{description:`将项目 specs 与 Jira 看板、状态映射和完成评论同步。`},serena:{description:`通过 Serena MCP 提供项目本地语义代码导航。`}},headroom:{title:`Headroom AI`,dialogDescription:`管理全局 Headroom 安装和按提供商路由。`,panelDescription:`全局安装,并可分别为 Codex 和 Claude 启用。`,issueCode:`代码:{{code}}`,confirmDetach:`这会禁用 Specrails 路由并停止代理。现有系统 Headroom 安装不会被修改。`,confirmUninstall:`这会禁用 Codex 和 Claude 路由,停止代理,并移除由 Specrails 管理的 Headroom 工具。`,metrics:{install:`安装`,checking:`检查中`,ready:`就绪`,missing:`缺失`,source:`来源`,system:`系统`,specrails:`Specrails`,none:`无`,proxy:`代理`,starting:`启动中`,off:`关闭`},actions:{installWithUv:`使用内置 uv 安装`,disableAllRoutes:`禁用所有路由`,viewDiagnostics:`查看诊断`,detachHeadroom:`解除 Headroom 绑定`,uninstallHeadroom:`卸载 Headroom`,detach:`解除绑定`,uninstall:`卸载`},port:{label:`代理端口`,apply:`应用`},provider:{noProjectUsesProvider:`没有 Specrails 项目使用此提供商`,routedThroughHeadroom:`通过 Headroom 路由`,detectedExternalRoute:`检测到外部路由`,notRouted:`未路由`},savings:{title:`Headroom Token 节省`,learningOn:`输出已测量`,waitingForOutputSamples:`输出未测量`,baseline:`{{method}}基线`,updatedLive:`实时更新`,baselineSamples_one:`{{count}} 个基线样本`,baselineSamples_other:`{{count}} 个基线样本`,tokens:`tokens`,learning:`无数据`,off:`关闭`,requestDetail:`{{method}} · {{count}} 次请求`,requestCount:`{{count}} 次请求`,detected:`已检测`,totals:`总计`,input:`输入`,output:`输出`,processed:`已处理`,saved:`已节省`,noData:`无数据`,inputSaved:`输入节省`,outputSaved:`输出节省`,inputSavingsActive:`正在通过 Headroom 路由`,statusInputOutput:`输入 + 输出`,statusInputOnly:`输入已启用`,statusRouting:`路由中`,statusInactive:`未启用`,methods:{estimated:`估算`,measured:`实测`,none:`无`},waitingForShapedResponses:`尚未测量输出响应`,outputObserved:`已观察到 {{value}} 输出`,routeDisabled:`路由已禁用`},issues:{uv_missing_or_corrupt:{title:`内置 uv 不可用`,guidance:`Specrails 无法启动内置 uv 运行时。请重新安装 Specrails,或在运行时可用后使用修复。`},network_unavailable:{title:`无法下载 Headroom`,guidance:`请检查网络连接并重试。Specrails 会将安装隔离在自己的工具目录中。`},package_resolution_failed:{title:`无法解析 Headroom 依赖`,guidance:`请重试安装。如果仍然失败,请打开诊断并分享 uv 输出。`},install_permission_failed:{title:`Specrails 无法写入工具目录`,guidance:`请检查 ~/.specrails/tools 下的权限,然后重试安装。`},headroom_not_found_after_install:{title:`安装完成但未找到 Headroom`,guidance:`运行修复安装。Specrails 将重新安装 Headroom 并验证可执行文件。`},learning_setup_failed:{title:`无法启用 Headroom 学习`,guidance:`Headroom 已安装,但输出节省校准尚未完成。请继续使用代理路由,等待指标收集样本。`},metrics_unavailable:{title:`Headroom 指标尚不可用`,guidance:`开始通过 Headroom 路由流量。代理报告样本后,Specrails 会刷新 token 节省指标。`},proxy_port_busy:{title:`Headroom 代理端口已被占用`,guidance:`请选择其他端口,或停止占用当前端口的进程,然后重试激活。`},proxy_unhealthy:{title:`Headroom 代理未变为健康状态`,guidance:`请重试激活。如果再次发生,请打开诊断检查代理输出。`},provider_route_failed:{title:`提供商路由验证失败`,guidance:`Specrails 无法验证提供商路由。提供商保持未激活;请查看诊断后重试。`},provider_config_conflict:{title:`现有提供商配置与 Headroom 冲突`,guidance:`启用系统级激活前请查看诊断。Specrails 管理的路由仍可回滚。`},activation_partially_applied:{title:`激活仅部分应用`,guidance:`Specrails 已尝试回滚。请查看诊断并重试受影响的提供商。`},not_installed:{title:`Headroom 未安装`,guidance:`请先安装 Headroom,然后再激活 Codex 或 Claude。`},uninstall_failed:{title:`无法卸载 Headroom`,guidance:`Specrails 已禁用 Headroom 路由,但无法移除托管工具。请打开诊断后重试卸载。`},unknown:{title:`Headroom 操作失败`,guidance:`请重试该操作。如果再次发生,请打开诊断并分享详情。`}}},projectWizard:{configureJira:`配置 Jira`,installSerena:`安装 Serena`,description:`选择要配置此项目级插件的项目。`,chooseProject:`选择项目`,requiresClaudeProvider:`需要 Claude 提供商`,selectProjectToContinue:`选择一个项目以继续。`},serena:{loading:`正在加载 Serena…`,titleForProject:`{{name}} 的 Serena`,description:`安装项目本地 MCP 配置和插件状态。其他项目不会被修改。`,status:`状态:{{status}}`,files:`文件`,prerequisites:`先决条件`},projectStatus:{installed:`已安装`,deactivated:`已停用`,"not-installed":`未安装`,orphan:`孤立`,degraded:`降级`},diagnostics:{title:`Headroom 诊断`,description:`Specrails 管理的 Headroom 安装和代理的技术状态。`}},f={page:e,card:t,toggle:n,cachedNotice:r,update:i,conflict:a,orphan:o,installDialog:s,uninstallDialog:c,docs:l,jiraCard:u,plugins:d};export{r as cachedNotice,t as card,a as conflict,f as default,l as docs,s as installDialog,u as jiraCard,o as orphan,e as page,d as plugins,n as toggle,c as uninstallDialog,i as update};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Integrationen`,subtitle:`Plugins pro Projekt. Jedes Projekt entscheidet unabhängig, welche Integrationen aktiviert werden.`,selectProject:`Wähle ein Projekt, um Integrationen zu verwalten.`,deprecated:`Veraltet`,loadError:`Plugins konnten nicht geladen werden.`,empty:`In diesem Build sind keine Plugins gebündelt.`},t={statusActive:`Aktiv`,statusDeactivated:`Deaktiviert`,statusDegraded:`Beeinträchtigt`,updateAvailable:`Update verfügbar`,requires:`Erfordert: {{list}}`,deactivatedHint:`Installiert, aber deaktiviert – Claude lädt es in der nächsten Session nicht. Schalte auf <strong>Aktiv</strong>, um es wieder zu aktivieren.`,install:`Installieren`,uninstall:`Deinstallieren`},n={titleActive:`Aktiv – zum Deaktivieren klicken`,titleDeactivated:`Deaktiviert – zum Aktivieren klicken`},r={body:`Claude hat das Marketplace-Plugin im Cache <strong>installiert, aber deaktiviert</strong>. Es kann den Server weiterhin über <code>~/.claude/plugins/cache/...</code> auflösen, obwohl der Schalter aus ist. Um ausschließlich die projektbezogene Variante zu erzwingen, deinstalliere das Marketplace-Plugin aus Claude:`,runInstruction:`In einer aktiven Claude-Session ausführen, dann Claude in diesem Projekt neu starten.`},i={body:`Das gebündelte Manifest hat sich seit der Installation geändert (vermutlich eine Upstream-Umbenennung). Schreibe <code>.mcp.json</code> mit dem kanonischen Eintrag neu – chirurgisch, nur die vom Plugin verwalteten Schlüssel werden angefasst.`,button:`<code>.mcp.json</code>-Eintrag aktualisieren`},a={body:`<strong>{{name}}</strong> ist zusätzlich global über Claudes Plugin-Marketplace aktiviert, was diese projektbezogene Installation überlagert. Damit diese Karte „Aktiv“ wird, deaktiviere unten die globale Version – sie kann jederzeit wieder über Claude aktiviert werden.`,disableButton:`<code>{{key}}</code> deaktivieren`},o={badge:`Verwaist`,removeButton:`Verwaisten Eintrag entfernen`},s={title:`{{name}} installieren`,computingChanges:`Änderungen werden berechnet…`,filesHeading:`Dateien, die geändert werden`,prerequisites:`Voraussetzungen`,autoInstall:`Automatisch installieren`,progress:`Fortschritt`,installingPrereq:`{{name}} wird installiert…`,prereqStartFailed:`Start fehlgeschlagen: {{message}}`},c={title:`{{name}} deinstallieren?`,body:`Dies setzt die vom Plugin verwalteten Einträge in <code>.mcp.json</code> zurück und entfernt alle vom Plugin erstellten Dateien. Dein Code, deine Historie und andere Plugins sind nicht betroffen.`},l={title:`Dokumentation`,dialogDescription:`Durchstöbere die mitgelieferte Specrails-Dokumentation. Wechsle über die Seitenleiste zwischen den Guides.`,sidebarEmpty:`Noch keine Doku`,indexEmpty:`Die Dokumentation erscheint hier. Das Benutzerhandbuch wird mit der App unter docs/guide/ ausgeliefert; lege Markdown-Dateien unter ~/.specrails/docs/guide/ ab, um es anzupassen.`,categoryEmpty:`Noch keine Dokumente in dieser Kategorie.`,documentCount_one:`{{count}} Dokument`,documentCount_other:`{{count}} Dokumente`,categoryCount_one:`{{count}} Kategorie`,categoryCount_other:`{{count}} Kategorien`,summary:`{{documents}} in {{categories}}.`,loadError:`Dokument konnte nicht geladen werden`},u={title:`Jira`,category:`Vorgangsverfolgung`,description:`Hinterlege die Specs dieses Projekts mit einem Jira-Board — bidirektionale Statussynchronisierung plus ein Kommentar am Ende eines Rails.`,connectedDescription:`Synchronisiert mit {{key}}. Specs spiegeln dein Jira-Board in beide Richtungen.`,connect:`Verbinden`,connected:`Verbunden`,manage:`Verwalten`,modalTitle:`Mit Jira verbinden`,manageTitle:`Jira-Verbindung`,bullet1:`Bidirektionale Statussynchronisierung mit deinem Jira-Board.`,bullet2:`Postet einen Kommentar, wenn ein Rail abschließt.`,bullet3:`Dein Jira-Backlog erscheint als Specs auf dem Board.`,requires:`Erfordert ein Jira-Cloud- oder Data-Center-Konto.`},d={page:{title:`Plugins`,subtitle:`Globale Tools und Projektintegrationen, zentral verwaltet.`,readyCount_one:`{{count}} bereit`,readyCount_other:`{{count}} bereit`},search:{placeholder:`Plugins suchen`},filters:{all:`alle`,global:`global`,project:`projekt`},sections:{installed:`Installiert`,available:`Verfügbar`},scope:{global:`global`,project:`projekt`},groups:{global:{title:`Global`,detail:`Gilt für ganz Specrails`},project:{title:`Projektlokal`,detail:`Pro Repository konfiguriert`}},empty:{installedSearch:`Keine installierten Plugins passen zu dieser Suche.`,installed:`Noch keine Plugins installiert.`,availableSearch:`Keine verfügbaren Plugins passen zu dieser Suche.`,allInstalled:`Alle Plugins sind installiert.`},actions:{install:`Installieren`,installing:`Installieren`,manage:`Verwalten`,review:`Prüfen`,cancel:`Abbrechen`},status:{attention:`Achtung`,active:`aktiv`,externalActive:`extern aktiv`,external:`extern`,installed:`installiert`,available:`verfügbar`,configuredCount_one:`{{count}} konfiguriert`,configuredCount_other:`{{count}} konfiguriert`,installedCount_one:`{{count}} installiert`,installedCount_other:`{{count}} installiert`},catalog:{headroom:{description:`Optimiert Codex- und Claude-Starts mit Headroom AI.`},jira:{description:`Synchronisiert Projektspecs mit einem Jira-Board, Statusmapping und Abschlusskommentaren.`},serena:{description:`Projektlokale semantische Code-Navigation über Serena MCP.`}},headroom:{title:`Headroom AI`,dialogDescription:`Globale Headroom-Installation und Provider-Routing verwalten.`,panelDescription:`Global installiert, separat für Codex und Claude aktivierbar.`,issueCode:`Code: {{code}}`,confirmDetach:`Dies deaktiviert Specrails-Routing und stoppt den Proxy. Die bestehende Systeminstallation von Headroom bleibt unverändert.`,confirmUninstall:`Dies deaktiviert Codex- und Claude-Routen, stoppt den Proxy und entfernt das von Specrails verwaltete Headroom-Tool.`,metrics:{install:`Installation`,checking:`Prüfen`,ready:`Bereit`,missing:`Fehlt`,source:`Quelle`,system:`System`,specrails:`Specrails`,none:`Keine`,proxy:`Proxy`,starting:`Startet`,off:`Aus`},actions:{installWithUv:`Mit gebündeltem uv installieren`,disableAllRoutes:`Alle Routen deaktivieren`,viewDiagnostics:`Diagnose anzeigen`,detachHeadroom:`Headroom trennen`,uninstallHeadroom:`Headroom deinstallieren`,detach:`Trennen`,uninstall:`Deinstallieren`},port:{label:`Proxy-Port`,apply:`Anwenden`},provider:{noProjectUsesProvider:`Kein Specrails-Projekt nutzt diesen Provider`,routedThroughHeadroom:`Über Headroom geroutet`,detectedExternalRoute:`Externe Route erkannt`,notRouted:`Nicht geroutet`},savings:{title:`Headroom-Tokenersparnis`,learningOn:`Ausgabe gemessen`,waitingForOutputSamples:`Ausgabe nicht gemessen`,baseline:`{{method}}e Basislinie`,updatedLive:`live aktualisiert`,baselineSamples_one:`{{count}} Basisbeispiel`,baselineSamples_other:`{{count}} Basisbeispiele`,tokens:`Tokens`,learning:`Keine Daten`,off:`Aus`,requestDetail:`{{method}} · {{count}} Anfragen`,requestCount:`{{count}} Anfragen`,detected:`erkannt`,totals:`Gesamt`,input:`Eingabe`,output:`Ausgabe`,processed:`Verarbeitet`,saved:`Gespart`,noData:`Keine Daten`,inputSaved:`Eingabe gespart`,outputSaved:`Ausgabe gespart`,inputSavingsActive:`Routing über Headroom`,statusInputOutput:`Eingabe + Ausgabe`,statusInputOnly:`Eingabe aktiv`,statusRouting:`Routing aktiv`,statusInactive:`Inaktiv`,methods:{estimated:`geschätzt`,measured:`gemessen`,none:`keine`},waitingForShapedResponses:`Noch keine Ausgabeantworten gemessen`,outputObserved:`{{value}} Ausgabe beobachtet`,routeDisabled:`Route deaktiviert`},issues:{uv_missing_or_corrupt:{title:`Gebündeltes uv ist nicht verfügbar`,guidance:`Specrails konnte die gebündelte uv-Laufzeit nicht starten. Installiere Specrails neu oder nutze Reparieren, sobald die Laufzeit verfügbar ist.`},network_unavailable:{title:`Headroom konnte nicht heruntergeladen werden`,guidance:`Prüfe die Netzwerkverbindung und versuche es erneut. Specrails hält die Installation isoliert in seinem eigenen Tool-Verzeichnis.`},package_resolution_failed:{title:`Headroom-Abhängigkeiten konnten nicht aufgelöst werden`,guidance:`Versuche die Installation erneut. Wenn sie weiter fehlschlägt, öffne die Diagnose und teile die uv-Ausgabe.`},install_permission_failed:{title:`Specrails kann nicht in sein Tool-Verzeichnis schreiben`,guidance:`Prüfe die Berechtigungen unter ~/.specrails/tools und versuche die Installation erneut.`},headroom_not_found_after_install:{title:`Installation abgeschlossen, aber Headroom wurde nicht gefunden`,guidance:`Führe Installation reparieren aus. Specrails installiert Headroom neu und prüft die ausführbare Datei.`},learning_setup_failed:{title:`Headroom-Lernen konnte nicht aktiviert werden`,guidance:`Headroom ist installiert, aber die Kalibrierung der Ausgabeersparnis wurde nicht abgeschlossen. Nutze weiter das Proxy-Routing, während Metriken Beispiele sammeln.`},metrics_unavailable:{title:`Headroom-Metriken sind noch nicht verfügbar`,guidance:`Route Traffic über Headroom. Specrails aktualisiert Token-Ersparnisse, sobald der Proxy Beispiele meldet.`},proxy_port_busy:{title:`Der Headroom-Proxy-Port ist bereits belegt`,guidance:`Wähle einen anderen Port oder stoppe den Prozess auf dem aktuellen Port und versuche die Aktivierung erneut.`},proxy_unhealthy:{title:`Der Headroom-Proxy wurde nicht fehlerfrei`,guidance:`Versuche die Aktivierung erneut. Wenn es wieder passiert, öffne die Diagnose und prüfe die Proxy-Ausgabe.`},provider_route_failed:{title:`Provider-Routenprüfung fehlgeschlagen`,guidance:`Specrails konnte die Provider-Route nicht prüfen. Der Provider bleibt inaktiv; versuche es nach der Diagnose erneut.`},provider_config_conflict:{title:`Bestehende Provider-Konfiguration kollidiert mit Headroom`,guidance:`Prüfe die Diagnose, bevor du systemweites Routing aktivierst. Von Specrails verwaltetes Routing bleibt rückgängig machbar.`},activation_partially_applied:{title:`Aktivierung wurde nur teilweise angewendet`,guidance:`Specrails hat ein Rollback versucht. Prüfe die Diagnose und versuche den betroffenen Provider erneut.`},not_installed:{title:`Headroom ist nicht installiert`,guidance:`Installiere zuerst Headroom und aktiviere dann Codex oder Claude.`},uninstall_failed:{title:`Headroom konnte nicht deinstalliert werden`,guidance:`Specrails hat Headroom-Routing deaktiviert, konnte das verwaltete Tool aber nicht entfernen. Öffne die Diagnose und versuche es erneut.`},unknown:{title:`Headroom-Vorgang fehlgeschlagen`,guidance:`Versuche den Vorgang erneut. Wenn es wieder passiert, öffne die Diagnose und teile die Details.`}}},projectWizard:{configureJira:`Jira konfigurieren`,installSerena:`Serena installieren`,description:`Wähle das Projekt aus, in dem dieses projektbezogene Plugin konfiguriert werden soll.`,chooseProject:`Projekt wählen`,requiresClaudeProvider:`Erfordert Claude-Provider`,selectProjectToContinue:`Wähle ein Projekt aus, um fortzufahren.`},serena:{loading:`Serena wird geladen…`,titleForProject:`Serena für {{name}}`,description:`Installiert projektlokale MCP-Konfiguration und Plugin-Status. Andere Projekte bleiben unverändert.`,status:`Status: {{status}}`,files:`Dateien`,prerequisites:`Voraussetzungen`},projectStatus:{installed:`installiert`,deactivated:`deaktiviert`,"not-installed":`nicht installiert`,orphan:`verwaist`,degraded:`beeinträchtigt`},diagnostics:{title:`Headroom-Diagnose`,description:`Technischer Status der von Specrails verwalteten Headroom-Installation und des Proxys.`}},f={page:e,card:t,toggle:n,cachedNotice:r,update:i,conflict:a,orphan:o,installDialog:s,uninstallDialog:c,docs:l,jiraCard:u,plugins:d};export{r as cachedNotice,t as card,a as conflict,f as default,l as docs,s as installDialog,u as jiraCard,o as orphan,e as page,d as plugins,n as toggle,c as uninstallDialog,i as update};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Integraciones`,subtitle:`Plugins por proyecto. Cada proyecto decide de forma independiente qué integraciones activar.`,selectProject:`Selecciona un proyecto para gestionar sus integraciones.`,deprecated:`Obsoleto`,loadError:`No se pudieron cargar los plugins.`,empty:`Esta build no incluye ningún plugin.`},t={statusActive:`Activo`,statusDeactivated:`Desactivado`,statusDegraded:`Degradado`,updateAvailable:`Actualización disponible`,requires:`Requiere: {{list}}`,deactivatedHint:`Instalado pero desactivado — Claude no lo cargará en la próxima sesión. Activa <strong>Activo</strong> para volver a habilitarlo.`,install:`Instalar`,uninstall:`Desinstalar`},n={titleActive:`Activo — haz clic para desactivar`,titleDeactivated:`Desactivado — haz clic para activar`},r={body:`Claude tiene el plugin del marketplace <strong>instalado pero deshabilitado</strong> en su caché. Puede que siga resolviendo el servidor desde <code>~/.claude/plugins/cache/...</code> aunque el interruptor esté apagado. Para forzar solo el ámbito de proyecto, desinstala el plugin del marketplace desde Claude:`,runInstruction:`Ejecútalo dentro de una sesión activa de Claude y luego reinicia Claude en este proyecto.`},i={body:`El manifiesto incluido ha cambiado desde que lo instalaste (probablemente un renombrado upstream). Reescribe <code>.mcp.json</code> con la entrada canónica — de forma quirúrgica: solo se tocan las claves propiedad del plugin.`,button:`Actualizar la entrada de <code>.mcp.json</code>`},a={body:`<strong>{{name}}</strong> también está habilitado globalmente a través del marketplace de plugins de Claude, lo que eclipsa esta instalación de ámbito de proyecto. Para que esta tarjeta pase a Activo, deshabilita la versión global más abajo — puede volver a habilitarse desde Claude en cualquier momento.`,disableButton:`Deshabilitar <code>{{key}}</code>`},o={badge:`Huérfano`,removeButton:`Eliminar huérfano`},s={title:`Instalar {{name}}`,computingChanges:`Calculando cambios…`,filesHeading:`Archivos que cambiarán`,prerequisites:`Requisitos previos`,autoInstall:`Instalación automática`,progress:`Progreso`,installingPrereq:`Instalando {{name}}…`,prereqStartFailed:`No se pudo iniciar: {{message}}`},c={title:`¿Desinstalar {{name}}?`,body:`Esto revertirá las entradas gestionadas por el plugin en <code>.mcp.json</code> y eliminará los archivos creados por el plugin. Tu código, tu historial y el resto de plugins no se ven afectados.`},l={title:`Documentación`,dialogDescription:`Consulta la documentación incluida de Specrails. Usa la barra lateral para cambiar entre guías.`,sidebarEmpty:`Aún no hay docs`,indexEmpty:`La documentación aparecerá aquí. La guía de usuario se incluye con la app en docs/guide/; añade archivos Markdown en ~/.specrails/docs/guide/ para personalizarla.`,categoryEmpty:`Aún no hay documentos en esta categoría.`,documentCount_one:`{{count}} documento`,documentCount_other:`{{count}} documentos`,categoryCount_one:`{{count}} categoría`,categoryCount_other:`{{count}} categorías`,summary:`{{documents}} en {{categories}}.`,loadError:`No se pudo cargar el documento`},u={title:`Jira`,category:`Seguimiento de incidencias`,description:`Respalda las specs de este proyecto con un tablero de Jira — sincronización bidireccional del estado y un comentario al terminar un rail.`,connectedDescription:`Sincronizado con {{key}}. Las specs reflejan tu tablero de Jira en ambos sentidos.`,connect:`Conectar`,connected:`Conectado`,manage:`Gestionar`,modalTitle:`Conectar con Jira`,manageTitle:`Conexión de Jira`,bullet1:`Sincronización bidireccional del estado con tu tablero de Jira.`,bullet2:`Publica un comentario al terminar un rail.`,bullet3:`Tu backlog de Jira aparece como specs en el tablero.`,requires:`Requiere una cuenta de Jira Cloud o Data Center.`},d={page:{title:`Plugins`,subtitle:`Herramientas globales e integraciones de proyecto, gestionadas desde un solo lugar.`,readyCount_one:`{{count}} listo`,readyCount_other:`{{count}} listos`},search:{placeholder:`Buscar plugins`},filters:{all:`todos`,global:`globales`,project:`proyecto`},sections:{installed:`Instalados`,available:`Disponibles`},scope:{global:`global`,project:`proyecto`},groups:{global:{title:`Globales`,detail:`Aplican a todo Specrails`},project:{title:`Locales de proyecto`,detail:`Configurados por repositorio`}},empty:{installedSearch:`No hay plugins instalados que coincidan con esta búsqueda.`,installed:`Todavía no hay plugins instalados.`,availableSearch:`No hay plugins disponibles que coincidan con esta búsqueda.`,allInstalled:`Todos los plugins están instalados.`},actions:{install:`Instalar`,installing:`Instalando`,manage:`Gestionar`,review:`Revisar`,cancel:`Cancelar`},status:{attention:`requiere atención`,active:`activo`,externalActive:`externo activo`,external:`externo`,installed:`instalado`,available:`disponible`,configuredCount_one:`{{count}} configurado`,configuredCount_other:`{{count}} configurados`,installedCount_one:`{{count}} instalado`,installedCount_other:`{{count}} instalados`},catalog:{headroom:{description:`Optimiza los lanzamientos de Codex y Claude con Headroom AI.`},jira:{description:`Sincroniza specs del proyecto con un tablero de Jira, mapeo de estados y comentarios de finalización.`},serena:{description:`Navegación semántica de código local al proyecto mediante Serena MCP.`}},headroom:{title:`Headroom AI`,dialogDescription:`Gestiona la instalación global de Headroom y el enrutado por proveedor.`,panelDescription:`Instalado globalmente, activado de forma independiente para Codex y Claude.`,issueCode:`Código: {{code}}`,confirmDetach:`Esto desactiva el enrutado de Specrails y detiene el proxy. La instalación existente de Headroom en el sistema queda intacta.`,confirmUninstall:`Esto desactiva las rutas de Codex y Claude, detiene el proxy y elimina la herramienta Headroom gestionada por Specrails.`,metrics:{install:`Instalación`,checking:`Comprobando`,ready:`Lista`,missing:`Falta`,source:`Origen`,system:`Sistema`,specrails:`Specrails`,none:`Ninguno`,proxy:`Proxy`,starting:`Iniciando`,off:`Apagado`},actions:{installWithUv:`Instalar con uv incluido`,disableAllRoutes:`Desactivar todas las rutas`,viewDiagnostics:`Ver diagnóstico`,detachHeadroom:`Desvincular Headroom`,uninstallHeadroom:`Desinstalar Headroom`,detach:`Desvincular`,uninstall:`Desinstalar`},port:{label:`Puerto del proxy`,apply:`Aplicar`},provider:{noProjectUsesProvider:`Ningún proyecto de Specrails usa este proveedor`,routedThroughHeadroom:`Enrutado mediante Headroom`,detectedExternalRoute:`Ruta externa detectada`,notRouted:`Sin enrutar`},savings:{title:`Ahorro de tokens Headroom`,learningOn:`salida medida`,waitingForOutputSamples:`salida sin medir`,baseline:`base {{method}}`,updatedLive:`actualizado en vivo`,baselineSamples_one:`{{count}} muestra base`,baselineSamples_other:`{{count}} muestras base`,tokens:`tokens`,learning:`Sin datos`,off:`Apagado`,requestDetail:`{{method}} · {{count}} solicitudes`,requestCount:`{{count}} solicitudes`,detected:`detectado`,totals:`Totales`,input:`Entrada`,output:`Salida`,processed:`Procesados`,saved:`Ahorrados`,noData:`Sin datos`,inputSaved:`Entrada ahorrada`,outputSaved:`Salida ahorrada`,inputSavingsActive:`Enrutando mediante Headroom`,statusInputOutput:`Entrada + salida`,statusInputOnly:`Entrada activa`,statusRouting:`Enrutando`,statusInactive:`Inactivo`,methods:{estimated:`estimada`,measured:`medida`,none:`sin medir`},waitingForShapedResponses:`Sin respuestas de salida medidas`,outputObserved:`{{value}} de salida observados`,routeDisabled:`Ruta desactivada`},issues:{uv_missing_or_corrupt:{title:`El uv incluido no está disponible`,guidance:`Specrails no pudo iniciar su runtime uv incluido. Reinstala Specrails o usa Reparar cuando el runtime esté disponible.`},network_unavailable:{title:`No se pudo descargar Headroom`,guidance:`Comprueba tu conexión de red y reintenta. Specrails mantendrá la instalación aislada en su propio directorio de herramientas.`},package_resolution_failed:{title:`No se pudieron resolver las dependencias de Headroom`,guidance:`Reintenta la instalación. Si sigue fallando, abre el diagnóstico y comparte la salida de uv.`},install_permission_failed:{title:`Specrails no puede escribir en su directorio de herramientas`,guidance:`Comprueba los permisos en ~/.specrails/tools y reintenta la instalación.`},headroom_not_found_after_install:{title:`La instalación terminó pero no se encontró Headroom`,guidance:`Ejecuta Reparar instalación. Specrails reinstalará Headroom y verificará el ejecutable.`},learning_setup_failed:{title:`No se pudo activar el aprendizaje de Headroom`,guidance:`Headroom está instalado, pero la calibración de ahorro de salida no terminó. Sigue usando el enrutado por proxy mientras las métricas recopilan muestras.`},metrics_unavailable:{title:`Las métricas de Headroom aún no están disponibles`,guidance:`Empieza a enrutar tráfico por Headroom. Specrails actualizará las métricas de ahorro cuando el proxy reporte muestras.`},proxy_port_busy:{title:`El puerto del proxy de Headroom ya está en uso`,guidance:`Elige otro puerto o detén el proceso que usa el puerto actual y reintenta la activación.`},proxy_unhealthy:{title:`El proxy de Headroom no llegó a estar sano`,guidance:`Reintenta la activación. Si se repite, abre el diagnóstico para inspeccionar la salida del proxy.`},provider_route_failed:{title:`Falló la verificación de ruta del proveedor`,guidance:`Specrails no pudo verificar la ruta del proveedor. El proveedor queda inactivo; reintenta tras revisar el diagnóstico.`},provider_config_conflict:{title:`La configuración existente del proveedor entra en conflicto con Headroom`,guidance:`Revisa el diagnóstico antes de activar el enrutado global. El enrutado gestionado por Specrails es reversible.`},activation_partially_applied:{title:`La activación solo se aplicó parcialmente`,guidance:`Specrails intentó revertir el cambio. Revisa el diagnóstico y reintenta el proveedor afectado.`},not_installed:{title:`Headroom no está instalado`,guidance:`Instala Headroom primero y después activa Codex o Claude.`},uninstall_failed:{title:`No se pudo desinstalar Headroom`,guidance:`Specrails desactivó el enrutado de Headroom pero no pudo eliminar la herramienta gestionada. Abre el diagnóstico y reintenta.`},unknown:{title:`Falló la operación de Headroom`,guidance:`Reintenta la operación. Si se repite, abre el diagnóstico y comparte los detalles.`}}},projectWizard:{configureJira:`Configurar Jira`,installSerena:`Instalar Serena`,description:`Selecciona el proyecto donde debe configurarse este plugin local de proyecto.`,chooseProject:`Elegir proyecto`,requiresClaudeProvider:`Requiere proveedor Claude`,selectProjectToContinue:`Selecciona un proyecto para continuar.`},serena:{loading:`Cargando Serena…`,titleForProject:`Serena para {{name}}`,description:`Instala la configuración MCP y el estado del plugin solo en este proyecto. Los demás proyectos no se tocan.`,status:`Estado: {{status}}`,files:`Archivos`,prerequisites:`Prerrequisitos`},projectStatus:{installed:`instalado`,deactivated:`desactivado`,"not-installed":`no instalado`,orphan:`huérfano`,degraded:`degradado`},diagnostics:{title:`Diagnóstico de Headroom`,description:`Estado técnico de la instalación de Headroom gestionada por Specrails y del proxy.`}},f={page:e,card:t,toggle:n,cachedNotice:r,update:i,conflict:a,orphan:o,installDialog:s,uninstallDialog:c,docs:l,jiraCard:u,plugins:d};export{r as cachedNotice,t as card,a as conflict,f as default,l as docs,s as installDialog,u as jiraCard,o as orphan,e as page,d as plugins,n as toggle,c as uninstallDialog,i as update};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Integrazioni`,subtitle:`Plugin per progetto. Ogni progetto decide in autonomia quali integrazioni abilitare.`,selectProject:`Seleziona un progetto per gestire le integrazioni.`,deprecated:`Deprecato`,loadError:`Impossibile caricare i plugin.`,empty:`Nessun plugin incluso in questa build.`},t={statusActive:`Attivo`,statusDeactivated:`Disattivato`,statusDegraded:`Degradato`,updateAvailable:`Aggiornamento disponibile`,requires:`Richiede: {{list}}`,deactivatedHint:`Installato ma disattivato — Claude non lo caricherà nella prossima sessione. Imposta su <strong>Attivo</strong> per riabilitarlo.`,install:`Installa`,uninstall:`Disinstalla`},n={titleActive:`Attivo — clicca per disattivare`,titleDeactivated:`Disattivato — clicca per attivare`},r={body:`Claude ha il plugin del marketplace <strong>installato ma disabilitato</strong> nella sua cache. Potrebbe comunque risolvere il server da <code>~/.claude/plugins/cache/...</code> anche con l'interruttore disattivato. Per forzare il solo ambito di progetto, disinstalla il plugin del marketplace da Claude:`,runInstruction:`Esegui all'interno di una sessione Claude attiva, poi riavvia Claude in questo progetto.`},i={body:`Il manifest incluso è cambiato dopo l'installazione (probabilmente una rinomina upstream). Riscrivi <code>.mcp.json</code> con la voce canonica — intervento chirurgico, vengono toccate solo le chiavi di proprietà del plugin.`,button:`Aggiorna la voce in <code>.mcp.json</code>`},a={body:`<strong>{{name}}</strong> è abilitato anche globalmente tramite il marketplace dei plugin di Claude, che mette in ombra questa installazione a livello di progetto. Per rendere Attiva questa scheda, disabilita qui sotto la versione globale — potrà essere riabilitata da Claude in qualsiasi momento.`,disableButton:`Disabilita <code>{{key}}</code>`},o={badge:`Orfano`,removeButton:`Rimuovi orfano`},s={title:`Installa {{name}}`,computingChanges:`Calcolo delle modifiche…`,filesHeading:`File che verranno modificati`,prerequisites:`Prerequisiti`,autoInstall:`Installazione automatica`,progress:`Avanzamento`,installingPrereq:`Installazione di {{name}}…`,prereqStartFailed:`Avvio non riuscito: {{message}}`},c={title:`Disinstallare {{name}}?`,body:`Verranno ripristinate le voci gestite dal plugin in <code>.mcp.json</code> e rimossi i file creati dal plugin. Il tuo codice, la cronologia e gli altri plugin non vengono toccati.`},l={title:`Documentazione`,dialogDescription:`Sfoglia la documentazione di Specrails inclusa. Usa la barra laterale per passare da una guida all'altra.`,sidebarEmpty:`Ancora nessun documento`,indexEmpty:`La documentazione apparirà qui. La guida utente è inclusa nell’app in docs/guide/; aggiungi file Markdown in ~/.specrails/docs/guide/ per personalizzarla.`,categoryEmpty:`Ancora nessun documento in questa categoria.`,documentCount_one:`{{count}} documento`,documentCount_other:`{{count}} documenti`,categoryCount_one:`{{count}} categoria`,categoryCount_other:`{{count}} categorie`,summary:`{{documents}} in {{categories}}.`,loadError:`Impossibile caricare il documento`},u={title:`Jira`,category:`Tracciamento ticket`,description:`Appoggia le spec di questo progetto a una board Jira — sincronizzazione bidirezionale dello stato e un commento al termine di un rail.`,connectedDescription:`Sincronizzato con {{key}}. Le spec rispecchiano la tua board Jira in entrambe le direzioni.`,connect:`Connetti`,connected:`Connesso`,manage:`Gestisci`,modalTitle:`Connetti a Jira`,manageTitle:`Connessione Jira`,bullet1:`Sincronizzazione bidirezionale dello stato con la tua board Jira.`,bullet2:`Pubblica un commento al termine di un rail.`,bullet3:`Il tuo backlog Jira appare come spec sulla board.`,requires:`Richiede un account Jira Cloud o Data Center.`},d={page:{title:`Plugin`,subtitle:`Strumenti globali e integrazioni di progetto, gestiti da un unico posto.`,readyCount_one:`{{count}} pronto`,readyCount_other:`{{count}} pronti`},search:{placeholder:`Cerca plugin`},filters:{all:`tutti`,global:`globali`,project:`progetto`},sections:{installed:`Installati`,available:`Disponibili`},scope:{global:`globale`,project:`progetto`},groups:{global:{title:`Globali`,detail:`Si applicano a tutto Specrails`},project:{title:`Locali al progetto`,detail:`Configurati per repository`}},empty:{installedSearch:`Nessun plugin installato corrisponde a questa ricerca.`,installed:`Nessun plugin installato.`,availableSearch:`Nessun plugin disponibile corrisponde a questa ricerca.`,allInstalled:`Tutti i plugin sono installati.`},actions:{install:`Installa`,installing:`Installazione`,manage:`Gestisci`,review:`Controlla`,cancel:`Annulla`},status:{attention:`attenzione`,active:`attivo`,externalActive:`esterno attivo`,external:`esterno`,installed:`installato`,available:`disponibile`,configuredCount_one:`{{count}} configurato`,configuredCount_other:`{{count}} configurati`,installedCount_one:`{{count}} installato`,installedCount_other:`{{count}} installati`},catalog:{headroom:{description:`Ottimizza gli avvii di Codex e Claude tramite Headroom AI.`},jira:{description:`Sincronizza le spec di progetto con una board Jira, mapping degli stati e commenti di completamento.`},serena:{description:`Navigazione semantica del codice locale al progetto tramite Serena MCP.`}},headroom:{title:`Headroom AI`,dialogDescription:`Gestisci l’installazione globale di Headroom e il routing per provider.`,panelDescription:`Installato globalmente, attivato separatamente per Codex e Claude.`,issueCode:`Codice: {{code}}`,confirmDetach:`Questo disattiva il routing Specrails e ferma il proxy. L’installazione Headroom di sistema esistente resta intatta.`,confirmUninstall:`Questo disattiva le rotte Codex e Claude, ferma il proxy e rimuove lo strumento Headroom gestito da Specrails.`,metrics:{install:`Installazione`,checking:`Verifica`,ready:`Pronto`,missing:`Mancante`,source:`Origine`,system:`Sistema`,specrails:`Specrails`,none:`Nessuno`,proxy:`Proxy`,starting:`Avvio`,off:`Spento`},actions:{installWithUv:`Installa con uv incluso`,disableAllRoutes:`Disattiva tutte le rotte`,viewDiagnostics:`Vedi diagnostica`,detachHeadroom:`Scollega Headroom`,uninstallHeadroom:`Disinstalla Headroom`,detach:`Scollega`,uninstall:`Disinstalla`},port:{label:`Porta proxy`,apply:`Applica`},provider:{noProjectUsesProvider:`Nessun progetto Specrails usa questo provider`,routedThroughHeadroom:`Instradato tramite Headroom`,detectedExternalRoute:`Rotta esterna rilevata`,notRouted:`Non instradato`},savings:{title:`Risparmio token Headroom`,learningOn:`output misurato`,waitingForOutputSamples:`output non misurato`,baseline:`base {{method}}`,updatedLive:`aggiornato live`,baselineSamples_one:`{{count}} campione base`,baselineSamples_other:`{{count}} campioni base`,tokens:`token`,learning:`Nessun dato`,off:`Spento`,requestDetail:`{{method}} · {{count}} richieste`,requestCount:`{{count}} richieste`,detected:`rilevato`,totals:`Totali`,input:`Input`,output:`Output`,processed:`Processati`,saved:`Risparmiati`,noData:`Nessun dato`,inputSaved:`Input risparmiato`,outputSaved:`Output risparmiato`,inputSavingsActive:`Routing tramite Headroom`,statusInputOutput:`Input + output`,statusInputOnly:`Input attivo`,statusRouting:`Routing attivo`,statusInactive:`Inattivo`,methods:{estimated:`stimata`,measured:`misurata`,none:`nessuna`},waitingForShapedResponses:`Nessuna risposta di output misurata`,outputObserved:`{{value}} di output osservati`,routeDisabled:`Rotta disattivata`},issues:{uv_missing_or_corrupt:{title:`Il uv incluso non è disponibile`,guidance:`Specrails non è riuscito ad avviare il runtime uv incluso. Reinstalla Specrails o usa Ripara quando il runtime sarà disponibile.`},network_unavailable:{title:`Non è stato possibile scaricare Headroom`,guidance:`Controlla la connessione di rete e riprova. Specrails manterrà l’installazione isolata nella propria directory degli strumenti.`},package_resolution_failed:{title:`Non è stato possibile risolvere le dipendenze di Headroom`,guidance:`Riprova l’installazione. Se continua a fallire, apri la diagnostica e condividi l’output di uv.`},install_permission_failed:{title:`Specrails non può scrivere nella directory degli strumenti`,guidance:`Controlla i permessi in ~/.specrails/tools, poi riprova l’installazione.`},headroom_not_found_after_install:{title:`Installazione completata ma Headroom non trovato`,guidance:`Esegui Ripara installazione. Specrails reinstallerà Headroom e verificherà l’eseguibile.`},learning_setup_failed:{title:`Non è stato possibile abilitare l’apprendimento di Headroom`,guidance:`Headroom è installato, ma la calibrazione dei risparmi di output non è terminata. Continua a usare il routing proxy mentre le metriche raccolgono campioni.`},metrics_unavailable:{title:`Le metriche di Headroom non sono ancora disponibili`,guidance:`Inizia a instradare traffico tramite Headroom. Specrails aggiornerà le metriche di risparmio token appena il proxy riporterà campioni.`},proxy_port_busy:{title:`La porta del proxy Headroom è già in uso`,guidance:`Scegli un’altra porta o ferma il processo che usa la porta attuale, poi riprova l’attivazione.`},proxy_unhealthy:{title:`Il proxy Headroom non è diventato sano`,guidance:`Riprova l’attivazione. Se si ripete, apri la diagnostica per controllare l’output del proxy.`},provider_route_failed:{title:`Verifica della rotta del provider non riuscita`,guidance:`Specrails non ha potuto verificare la rotta del provider. Il provider resta inattivo; riprova dopo aver controllato la diagnostica.`},provider_config_conflict:{title:`La configurazione provider esistente è in conflitto con Headroom`,guidance:`Controlla la diagnostica prima di abilitare il routing a livello di sistema. Il routing gestito da Specrails resta reversibile.`},activation_partially_applied:{title:`L’attivazione è stata applicata solo in parte`,guidance:`Specrails ha tentato il rollback. Controlla la diagnostica e riprova il provider interessato.`},not_installed:{title:`Headroom non è installato`,guidance:`Installa prima Headroom, poi attiva Codex o Claude.`},uninstall_failed:{title:`Non è stato possibile disinstallare Headroom`,guidance:`Specrails ha disattivato il routing Headroom ma non ha potuto rimuovere lo strumento gestito. Apri la diagnostica e riprova.`},unknown:{title:`Operazione Headroom non riuscita`,guidance:`Riprova l’operazione. Se si ripete, apri la diagnostica e condividi i dettagli.`}}},projectWizard:{configureJira:`Configura Jira`,installSerena:`Installa Serena`,description:`Seleziona il progetto in cui configurare questo plugin locale al progetto.`,chooseProject:`Scegli progetto`,requiresClaudeProvider:`Richiede provider Claude`,selectProjectToContinue:`Seleziona un progetto per continuare.`},serena:{loading:`Caricamento Serena…`,titleForProject:`Serena per {{name}}`,description:`Installa la configurazione MCP e lo stato del plugin localmente al progetto. Gli altri progetti non vengono modificati.`,status:`Stato: {{status}}`,files:`File`,prerequisites:`Prerequisiti`},projectStatus:{installed:`installato`,deactivated:`disattivato`,"not-installed":`non installato`,orphan:`orfano`,degraded:`degradato`},diagnostics:{title:`Diagnostica Headroom`,description:`Stato tecnico dell’installazione Headroom gestita da Specrails e del proxy.`}},f={page:e,card:t,toggle:n,cachedNotice:r,update:i,conflict:a,orphan:o,installDialog:s,uninstallDialog:c,docs:l,jiraCard:u,plugins:d};export{r as cachedNotice,t as card,a as conflict,f as default,l as docs,s as installDialog,u as jiraCard,o as orphan,e as page,d as plugins,n as toggle,c as uninstallDialog,i as update};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Integrações`,subtitle:`Plugins por projeto. Cada projeto decide de forma independente que integrações ativar.`,selectProject:`Selecione um projeto para gerir integrações.`,deprecated:`Descontinuado`,loadError:`Falha ao carregar os plugins.`,empty:`Esta build não inclui nenhum plugin.`},t={statusActive:`Ativo`,statusDeactivated:`Desativado`,statusDegraded:`Degradado`,updateAvailable:`Atualização disponível`,requires:`Requer: {{list}}`,deactivatedHint:`Instalado mas desativado — o Claude não o vai carregar na próxima sessão. Alterne <strong>Ativo</strong> para reativar.`,install:`Instalar`,uninstall:`Desinstalar`},n={titleActive:`Ativo — clique para desativar`,titleDeactivated:`Desativado — clique para ativar`},r={body:`O Claude tem o plugin do marketplace <strong>instalado mas desativado</strong> na cache. Pode ainda resolver o servidor a partir de <code>~/.claude/plugins/cache/...</code> mesmo com o toggle desligado. Para forçar apenas o âmbito do projeto, desinstale o plugin do marketplace no Claude:`,runInstruction:`Execute numa sessão ativa do Claude e depois reinicie o Claude neste projeto.`},i={body:`O manifesto incluído mudou desde a instalação (provavelmente um rename a montante). Reescreva o <code>.mcp.json</code> com a entrada canónica — de forma cirúrgica, só as chaves do plugin são tocadas.`,button:`Atualizar entrada no <code>.mcp.json</code>`},a={body:`<strong>{{name}}</strong> também está ativado globalmente via marketplace de plugins do Claude, o que sobrepõe esta instalação no âmbito do projeto. Para este cartão ficar Ativo, desative a versão global abaixo — pode ser reativada no Claude a qualquer momento.`,disableButton:`Desativar <code>{{key}}</code>`},o={badge:`Órfão`,removeButton:`Remover órfão`},s={title:`Instalar {{name}}`,computingChanges:`A calcular alterações…`,filesHeading:`Ficheiros que vão mudar`,prerequisites:`Pré-requisitos`,autoInstall:`Instalação automática`,progress:`Progresso`,installingPrereq:`A instalar {{name}}…`,prereqStartFailed:`Falha ao iniciar: {{message}}`},c={title:`Desinstalar {{name}}?`,body:`Isto vai reverter as entradas geridas pelo plugin no <code>.mcp.json</code> e remover quaisquer ficheiros criados pelo plugin. O seu código, histórico e outros plugins não são afetados.`},l={title:`Documentação`,dialogDescription:`Consulte a documentação incluída do Specrails. Use a barra lateral para alternar entre guias.`,sidebarEmpty:`Ainda não há docs`,indexEmpty:`A documentação aparecerá aqui. O guia do utilizador é incluído na app em docs/guide/; adicione ficheiros Markdown em ~/.specrails/docs/guide/ para o personalizar.`,categoryEmpty:`Ainda não há documentos nesta categoria.`,documentCount_one:`{{count}} documento`,documentCount_other:`{{count}} documentos`,categoryCount_one:`{{count}} categoria`,categoryCount_other:`{{count}} categorias`,summary:`{{documents}} em {{categories}}.`,loadError:`Falha ao carregar o documento`},u={title:`Jira`,category:`Acompanhamento de tickets`,description:`Apoie as specs deste projeto num quadro Jira — sincronização bidirecional do estado e um comentário quando um rail termina.`,connectedDescription:`Sincronizado com {{key}}. As specs refletem o seu quadro Jira nos dois sentidos.`,connect:`Conectar`,connected:`Conectado`,manage:`Gerir`,modalTitle:`Conectar ao Jira`,manageTitle:`Ligação Jira`,bullet1:`Sincronização bidirecional do estado com o seu quadro Jira.`,bullet2:`Publica um comentário quando um rail termina.`,bullet3:`O seu backlog do Jira aparece como specs no quadro.`,requires:`Requer uma conta Jira Cloud ou Data Center.`},d={page:{title:`Plugins`,subtitle:`Ferramentas globais e integrações de projeto, geridas num só lugar.`,readyCount_one:`{{count}} pronto`,readyCount_other:`{{count}} prontos`},search:{placeholder:`Procurar plugins`},filters:{all:`todos`,global:`globais`,project:`projeto`},sections:{installed:`Instalados`,available:`Disponíveis`},scope:{global:`global`,project:`projeto`},groups:{global:{title:`Globais`,detail:`Aplica-se a todo o Specrails`},project:{title:`Locais do projeto`,detail:`Configurados por repositório`}},empty:{installedSearch:`Nenhum plugin instalado corresponde a esta pesquisa.`,installed:`Ainda não há plugins instalados.`,availableSearch:`Nenhum plugin disponível corresponde a esta pesquisa.`,allInstalled:`Todos os plugins estão instalados.`},actions:{install:`Instalar`,installing:`A instalar`,manage:`Gerir`,review:`Rever`,cancel:`Cancelar`},status:{attention:`atenção`,active:`ativo`,externalActive:`externo ativo`,external:`externo`,installed:`instalado`,available:`disponível`,configuredCount_one:`{{count}} configurado`,configuredCount_other:`{{count}} configurados`,installedCount_one:`{{count}} instalado`,installedCount_other:`{{count}} instalados`},catalog:{headroom:{description:`Otimiza lançamentos do Codex e do Claude através do Headroom AI.`},jira:{description:`Sincroniza specs do projeto com um quadro Jira, mapeamento de estados e comentários de conclusão.`},serena:{description:`Navegação semântica de código local ao projeto através do Serena MCP.`}},headroom:{title:`Headroom AI`,dialogDescription:`Gere a instalação global do Headroom e o encaminhamento por fornecedor.`,panelDescription:`Instalado globalmente, ativado de forma independente para Codex e Claude.`,issueCode:`Código: {{code}}`,confirmDetach:`Isto desativa o encaminhamento do Specrails e para o proxy. A instalação existente do Headroom no sistema fica intacta.`,confirmUninstall:`Isto desativa as rotas Codex e Claude, para o proxy e remove a ferramenta Headroom gerida pelo Specrails.`,metrics:{install:`Instalação`,checking:`A verificar`,ready:`Pronto`,missing:`Em falta`,source:`Origem`,system:`Sistema`,specrails:`Specrails`,none:`Nenhum`,proxy:`Proxy`,starting:`A iniciar`,off:`Desligado`},actions:{installWithUv:`Instalar com uv incluído`,disableAllRoutes:`Desativar todas as rotas`,viewDiagnostics:`Ver diagnóstico`,detachHeadroom:`Desassociar Headroom`,uninstallHeadroom:`Desinstalar Headroom`,detach:`Desassociar`,uninstall:`Desinstalar`},port:{label:`Porta do proxy`,apply:`Aplicar`},provider:{noProjectUsesProvider:`Nenhum projeto Specrails usa este fornecedor`,routedThroughHeadroom:`Encaminhado pelo Headroom`,detectedExternalRoute:`Rota externa detetada`,notRouted:`Sem rota`},savings:{title:`Poupança de tokens Headroom`,learningOn:`saída medida`,waitingForOutputSamples:`saída sem medição`,baseline:`base {{method}}`,updatedLive:`atualizado em direto`,baselineSamples_one:`{{count}} amostra base`,baselineSamples_other:`{{count}} amostras base`,tokens:`tokens`,learning:`Sem dados`,off:`Desligado`,requestDetail:`{{method}} · {{count}} pedidos`,requestCount:`{{count}} pedidos`,detected:`detetado`,totals:`Totais`,input:`Entrada`,output:`Saída`,processed:`Processados`,saved:`Poupados`,noData:`Sem dados`,inputSaved:`Entrada poupada`,outputSaved:`Saída poupada`,inputSavingsActive:`A encaminhar pelo Headroom`,statusInputOutput:`Entrada + saída`,statusInputOnly:`Entrada ativa`,statusRouting:`Encaminhamento ativo`,statusInactive:`Inativo`,methods:{estimated:`estimada`,measured:`medida`,none:`nenhuma`},waitingForShapedResponses:`Sem respostas de saída medidas`,outputObserved:`{{value}} de saída observados`,routeDisabled:`Rota desativada`},issues:{uv_missing_or_corrupt:{title:`O uv incluído não está disponível`,guidance:`O Specrails não conseguiu iniciar o runtime uv incluído. Reinstale o Specrails ou use Reparar quando o runtime estiver disponível.`},network_unavailable:{title:`Não foi possível descarregar o Headroom`,guidance:`Verifique a ligação de rede e tente novamente. O Specrails manterá a instalação isolada no seu próprio diretório de ferramentas.`},package_resolution_failed:{title:`Não foi possível resolver as dependências do Headroom`,guidance:`Tente instalar novamente. Se continuar a falhar, abra o diagnóstico e partilhe a saída do uv.`},install_permission_failed:{title:`O Specrails não consegue escrever no diretório de ferramentas`,guidance:`Verifique as permissões em ~/.specrails/tools e tente instalar novamente.`},headroom_not_found_after_install:{title:`A instalação terminou mas o Headroom não foi encontrado`,guidance:`Execute Reparar instalação. O Specrails reinstalará o Headroom e verificará o executável.`},learning_setup_failed:{title:`Não foi possível ativar a aprendizagem do Headroom`,guidance:`O Headroom está instalado, mas a calibração das poupanças de saída não terminou. Continue a usar o proxy enquanto as métricas recolhem amostras.`},metrics_unavailable:{title:`As métricas do Headroom ainda não estão disponíveis`,guidance:`Comece a encaminhar tráfego pelo Headroom. O Specrails atualizará as métricas de poupança assim que o proxy reportar amostras.`},proxy_port_busy:{title:`A porta do proxy Headroom já está em uso`,guidance:`Escolha outra porta ou pare o processo que usa a porta atual e tente ativar novamente.`},proxy_unhealthy:{title:`O proxy Headroom não ficou saudável`,guidance:`Tente ativar novamente. Se se repetir, abra o diagnóstico para inspecionar a saída do proxy.`},provider_route_failed:{title:`Falhou a verificação da rota do fornecedor`,guidance:`O Specrails não conseguiu verificar a rota do fornecedor. O fornecedor permanece inativo; tente novamente após ver o diagnóstico.`},provider_config_conflict:{title:`A configuração existente do fornecedor conflita com o Headroom`,guidance:`Reveja o diagnóstico antes de ativar o encaminhamento global. O encaminhamento gerido pelo Specrails continua reversível.`},activation_partially_applied:{title:`A ativação foi aplicada apenas parcialmente`,guidance:`O Specrails tentou reverter. Reveja o diagnóstico e tente novamente o fornecedor afetado.`},not_installed:{title:`O Headroom não está instalado`,guidance:`Instale primeiro o Headroom e depois ative Codex ou Claude.`},uninstall_failed:{title:`Não foi possível desinstalar o Headroom`,guidance:`O Specrails desativou o encaminhamento do Headroom mas não conseguiu remover a ferramenta gerida. Abra o diagnóstico e tente novamente.`},unknown:{title:`A operação do Headroom falhou`,guidance:`Tente a operação novamente. Se se repetir, abra o diagnóstico e partilhe os detalhes.`}}},projectWizard:{configureJira:`Configurar Jira`,installSerena:`Instalar Serena`,description:`Selecione o projeto onde este plugin local do projeto deve ser configurado.`,chooseProject:`Escolher projeto`,requiresClaudeProvider:`Requer fornecedor Claude`,selectProjectToContinue:`Selecione um projeto para continuar.`},serena:{loading:`A carregar Serena…`,titleForProject:`Serena para {{name}}`,description:`Instala a configuração MCP e o estado do plugin localmente no projeto. Outros projetos não são alterados.`,status:`Estado: {{status}}`,files:`Ficheiros`,prerequisites:`Pré-requisitos`},projectStatus:{installed:`instalado`,deactivated:`desativado`,"not-installed":`não instalado`,orphan:`órfão`,degraded:`degradado`},diagnostics:{title:`Diagnóstico do Headroom`,description:`Estado técnico da instalação Headroom gerida pelo Specrails e do proxy.`}},f={page:e,card:t,toggle:n,cachedNotice:r,update:i,conflict:a,orphan:o,installDialog:s,uninstallDialog:c,docs:l,jiraCard:u,plugins:d};export{r as cachedNotice,t as card,a as conflict,f as default,l as docs,s as installDialog,u as jiraCard,o as orphan,e as page,d as plugins,n as toggle,c as uninstallDialog,i as update};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`インテグレーション`,subtitle:`プロジェクトごとのプラグイン。どのインテグレーションを有効にするかは各プロジェクトが独立して決定します。`,selectProject:`インテグレーションを管理するプロジェクトを選択してください。`,deprecated:`非推奨`,loadError:`プラグインの読み込みに失敗しました。`,empty:`このビルドにはプラグインが同梱されていません。`},t={statusActive:`有効`,statusDeactivated:`無効`,statusDegraded:`劣化`,updateAvailable:`アップデートあり`,requires:`必要条件: {{list}}`,deactivatedHint:`インストール済みですが無効です — 次のセッションで Claude は読み込みません。再有効化するには<strong>有効</strong>に切り替えてください。`,install:`インストール`,uninstall:`アンインストール`},n={titleActive:`有効 — クリックで無効化`,titleDeactivated:`無効 — クリックで有効化`},r={body:`Claude のキャッシュにはマーケットプレイス版プラグインが<strong>インストール済みかつ無効</strong>の状態で残っています。トグルがオフでも <code>~/.claude/plugins/cache/...</code> からサーバーを解決する可能性があります。プロジェクトスコープのみに限定するには、Claude からマーケットプレイス版プラグインをアンインストールしてください:`,runInstruction:`アクティブな Claude セッション内で実行し、その後このプロジェクトで Claude を再起動してください。`},i={body:`インストール後に同梱マニフェストが変更されました (おそらく上流での名前変更)。<code>.mcp.json</code> を正規のエントリで書き直します — 外科的な変更で、プラグインが所有するキーのみが対象です。`,button:`<code>.mcp.json</code> エントリを更新`},a={body:`<strong>{{name}}</strong> は Claude のプラグインマーケットプレイス経由でグローバルにも有効になっており、このプロジェクトスコープのインストールを覆い隠しています。このカードを有効にするには、下のグローバル版を無効にしてください — Claude からいつでも再有効化できます。`,disableButton:`<code>{{key}}</code> を無効化`},o={badge:`孤立`,removeButton:`孤立エントリを削除`},s={title:`{{name}} をインストール`,computingChanges:`変更内容を計算中…`,filesHeading:`変更されるファイル`,prerequisites:`前提条件`,autoInstall:`自動インストール`,progress:`進行状況`,installingPrereq:`{{name}} をインストール中…`,prereqStartFailed:`開始に失敗しました: {{message}}`},c={title:`{{name}} をアンインストールしますか?`,body:`<code>.mcp.json</code> 内のプラグイン管理エントリを元に戻し、プラグインが作成したファイルを削除します。コード、履歴、他のプラグインには影響しません。`},l={title:`ドキュメント`,dialogDescription:`同梱の Specrails ドキュメントを閲覧できます。サイドバーでガイドを切り替えてください。`,sidebarEmpty:`ドキュメントはまだありません`,indexEmpty:`ドキュメントはここに表示されます。ユーザーガイドはアプリに同梱され docs/guide/ にあります。~/.specrails/docs/guide/ 以下に Markdown ファイルを置くとカスタマイズできます。`,categoryEmpty:`このカテゴリにはまだドキュメントがありません。`,documentCount_one:`{{count}} 件のドキュメント`,documentCount_other:`{{count}} 件のドキュメント`,categoryCount_one:`{{count}} カテゴリ`,categoryCount_other:`{{count}} カテゴリ`,summary:`{{categories}}にわたって{{documents}}。`,loadError:`ドキュメントの読み込みに失敗しました`},u={title:`Jira`,category:`課題トラッキング`,description:`このプロジェクトのスペックを Jira ボードで裏付け — ステータスを双方向同期し、rail 完了時にコメントを投稿します。`,connectedDescription:`{{key}} と同期済み。スペックは Jira ボードと双方向でミラーされます。`,connect:`接続`,connected:`接続済み`,manage:`管理`,modalTitle:`Jira に接続`,manageTitle:`Jira 接続`,bullet1:`Jira ボードとステータスを双方向同期。`,bullet2:`rail 完了時にコメントを投稿。`,bullet3:`Jira のバックログがボードにスペックとして表示されます。`,requires:`Jira Cloud または Data Center のアカウントが必要です。`},d={page:{title:`プラグイン`,subtitle:`グローバルツールとプロジェクト連携を 1 か所で管理します。`,readyCount_one:`{{count}} 件準備完了`,readyCount_other:`{{count}} 件準備完了`},search:{placeholder:`プラグインを検索`},filters:{all:`すべて`,global:`グローバル`,project:`プロジェクト`},sections:{installed:`インストール済み`,available:`利用可能`},scope:{global:`グローバル`,project:`プロジェクト`},groups:{global:{title:`グローバル`,detail:`Specrails 全体に適用`},project:{title:`プロジェクトローカル`,detail:`リポジトリごとに設定`}},empty:{installedSearch:`この検索に一致するインストール済みプラグインはありません。`,installed:`インストール済みプラグインはまだありません。`,availableSearch:`この検索に一致する利用可能なプラグインはありません。`,allInstalled:`すべてのプラグインがインストール済みです。`},actions:{install:`インストール`,installing:`インストール中`,manage:`管理`,review:`確認`,cancel:`キャンセル`},status:{attention:`要確認`,active:`有効`,externalActive:`外部で有効`,external:`外部`,installed:`インストール済み`,available:`利用可能`,configuredCount_one:`{{count}} 件設定済み`,configuredCount_other:`{{count}} 件設定済み`,installedCount_one:`{{count}} 件インストール済み`,installedCount_other:`{{count}} 件インストール済み`},catalog:{headroom:{description:`Headroom AI で Codex と Claude の起動を最適化します。`},jira:{description:`プロジェクト specs を Jira ボード、ステータスマッピング、完了コメントと同期します。`},serena:{description:`Serena MCP によるプロジェクトローカルのセマンティックコードナビゲーション。`}},headroom:{title:`Headroom AI`,dialogDescription:`Headroom のグローバルインストールとプロバイダー別ルーティングを管理します。`,panelDescription:`グローバルにインストールされ、Codex と Claude で個別に有効化できます。`,issueCode:`コード: {{code}}`,confirmDetach:`Specrails ルーティングを無効化し、プロキシを停止します。既存のシステム Headroom インストールは変更されません。`,confirmUninstall:`Codex と Claude のルートを無効化し、プロキシを停止して、Specrails 管理の Headroom ツールを削除します。`,metrics:{install:`インストール`,checking:`確認中`,ready:`準備完了`,missing:`未検出`,source:`ソース`,system:`システム`,specrails:`Specrails`,none:`なし`,proxy:`プロキシ`,starting:`起動中`,off:`オフ`},actions:{installWithUv:`同梱 uv でインストール`,disableAllRoutes:`すべてのルートを無効化`,viewDiagnostics:`診断を表示`,detachHeadroom:`Headroom を切り離す`,uninstallHeadroom:`Headroom をアンインストール`,detach:`切り離す`,uninstall:`アンインストール`},port:{label:`プロキシポート`,apply:`適用`},provider:{noProjectUsesProvider:`このプロバイダーを使う Specrails プロジェクトはありません`,routedThroughHeadroom:`Headroom 経由でルーティング中`,detectedExternalRoute:`外部ルートを検出`,notRouted:`未ルーティング`},savings:{title:`Headroom トークン節約`,learningOn:`出力を測定済み`,waitingForOutputSamples:`出力は未測定`,baseline:`{{method}}ベースライン`,updatedLive:`ライブ更新`,baselineSamples_one:`{{count}} 件のベースラインサンプル`,baselineSamples_other:`{{count}} 件のベースラインサンプル`,tokens:`tokens`,learning:`データなし`,off:`オフ`,requestDetail:`{{method}} · {{count}} 件のリクエスト`,requestCount:`{{count}} 件のリクエスト`,detected:`検出済み`,totals:`合計`,input:`入力`,output:`出力`,processed:`処理済み`,saved:`節約`,noData:`データなし`,inputSaved:`入力の節約`,outputSaved:`出力の節約`,inputSavingsActive:`Headroom 経由でルーティング中`,statusInputOutput:`入力 + 出力`,statusInputOnly:`入力有効`,statusRouting:`ルーティング中`,statusInactive:`非アクティブ`,methods:{estimated:`推定`,measured:`測定`,none:`なし`},waitingForShapedResponses:`出力レスポンスは未測定`,outputObserved:`{{value}} の出力を確認済み`,routeDisabled:`ルート無効`},issues:{uv_missing_or_corrupt:{title:`同梱 uv が利用できません`,guidance:`Specrails は同梱 uv ランタイムを起動できませんでした。Specrails を再インストールするか、ランタイムが利用可能になったら修復を使ってください。`},network_unavailable:{title:`Headroom をダウンロードできませんでした`,guidance:`ネットワーク接続を確認して再試行してください。Specrails はインストールを専用ツールディレクトリに隔離します。`},package_resolution_failed:{title:`Headroom の依存関係を解決できませんでした`,guidance:`インストールを再試行してください。失敗が続く場合は診断を開き、uv の出力を共有してください。`},install_permission_failed:{title:`Specrails がツールディレクトリに書き込めません`,guidance:`~/.specrails/tools の権限を確認し、インストールを再試行してください。`},headroom_not_found_after_install:{title:`インストール完了後に Headroom が見つかりませんでした`,guidance:`インストール修復を実行してください。Specrails が Headroom を再インストールし、実行ファイルを検証します。`},learning_setup_failed:{title:`Headroom 学習を有効化できませんでした`,guidance:`Headroom はインストール済みですが、出力節約のキャリブレーションが完了していません。メトリクスがサンプルを収集するまでプロキシルーティングを使い続けてください。`},metrics_unavailable:{title:`Headroom メトリクスはまだ利用できません`,guidance:`Headroom 経由でトラフィックをルーティングしてください。プロキシがサンプルを報告すると、Specrails が token 節約メトリクスを更新します。`},proxy_port_busy:{title:`Headroom プロキシポートは既に使用中です`,guidance:`別のポートを選ぶか、現在のポートを使用しているプロセスを停止してから有効化を再試行してください。`},proxy_unhealthy:{title:`Headroom プロキシが正常状態になりませんでした`,guidance:`有効化を再試行してください。繰り返す場合は診断を開いてプロキシ出力を確認してください。`},provider_route_failed:{title:`プロバイダールートの検証に失敗しました`,guidance:`Specrails はプロバイダールートを検証できませんでした。プロバイダーは非アクティブのままです。診断確認後に再試行してください。`},provider_config_conflict:{title:`既存のプロバイダー設定が Headroom と競合しています`,guidance:`システム全体の有効化前に診断を確認してください。Specrails 管理のルーティングは元に戻せます。`},activation_partially_applied:{title:`有効化は一部のみ適用されました`,guidance:`Specrails はロールバックを試みました。診断を確認し、対象プロバイダーを再試行してください。`},not_installed:{title:`Headroom はインストールされていません`,guidance:`まず Headroom をインストールし、その後 Codex または Claude を有効化してください。`},uninstall_failed:{title:`Headroom をアンインストールできませんでした`,guidance:`Specrails は Headroom ルーティングを無効化しましたが、管理ツールを削除できませんでした。診断を開いて再試行してください。`},unknown:{title:`Headroom 操作に失敗しました`,guidance:`操作を再試行してください。繰り返す場合は診断を開き、詳細を共有してください。`}}},projectWizard:{configureJira:`Jira を設定`,installSerena:`Serena をインストール`,description:`このプロジェクトスコープのプラグインを設定するプロジェクトを選択してください。`,chooseProject:`プロジェクトを選択`,requiresClaudeProvider:`Claude プロバイダーが必要`,selectProjectToContinue:`続行するプロジェクトを選択してください。`},serena:{loading:`Serena を読み込み中…`,titleForProject:`{{name}} の Serena`,description:`プロジェクトローカルの MCP 設定とプラグイン状態をインストールします。他のプロジェクトは変更されません。`,status:`ステータス: {{status}}`,files:`ファイル`,prerequisites:`前提条件`},projectStatus:{installed:`インストール済み`,deactivated:`無効`,"not-installed":`未インストール`,orphan:`孤立`,degraded:`劣化`},diagnostics:{title:`Headroom 診断`,description:`Specrails 管理の Headroom インストールとプロキシの技術ステータス。`}},f={page:e,card:t,toggle:n,cachedNotice:r,update:i,conflict:a,orphan:o,installDialog:s,uninstallDialog:c,docs:l,jiraCard:u,plugins:d};export{r as cachedNotice,t as card,a as conflict,f as default,l as docs,s as installDialog,u as jiraCard,o as orphan,e as page,d as plugins,n as toggle,c as uninstallDialog,i as update};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({cachedNotice:()=>a,card:()=>r,conflict:()=>s,default:()=>m,docs:()=>d,installDialog:()=>l,jiraCard:()=>f,orphan:()=>c,page:()=>n,plugins:()=>p,toggle:()=>i,uninstallDialog:()=>u,update:()=>o}),n={title:`Integrations`,subtitle:`Per-project plugins. Each project decides which integrations to enable independently.`,selectProject:`Select a project to manage integrations.`,deprecated:`Deprecated`,loadError:`Failed to load plugins.`,empty:`No plugins are bundled with this build.`},r={statusActive:`Active`,statusDeactivated:`Deactivated`,statusDegraded:`Degraded`,updateAvailable:`Update available`,requires:`Requires: {{list}}`,deactivatedHint:`Installed but deactivated — Claude won't load it next session. Toggle <strong>Active</strong> to re-enable.`,install:`Install`,uninstall:`Uninstall`},i={titleActive:`Active — click to deactivate`,titleDeactivated:`Deactivated — click to activate`},a={body:`Claude has the marketplace plugin <strong>installed but disabled</strong> in its cache. It may still resolve the server from <code>~/.claude/plugins/cache/...</code> even though the toggle is off. To force project-scoped only, uninstall the marketplace plugin from Claude:`,runInstruction:`Run inside an active Claude session, then restart Claude in this project.`},o={body:`The bundled manifest changed since you installed (likely an upstream rename). Re-write <code>.mcp.json</code> with the canonical entry — surgical, only the plugin's owned keys are touched.`,button:`Update <code>.mcp.json</code> entry`},s={body:`<strong>{{name}}</strong> is also enabled globally via Claude's plugin marketplace, which shadows this project-scoped install. To make this card go Active, disable the global version below — it can be re-enabled from Claude any time.`,disableButton:`Disable <code>{{key}}</code>`},c={badge:`Orphan`,removeButton:`Remove orphan`},l={title:`Install {{name}}`,computingChanges:`Computing changes…`,filesHeading:`Files that will change`,prerequisites:`Prerequisites`,autoInstall:`Auto-install`,progress:`Progress`,installingPrereq:`Installing {{name}}…`,prereqStartFailed:`Failed to start: {{message}}`},u={title:`Uninstall {{name}}?`,body:`This will revert plugin-managed entries in <code>.mcp.json</code> and remove any plugin-created files. Your code, history, and other plugins are not affected.`},d={title:`Documentation`,dialogDescription:`Browse the bundled Specrails documentation. Use the sidebar to switch between guides.`,sidebarEmpty:`No docs yet`,indexEmpty:`Documentation will appear here. The user guide ships with the app under docs/guide/; drop Markdown files under ~/.specrails/docs/guide/ to customize it.`,categoryEmpty:`No documents in this category yet.`,documentCount_one:`{{count}} document`,documentCount_other:`{{count}} documents`,categoryCount_one:`{{count}} category`,categoryCount_other:`{{count}} categories`,summary:`{{documents}} across {{categories}}.`,loadError:`Failed to load document`},f={title:`Jira`,category:`Issue tracking`,description:`Back this project's specs with a Jira board — two-way sync of status, plus a completion comment when a rail finishes.`,connectedDescription:`Synced with {{key}}. Specs mirror your Jira board both ways.`,connect:`Connect`,connected:`Connected`,manage:`Manage`,modalTitle:`Connect to Jira`,manageTitle:`Jira connection`,bullet1:`Two-way status sync with your Jira board.`,bullet2:`Posts a completion comment when a rail finishes.`,bullet3:`Your Jira backlog appears as specs on the board.`,requires:`Requires a Jira Cloud or Data Center account.`},p={page:{title:`Plugins`,subtitle:`Global tools and project integrations, managed from one place.`,readyCount_one:`{{count}} ready`,readyCount_other:`{{count}} ready`},search:{placeholder:`Search plugins`},filters:{all:`all`,global:`global`,project:`project`},sections:{installed:`Installed`,available:`Available`},scope:{global:`global`,project:`project`},groups:{global:{title:`Global`,detail:`Applies across Specrails`},project:{title:`Project-local`,detail:`Configured per repository`}},empty:{installedSearch:`No installed plugins match this search.`,installed:`No installed plugins yet.`,availableSearch:`No available plugins match this search.`,allInstalled:`All plugins are installed.`},actions:{install:`Install`,installing:`Installing`,manage:`Manage`,review:`Review`,cancel:`Cancel`},status:{attention:`attention`,active:`active`,externalActive:`external active`,external:`external`,installed:`installed`,available:`available`,configuredCount_one:`{{count}} configured`,configuredCount_other:`{{count}} configured`,installedCount_one:`{{count}} installed`,installedCount_other:`{{count}} installed`},catalog:{headroom:{description:`Optimize Codex and Claude launches through Headroom AI.`},jira:{description:`Sync project specs with a Jira board, status mapping, and completion comments.`},serena:{description:`Project-local semantic code navigation through Serena MCP.`}},headroom:{title:`Headroom AI`,dialogDescription:`Manage the global Headroom installation and provider routing.`,panelDescription:`Installed globally, activated independently for Codex and Claude.`,issueCode:`Code: {{code}}`,confirmDetach:`This disables Specrails routing and stops the proxy. The existing system Headroom install is left untouched.`,confirmUninstall:`This disables Codex and Claude routes, stops the proxy, and removes the Specrails-managed Headroom tool.`,metrics:{install:`Install`,checking:`Checking`,ready:`Ready`,missing:`Missing`,source:`Source`,system:`System`,specrails:`Specrails`,none:`None`,proxy:`Proxy`,starting:`Starting`,off:`Off`},actions:{installWithUv:`Install with bundled uv`,disableAllRoutes:`Disable all routes`,viewDiagnostics:`View diagnostics`,detachHeadroom:`Detach Headroom`,uninstallHeadroom:`Uninstall Headroom`,detach:`Detach`,uninstall:`Uninstall`},port:{label:`Proxy port`,apply:`Apply`},provider:{noProjectUsesProvider:`No Specrails project uses this provider`,routedThroughHeadroom:`Routed through Headroom`,detectedExternalRoute:`Detected external route`,notRouted:`Not routed`},savings:{title:`Headroom Token Savings`,learningOn:`output measured`,waitingForOutputSamples:`output not measured`,baseline:`{{method}} baseline`,updatedLive:`updated live`,baselineSamples_one:`{{count}} baseline sample`,baselineSamples_other:`{{count}} baseline samples`,tokens:`tokens`,learning:`No data`,off:`Off`,requestDetail:`{{method}} · {{count}} requests`,requestCount:`{{count}} requests`,detected:`detected`,totals:`Totals`,input:`Input`,output:`Output`,processed:`Processed`,saved:`Saved`,noData:`No data`,inputSaved:`Input saved`,outputSaved:`Output saved`,inputSavingsActive:`Routing through Headroom`,statusInputOutput:`Input + output`,statusInputOnly:`Input active`,statusRouting:`Routing active`,statusInactive:`Inactive`,methods:{estimated:`estimated`,measured:`measured`,none:`none`},waitingForShapedResponses:`No output responses measured yet`,outputObserved:`{{value}} output observed`,routeDisabled:`Route disabled`},issues:{uv_missing_or_corrupt:{title:`Bundled uv is not available`,guidance:`Specrails could not start its bundled uv runtime. Reinstall Specrails or use Repair once the runtime is available.`},network_unavailable:{title:`Headroom could not be downloaded`,guidance:`Check your network connection and retry. Specrails will keep the install isolated in its own tool directory.`},package_resolution_failed:{title:`Headroom dependencies could not be resolved`,guidance:`Retry the install. If it keeps failing, open diagnostics and share the uv output.`},install_permission_failed:{title:`Specrails cannot write its tool directory`,guidance:`Check permissions under ~/.specrails/tools, then retry the install.`},headroom_not_found_after_install:{title:`Install finished but Headroom was not found`,guidance:`Run Repair install. Specrails will reinstall Headroom and verify the executable.`},learning_setup_failed:{title:`Headroom learning could not be enabled`,guidance:`Headroom is installed, but output-savings calibration did not finish. Keep using proxy routing while metrics collect output samples.`},metrics_unavailable:{title:`Headroom metrics are not available yet`,guidance:`Start routing traffic through Headroom. Specrails will refresh token-savings metrics as soon as the proxy reports samples.`},proxy_port_busy:{title:`Headroom proxy port is already in use`,guidance:`Choose another port or stop the process using the current port, then retry activation.`},proxy_unhealthy:{title:`Headroom proxy did not become healthy`,guidance:`Retry activation. If it repeats, open diagnostics to inspect the proxy output.`},provider_route_failed:{title:`Provider route verification failed`,guidance:`Specrails could not verify the provider route. The provider remains inactive; retry after checking diagnostics.`},provider_config_conflict:{title:`Existing provider configuration conflicts with Headroom`,guidance:`Review diagnostics before enabling system-wide activation. Specrails-managed routing remains reversible.`},activation_partially_applied:{title:`Activation was only partially applied`,guidance:`Specrails attempted rollback. Review diagnostics and retry the affected provider.`},not_installed:{title:`Headroom is not installed`,guidance:`Install Headroom first, then activate Codex or Claude.`},uninstall_failed:{title:`Headroom could not be uninstalled`,guidance:`Specrails disabled Headroom routing but could not remove the managed tool. Open diagnostics, then retry uninstall.`},unknown:{title:`Headroom operation failed`,guidance:`Retry the operation. If it repeats, open diagnostics and share the details.`}}},projectWizard:{configureJira:`Configure Jira`,installSerena:`Install Serena`,description:`Select the project where this project-scoped plugin should be configured.`,chooseProject:`Choose project`,requiresClaudeProvider:`Requires Claude provider`,selectProjectToContinue:`Select a project to continue.`},serena:{loading:`Loading Serena…`,titleForProject:`Serena for {{name}}`,description:`Installs project-local MCP configuration and plugin state. Other projects are untouched.`,status:`Status: {{status}}`,files:`Files`,prerequisites:`Prerequisites`},projectStatus:{installed:`installed`,deactivated:`deactivated`,"not-installed":`not installed`,orphan:`orphan`,degraded:`degraded`},diagnostics:{title:`Headroom diagnostics`,description:`Technical status for the Specrails-managed Headroom installation and proxy.`}},m={page:n,card:r,toggle:i,cachedNotice:a,update:o,conflict:s,orphan:c,installDialog:l,uninstallDialog:u,docs:d,jiraCard:f,plugins:p};export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./useDesktop-0unHDBJJ.js";async function t(e){let t=await e.text(),n=t?JSON.parse(t):{};if(!e.ok)throw Error(n.error||`Request failed (${e.status})`);return n}function n(t){return t??e()}var r=e=>({method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),i={getConnection(e){return fetch(`${n(e)}/jira/connection`).then(e=>t(e))},test(e,i){return fetch(`${n(i)}/jira/test`,r(e)).then(e=>t(e))},discoverProjects(e,i){return fetch(`${n(i)}/jira/discover-projects`,r(e)).then(e=>t(e))},discoverStatuses(e,i){return fetch(`${n(i)}/jira/discover-statuses`,r(e)).then(e=>t(e))},connect(e,i){return fetch(`${n(i)}/jira/connect`,r(e)).then(e=>t(e))},setEnabled(e,r){return fetch(`${n(r)}/jira/connection`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({enabled:e})}).then(e=>t(e))},patchConnection(e,r){return fetch(`${n(r)}/jira/connection`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}).then(e=>t(e))},listStatuses(e){return fetch(`${n(e)}/jira/statuses`).then(e=>t(e))},moveSpecToStatus(e,i,a){return fetch(`${n(a)}/jira/specs/${e}/move-to-status`,r({status:i})).then(e=>t(e))},discardSpec(e,i,a){return fetch(`${n(a)}/jira/specs/${e}/discard`,r({comment:i})).then(e=>t(e))},getSpecDetails(e,r){return fetch(`${n(r)}/jira/specs/${e}/details`).then(e=>t(e))},disconnect(e){return fetch(`${n(e)}/jira/connection`,{method:`DELETE`}).then(e=>t(e))},syncNow(e){return fetch(`${n(e)}/jira/sync`,{method:`POST`}).then(e=>t(e))},resume(e){return fetch(`${n(e)}/jira/resume`,{method:`POST`}).then(e=>t(e))},listOutbox(e,r){let i=e?`?state=${e}`:``;return fetch(`${n(r)}/jira/outbox${i}`).then(e=>t(e))},retryOutbox(e,r){return fetch(`${n(r)}/jira/outbox/${e}/retry`,{method:`POST`}).then(e=>t(e))}};export{i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-Bjbbp_KS.js";var t=e(`layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]);export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({actions:()=>u,builder:()=>h,builtInBadge:()=>_,card:()=>d,catalog:()=>y,categories:()=>s,confirmDelete:()=>f,conversion:()=>x,core:()=>b,default:()=>C,empty:()=>l,errors:()=>m,gallery:()=>o,migration:()=>S,newLoop:()=>i,newLoopName:()=>p,preview:()=>g,run:()=>v,sections:()=>a,status:()=>c,subtitle:()=>r,title:()=>n}),n=`Loops`,r=`Reusable automation loops — shared across all your projects.`,i=`New loop`,a={drafts:`Drafts`,published:`Published`,templates:`Templates`,builtIn:`Built-in`},o={search:`Search templates…`,noResults:`No templates match your filters.`,clearFilter:`Clear filters`,resultCount_one:`{{count}} template`,resultCount_other:`{{count}} templates`,needsSpec:`Needs spec`,standalone:`Standalone`,needsSpecHint:`Runs on a rail with a dragged spec`,standaloneHint:`Runs standalone — just pick a project`},s={API:`API`,Automation:`Automation`,CI:`CI`,Database:`Database`,Debugging:`Debugging`,DevOps:`DevOps`,Docs:`Docs`,Git:`Git`,Maintenance:`Maintenance`,Performance:`Performance`,Planning:`Planning`,Quality:`Quality`,Review:`Review`,Security:`Security`,Testing:`Testing`},c={draft:`Draft`,published:`Published`,running:`Running`},l={title:`No loops yet`,body:`Create one from scratch or start from a template.`},u={edit:`Edit`,delete:`Delete`,publish:`Publish`,unpublish:`Unpublish`,duplicate:`Duplicate`,restoreBuiltin:`Restore original`,use:`Use template`,preview:`Preview`,run:`Run`,export:`Export`,import:`Import`,select:`Select {{name}}`,exportLegacy:`Export original graph`,originalCopyName:`Original: {{name}}`,convert:`Convert to Core`},d={nodes_one:`{{count}} node`,nodes_other:`{{count}} nodes`,usedIn:`In use · {{project}}`,builtinModified:`Edited`},f=`Delete this loop? It will disappear from every rail picker.`,p=`New loop`,m={load:`Failed to load loops`,save:`Failed to save loop`,publishInvalid:`This loop can't be published yet — fix the highlighted issues.`,exportLegacy:`Could not export the original graph.`},h={back:`Back to Loops`,save:`Save`,saved:`Loop saved`,publish:`Publish`,published:`Loop published`,builtin:{note:`Built-in loop. You are editing the built-in itself: once published, your changes apply to every rail, agent-chat launch and companion that uses it. Rails keep running the last published version while you edit. Use Restore original to go back to the default.`,restored:`Built-in loop restored to its original version`,confirmTitle:`Restore the original built-in?`,confirmBody:`This discards your changes to this built-in and publishes its original version for every rail that uses it. Duplicate it first if you want to keep your version.`},addNode:`Add node`,deleteNode:`Delete node`,config:{maxIterations:`Max iterations`,timeout:`Timeout (min)`,maxIterationsHint:`Hard cap on Loop Decider iterations — the loop stops when it's reached even if the goal isn't met. Prevents runaway loops.`,timeoutHint:`Wall-clock limit for the whole run, in minutes. If exceeded, the run is stopped and marked failed — a safety net alongside max iterations. 0 disables this time limit; other budgets and cancellation still apply.`,maxCost:`Max cost ($)`,maxCostHint:`Optional USD budget for the whole run. Checked BETWEEN steps (a step’s cost is only known once it finishes), so the loop stops before the next step once the total crosses it — may overshoot by one step. For non-Claude providers the cost is an estimate. Empty = no cap.`},nodes:{start:`Start`,"ai-step":`AI Step`,shell:`Shell`,decider:`Loop Decider`,condition:`Condition`,end:`End`},inspector:{selectNode:`Select a node to edit it.`,prompt:`Prompt`,provider:`Provider`,model:`Model`,effort:`Reasoning effort`,command:`Command`,goal:`Goal / stop criteria`,join:`Join`,outcome:`Outcome`,startNote:`The entry point of the loop. Connect it to the first step.`,promptHint:`Click or drag a token to insert it into the prompt.`,tokensSpec:`Spec fields`,tokensJira:`Jira`,tokensCommands:`Commands`,label:`Name`},branch:{continue:`↻ Continue`,stop:`✓ Stop`},edgesHelp:{label:`How steps connect`,body:`Arrows set the run ORDER, not data — boxes have no input ports and edges carry no parameters. Each AI Step automatically resumes its session (full prior context) plus a short summary of previous steps; nothing is wired by hand. The Loop Decider has two outputs: ↻ Continue (goal not met → loop back) and ✓ Stop (goal met → exit).`},arrange:{label:`Arrange`,vertical:`Vertical`,horizontal:`Horizontal`,grid:`Grid`,reset:`Reset`},constants:{label:`Constants`,manage:`Manage constants`,title:`Loop constants`,empty:`No custom constants yet.`,name:`NAME`,value:`value`,add:`Add`,builtinBadge:`Built-in`},paste:{done_one:`Pasted {{count}} step`,done_other:`Pasted {{count}} steps`},problems:{count_one:`{{count}} problem`,count_other:`{{count}} problems`,NO_START:`Add a Start node.`,MULTIPLE_START:`Only one Start node is allowed.`,NO_END:`Add at least one End node.`,ORPHAN:`This step isn't reachable from Start.`,DECIDER_BRANCHES:`Loop Decider needs a Continue and a Stop branch.`,EMPTY_PROMPT:`AI Step has an empty prompt.`,EMPTY_COMMAND:`Shell step has an empty command.`,EMPTY_GOAL:`Loop Decider has no goal.`,DEAD_END:`This step has no outgoing connection.`,MIXED_ENGINES:`Core workflows cannot mix legacy steps.`,CORE_OUTCOMES:`Connect distinct valid outcomes.`,CORE_PIECE:`Select a piece and its parameters.`},preview:{label:`Preview`,title:`Dry-run preview`,sampleNote:`Spec values use sample data; commands and constants resolve exactly as they will at run time.`,empty:`No steps to preview.`,error:`Preview failed`},core:{unavailable:`Workflow engine unavailable. Update Core to add or publish pieces.`,root:`Root workflow`,components:`Components`,componentName:`Component name`,addComponent:`Add component`,openComponent:`Open component`,breadcrumbs:`Workflow navigation`,select:`Choose an option`,valueType:`Value type`,addItem:`Add item`,fieldName:`Field name`,addField:`Add {{name}}`,removeField:`Remove {{name}}`,variant:`Format for {{name}}`,tooDeep:`Nested value is too deep.`,pieces:{prompt:`Prompt`,"role-turn":`Role turn`,decider:`Decision`,condition:`Condition`,verify:`Verify`,shell:`Shell`,"openspec-validate":`Validate OpenSpec`,"openspec-archive":`Archive OpenSpec`,approval:`Approval`,question:`Question`,gate:`Gate`,map:`Map`,join:`Join`,component:`Component`,implementation:`Implementation`,end:`End`,assign:`Set variables`},groups:{ai:`AI`,verification:`Verification`,openspec:`OpenSpec`,control:`Control flow`},options:`Workflow options`,reviewerStep:`Review evidence node`,reviewerAutomatic:`Automatic (implementation reviews)`,reviewerHint:`Choose the role turn that provides structured review evidence. AI review does not replace host verification.`,assignment:{set:`Set values`,increment:`Adjust counters`},requiredContinue:`Continue while this condition holds`}},g={steps:`Steps`,limits:`{{iterations}} iterations max · {{timeout}} min timeout`,limitsNoTimeout:`{{iterations}} iterations max · no timeout`,openInBuilder:`Open in builder`,builtin:`Built-in`},_=`Built-in`,v={title:`Run {{name}}`,subtitle:`Launch this loop on a project (no ticket needed).`,project:`Project`,provider:`Provider`,model:`Model`,effort:`Reasoning effort`,execute:`Execute`,noProjects:`No projects available.`,launched:`Running {{name}}`},y={"ship-and-green":{name:`Ship & Green`,description:`Fully autonomous: implement the spec, verify, and refine (fix) on failure — looping verify → fix → verify until everything is green. No human intervention.`},"verify-pass":{name:`Verify Pass`,description:`Autonomous verify-and-fix: detect and run the project's build/lint/tests, then refine on failure — verify → fix → verify until green.`},"ci-watch":{name:`CI Watch`,description:`Poll CI checks on the open PR (the agent uses the repo's CI tooling) until every check is green.`},"lint-and-fix":{name:`Lint & Fix`,description:`The agent detects and runs the project's linter and fixes every issue, iterating until the codebase is clean.`},"type-safe":{name:`Type Safe`,description:`The agent detects and runs the project's type checker and resolves every error, iterating until it passes cleanly.`},"coverage-climb":{name:`Coverage Climb`,description:`The agent runs the project's coverage tooling and adds focused tests until the thresholds pass.`},"build-fix":{name:`Build Fix`,description:`The agent detects and runs the project's production build and fixes compile/bundle errors until it is green.`},"deploy-check":{name:`Deploy Check`,description:`The agent polls the deployment/health status (using the project's deploy tooling) until the service reports healthy.`},factory_implement:{name:`Implement`,description:`Implements every spec on the rail in one run: plan, implement, review and verify, fixing failures until the checks pass.`},factory_freestyle:{name:`Freestyle`,description:`Hands the spec straight to the model with full freedom — no pipeline, it works like a regular coding agent, then verify + refine until green. Claude only.`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`Ticket-to-archive OpenSpec lifecycle: generate artifacts (opsx:ff) → implement (opsx:apply) → verify (opsx:verify); on FAIL loop back and amend the same change, on PASS archive it unattended.`},factory_revision:{name:`Revision`,description:`Applies the one change you asked for on top of work already delivered, has the reviewer re-grade it, then verifies until green. It does not re-plan from scratch.`}},b={selectInterrupt:`Select pending question or approval`,answerQuestion:`Answer question`,approval:`Approval`,approveContinue:`Approve and continue`,paused:`Paused`,acceptance:`Acceptance`,verified:`Verified`},x={title:`Convert {{name}} to Core`,description:`Core validates the converted graph before saving it as a draft. The original remains available for export. Review the new workflow before publishing.`,repository:`Repository for unbound shell steps`,selectRepository:`Choose the original repository`,submit:`Convert and review`,pending:`Converting…`,error:`Conversion failed`,coreRequired:`Update Core to convert this workflow.`},S={title:`Core migration check`,description:`Checks every saved loop against the installed Core. Nothing is converted or published automatically.`,check:`Check`,checking:`Checking…`,failed:`Could not check the loops.`,empty:`No saved loops.`,allCurrent:`Every loop already runs on Core and validates.`,states:{current:`Up to date`,invalid:`Rejected by the installed Core`,convertible:`Ready to convert`,needs_attention:`Needs attention`,running:`Running`}},C={title:n,subtitle:r,newLoop:i,sections:a,gallery:o,categories:s,status:c,empty:l,actions:u,card:d,confirmDelete:f,newLoopName:p,errors:m,builder:h,preview:g,builtInBadge:_,run:v,catalog:y,import:{done_one:`Imported {{count}} loop`,done_other:`Imported {{count}} loops`,skipped_one:`Skipped {{count}} duplicate: {{names}}`,skipped_other:`Skipped {{count}} duplicates: {{names}}`,invalid:`That file isn't a valid loops export.`},core:b,conversion:x,migration:S};export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={withShortcut:`{{label}} ({{shortcut}})`,left:{pinnedOpen:`Contraer barra lateral izquierda (mantener anclada)`,pinnedCollapsed:`Desanclar barra lateral izquierda`,unpinned:`Anclar barra lateral izquierda abierta`},right:{pinnedOpen:`Contraer barra lateral derecha (mantener anclada)`,pinnedCollapsed:`Desanclar barra lateral derecha`,unpinned:`Anclar barra lateral derecha abierta`}},t={addProject:`Añadir proyecto`,remove:`Eliminar {{name}}`,confirmRemove:`Confirmar eliminación de {{name}}`,confirmShort:`¿confirmar?`,added:`Proyecto añadido: {{name}}`,removed:`Proyecto eliminado`,expand:`Expandir {{name}}`,collapse:`Contraer {{name}}`,settings:`Ajustes de {{name}}`,assembling:`Preparando workspace…`,assembleFailed:`Fallo al preparar el workspace — clic para reintentar`},n={desktopTitle:`Desktop`,loops:`Loops`,docs:`Docs`,analytics:`Analíticas`,companion:`Conectar móvil`,settings:`Ajustes`,plugins:`Plugins`,review:`Revisión`},r={loopsDescription:`Loops está abierto como modal de Mission.`,pluginsDescription:`Plugins está abierto como modal de Mission.`,reviewDescription:`El paquete de revisión está abierto como modal de misión.`},i={projectTitle:`Proyecto`,dashboard:`Dashboard`,jobs:`Jobs`,analytics:`Analíticas`,agents:`Agentes`,code:`Código`,integrations:`Integraciones`,settings:`Ajustes`},a={home:`Inicio`,analytics:`Analíticas`,docs:`Docs`,settings:`Ajustes`,noCli:`Sin CLI de IA`,noCliTooltip:`No se ha detectado ningún CLI de IA. Instala Claude Code, Codex CLI, Gemini CLI o Kimi Code.`,activeCli:`CLI activo: {{label}}`},o={connected:`conectado`,syncing:`sincronizando...`,reconnecting:`reconectando...`,disconnected:`desconectado`,connectionRestored:`Conexión restablecida`},s={searchShortcut:`Buscar (⌘K)`,searchPlaceholder:`Buscar…`,minimizeWindow:`Minimizar ventana`,maximizeWindow:`Maximizar ventana`,closeWindow:`Cerrar ventana`,restoreWindow:`Restaurar ventana`},c={costAlertTitle:`Alerta de coste`,costAlertDescription:"El job ha costado ${{cost}} — el umbral es ${{threshold}}",dailyBudgetTitle:`Presupuesto diario superado`,dailyBudgetDescription:"Gastados ${{spent}} de ${{budget}} hoy. Cola pausada.",desktopBudgetTitle:`Presupuesto diario de Desktop superado`,desktopBudgetDescription:"Gasto total de Desktop: ${{spent}} de ${{budget}}. Cola pausada.",bannerMessage:"Presupuesto diario superado — gastados ${{spent}} de ${{budget}}. La cola está pausada.",dismiss:`Descartar`},l={title:`Algo ha salido mal`,occurredIn:`Se ha producido un error en <strong>{{name}}</strong>`},u={healthLabel:`salud`,notAvailable:`n/d`,factorCoverageAvailable:`Cobertura disponible`,factorCoverageGood:`Cobertura ≥ 70%`,factorPipelineGreen:`Último pipeline en verde`,factorActiveWeek:`Activo esta semana`,noJobsYet:`Aún no hay jobs`,recurringFailures:`Fallos recurrentes detectados`,failurePattern:`<cmd>{{command}}</cmd> ha fallado <times>{{count}}×</times> esta semana — posible problema del proyecto.`,coverage:`Cobertura`,lines:`Líneas`,functions:`Funciones`,branches:`Ramas`,lastPipeline:`Último pipeline`,recentCommits:`Commits recientes`,noGitHistory:`No se ha encontrado historial de git`,minutesAgo:`hace {{count}}m`,hoursAgo:`hace {{count}}h`,daysAgo:`hace {{count}}d`},d={dragToReorder:`Arrastra para reordenar`,unpinAria:`Desanclar sección (se contraerá por defecto)`,pinAria:`Anclar sección (permanecerá expandida)`,unpinTooltip:`Desanclar (contraída por defecto)`,pinTooltip:`Anclar abierta (permanece expandida)`},f={sidebarPin:e,projects:t,arcSidebar:n,globalSurfaceModal:r,rightSidebar:i,navbar:a,statusBar:o,titleBar:s,costAlerts:c,errorBoundary:l,healthWidget:u,collapsibleSection:d};export{n as arcSidebar,d as collapsibleSection,c as costAlerts,f as default,l as errorBoundary,r as globalSurfaceModal,u as healthWidget,a as navbar,t as projects,i as rightSidebar,e as sidebarPin,o as statusBar,s as titleBar};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={withShortcut:`{{label}} ({{shortcut}})`,left:{pinnedOpen:`Comprimi barra laterale sinistra (mantieni fissata)`,pinnedCollapsed:`Sblocca barra laterale sinistra`,unpinned:`Fissa aperta la barra laterale sinistra`},right:{pinnedOpen:`Comprimi barra laterale destra (mantieni fissata)`,pinnedCollapsed:`Sblocca barra laterale destra`,unpinned:`Fissa aperta la barra laterale destra`}},t={addProject:`Aggiungi progetto`,remove:`Rimuovi {{name}}`,confirmRemove:`Conferma rimozione di {{name}}`,confirmShort:`confermare?`,added:`Progetto aggiunto: {{name}}`,removed:`Progetto rimosso`,expand:`Espandi {{name}}`,collapse:`Comprimi {{name}}`,settings:`Impostazioni di {{name}}`,assembling:`Preparazione del workspace…`,assembleFailed:`Preparazione del workspace non riuscita — clicca per riprovare`},n={desktopTitle:`Desktop`,loops:`Loops`,docs:`Docs`,analytics:`Analytics`,companion:`Collega telefono`,settings:`Impostazioni`,plugins:`Plugin`,review:`Revisione`},r={loopsDescription:`Loops è aperto come modale Mission.`,pluginsDescription:`Plugins è aperto come modale Mission.`,reviewDescription:`Il pacchetto di revisione è aperto come modale di missione.`},i={projectTitle:`Progetto`,dashboard:`Dashboard`,jobs:`Job`,analytics:`Analytics`,agents:`Agenti`,code:`Codice`,integrations:`Integrazioni`,settings:`Impostazioni`},a={home:`Home`,analytics:`Analytics`,docs:`Docs`,settings:`Impostazioni`,noCli:`Nessuna CLI AI`,noCliTooltip:`Nessuna CLI AI rilevata. Installa Claude Code, Codex CLI, Gemini CLI o Kimi Code.`,activeCli:`CLI attiva: {{label}}`},o={connected:`connesso`,syncing:`sincronizzazione...`,reconnecting:`riconnessione...`,disconnected:`disconnesso`,connectionRestored:`Connessione ripristinata`},s={searchShortcut:`Cerca (⌘K)`,searchPlaceholder:`Cerca…`,minimizeWindow:`Riduci a icona`,maximizeWindow:`Ingrandisci finestra`,closeWindow:`Chiudi finestra`,restoreWindow:`Ripristina finestra`},c={costAlertTitle:`Avviso di costo`,costAlertDescription:"Costo del job ${{cost}} — la soglia è ${{threshold}}",dailyBudgetTitle:`Budget giornaliero superato`,dailyBudgetDescription:"Spesi ${{spent}} su ${{budget}} oggi. Coda in pausa.",desktopBudgetTitle:`Budget giornaliero di Desktop superato`,desktopBudgetDescription:"Spesa totale di Desktop ${{spent}} su ${{budget}}. Coda in pausa.",bannerMessage:"Budget giornaliero superato — spesi ${{spent}} su ${{budget}}. La coda è in pausa.",dismiss:`Ignora`},l={title:`Qualcosa è andato storto`,occurredIn:`Si è verificato un errore in <strong>{{name}}</strong>`},u={healthLabel:`salute`,notAvailable:`n/d`,factorCoverageAvailable:`Copertura disponibile`,factorCoverageGood:`Copertura ≥ 70%`,factorPipelineGreen:`Ultima pipeline verde`,factorActiveWeek:`Attivo questa settimana`,noJobsYet:`Ancora nessun job`,recurringFailures:`Rilevati errori ricorrenti`,failurePattern:`<cmd>{{command}}</cmd> è fallito <times>{{count}}×</times> questa settimana — possibile problema del progetto.`,coverage:`Copertura`,lines:`Righe`,functions:`Funzioni`,branches:`Branch`,lastPipeline:`Ultima pipeline`,recentCommits:`Commit recenti`,noGitHistory:`Nessuna cronologia git trovata`,minutesAgo:`{{count}}m fa`,hoursAgo:`{{count}}h fa`,daysAgo:`{{count}}g fa`},d={dragToReorder:`Trascina per riordinare`,unpinAria:`Sblocca sezione (compressa per impostazione predefinita)`,pinAria:`Fissa sezione (resterà espansa)`,unpinTooltip:`Sblocca (compressa per impostazione predefinita)`,pinTooltip:`Fissa aperta (resta espansa)`},f={sidebarPin:e,projects:t,arcSidebar:n,globalSurfaceModal:r,rightSidebar:i,navbar:a,statusBar:o,titleBar:s,costAlerts:c,errorBoundary:l,healthWidget:u,collapsibleSection:d};export{n as arcSidebar,d as collapsibleSection,c as costAlerts,f as default,l as errorBoundary,r as globalSurfaceModal,u as healthWidget,a as navbar,t as projects,i as rightSidebar,e as sidebarPin,o as statusBar,s as titleBar};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={withShortcut:`{{label}} ({{shortcut}})`,left:{pinnedOpen:`Recolher barra lateral esquerda (manter afixada)`,pinnedCollapsed:`Desafixar barra lateral esquerda`,unpinned:`Afixar barra lateral esquerda aberta`},right:{pinnedOpen:`Recolher barra lateral direita (manter afixada)`,pinnedCollapsed:`Desafixar barra lateral direita`,unpinned:`Afixar barra lateral direita aberta`}},t={addProject:`Adicionar projeto`,remove:`Remover {{name}}`,confirmRemove:`Confirmar remoção de {{name}}`,confirmShort:`confirmar?`,added:`Projeto adicionado: {{name}}`,removed:`Projeto removido`,expand:`Expandir {{name}}`,collapse:`Recolher {{name}}`,settings:`Configurações de {{name}}`,assembling:`A preparar o workspace…`,assembleFailed:`Falha ao preparar o workspace — clique para tentar novamente`},n={desktopTitle:`Desktop`,loops:`Loops`,docs:`Docs`,analytics:`Análises`,companion:`Conectar telemóvel`,settings:`Definições`,plugins:`Plugins`,review:`Revisão`},r={loopsDescription:`Loops está aberto como modal de Mission.`,pluginsDescription:`Plugins está aberto como modal de Mission.`,reviewDescription:`O pacote de revisão está aberto como modal de missão.`},i={projectTitle:`Projeto`,dashboard:`Dashboard`,jobs:`Jobs`,analytics:`Análises`,agents:`Agentes`,code:`Código`,integrations:`Integrações`,settings:`Definições`},a={home:`Início`,analytics:`Análises`,docs:`Docs`,settings:`Definições`,noCli:`Sem CLI de IA`,noCliTooltip:`Nenhuma CLI de IA detetada. Instale Claude Code, Codex CLI, Gemini CLI ou Kimi Code.`,activeCli:`CLI ativa: {{label}}`},o={connected:`ligado`,syncing:`a sincronizar...`,reconnecting:`a religar...`,disconnected:`desligado`,connectionRestored:`Ligação restaurada`},s={searchShortcut:`Pesquisar (⌘K)`,searchPlaceholder:`Pesquisar…`,minimizeWindow:`Minimizar janela`,maximizeWindow:`Maximizar janela`,closeWindow:`Fechar janela`,restoreWindow:`Restaurar janela`},c={costAlertTitle:`Alerta de custo`,costAlertDescription:"Custo do job ${{cost}} — o limite é ${{threshold}}",dailyBudgetTitle:`Orçamento diário excedido`,dailyBudgetDescription:"Gastos ${{spent}} de ${{budget}} hoje. Fila em pausa.",desktopBudgetTitle:`Orçamento diário do Desktop excedido`,desktopBudgetDescription:"Gasto total do Desktop ${{spent}} de ${{budget}}. Fila em pausa.",bannerMessage:"Orçamento diário excedido — gastos ${{spent}} de ${{budget}}. A fila está em pausa.",dismiss:`Dispensar`},l={title:`Ocorreu um erro`,occurredIn:`Ocorreu um erro em <strong>{{name}}</strong>`},u={healthLabel:`saúde`,notAvailable:`n/d`,factorCoverageAvailable:`Cobertura disponível`,factorCoverageGood:`Cobertura ≥ 70%`,factorPipelineGreen:`Última pipeline verde`,factorActiveWeek:`Ativo esta semana`,noJobsYet:`Ainda não há jobs`,recurringFailures:`Falhas recorrentes detetadas`,failurePattern:`<cmd>{{command}}</cmd> falhou <times>{{count}}×</times> esta semana — possível problema do projeto.`,coverage:`Cobertura`,lines:`Linhas`,functions:`Funções`,branches:`Ramos`,lastPipeline:`Última pipeline`,recentCommits:`Commits recentes`,noGitHistory:`Sem histórico git`,minutesAgo:`há {{count}}m`,hoursAgo:`há {{count}}h`,daysAgo:`há {{count}}d`},d={dragToReorder:`Arraste para reordenar`,unpinAria:`Desafixar secção (ficará recolhida por predefinição)`,pinAria:`Afixar secção (ficará expandida)`,unpinTooltip:`Desafixar (recolhida por predefinição)`,pinTooltip:`Afixar aberta (manter expandida)`},f={sidebarPin:e,projects:t,arcSidebar:n,globalSurfaceModal:r,rightSidebar:i,navbar:a,statusBar:o,titleBar:s,costAlerts:c,errorBoundary:l,healthWidget:u,collapsibleSection:d};export{n as arcSidebar,d as collapsibleSection,c as costAlerts,f as default,l as errorBoundary,r as globalSurfaceModal,u as healthWidget,a as navbar,t as projects,i as rightSidebar,e as sidebarPin,o as statusBar,s as titleBar};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={withShortcut:`{{label}} ({{shortcut}})`,left:{pinnedOpen:`Linke Seitenleiste einklappen (angepinnt lassen)`,pinnedCollapsed:`Linke Seitenleiste lösen`,unpinned:`Linke Seitenleiste offen anpinnen`},right:{pinnedOpen:`Rechte Seitenleiste einklappen (angepinnt lassen)`,pinnedCollapsed:`Rechte Seitenleiste lösen`,unpinned:`Rechte Seitenleiste offen anpinnen`}},t={addProject:`Projekt hinzufügen`,remove:`{{name}} entfernen`,confirmRemove:`Entfernen von {{name}} bestätigen`,confirmShort:`bestätigen?`,added:`Projekt hinzugefügt: {{name}}`,removed:`Projekt entfernt`,expand:`{{name}} aufklappen`,collapse:`{{name}} einklappen`,settings:`Einstellungen für {{name}}`,assembling:`Workspace wird eingerichtet…`,assembleFailed:`Workspace-Einrichtung fehlgeschlagen — zum Wiederholen klicken`},n={desktopTitle:`Desktop`,loops:`Loops`,docs:`Doku`,analytics:`Analytics`,companion:`Handy verbinden`,settings:`Einstellungen`,plugins:`Plugins`,review:`Review`},r={loopsDescription:`Loops ist als Mission-Modal geöffnet.`,pluginsDescription:`Plugins ist als Mission-Modal geöffnet.`,reviewDescription:`Das Review-Paket ist als Missions-Modal geöffnet.`},i={projectTitle:`Projekt`,dashboard:`Dashboard`,jobs:`Jobs`,analytics:`Analytics`,agents:`Agenten`,code:`Code`,integrations:`Integrationen`,settings:`Einstellungen`},a={home:`Start`,analytics:`Analytics`,docs:`Doku`,settings:`Einstellungen`,noCli:`Keine AI-CLI`,noCliTooltip:`Keine AI-CLI gefunden. Installiere Claude Code, Codex CLI, Gemini CLI oder Kimi Code.`,activeCli:`Aktive CLI: {{label}}`},o={connected:`verbunden`,syncing:`synchronisiere...`,reconnecting:`verbinde neu...`,disconnected:`getrennt`,connectionRestored:`Verbindung wiederhergestellt`},s={searchShortcut:`Suchen (⌘K)`,searchPlaceholder:`Suchen…`,minimizeWindow:`Fenster minimieren`,maximizeWindow:`Fenster maximieren`,closeWindow:`Fenster schließen`,restoreWindow:`Fenster wiederherstellen`},c={costAlertTitle:`Kostenwarnung`,costAlertDescription:"Job-Kosten ${{cost}} – Schwellenwert ist ${{threshold}}",dailyBudgetTitle:`Tagesbudget überschritten`,dailyBudgetDescription:"Heute ${{spent}} von ${{budget}} ausgegeben. Warteschlange pausiert.",desktopBudgetTitle:`Desktop-Tagesbudget überschritten`,desktopBudgetDescription:"Desktop-Gesamtausgaben ${{spent}} von ${{budget}}. Warteschlange pausiert.",bannerMessage:"Tagesbudget überschritten – ${{spent}} von ${{budget}} ausgegeben. Warteschlange ist pausiert.",dismiss:`Schließen`},l={title:`Etwas ist schiefgelaufen`,occurredIn:`In <strong>{{name}}</strong> ist ein Fehler aufgetreten`},u={healthLabel:`Health`,notAvailable:`n. v.`,factorCoverageAvailable:`Coverage verfügbar`,factorCoverageGood:`Coverage ≥ 70 %`,factorPipelineGreen:`Letzte Pipeline grün`,factorActiveWeek:`Diese Woche aktiv`,noJobsYet:`Noch keine Jobs`,recurringFailures:`Wiederkehrende Fehler erkannt`,failurePattern:`<cmd>{{command}}</cmd> ist diese Woche <times>{{count}}×</times> fehlgeschlagen – mögliches Projektproblem.`,coverage:`Coverage`,lines:`Zeilen`,functions:`Funktionen`,branches:`Branches`,lastPipeline:`Letzte Pipeline`,recentCommits:`Letzte Commits`,noGitHistory:`Keine Git-Historie gefunden`,minutesAgo:`vor {{count}}m`,hoursAgo:`vor {{count}}h`,daysAgo:`vor {{count}}d`},d={dragToReorder:`Zum Neuanordnen ziehen`,unpinAria:`Abschnitt lösen (wird standardmäßig eingeklappt)`,pinAria:`Abschnitt anpinnen (bleibt ausgeklappt)`,unpinTooltip:`Lösen (standardmäßig einklappen)`,pinTooltip:`Offen anpinnen (bleibt ausgeklappt)`},f={sidebarPin:e,projects:t,arcSidebar:n,globalSurfaceModal:r,rightSidebar:i,navbar:a,statusBar:o,titleBar:s,costAlerts:c,errorBoundary:l,healthWidget:u,collapsibleSection:d};export{n as arcSidebar,d as collapsibleSection,c as costAlerts,f as default,l as errorBoundary,r as globalSurfaceModal,u as healthWidget,a as navbar,t as projects,i as rightSidebar,e as sidebarPin,o as statusBar,s as titleBar};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={withShortcut:`{{label}} ({{shortcut}})`,left:{pinnedOpen:`Replier la barre latérale gauche (garder épinglée)`,pinnedCollapsed:`Désépingler la barre latérale gauche`,unpinned:`Épingler la barre latérale gauche ouverte`},right:{pinnedOpen:`Replier la barre latérale droite (garder épinglée)`,pinnedCollapsed:`Désépingler la barre latérale droite`,unpinned:`Épingler la barre latérale droite ouverte`}},t={addProject:`Ajouter un projet`,remove:`Supprimer {{name}}`,confirmRemove:`Confirmer la suppression de {{name}}`,confirmShort:`confirmer ?`,added:`Projet ajouté : {{name}}`,removed:`Projet supprimé`,expand:`Développer {{name}}`,collapse:`Réduire {{name}}`,settings:`Paramètres de {{name}}`,assembling:`Préparation du workspace…`,assembleFailed:`Échec de préparation du workspace — cliquer pour réessayer`},n={desktopTitle:`Desktop`,loops:`Loops`,docs:`Docs`,analytics:`Analytics`,companion:`Connecter un mobile`,settings:`Paramètres`,plugins:`Plugins`,review:`Revue`},r={loopsDescription:`Loops est ouvert comme modal Mission.`,pluginsDescription:`Plugins est ouvert comme modal Mission.`,reviewDescription:`Le dossier de revue est ouvert en modal de mission.`},i={projectTitle:`Projet`,dashboard:`Tableau de bord`,jobs:`Jobs`,analytics:`Analytics`,agents:`Agents`,code:`Code`,integrations:`Intégrations`,settings:`Paramètres`},a={home:`Accueil`,analytics:`Analytics`,docs:`Docs`,settings:`Paramètres`,noCli:`Aucune CLI IA`,noCliTooltip:`Aucune CLI IA détectée. Installez Claude Code, Codex CLI, Gemini CLI ou Kimi Code.`,activeCli:`CLI active : {{label}}`},o={connected:`connecté`,syncing:`synchronisation...`,reconnecting:`reconnexion...`,disconnected:`déconnecté`,connectionRestored:`Connexion rétablie`},s={searchShortcut:`Rechercher (⌘K)`,searchPlaceholder:`Rechercher…`,minimizeWindow:`Réduire la fenêtre`,maximizeWindow:`Agrandir la fenêtre`,closeWindow:`Fermer la fenêtre`,restoreWindow:`Restaurer la fenêtre`},c={costAlertTitle:`Alerte de coût`,costAlertDescription:`Coût du job : {{cost}} $ — le seuil est de {{threshold}} $`,dailyBudgetTitle:`Budget quotidien dépassé`,dailyBudgetDescription:`{{spent}} $ dépensés sur {{budget}} $ aujourd'hui. File d'attente en pause.`,desktopBudgetTitle:`Budget quotidien de Desktop dépassé`,desktopBudgetDescription:`Dépense totale de Desktop : {{spent}} $ sur {{budget}} $. File d'attente en pause.`,bannerMessage:`Budget quotidien dépassé — {{spent}} $ dépensés sur {{budget}} $. La file d'attente est en pause.`,dismiss:`Ignorer`},l={title:`Une erreur est survenue`,occurredIn:`Une erreur s'est produite dans <strong>{{name}}</strong>`},u={healthLabel:`santé`,notAvailable:`n/d`,factorCoverageAvailable:`Couverture disponible`,factorCoverageGood:`Couverture ≥ 70 %`,factorPipelineGreen:`Dernier pipeline au vert`,factorActiveWeek:`Actif cette semaine`,noJobsYet:`Aucun job pour l'instant`,recurringFailures:`Échecs récurrents détectés`,failurePattern:`<cmd>{{command}}</cmd> a échoué <times>{{count}}×</times> cette semaine — possible problème du projet.`,coverage:`Couverture`,lines:`Lignes`,functions:`Fonctions`,branches:`Branches`,lastPipeline:`Dernier pipeline`,recentCommits:`Commits récents`,noGitHistory:`Aucun historique git trouvé`,minutesAgo:`il y a {{count}} min`,hoursAgo:`il y a {{count}} h`,daysAgo:`il y a {{count}} j`},d={dragToReorder:`Glisser pour réorganiser`,unpinAria:`Désépingler la section (repliée par défaut)`,pinAria:`Épingler la section (restera dépliée)`,unpinTooltip:`Désépingler (repliée par défaut)`,pinTooltip:`Épingler ouverte (rester dépliée)`},f={sidebarPin:e,projects:t,arcSidebar:n,globalSurfaceModal:r,rightSidebar:i,navbar:a,statusBar:o,titleBar:s,costAlerts:c,errorBoundary:l,healthWidget:u,collapsibleSection:d};export{n as arcSidebar,d as collapsibleSection,c as costAlerts,f as default,l as errorBoundary,r as globalSurfaceModal,u as healthWidget,a as navbar,t as projects,i as rightSidebar,e as sidebarPin,o as statusBar,s as titleBar};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={withShortcut:`{{label}}({{shortcut}})`,left:{pinnedOpen:`收起左侧边栏(保持固定)`,pinnedCollapsed:`取消固定左侧边栏`,unpinned:`固定并展开左侧边栏`},right:{pinnedOpen:`收起右侧边栏(保持固定)`,pinnedCollapsed:`取消固定右侧边栏`,unpinned:`固定并展开右侧边栏`}},t={addProject:`添加项目`,remove:`移除 {{name}}`,confirmRemove:`确认移除 {{name}}`,confirmShort:`确认?`,added:`已添加项目:{{name}}`,removed:`项目已移除`,expand:`展开 {{name}}`,collapse:`折叠 {{name}}`,settings:`{{name}} 的设置`,assembling:`正在准备工作区…`,assembleFailed:`工作区准备失败 — 点击重试`},n={desktopTitle:`Desktop`,loops:`Loops`,docs:`文档`,analytics:`分析`,companion:`连接手机`,settings:`设置`,plugins:`插件`,review:`审阅`},r={loopsDescription:`Loops 已作为 Mission 模态窗口打开。`,pluginsDescription:`Plugins 已作为 Mission 模态窗口打开。`,reviewDescription:`审阅包已作为任务模态窗口打开。`},i={projectTitle:`项目`,dashboard:`仪表盘`,jobs:`任务`,analytics:`分析`,agents:`Agent`,code:`代码`,integrations:`集成`,settings:`设置`},a={home:`首页`,analytics:`分析`,docs:`文档`,settings:`设置`,noCli:`无 AI CLI`,noCliTooltip:`未检测到 AI CLI。请安装 Claude Code、Codex CLI、Gemini CLI 或 Kimi Code。`,activeCli:`当前 CLI:{{label}}`},o={connected:`已连接`,syncing:`同步中...`,reconnecting:`重新连接中...`,disconnected:`已断开`,connectionRestored:`连接已恢复`},s={searchShortcut:`搜索 (⌘K)`,searchPlaceholder:`搜索…`,minimizeWindow:`最小化窗口`,maximizeWindow:`最大化窗口`,closeWindow:`关闭窗口`,restoreWindow:`还原窗口`},c={costAlertTitle:`成本警报`,costAlertDescription:"任务成本 ${{cost}} — 阈值为 ${{threshold}}",dailyBudgetTitle:`已超出每日预算`,dailyBudgetDescription:"今日已花费 ${{spent}},预算 ${{budget}}。队列已暂停。",desktopBudgetTitle:`已超出 Desktop 每日预算`,desktopBudgetDescription:"Desktop 总花费 ${{spent}},预算 ${{budget}}。队列已暂停。",bannerMessage:"已超出每日预算 — 已花费 ${{spent}},预算 ${{budget}}。队列已暂停。",dismiss:`忽略`},l={title:`出错了`,occurredIn:`<strong>{{name}}</strong> 中发生了错误`},u={healthLabel:`健康度`,notAvailable:`无`,factorCoverageAvailable:`有覆盖率数据`,factorCoverageGood:`覆盖率 ≥ 70%`,factorPipelineGreen:`最近一次流水线通过`,factorActiveWeek:`本周活跃`,noJobsYet:`暂无任务`,recurringFailures:`检测到反复失败`,failurePattern:`<cmd>{{command}}</cmd> 本周已失败 <times>{{count}}×</times> — 可能存在项目问题。`,coverage:`覆盖率`,lines:`行`,functions:`函数`,branches:`分支`,lastPipeline:`最近流水线`,recentCommits:`最近提交`,noGitHistory:`未找到 git 历史`,minutesAgo:`{{count}} 分钟前`,hoursAgo:`{{count}} 小时前`,daysAgo:`{{count}} 天前`},d={dragToReorder:`拖动以重新排序`,unpinAria:`取消固定该区块(默认折叠)`,pinAria:`固定该区块(保持展开)`,unpinTooltip:`取消固定(默认折叠)`,pinTooltip:`固定展开(保持展开)`},f={sidebarPin:e,projects:t,arcSidebar:n,globalSurfaceModal:r,rightSidebar:i,navbar:a,statusBar:o,titleBar:s,costAlerts:c,errorBoundary:l,healthWidget:u,collapsibleSection:d};export{n as arcSidebar,d as collapsibleSection,c as costAlerts,f as default,l as errorBoundary,r as globalSurfaceModal,u as healthWidget,a as navbar,t as projects,i as rightSidebar,e as sidebarPin,o as statusBar,s as titleBar};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={withShortcut:`{{label}} ({{shortcut}})`,left:{pinnedOpen:`左サイドバーを折りたたむ (ピン留めは維持)`,pinnedCollapsed:`左サイドバーのピン留めを解除`,unpinned:`左サイドバーを開いた状態でピン留め`},right:{pinnedOpen:`右サイドバーを折りたたむ (ピン留めは維持)`,pinnedCollapsed:`右サイドバーのピン留めを解除`,unpinned:`右サイドバーを開いた状態でピン留め`}},t={addProject:`プロジェクトを追加`,remove:`{{name}} を削除`,confirmRemove:`{{name}} の削除を確認`,confirmShort:`削除しますか?`,added:`プロジェクトを追加しました: {{name}}`,removed:`プロジェクトを削除しました`,expand:`{{name}} を展開`,collapse:`{{name}} を折りたたむ`,settings:`{{name}} の設定`,assembling:`ワークスペースを準備中…`,assembleFailed:`ワークスペースの準備に失敗 — クリックして再試行`},n={desktopTitle:`Desktop`,loops:`Loops`,docs:`ドキュメント`,analytics:`分析`,companion:`スマートフォンを接続`,settings:`設定`,plugins:`プラグイン`,review:`レビュー`},r={loopsDescription:`Loops は Mission のモーダルとして開いています。`,pluginsDescription:`Plugins は Mission のモーダルとして開いています。`,reviewDescription:`レビューパケットはミッションのモーダルとして開いています。`},i={projectTitle:`プロジェクト`,dashboard:`ダッシュボード`,jobs:`ジョブ`,analytics:`分析`,agents:`エージェント`,code:`コード`,integrations:`インテグレーション`,settings:`設定`},a={home:`ホーム`,analytics:`分析`,docs:`ドキュメント`,settings:`設定`,noCli:`AI CLI なし`,noCliTooltip:`AI CLI が見つかりません。Claude Code、Codex CLI、Gemini CLI、Kimi Code のいずれかをインストールしてください。`,activeCli:`使用中の CLI: {{label}}`},o={connected:`接続済み`,syncing:`同期中...`,reconnecting:`再接続中...`,disconnected:`切断`,connectionRestored:`接続が回復しました`},s={searchShortcut:`検索 (⌘K)`,searchPlaceholder:`検索…`,minimizeWindow:`ウィンドウを最小化`,maximizeWindow:`ウィンドウを最大化`,closeWindow:`ウィンドウを閉じる`,restoreWindow:`ウィンドウを元のサイズに戻す`},c={costAlertTitle:`コストアラート`,costAlertDescription:"ジョブのコストが ${{cost}} — しきい値は ${{threshold}} です",dailyBudgetTitle:`1 日の予算を超過しました`,dailyBudgetDescription:"本日 ${{budget}} のうち ${{spent}} を消費しました。キューを一時停止しました。",desktopBudgetTitle:`Desktop の 1 日の予算を超過しました`,desktopBudgetDescription:"Desktop 全体で ${{budget}} のうち ${{spent}} を消費。キューを一時停止しました。",bannerMessage:"1 日の予算を超過しました — ${{budget}} のうち ${{spent}} を消費。キューは一時停止中です。",dismiss:`閉じる`},l={title:`問題が発生しました`,occurredIn:`<strong>{{name}}</strong> でエラーが発生しました`},u={healthLabel:`ヘルス`,notAvailable:`n/a`,factorCoverageAvailable:`カバレッジあり`,factorCoverageGood:`カバレッジ ≥ 70%`,factorPipelineGreen:`直近のパイプラインが成功`,factorActiveWeek:`今週アクティブ`,noJobsYet:`ジョブはまだありません`,recurringFailures:`繰り返し発生する失敗を検出しました`,failurePattern:`<cmd>{{command}}</cmd> が今週 <times>{{count}}×</times> 失敗しました — プロジェクト側の問題の可能性があります。`,coverage:`カバレッジ`,lines:`行`,functions:`関数`,branches:`分岐`,lastPipeline:`直近のパイプライン`,recentCommits:`最近のコミット`,noGitHistory:`git 履歴が見つかりません`,minutesAgo:`{{count}}分前`,hoursAgo:`{{count}}時間前`,daysAgo:`{{count}}日前`},d={dragToReorder:`ドラッグで並べ替え`,unpinAria:`セクションのピン留めを解除 (デフォルトで折りたたみ)`,pinAria:`セクションをピン留め (常に展開)`,unpinTooltip:`ピン留め解除 (デフォルトで折りたたみ)`,pinTooltip:`ピン留めして開く (常に展開)`},f={sidebarPin:e,projects:t,arcSidebar:n,globalSurfaceModal:r,rightSidebar:i,navbar:a,statusBar:o,titleBar:s,costAlerts:c,errorBoundary:l,healthWidget:u,collapsibleSection:d};export{n as arcSidebar,d as collapsibleSection,c as costAlerts,f as default,l as errorBoundary,r as globalSurfaceModal,u as healthWidget,a as navbar,t as projects,i as rightSidebar,e as sidebarPin,o as statusBar,s as titleBar};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({arcSidebar:()=>i,collapsibleSection:()=>p,costAlerts:()=>u,default:()=>m,errorBoundary:()=>d,globalSurfaceModal:()=>a,healthWidget:()=>f,navbar:()=>s,projects:()=>r,rightSidebar:()=>o,sidebarPin:()=>n,statusBar:()=>c,titleBar:()=>l}),n={withShortcut:`{{label}} ({{shortcut}})`,left:{pinnedOpen:`Collapse left sidebar (keep pinned)`,pinnedCollapsed:`Unpin left sidebar`,unpinned:`Pin left sidebar open`},right:{pinnedOpen:`Collapse right sidebar (keep pinned)`,pinnedCollapsed:`Unpin right sidebar`,unpinned:`Pin right sidebar open`}},r={addProject:`Add project`,remove:`Remove {{name}}`,confirmRemove:`Confirm remove {{name}}`,confirmShort:`confirm?`,added:`Project added: {{name}}`,removed:`Project removed`,expand:`Expand {{name}}`,collapse:`Collapse {{name}}`,settings:`Settings for {{name}}`,assembling:`Setting up workspace…`,assembleFailed:`Workspace setup failed — click to retry`},i={desktopTitle:`Desktop`,loops:`Loops`,docs:`Docs`,analytics:`Analytics`,companion:`Connect phone`,settings:`Settings`,plugins:`Plugins`,review:`Review`},a={loopsDescription:`Loops are open as a Mission modal.`,pluginsDescription:`Plugins are open as a Mission modal.`,reviewDescription:`The review packet is open as a Mission modal.`},o={projectTitle:`Project`,dashboard:`Dashboard`,jobs:`Jobs`,analytics:`Analytics`,agents:`Agents`,code:`Code`,integrations:`Integrations`,settings:`Settings`},s={home:`Home`,analytics:`Analytics`,docs:`Docs`,settings:`Settings`,noCli:`No AI CLI`,noCliTooltip:`No AI CLI detected. Install Claude Code, Codex CLI, Gemini CLI or Kimi Code.`,activeCli:`Active CLI: {{label}}`},c={connected:`connected`,syncing:`syncing...`,reconnecting:`reconnecting...`,disconnected:`disconnected`,connectionRestored:`Connection restored`},l={searchShortcut:`Search (⌘K)`,searchPlaceholder:`Search…`,minimizeWindow:`Minimize window`,maximizeWindow:`Maximize window`,closeWindow:`Close window`,restoreWindow:`Restore window`},u={costAlertTitle:`Cost alert`,costAlertDescription:"Job cost ${{cost}} — threshold is ${{threshold}}",dailyBudgetTitle:`Daily budget exceeded`,dailyBudgetDescription:"Spent ${{spent}} of ${{budget}} today. Queue paused.",desktopBudgetTitle:`Desktop daily budget exceeded`,desktopBudgetDescription:"Total Desktop spend ${{spent}} of ${{budget}}. Queue paused.",bannerMessage:"Daily budget exceeded — spent ${{spent}} of ${{budget}}. Queue is paused.",dismiss:`Dismiss`},d={title:`Something went wrong`,occurredIn:`An error occurred in <strong>{{name}}</strong>`},f={healthLabel:`health`,notAvailable:`n/a`,factorCoverageAvailable:`Coverage available`,factorCoverageGood:`Coverage ≥ 70%`,factorPipelineGreen:`Last pipeline green`,factorActiveWeek:`Active this week`,noJobsYet:`No jobs yet`,recurringFailures:`Recurring failures detected`,failurePattern:`<cmd>{{command}}</cmd> has failed <times>{{count}}×</times> this week — possible project issue.`,coverage:`Coverage`,lines:`Lines`,functions:`Functions`,branches:`Branches`,lastPipeline:`Last pipeline`,recentCommits:`Recent commits`,noGitHistory:`No git history found`,minutesAgo:`{{count}}m ago`,hoursAgo:`{{count}}h ago`,daysAgo:`{{count}}d ago`},p={dragToReorder:`Drag to reorder`,unpinAria:`Unpin section (will collapse by default)`,pinAria:`Pin section (will stay expanded)`,unpinTooltip:`Unpin (collapse by default)`,pinTooltip:`Pin open (stay expanded)`},m={sidebarPin:n,projects:r,arcSidebar:i,globalSurfaceModal:a,rightSidebar:o,navbar:s,statusBar:c,titleBar:l,costAlerts:u,errorBoundary:d,healthWidget:f,collapsibleSection:p};export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=[`claude`,`codex`,`gemini`,`kimi`];function t(t){for(let n of e)if(t.includes(n))return n;return t[0]??`claude`}var n=`roles`;function r(e){return e===n}function i(t){return typeof t==`string`&&t.length>0&&t!==`roles`&&!e.includes(t)}function a(e){return e===`claude`}function o(e){return e===`claude`||e===`codex`||e===`gemini`}var s={claude:[`low`,`medium`,`high`,`xhigh`],codex:[`minimal`,`low`,`medium`,`high`,`xhigh`,`max`,`ultra`],gemini:[],kimi:[`low`,`high`,`max`]},c=[`low`,`medium`,`high`,`xhigh`],l={"gpt-6-astra":[...c,`max`,`ultra`],"gpt-5.6-sol":[...c,`max`,`ultra`],"gpt-5.6-terra":[...c,`max`,`ultra`],"gpt-5.6-luna":[...c,`max`],"gpt-5.5":c,"gpt-5.4-mini":c};function u(e,t){return e===`kimi`&&t!==`k3`&&t!==`kimi-code/k3`?[]:e===`codex`&&t&&l[t]?l[t]:e?s[e]??[]:[]}function d(e,t){let n=u(e,t);return n.includes(`medium`)?`medium`:n.includes(`high`)?`high`:n[0]}function f(e,t){return u(e,t).length>0}var p={claude:[`none`,`read-only`],codex:[`read-only`],gemini:[`read-only`],kimi:[]},m=[`none`,`read-only`];function h(e,t){return e?(p[e]??(i(e)?m:[])).includes(t):!1}function g(e){return h(e,`none`)||h(e,`read-only`)}function _(e){return e===`claude`||e===`kimi`||i(e)}function v(e){return e===`claude`||e===`kimi`}function y(e){return e===`kimi`||i(e)}function b(e){return e===`claude`}function x(e){return b(e)||e===`codex`}function S(e){return e===`claude`}function C(e){return e===`codex`?`Codex`:e===`claude`?`Claude`:e===`gemini`?`Gemini`:e===`kimi`?`Kimi`:e??`Claude`}export{u as _,a,o as c,_ as d,v as f,S as g,h,r as i,x as l,f as m,d as n,t as o,g as p,i as r,C as s,n as t,y as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-Bjbbp_KS.js";var t=e(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),n=e(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]);export{t as n,n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Langue`,description:`Langue de l'interface pour tout Desktop. S'applique instantanément — aucun redémarrage requis.`,selectLabel:`Langue de l'interface`,updateFailed:`Impossible d'enregistrer la préférence de langue`},t={title:`Paramètres du projet`},n={saveFailed:`Échec de l'enregistrement : {{message}}`},r={title:`Télémétrie du pipeline`,description:`Capture l'usage des tokens, la durée des phases et l'activité des sous-agents pour l'export de diagnostic. Activé par défaut.`,toggleLabel:`Activer la télémétrie du pipeline`,toggleDescription:`Quand elle est activée, les données OTEL des jobs du pipeline sont capturées localement. Utilisez le bouton <mono>Exporter le diagnostic</mono> sur n'importe quelle carte de job pour les télécharger.`,enabled:`Télémétrie du pipeline activée`,disabled:`Télémétrie du pipeline désactivée`,saveFailed:`Échec de l'enregistrement du réglage de télémétrie`},i={title:`Pré-prompt de rail`,description:`Instructions supplémentaires propres au projet, ajoutées aux jobs de rail implement après le contexte du ticket et avant l'exécution.`,label:`Pré-prompt`,placeholder:`Exemple : privilégier les changements incrémentaux, garder les migrations rétrocompatibles et ajouter des tests pour chaque changement de rail.`,helper:`À utiliser pour des consignes projet stables qui doivent accompagner chaque exécution d'implémentation sur rail.`,saveButton:`Enregistrer le pré-prompt`,cleared:`Pré-prompt effacé`,saved:`Pré-prompt enregistré`,saveFailed:`Échec de l'enregistrement du pré-prompt`},a={title:`Pré-prompt Freestyle`,description:`Instruction envoyée au fournisseur sélectionné en mode Freestyle. Freestyle saute le pipeline OpenSpec — il transmet au fournisseur ce pré-prompt plus le texte de la spec et le laisse implémenter en autonomie. Laissez vide pour utiliser la valeur par défaut intégrée.`,label:`Pré-prompt Freestyle`,placeholder:`Laissez vide pour utiliser l'instruction Freestyle par défaut.`,helper:`Le texte de la spec est ajouté automatiquement après ce pré-prompt. Vide = défaut.`,saveButton:`Enregistrer le pré-prompt Freestyle`,resetToDefault:`Pré-prompt Freestyle réinitialisé à la valeur par défaut`,saved:`Pré-prompt Freestyle enregistré`,saveFailed:`Échec de l'enregistrement du pré-prompt Freestyle`},o={title:`Budget`,description:`Définissez un plafond de dépense quotidien pour ce projet. La file se met automatiquement en pause quand la limite est atteinte.`,dailyLabel:`Budget quotidien (USD)`,dailyHelper:`Laissez vide pour désactiver. La dépense est calculée sur les dernières 24 heures.`,dailyPlaceholder:`ex. 5.00`,perJobLabel:`Alerte de coût par job (USD)`,perJobHelper:`Alerte quand un seul job de ce projet dépasse ce montant.`,perJobPlaceholder:`ex. 0.50`,invalidNumber:`Saisissez un nombre positif ou laissez vide pour désactiver`,dailyRemoved:`Budget quotidien supprimé`,dailySet:`Budget quotidien défini à {{amount}} $`,perJobAlertDisabled:`Alerte de coût par job désactivée`,alertSet:`Alerte définie pour les jobs dépassant {{amount}} $`,saveBudgetFailed:`Échec de l'enregistrement du budget`,saveThresholdFailed:`Échec de l'enregistrement du seuil`},s={nav:{appearance:`Apparence`,specrailsAgents:`Fournisseurs d'IA`,code:`Code`,terminal:`Terminal`,updates:`Mises à jour`,mobile:`Mobile`,mcp:`MCP`,projects:`Projets`,advanced:`Avancé`,webhooks:`Webhooks`,about:`À propos`,effects:`Effets`},title:`Paramètres de Desktop`,description:`Gérez les projets enregistrés et consultez les informations de Desktop.`,registeredProjects:`Projets enregistrés`,noProjects:`Aucun projet enregistré pour l'instant`,techUrlDescription:`URL de base de l'API specrails-tech (par défaut : http://localhost:3000)`,techUrlSaved:`URL specrails-tech enregistrée`,techUrlSaveFailed:`Échec de l'enregistrement de l'URL`,budgetAlertsHeading:`Budget & alertes`,dailyBudgetLabel:`Budget quotidien de Desktop (USD)`,dailyBudgetHelper:`Limite de dépense quotidienne globale pour tous les projets. Les files se mettent automatiquement en pause en cas de dépassement.`,dailyBudgetPlaceholder:`ex. 10.00`,perJobHelper:`Alerte quand un seul job dépasse ce montant. Laissez vide pour désactiver.`,costAlertsDisabled:`Alertes de coût désactivées`,dailyBudgetRemoved:`Budget quotidien de Desktop supprimé`,dailyBudgetSet:`Budget quotidien de Desktop défini à {{amount}} $`,dailyBudgetSaveFailed:`Échec de l'enregistrement du budget quotidien de Desktop`,projectRemoved:`Projet supprimé`,projectRemoveFailed:`Échec de la suppression du projet`,onboardingHeading:`Onboarding`,platformTour:`Visite de la plateforme`,platformTourDescription:`Rejouez l'assistant de bienvenue pour revoir les fonctionnalités clés.`,replayTour:`Rejouer la visite`,terminalPanelHeading:`Panneau de terminal`,infoHeading:`Informations de Desktop`,infoPort:`Port`,infoProjects:`Projets`,infoDb:`BD de Desktop`},c={heading:`Notifications système`,description:`Affiche des notifications de bureau natives quand des jobs se terminent ou échouent. Les notifications n'apparaissent que lorsque l'onglet n'a pas le focus.`,enableLabel:`Activer les notifications système`,notifyOn:`Notifier pour :`,filterAll:`Tout (terminés & échoués)`,filterCompleted:`Terminés uniquement`,filterFailed:`Échoués uniquement`,enabledToast:`Notifications système activées`,disabledToast:`Notifications système désactivées`},l={heading:`Webhooks sortants`,description:`Notifiez des outils externes (Slack, Zapier, CI/CD) lors des événements de Desktop. Les requêtes sont signées via <code>X-Specrails-Signature</code> quand un secret est défini.`,eventJobCompleted:`Job terminé`,eventJobFailed:`Job en échec`,eventDailyBudgetExceeded:`Budget quotidien dépassé`,statusOn:`actif`,statusOff:`inactif`,disable:`Désactiver`,enable:`Activer`,sendTestPing:`Envoyer un ping de test`,addHeading:`Ajouter un webhook`,secretPlaceholder:`Secret de signature (facultatif)`,addButton:`Ajouter le webhook`,urlRequired:`L'URL est requise`,selectEvent:`Sélectionnez au moins un événement`,added:`Webhook ajouté`,addFailed:`Échec de l'ajout du webhook`,updateFailed:`Échec de la mise à jour du webhook`,removed:`Webhook supprimé`,removeFailed:`Échec de la suppression du webhook`,testPingSent:`Ping de test envoyé`,testPingFailed:`Échec de l'envoi du ping de test`},u={title:`Panneau de terminal`,desktopDescription:`Valeurs par défaut de Desktop, appliquées à chaque projet sauf surcharge par projet.`,projectDescription:`Surcharges par projet pour le panneau de terminal. Laissez un champ inchangé pour hériter de la valeur par défaut de Desktop.`,fontFamily:`Police`,fontSize:`Taille de police ({{min}}–{{max}})`,renderMode:`Mode de rendu`,copyOnSelect:`Copier à la sélection`,shellIntegration:`Intégration shell (marques OSC 133)`,notifyLongRunning:`Notifier les commandes de longue durée`,longCommandThreshold:`Seuil de commande longue (ms)`,imageRendering:`Rendu d'images inline (Sixel + iTerm2)`,browserShortcutUrl:`URL du raccourci navigateur`,quickScript:`Script rapide (collé dans le terminal actif — Entrée manuelle)`,reset:`Réinitialiser`,unsavedChanges:`Modifications non enregistrées`,clearOverride:`Effacer la surcharge`,clear:`Effacer`,inheritingDefault:`Hérite de la valeur par défaut de Desktop`,nothingToSave:`Rien à enregistrer`,saved:`Paramètres du terminal enregistrés`},d={heading:`Section Code`,summaryLanguage:`Langue des résumés`,monthlyBudget:`Budget mensuel (USD)`,budgetHelper:"Plafond de dépense `surface=file-summary` par mois calendaire. Les régénérations lancées par l'utilisateur peuvent le dépasser."},f={taglines:{dracula:`L'original — sombre teinté de violet aux accents néon éclatants`,"aurora-light":`Clair premium — indigo inspiré de Linear sur blanc cassé chaleureux`,"obsidian-dark":`Sombre premium — presque noir teinté de bleu aux accents électriques`,specrails:`Thème de la marque — bleu marine-indigo profond aux accents cyan saturés`,"code-rain":`Terminal phosphore — menthe douce sur fond presque noir verdâtre`,galaxy:`Bleu spatial profond avec une traînée de lame lumineuse`},heading:`Apparence`,themeGroupLabel:`Thème`,currentlyActive:`Actuellement actif`,updateFailed:`Échec de la mise à jour du thème`},p={heading:`Compagnon mobile`,description:`Contrôlez Specrails depuis l'application SpecRails Companion sur votre téléphone, 100 % via votre réseau local. Désactivé par défaut.`,accessOn:`Accès mobile activé`,accessOff:`Accès mobile désactivé`,listeningOnPort:`À l'écoute sur le port {{port}}`,notListening:`Pas à l'écoute`,turnOn:`Activer`,turnOff:`Désactiver`,pairWebDevice:`Appairer le compagnon web`,reset:`Réinitialiser`,resetConfirm:`Réinitialiser l'identité mobile ? Tous les appareils appairés seront révoqués et devront s'appairer à nouveau.`,identityReset:`Identité mobile réinitialisée`,enableFailed:`Impossible d'activer l'accès mobile : {{message}}`,disableFailed:`Impossible de désactiver l'accès mobile : {{message}}`,windowsFirewall:`Le Pare-feu Windows demandera d'autoriser le serveur SpecRails à la première activation — choisissez « Autoriser sur les réseaux privés ».`,pairedDevices:`Appareils appairés`,noDevices:`Aucun appareil appairé pour l'instant.`,revokeDevice:`Révoquer {{name}}`},m={title:`Appairer le compagnon web`,description:`Ouvrez specrails.dev/companion-app sur votre téléphone, puis scannez ce code avec.`,startFailed:`Impossible de démarrer l'appairage : {{error}}`,showThenScan:`Une fois que votre téléphone l'a scanné, appuyez sur « Scanner le code du téléphone » et pointez la caméra vers votre téléphone.`,scanAnswer:`Scanner le code du téléphone`,scanning:`Pointez la caméra vers le code sur votre téléphone…`,cameraFailed:`Caméra indisponible : {{message}}`,notAnswer:`Ce QR code n'est pas une réponse d'appairage.`,connecting:`Connexion…`,paired:`✓ Appairé`,pairedToast:`Compagnon web appairé`,answerRejected:`Le bureau a rejeté ce code. Générez-en un nouveau et réessayez.`,copyCode:`Copier le code`,codeCopied:`Code copié`,cancel:`Annuler`},h={heading:`Specrails Core`,installed:`Installé :`,updateAvailable:`Mise à jour disponible : {{version}}`,upToDate:`À jour`,neverChecked:`Non vérifié`,check:`Rechercher des mises à jour`,checking:`Vérification…`,update:`Mettre à jour vers {{version}}`,downloading:`Téléchargement…`,materializing:`Installation…`,affectsAll:`S'applique à tous les projets — aucun redémarrage requis.`,unavailable:`Les mises à jour du core ne sont pas disponibles dans cette version.`,toastDone:`Specrails Core mis à jour vers {{version}}`,toastError:`Échec de la mise à jour du core : {{message}}`,toastUpToDate:`Specrails Core est à jour`,toastCheckFailed:`Échec de la vérification : {{message}}`,loadFailed:`Impossible de charger l’état de Core. Réessayer`,runtime:`Moteur : {{version}}`,bundled:`Inclus dans Desktop : {{version}}`,sources:{override:`Sélection explicite`,managed:`Géré par Desktop`,bundled:`Inclus dans Desktop`,local:`Paquet local`,global:`CLI externe`},repair:`Terminer la mise à jour {{version}}`},g={heading:`Specrails Desktop`,installed:`Installée :`,check:`Rechercher des mises à jour`,checking:`Vérification…`,upToDate:`Vous avez la dernière version`,updateAvailable:`Mise à jour disponible : {{version}}`,autoHint:`Vérification automatique au lancement et toutes les 6 heures.`,unavailable:`Les mises à jour ne sont disponibles que dans l'app de bureau.`,toastUpToDate:`Specrails Desktop est à jour`,toastCheckFailed:`Échec de la recherche de mises à jour : {{message}}`},_={title:`{{name}} — Paramètres`,description:`Configuration du projet : prompts, branche, environnement, budget, télémétrie et terminal.`,nav:{general:`Général`,branch:`Branche`,environment:`Environnement`,budget:`Budget`,telemetry:`Télémétrie`,terminal:`Terminal`,agentRuntime:`Moteur d’agents`}},v={title:`Branche d'intégration`,description:`La branche depuis laquelle les rails parallèles se ramifient et que ciblent leurs PR en brouillon. Laissez vide pour résoudre automatiquement vers la branche par défaut du dépôt.`,placeholder:`automatique (branche par défaut)`,resolved:`Les rails partent de <mono>{{branch}}</mono>`,save:`Enregistrer la branche`,saved:`Branche d'intégration enregistrée`,saveFailed:`Impossible d'enregistrer la branche d'intégration`},y={title:`Environnement des worktrees`,description:`Choisissez les noms de variables d'environnement que ce projet transmet aux jobs de rail et aux worktrees isolés des loops. Seuls les noms sont enregistrés ; les valeurs sont lues au démarrage, avec récupération depuis le login shell si le processus Desktop ne les a pas.`,label:`Variable d'environnement`,placeholder:`NODE_AUTH_TOKEN`,helper:`Appuyez sur Entrée ou Ajouter. Vous pouvez coller plusieurs noms séparés par des virgules ou des espaces.`,add:`Ajouter`,empty:`Aucune variable propre à ce projet n'est encore configurée.`,remove:`Supprimer {{name}}`,save:`Enregistrer l'environnement`,saved:`Environnement des worktrees enregistré`,saveFailed:`Impossible d'enregistrer l'environnement des worktrees`,invalidName:`{{name}} n'est pas un nom de variable d'environnement valide`,noValues:`Ajoutez uniquement des noms de variables, pas de secrets KEY=value.`},b={heading:`Effets`,description:`Touches visuelles de l'app. Chacune peut être désactivée ici.`,thinkingHalo:{label:`Halo de réflexion sur le composeur de l'agent`,description:`Pendant que l'agent réfléchit ou écrit, l'anneau orbital du Constructeur brille autour du composeur : il apparaît en fondu au début du tour et s'estompe quand la réponse se termine.`},reducedMotion:`Respecte le réglage système de réduction des animations : l'anneau reste une lueur statique.`,preview:`Aperçu`,previewThinking:`Réflexion…`},x={language:e,page:t,errors:n,telemetry:r,prePrompt:i,freestylePrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g,projectDialog:_,integrationBranch:v,worktreeEnv:y,effects:b};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,x as default,s as desktop,b as effects,n as errors,a as freestylePrePrompt,v as integrationBranch,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,_ as projectDialog,r as telemetry,u as terminal,l as webhooks,y as worktreeEnv};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Sprache`,description:`Desktop-weite UI-Sprache. Wird sofort angewendet – kein Neustart nötig.`,selectLabel:`Oberflächensprache`,updateFailed:`Spracheinstellung konnte nicht gespeichert werden`},t={title:`Projekteinstellungen`},n={saveFailed:`Speichern fehlgeschlagen: {{message}}`},r={title:`Pipeline-Telemetrie`,description:`Erfasst Token-Verbrauch, Phasendauern und Subagent-Aktivität für den Diagnose-Export. Standardmäßig an.`,toggleLabel:`Pipeline-Telemetrie aktivieren`,toggleDescription:`Wenn aktiviert, werden OTEL-Daten aus Pipeline-Jobs lokal erfasst. Verwenden Sie zum Herunterladen die Schaltfläche <mono>Diagnose exportieren</mono> auf einer beliebigen Job-Karte.`,enabled:`Pipeline-Telemetrie aktiviert`,disabled:`Pipeline-Telemetrie deaktiviert`,saveFailed:`Telemetrie-Einstellung konnte nicht gespeichert werden`},i={title:`Rail-Pre-Prompt`,description:`Zusätzliche projektspezifische Anweisungen, die an implement-Rail-Jobs angehängt werden – nach dem Ticket-Kontext und vor der Ausführung.`,label:`Pre-Prompt`,placeholder:`Beispiel: Bevorzuge inkrementelle Änderungen, halte Migrationen abwärtskompatibel und füge Tests für jede Rail-Änderung hinzu.`,helper:`Für stabile Projektleitlinien, die jeden Rail-Implementierungslauf begleiten sollen.`,saveButton:`Pre-Prompt speichern`,cleared:`Pre-Prompt gelöscht`,saved:`Pre-Prompt gespeichert`,saveFailed:`Pre-Prompt konnte nicht gespeichert werden`},a={title:`Freestyle-Pre-Prompt`,description:`Anweisung, die in Freestyle an den ausgewählten Anbieter gesendet wird. Freestyle überspringt die OpenSpec-Pipeline – der Anbieter erhält diesen Pre-Prompt plus den Spec-Text und implementiert autonom. Leer lassen, um den eingebauten Standard zu verwenden.`,label:`Freestyle-Pre-Prompt`,placeholder:`Leer lassen, um die Standard-Freestyle-Anweisung zu verwenden.`,helper:`Der Spec-Text wird automatisch nach diesem Pre-Prompt angehängt. Leer = Standard.`,saveButton:`Freestyle-Pre-Prompt speichern`,resetToDefault:`Freestyle-Pre-Prompt auf Standard zurückgesetzt`,saved:`Freestyle-Pre-Prompt gespeichert`,saveFailed:`Freestyle-Pre-Prompt konnte nicht gespeichert werden`},o={title:`Budget`,description:`Tagesausgabenlimit für dieses Projekt festlegen. Die Queue pausiert automatisch, wenn das Limit erreicht ist.`,dailyLabel:`Tagesbudget (USD)`,dailyHelper:`Leer lassen zum Deaktivieren. Ausgaben werden über die letzten 24 Stunden berechnet.`,dailyPlaceholder:`z. B. 5.00`,perJobLabel:`Kostenalarm pro Job (USD)`,perJobHelper:`Alarm, wenn ein einzelner Job in diesem Projekt diesen Betrag überschreitet.`,perJobPlaceholder:`z. B. 0.50`,invalidNumber:`Positive Zahl eingeben oder leer lassen zum Deaktivieren`,dailyRemoved:`Tagesbudget entfernt`,dailySet:"Tagesbudget auf ${{amount}} gesetzt",perJobAlertDisabled:`Kostenalarm pro Job deaktiviert`,alertSet:"Alarm für Jobs über ${{amount}} gesetzt",saveBudgetFailed:`Budget konnte nicht gespeichert werden`,saveThresholdFailed:`Schwellenwert konnte nicht gespeichert werden`},s={nav:{appearance:`Darstellung`,specrailsAgents:`KI-Anbieter`,code:`Code`,terminal:`Terminal`,updates:`Updates`,mobile:`Mobil`,mcp:`MCP`,projects:`Projekte`,advanced:`Erweitert`,webhooks:`Webhooks`,about:`Info`,effects:`Effekte`},title:`Desktop-Einstellungen`,description:`Registrierte Projekte verwalten und Desktop-Informationen einsehen.`,registeredProjects:`Registrierte Projekte`,noProjects:`Noch keine Projekte registriert`,techUrlDescription:`Basis-URL für die specrails-tech-API (Standard: http://localhost:3000)`,techUrlSaved:`specrails-tech-URL gespeichert`,techUrlSaveFailed:`URL konnte nicht gespeichert werden`,budgetAlertsHeading:`Budget & Alarme`,dailyBudgetLabel:`Desktop-Tagesbudget (USD)`,dailyBudgetHelper:`Globales Tagesausgabenlimit über alle Projekte. Queues pausieren automatisch bei Überschreitung.`,dailyBudgetPlaceholder:`z. B. 10.00`,perJobHelper:`Alarm, wenn ein einzelner Job diesen Betrag überschreitet. Leer lassen zum Deaktivieren.`,costAlertsDisabled:`Kostenalarme deaktiviert`,dailyBudgetRemoved:`Desktop-Tagesbudget entfernt`,dailyBudgetSet:"Desktop-Tagesbudget auf ${{amount}} gesetzt",dailyBudgetSaveFailed:`Desktop-Tagesbudget konnte nicht gespeichert werden`,projectRemoved:`Projekt entfernt`,projectRemoveFailed:`Projekt konnte nicht entfernt werden`,onboardingHeading:`Onboarding`,platformTour:`Plattform-Tour`,platformTourDescription:`Den Willkommensassistenten erneut abspielen, um die wichtigsten Funktionen zu sehen.`,replayTour:`Tour erneut abspielen`,terminalPanelHeading:`Terminal-Panel`,infoHeading:`Desktop-Informationen`,infoPort:`Port`,infoProjects:`Projekte`,infoDb:`Desktop-DB`},c={heading:`OS-Benachrichtigungen`,description:`Native Desktop-Benachrichtigungen anzeigen, wenn Jobs abgeschlossen werden oder fehlschlagen. Benachrichtigungen erscheinen nur, wenn der Tab nicht fokussiert ist.`,enableLabel:`OS-Benachrichtigungen aktivieren`,notifyOn:`Benachrichtigen bei:`,filterAll:`Alle (abgeschlossen & fehlgeschlagen)`,filterCompleted:`Nur abgeschlossen`,filterFailed:`Nur fehlgeschlagen`,enabledToast:`OS-Benachrichtigungen aktiviert`,disabledToast:`OS-Benachrichtigungen deaktiviert`},l={heading:`Ausgehende Webhooks`,description:`Externe Tools (Slack, Zapier, CI/CD) bei Desktop-Ereignissen benachrichtigen. Anfragen werden über <code>X-Specrails-Signature</code> signiert, wenn ein Secret gesetzt ist.`,eventJobCompleted:`Job abgeschlossen`,eventJobFailed:`Job fehlgeschlagen`,eventDailyBudgetExceeded:`Tagesbudget überschritten`,statusOn:`an`,statusOff:`aus`,disable:`Deaktivieren`,enable:`Aktivieren`,sendTestPing:`Test-Ping senden`,addHeading:`Webhook hinzufügen`,secretPlaceholder:`Signatur-Secret (optional)`,addButton:`Webhook hinzufügen`,urlRequired:`URL ist erforderlich`,selectEvent:`Mindestens ein Ereignis auswählen`,added:`Webhook hinzugefügt`,addFailed:`Webhook konnte nicht hinzugefügt werden`,updateFailed:`Webhook konnte nicht aktualisiert werden`,removed:`Webhook entfernt`,removeFailed:`Webhook konnte nicht entfernt werden`,testPingSent:`Test-Ping gesendet`,testPingFailed:`Test-Ping konnte nicht gesendet werden`},u={title:`Terminal-Panel`,desktopDescription:`Desktop-weite Standardwerte für alle Projekte, sofern kein projektspezifischer Override gesetzt ist.`,projectDescription:`Projektspezifische Overrides für das Terminal-Panel. Lassen Sie ein Feld unverändert, um den Desktop-Standard zu erben.`,fontFamily:`Schriftfamilie`,fontSize:`Schriftgröße ({{min}}–{{max}})`,renderMode:`Render-Modus`,copyOnSelect:`Beim Auswählen kopieren`,shellIntegration:`Shell-Integration (OSC-133-Marken)`,notifyLongRunning:`Bei lang laufenden Befehlen benachrichtigen`,longCommandThreshold:`Schwellenwert für lange Befehle (ms)`,imageRendering:`Inline-Bilddarstellung (Sixel + iTerm2)`,browserShortcutUrl:`Browser-Shortcut-URL`,quickScript:`Quick-Skript (wird ins aktive Terminal eingefügt – Enter manuell drücken)`,reset:`Zurücksetzen`,unsavedChanges:`Ungespeicherte Änderungen`,clearOverride:`Override entfernen`,clear:`Entfernen`,inheritingDefault:`Erbt Desktop-Standard`,nothingToSave:`Nichts zu speichern`,saved:`Terminal-Einstellungen gespeichert`},d={heading:`Code-Bereich`,summaryLanguage:`Sprache der Zusammenfassungen`,monthlyBudget:`Monatsbudget (USD)`,budgetHelper:"Obergrenze für `surface=file-summary`-Ausgaben pro Kalendermonat. Von Nutzern angestoßene Neugenerierungen können sie überschreiten."},f={taglines:{dracula:`Das Original — dunkel mit Violettstich und lebhaften Neon-Akzenten`,"aurora-light":`Premium hell — Linear-inspiriertes Indigo auf warmem Cremeweiß`,"obsidian-dark":`Premium dunkel — fast schwarz mit Blaustich und elektrischen Akzenten`,specrails:`Marken-Theme — tiefes Marine-Indigo mit satten Cyan-Akzenten`,"code-rain":`Phosphor-Terminal — sanftes Mint auf grünlichem Fast-Schwarz`,galaxy:`Tiefraum-Blau mit einer leuchtenden Klingenspur`},heading:`Erscheinungsbild`,themeGroupLabel:`Theme`,currentlyActive:`Derzeit aktiv`,updateFailed:`Theme konnte nicht aktualisiert werden`},p={heading:`Mobile Companion`,description:`Steuern Sie Specrails über die SpecRails Companion-App auf Ihrem Smartphone – zu 100 % über Ihr lokales Netzwerk. Standardmäßig aus.`,accessOn:`Mobilzugriff an`,accessOff:`Mobilzugriff aus`,listeningOnPort:`Lauscht auf Port {{port}}`,notListening:`Lauscht nicht`,turnOn:`Einschalten`,turnOff:`Ausschalten`,pairWebDevice:`Web-Companion koppeln`,reset:`Zurücksetzen`,resetConfirm:`Mobile Identität zurücksetzen? Alle gekoppelten Geräte werden widerrufen und müssen neu gekoppelt werden.`,identityReset:`Mobile Identität zurückgesetzt`,enableFailed:`Mobilzugriff konnte nicht aktiviert werden: {{message}}`,disableFailed:`Mobilzugriff konnte nicht deaktiviert werden: {{message}}`,windowsFirewall:`Die Windows-Firewall fragt beim ersten Aktivieren, ob der SpecRails-Server zugelassen werden soll – wählen Sie „In privaten Netzwerken zulassen“.`,pairedDevices:`Gekoppelte Geräte`,noDevices:`Noch keine Geräte gekoppelt.`,revokeDevice:`{{name}} widerrufen`},m={title:`Web-Companion koppeln`,description:`Öffnen Sie specrails.dev/companion-app auf Ihrem Smartphone und scannen Sie damit diesen Code.`,startFailed:`Koppeln konnte nicht gestartet werden: {{error}}`,showThenScan:`Nachdem Ihr Smartphone dies gescannt hat, tippen Sie auf „Code des Smartphones scannen“ und richten Sie die Kamera auf Ihr Smartphone.`,scanAnswer:`Code des Smartphones scannen`,scanning:`Richten Sie die Kamera auf den Code auf Ihrem Smartphone…`,cameraFailed:`Kamera nicht verfügbar: {{message}}`,notAnswer:`Dieser QR-Code ist keine Kopplungsantwort.`,connecting:`Verbinden…`,paired:`✓ Gekoppelt`,pairedToast:`Web-Companion gekoppelt`,answerRejected:`Der Desktop hat diesen Code abgelehnt. Erzeugen Sie einen neuen und versuchen Sie es erneut.`,copyCode:`Code kopieren`,codeCopied:`Code kopiert`,cancel:`Abbrechen`},h={heading:`Specrails Core`,installed:`Installiert:`,updateAvailable:`Update verfügbar: {{version}}`,upToDate:`Aktuell`,neverChecked:`Nicht geprüft`,check:`Nach Updates suchen`,checking:`Wird geprüft…`,update:`Auf {{version}} aktualisieren`,downloading:`Wird heruntergeladen…`,materializing:`Wird installiert…`,affectsAll:`Gilt für alle Projekte — kein Neustart nötig.`,unavailable:`Core-Updates sind in diesem Build nicht verfügbar.`,toastDone:`Specrails Core auf {{version}} aktualisiert`,toastError:`Core-Update fehlgeschlagen: {{message}}`,toastUpToDate:`Specrails Core ist aktuell`,toastCheckFailed:`Update-Prüfung fehlgeschlagen: {{message}}`,loadFailed:`Core-Status konnte nicht geladen werden. Erneut versuchen`,runtime:`Laufzeit: {{version}}`,bundled:`In Desktop enthalten: {{version}}`,sources:{override:`Explizite Auswahl`,managed:`Von Desktop verwaltet`,bundled:`In Desktop enthalten`,local:`Lokales Paket`,global:`Externe CLI`},repair:`Update auf {{version}} abschließen`},g={heading:`Specrails Desktop`,installed:`Installiert:`,check:`Nach Updates suchen`,checking:`Wird geprüft…`,upToDate:`Du hast die neueste Version`,updateAvailable:`Update verfügbar: {{version}}`,autoHint:`Wird beim Start und alle 6 Stunden automatisch geprüft.`,unavailable:`App-Updates sind nur in der Desktop-App verfügbar.`,toastUpToDate:`Specrails Desktop ist aktuell`,toastCheckFailed:`Update-Prüfung fehlgeschlagen: {{message}}`},_={title:`{{name}} — Einstellungen`,description:`Projektkonfiguration: Prompts, Branch, Umgebung, Budget, Telemetrie und Terminal.`,nav:{general:`Allgemein`,branch:`Branch`,environment:`Umgebung`,budget:`Budget`,telemetry:`Telemetrie`,terminal:`Terminal`,agentRuntime:`Agenten-Laufzeit`}},v={title:`Integrationszweig`,description:`Der Branch, von dem parallele Rails abzweigen und auf den ihre Entwurfs-PRs zielen. Leer lassen, um automatisch den Standard-Branch des Repositorys zu verwenden.`,placeholder:`automatisch (Standard-Branch)`,resolved:`Rails zweigen von <mono>{{branch}}</mono> ab`,save:`Branch speichern`,saved:`Integrationszweig gespeichert`,saveFailed:`Integrationszweig konnte nicht gespeichert werden`},y={title:`Worktree-Umgebung`,description:`Wählen Sie die Namen der Umgebungsvariablen, die dieses Projekt an Rail-Jobs und isolierte Loop-Worktrees weitergibt. Gespeichert werden nur Namen; Werte werden beim Start gelesen und bei Bedarf aus der Login-Shell nachgeladen.`,label:`Umgebungsvariable`,placeholder:`NODE_AUTH_TOKEN`,helper:`Drücken Sie Enter oder Hinzufügen. Mehrere Namen können durch Kommas oder Leerzeichen getrennt eingefügt werden.`,add:`Hinzufügen`,empty:`Für dieses Projekt sind noch keine eigenen Variablen konfiguriert.`,remove:`{{name}} entfernen`,save:`Umgebung speichern`,saved:`Worktree-Umgebung gespeichert`,saveFailed:`Worktree-Umgebung konnte nicht gespeichert werden`,invalidName:`{{name}} ist kein gültiger Name für eine Umgebungsvariable`,noValues:`Fügen Sie hier nur Variablennamen hinzu, keine KEY=value-Geheimnisse.`},b={heading:`Effekte`,description:`Visuelle Akzente in der App. Jeder lässt sich hier abschalten.`,thinkingHalo:{label:`Denk-Halo am Agent-Composer`,description:`Während der Agent nachdenkt oder schreibt, leuchtet der kreisende Ring des Builders um den Composer: er blendet beim Start eines Turns ein und beim Abschluss der Antwort aus.`},reducedMotion:`Folgt der Systemeinstellung für reduzierte Bewegung: der Ring bleibt ein statisches Leuchten.`,preview:`Vorschau`,previewThinking:`Denkt nach…`},x={language:e,page:t,errors:n,telemetry:r,prePrompt:i,freestylePrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g,projectDialog:_,integrationBranch:v,worktreeEnv:y,effects:b};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,x as default,s as desktop,b as effects,n as errors,a as freestylePrePrompt,v as integrationBranch,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,_ as projectDialog,r as telemetry,u as terminal,l as webhooks,y as worktreeEnv};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Lingua`,description:`Lingua della UI per tutto Desktop. Si applica all'istante — nessun riavvio necessario.`,selectLabel:`Lingua dell'interfaccia`,updateFailed:`Impossibile salvare la preferenza di lingua`},t={title:`Impostazioni progetto`},n={saveFailed:`Salvataggio non riuscito: {{message}}`},r={title:`Telemetria della pipeline`,description:`Cattura l'uso dei token, le durate delle fasi e l'attività dei subagent per l'export diagnostico. Attivata per impostazione predefinita.`,toggleLabel:`Abilita la telemetria della pipeline`,toggleDescription:`Quando attiva, i dati OTEL dei job della pipeline vengono catturati localmente. Usa il pulsante <mono>Esporta diagnostica</mono> su qualsiasi card di job per scaricarli.`,enabled:`Telemetria della pipeline abilitata`,disabled:`Telemetria della pipeline disabilitata`,saveFailed:`Salvataggio dell'impostazione di telemetria non riuscito`},i={title:`Pre-prompt dei rail`,description:`Istruzioni extra specifiche del progetto aggiunte ai job rail di implement dopo il contesto del ticket e prima dell'esecuzione.`,label:`Pre-prompt`,placeholder:`Esempio: preferisci modifiche incrementali, mantieni le migrazioni retrocompatibili e aggiungi test per ogni modifica del rail.`,helper:`Usalo per indicazioni stabili di progetto che devono accompagnare ogni run di implementazione su rail.`,saveButton:`Salva pre-prompt`,cleared:`Pre-prompt rimosso`,saved:`Pre-prompt salvato`,saveFailed:`Salvataggio del pre-prompt non riuscito`},a={title:`Pre-prompt Freestyle`,description:`Istruzione inviata al provider selezionato in Freestyle. Freestyle salta la pipeline OpenSpec — consegna al provider questo pre-prompt più il testo della spec e lo lascia implementare in autonomia. Lascia vuoto per usare il default integrato.`,label:`Pre-prompt Freestyle`,placeholder:`Lascia vuoto per usare l'istruzione Freestyle predefinita.`,helper:`Il testo della spec viene aggiunto automaticamente dopo questo pre-prompt. Vuoto = default.`,saveButton:`Salva pre-prompt Freestyle`,resetToDefault:`Pre-prompt Freestyle ripristinato al default`,saved:`Pre-prompt Freestyle salvato`,saveFailed:`Salvataggio del pre-prompt Freestyle non riuscito`},o={title:`Budget`,description:`Imposta un tetto di spesa giornaliero per questo progetto. La coda si mette in pausa automaticamente al raggiungimento del limite.`,dailyLabel:`Budget giornaliero (USD)`,dailyHelper:`Lascia vuoto per disabilitare. La spesa è calcolata sulle ultime 24 ore.`,dailyPlaceholder:`es. 5.00`,perJobLabel:`Avviso di costo per job (USD)`,perJobHelper:`Avvisa quando un singolo job di questo progetto supera questo importo.`,perJobPlaceholder:`es. 0.50`,invalidNumber:`Inserisci un numero positivo o lascia vuoto per disabilitare`,dailyRemoved:`Budget giornaliero rimosso`,dailySet:"Budget giornaliero impostato a ${{amount}}",perJobAlertDisabled:`Avviso di costo per job disabilitato`,alertSet:"Avviso impostato per i job oltre ${{amount}}",saveBudgetFailed:`Salvataggio del budget non riuscito`,saveThresholdFailed:`Salvataggio della soglia non riuscito`},s={nav:{appearance:`Aspetto`,specrailsAgents:`Provider di IA`,code:`Codice`,terminal:`Terminale`,updates:`Aggiornamenti`,mobile:`Mobile`,mcp:`MCP`,projects:`Progetti`,advanced:`Avanzate`,webhooks:`Webhooks`,about:`Info`,effects:`Effetti`},title:`Impostazioni Desktop`,description:`Gestisci i progetti registrati e visualizza le informazioni di Desktop.`,registeredProjects:`Progetti registrati`,noProjects:`Nessun progetto ancora registrato`,techUrlDescription:`URL base per l'API specrails-tech (default: http://localhost:3000)`,techUrlSaved:`URL di specrails-tech salvato`,techUrlSaveFailed:`Salvataggio dell'URL non riuscito`,budgetAlertsHeading:`Budget e avvisi`,dailyBudgetLabel:`Budget giornaliero di Desktop (USD)`,dailyBudgetHelper:`Limite di spesa giornaliero globale su tutti i progetti. Le code si mettono in pausa automaticamente al superamento.`,dailyBudgetPlaceholder:`es. 10.00`,perJobHelper:`Avvisa quando un singolo job supera questo importo. Lascia vuoto per disabilitare.`,costAlertsDisabled:`Avvisi di costo disabilitati`,dailyBudgetRemoved:`Budget giornaliero di Desktop rimosso`,dailyBudgetSet:"Budget giornaliero di Desktop impostato a ${{amount}}",dailyBudgetSaveFailed:`Salvataggio del budget giornaliero di Desktop non riuscito`,projectRemoved:`Progetto rimosso`,projectRemoveFailed:`Rimozione del progetto non riuscita`,onboardingHeading:`Onboarding`,platformTour:`Tour della piattaforma`,platformTourDescription:`Rivedi il wizard di benvenuto per ripassare le funzionalità principali.`,replayTour:`Rivedi il tour`,terminalPanelHeading:`Pannello terminale`,infoHeading:`Informazioni Desktop`,infoPort:`Porta`,infoProjects:`Progetti`,infoDb:`DB di Desktop`},c={heading:`Notifiche di sistema`,description:`Mostra notifiche desktop native quando i job vengono completati o falliscono. Le notifiche appaiono solo quando la scheda non è in primo piano.`,enableLabel:`Abilita le notifiche di sistema`,notifyOn:`Notifica per:`,filterAll:`Tutti (completati e falliti)`,filterCompleted:`Solo completati`,filterFailed:`Solo falliti`,enabledToast:`Notifiche di sistema abilitate`,disabledToast:`Notifiche di sistema disabilitate`},l={heading:`Webhook in uscita`,description:`Notifica strumenti esterni (Slack, Zapier, CI/CD) sugli eventi di Desktop. Le richieste sono firmate via <code>X-Specrails-Signature</code> quando è impostato un secret.`,eventJobCompleted:`Job completato`,eventJobFailed:`Job fallito`,eventDailyBudgetExceeded:`Budget giornaliero superato`,statusOn:`on`,statusOff:`off`,disable:`Disabilita`,enable:`Abilita`,sendTestPing:`Invia ping di test`,addHeading:`Aggiungi webhook`,secretPlaceholder:`Secret di firma (facoltativo)`,addButton:`Aggiungi webhook`,urlRequired:`L'URL è obbligatorio`,selectEvent:`Seleziona almeno un evento`,added:`Webhook aggiunto`,addFailed:`Aggiunta del webhook non riuscita`,updateFailed:`Aggiornamento del webhook non riuscito`,removed:`Webhook rimosso`,removeFailed:`Rimozione del webhook non riuscita`,testPingSent:`Ping di test inviato`,testPingFailed:`Invio del ping di test non riuscito`},u={title:`Pannello terminale`,desktopDescription:`Default a livello di Desktop applicati a ogni progetto, salvo override per progetto.`,projectDescription:`Override per progetto del pannello terminale. Lascia un campo invariato per ereditare il default di Desktop.`,fontFamily:`Famiglia di font`,fontSize:`Dimensione font ({{min}}–{{max}})`,renderMode:`Modalità di rendering`,copyOnSelect:`Copia alla selezione`,shellIntegration:`Integrazione shell (marcatori OSC 133)`,notifyLongRunning:`Notifica per comandi a lunga esecuzione`,longCommandThreshold:`Soglia comandi lunghi (ms)`,imageRendering:`Rendering immagini inline (Sixel + iTerm2)`,browserShortcutUrl:`URL scorciatoia browser`,quickScript:`Script rapido (incollato nel terminale attivo — premi Invio manualmente)`,reset:`Reimposta`,unsavedChanges:`Modifiche non salvate`,clearOverride:`Rimuovi override`,clear:`Rimuovi`,inheritingDefault:`Eredita il default di Desktop`,nothingToSave:`Niente da salvare`,saved:`Impostazioni del terminale salvate`},d={heading:`Sezione Code`,summaryLanguage:`Lingua dei riassunti`,monthlyBudget:`Budget mensile (USD)`,budgetHelper:"Tetto alla spesa `surface=file-summary` per mese di calendario. Le rigenerazioni avviate dall'utente possono superarlo."},f={taglines:{dracula:`L'originale — scuro con sfumature viola e vividi accenti neon`,"aurora-light":`Chiaro premium — indaco ispirato a Linear su bianco caldo`,"obsidian-dark":`Scuro premium — quasi nero con sfumature blu e accenti elettrici`,specrails:`Tema del brand — blu navy-indaco profondo con accenti ciano saturi`,"code-rain":`Terminale al fosforo — menta tenue su quasi nero verdastro`,galaxy:`Blu spazio profondo con una scia luminosa a lama`},heading:`Aspetto`,themeGroupLabel:`Tema`,currentlyActive:`Attualmente attivo`,updateFailed:`Aggiornamento del tema non riuscito`},p={heading:`Companion mobile`,description:`Controlla Specrails dall'app SpecRails Companion sul tuo telefono, 100% sulla tua rete locale. Disattivato per impostazione predefinita.`,accessOn:`Accesso mobile attivo`,accessOff:`Accesso mobile disattivato`,listeningOnPort:`In ascolto sulla porta {{port}}`,notListening:`Non in ascolto`,turnOn:`Attiva`,turnOff:`Disattiva`,pairWebDevice:`Associa companion web`,reset:`Reimposta`,resetConfirm:`Reimpostare l'identità mobile? Ogni dispositivo associato verrà revocato e dovrà associarsi di nuovo.`,identityReset:`Identità mobile reimpostata`,enableFailed:`Impossibile abilitare l'accesso mobile: {{message}}`,disableFailed:`Impossibile disabilitare l'accesso mobile: {{message}}`,windowsFirewall:`Alla prima attivazione Windows Firewall chiederà di consentire il server SpecRails — scegli “Consenti su reti private”.`,pairedDevices:`Dispositivi associati`,noDevices:`Nessun dispositivo ancora associato.`,revokeDevice:`Revoca {{name}}`},m={title:`Associa companion web`,description:`Apri specrails.dev/companion-app sul telefono, poi scansiona questo codice con esso.`,startFailed:`Impossibile avviare l'associazione: {{error}}`,showThenScan:`Dopo che il telefono ha scansionato questo, tocca “Scansiona il codice del telefono” e punta la fotocamera verso il telefono.`,scanAnswer:`Scansiona il codice del telefono`,scanning:`Punta la fotocamera sul codice del telefono…`,cameraFailed:`Fotocamera non disponibile: {{message}}`,notAnswer:`Quel QR non è una risposta di associazione.`,connecting:`Connessione…`,paired:`✓ Associato`,pairedToast:`Companion web associato`,answerRejected:`Il desktop ha rifiutato quel codice. Generane uno nuovo e riprova.`,copyCode:`Copia codice`,codeCopied:`Codice copiato`,cancel:`Annulla`},h={heading:`Specrails Core`,installed:`Installato:`,updateAvailable:`Aggiornamento disponibile: {{version}}`,upToDate:`Aggiornato`,neverChecked:`Non verificato`,check:`Cerca aggiornamenti`,checking:`Verifica…`,update:`Aggiorna a {{version}}`,downloading:`Download…`,materializing:`Installazione…`,affectsAll:`Si applica a tutti i progetti — nessun riavvio necessario.`,unavailable:`Gli aggiornamenti del core non sono disponibili in questa build.`,toastDone:`Specrails Core aggiornato a {{version}}`,toastError:`Aggiornamento del core non riuscito: {{message}}`,toastUpToDate:`Specrails Core è aggiornato`,toastCheckFailed:`Verifica aggiornamenti non riuscita: {{message}}`,loadFailed:`Impossibile aggiornare lo stato di Core. Riprova`,runtime:`Motore: {{version}}`,bundled:`Incluso in Desktop: {{version}}`,sources:{override:`Selezione esplicita`,managed:`Gestito da Desktop`,bundled:`Incluso in Desktop`,local:`Pacchetto locale`,global:`CLI esterna`},repair:`Completa aggiornamento {{version}}`},g={heading:`Specrails Desktop`,installed:`Installata:`,check:`Cerca aggiornamenti`,checking:`Verifica…`,upToDate:`Hai l'ultima versione`,updateAvailable:`Aggiornamento disponibile: {{version}}`,autoHint:`Controllo automatico all'avvio e ogni 6 ore.`,unavailable:`Gli aggiornamenti sono disponibili solo nell'app desktop.`,toastUpToDate:`Specrails Desktop è aggiornato`,toastCheckFailed:`Ricerca aggiornamenti non riuscita: {{message}}`},_={title:`{{name}} — Impostazioni`,description:`Configurazione del progetto: prompt, branch, ambiente, budget, telemetria e terminale.`,nav:{general:`Generale`,branch:`Branch`,environment:`Ambiente`,budget:`Budget`,telemetry:`Telemetria`,terminal:`Terminale`,agentRuntime:`Motore degli agenti`}},v={title:`Ramo di integrazione`,description:`Il ramo da cui i rail paralleli si diramano e a cui puntano le loro PR in bozza. Lascia vuoto per risolvere automaticamente al ramo predefinito del repository.`,placeholder:`automatico (ramo predefinito)`,resolved:`I rail si diramano da <mono>{{branch}}</mono>`,save:`Salva ramo`,saved:`Ramo di integrazione salvato`,saveFailed:`Impossibile salvare il ramo di integrazione`},y={title:`Ambiente dei worktree`,description:`Scegli i nomi delle variabili d'ambiente che questo progetto passa ai job dei rail e ai worktree isolati dei loop. Vengono salvati solo i nomi; i valori vengono letti all'avvio dell'esecuzione, recuperandoli dalla login shell se mancano nel processo Desktop.`,label:`Variabile d'ambiente`,placeholder:`NODE_AUTH_TOKEN`,helper:`Premi Invio o Aggiungi. Puoi incollare più nomi separati da virgole o spazi.`,add:`Aggiungi`,empty:`Non ci sono ancora variabili specifiche per questo progetto.`,remove:`Rimuovi {{name}}`,save:`Salva ambiente`,saved:`Ambiente dei worktree salvato`,saveFailed:`Impossibile salvare l'ambiente dei worktree`,invalidName:`{{name}} non è un nome valido per una variabile d'ambiente`,noValues:`Aggiungi solo nomi di variabili, non segreti KEY=value.`},b={heading:`Effetti`,description:`Tocchi visivi dell'app. Ognuno si può disattivare qui.`,thinkingHalo:{label:`Alone di riflessione sul composer dell'agente`,description:`Mentre l'agente pensa o scrive, l'anello orbitante del Builder brilla attorno al composer: appare in dissolvenza all'inizio del turno e svanisce quando la risposta si conclude.`},reducedMotion:`Rispetta l'impostazione di sistema per la riduzione del movimento: l'anello resta un bagliore statico.`,preview:`Anteprima`,previewThinking:`Sto pensando…`},x={language:e,page:t,errors:n,telemetry:r,prePrompt:i,freestylePrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g,projectDialog:_,integrationBranch:v,worktreeEnv:y,effects:b};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,x as default,s as desktop,b as effects,n as errors,a as freestylePrePrompt,v as integrationBranch,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,_ as projectDialog,r as telemetry,u as terminal,l as webhooks,y as worktreeEnv};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Idioma`,description:`Idioma da UI em todo o Desktop. Aplica-se de imediato — sem reiniciar.`,selectLabel:`Idioma da interface`,updateFailed:`Não foi possível guardar a preferência de idioma`},t={title:`Definições do projeto`},n={saveFailed:`Falha ao guardar: {{message}}`},r={title:`Telemetria do pipeline`,description:`Capture uso de tokens, durações de fases e atividade de subagentes para exportação de diagnóstico. Ativada por omissão.`,toggleLabel:`Ativar telemetria do pipeline`,toggleDescription:`Quando ativa, os dados OTEL dos jobs do pipeline são capturados localmente. Use o botão <mono>Exportar diagnóstico</mono> em qualquer cartão de job para descarregar.`,enabled:`Telemetria do pipeline ativada`,disabled:`Telemetria do pipeline desativada`,saveFailed:`Falha ao guardar a definição de telemetria`},i={title:`Pre-prompt de rail`,description:`Instruções extra específicas do projeto, acrescentadas aos jobs de rail implement depois do contexto do ticket e antes da execução.`,label:`Pre-prompt`,placeholder:`Exemplo: Prefira alterações incrementais, mantenha as migrações retrocompatíveis e adicione testes a cada alteração de rail.`,helper:`Use isto para orientações estáveis do projeto que devem acompanhar cada execução de implementação em rail.`,saveButton:`Guardar pre-prompt`,cleared:`Pre-prompt limpo`,saved:`Pre-prompt guardado`,saveFailed:`Falha ao guardar o pre-prompt`},a={title:`Pre-prompt de Freestyle`,description:`Instrução enviada ao fornecedor selecionado em Freestyle. O Freestyle salta o pipeline OpenSpec — entrega ao fornecedor este pre-prompt mais o texto da spec e deixa-o implementar de forma autónoma. Deixe em branco para usar o valor predefinido.`,label:`Pre-prompt Freestyle`,placeholder:`Deixe em branco para usar a instrução Freestyle predefinida.`,helper:`O texto da spec é acrescentado automaticamente depois deste pre-prompt. Vazio = predefinição.`,saveButton:`Guardar pre-prompt Freestyle`,resetToDefault:`Pre-prompt Freestyle reposto na predefinição`,saved:`Pre-prompt Freestyle guardado`,saveFailed:`Falha ao guardar o pre-prompt Freestyle`},o={title:`Orçamento`,description:`Defina um limite de gasto diário para este projeto. A fila pausa automaticamente quando o limite é atingido.`,dailyLabel:`Orçamento diário (USD)`,dailyHelper:`Deixe em branco para desativar. O gasto é calculado sobre as últimas 24 horas.`,dailyPlaceholder:`ex.: 5.00`,perJobLabel:`Alerta de custo por job (USD)`,perJobHelper:`Alertar quando um único job deste projeto excede este valor.`,perJobPlaceholder:`ex.: 0.50`,invalidNumber:`Introduza um número positivo ou deixe em branco para desativar`,dailyRemoved:`Orçamento diário removido`,dailySet:"Orçamento diário definido como ${{amount}}",perJobAlertDisabled:`Alerta de custo por job desativado`,alertSet:"Alerta definido para jobs acima de ${{amount}}",saveBudgetFailed:`Falha ao guardar o orçamento`,saveThresholdFailed:`Falha ao guardar o limiar`},s={nav:{appearance:`Aparência`,specrailsAgents:`Provedores de IA`,code:`Código`,terminal:`Terminal`,updates:`Atualizações`,mobile:`Móvel`,mcp:`MCP`,projects:`Projetos`,advanced:`Avançado`,webhooks:`Webhooks`,about:`Sobre`,effects:`Efeitos`},title:`Definições do Desktop`,description:`Faça a gestão dos projetos registados e consulte informações do Desktop.`,registeredProjects:`Projetos registados`,noProjects:`Ainda não há projetos registados`,techUrlDescription:`URL base para a API specrails-tech (predefinição: http://localhost:3000)`,techUrlSaved:`URL do specrails-tech guardado`,techUrlSaveFailed:`Falha ao guardar o URL`,budgetAlertsHeading:`Orçamento e alertas`,dailyBudgetLabel:`Orçamento diário do Desktop (USD)`,dailyBudgetHelper:`Limite global de gasto diário em todos os projetos. As filas pausam automaticamente quando é excedido.`,dailyBudgetPlaceholder:`ex.: 10.00`,perJobHelper:`Alertar quando um único job excede este valor. Deixe em branco para desativar.`,costAlertsDisabled:`Alertas de custo desativados`,dailyBudgetRemoved:`Orçamento diário do Desktop removido`,dailyBudgetSet:"Orçamento diário do Desktop definido como ${{amount}}",dailyBudgetSaveFailed:`Falha ao guardar o orçamento diário do Desktop`,projectRemoved:`Projeto removido`,projectRemoveFailed:`Falha ao remover o projeto`,onboardingHeading:`Onboarding`,platformTour:`Tour da plataforma`,platformTourDescription:`Repita o assistente de boas-vindas para rever as funcionalidades principais.`,replayTour:`Repetir tour`,terminalPanelHeading:`Painel de terminal`,infoHeading:`Informações do Desktop`,infoPort:`Porta`,infoProjects:`Projetos`,infoDb:`BD do Desktop`},c={heading:`Notificações do SO`,description:`Mostrar notificações nativas do desktop quando os jobs terminam ou falham. As notificações só aparecem quando o separador não está focado.`,enableLabel:`Ativar notificações do SO`,notifyOn:`Notificar em:`,filterAll:`Tudo (concluídos e falhados)`,filterCompleted:`Apenas concluídos`,filterFailed:`Apenas falhados`,enabledToast:`Notificações do SO ativadas`,disabledToast:`Notificações do SO desativadas`},l={heading:`Webhooks de saída`,description:`Notifique ferramentas externas (Slack, Zapier, CI/CD) sobre eventos do Desktop. Os pedidos são assinados via <code>X-Specrails-Signature</code> quando há um segredo definido.`,eventJobCompleted:`Job concluído`,eventJobFailed:`Job falhado`,eventDailyBudgetExceeded:`Orçamento diário excedido`,statusOn:`ligado`,statusOff:`desligado`,disable:`Desativar`,enable:`Ativar`,sendTestPing:`Enviar ping de teste`,addHeading:`Adicionar webhook`,secretPlaceholder:`Segredo de assinatura (opcional)`,addButton:`Adicionar webhook`,urlRequired:`O URL é obrigatório`,selectEvent:`Selecione pelo menos um evento`,added:`Webhook adicionado`,addFailed:`Falha ao adicionar o webhook`,updateFailed:`Falha ao atualizar o webhook`,removed:`Webhook removido`,removeFailed:`Falha ao remover o webhook`,testPingSent:`Ping de teste enviado`,testPingFailed:`Falha ao enviar o ping de teste`},u={title:`Painel de terminal`,desktopDescription:`Predefinições do Desktop aplicadas a todos os projetos, salvo override por projeto.`,projectDescription:`Overrides por projeto para o painel de terminal. Deixe um campo inalterado para herdar a predefinição do Desktop.`,fontFamily:`Tipo de letra`,fontSize:`Tamanho da letra ({{min}}–{{max}})`,renderMode:`Modo de renderização`,copyOnSelect:`Copiar ao selecionar`,shellIntegration:`Integração com a shell (marcas OSC 133)`,notifyLongRunning:`Notificar comandos de longa duração`,longCommandThreshold:`Limiar de comando longo (ms)`,imageRendering:`Renderização de imagens inline (Sixel + iTerm2)`,browserShortcutUrl:`URL do atalho do browser`,quickScript:`Script rápido (colado no terminal ativo — Enter manualmente)`,reset:`Repor`,unsavedChanges:`Alterações não guardadas`,clearOverride:`Limpar override`,clear:`Limpar`,inheritingDefault:`A herdar a predefinição do Desktop`,nothingToSave:`Nada para guardar`,saved:`Definições do terminal guardadas`},d={heading:`Secção de código`,summaryLanguage:`Idioma dos resumos`,monthlyBudget:`Orçamento mensal (USD)`,budgetHelper:"Limite de gasto em `surface=file-summary` por mês de calendário. Regenerações iniciadas pelo utilizador podem ignorá-lo."},f={taglines:{dracula:`O original — escuro com tom púrpura e acentos néon vivos`,"aurora-light":`Claro premium — índigo inspirado no Linear sobre branco quente`,"obsidian-dark":`Escuro premium — quase preto com tom azulado e acentos elétricos`,specrails:`Tema da marca — azul-marinho-índigo profundo com acentos ciano saturados`,"code-rain":`Terminal de fósforo — menta suave sobre quase preto esverdeado`,galaxy:`Azul de espaço profundo com um rastro brilhante de lâmina`},heading:`Aspeto`,themeGroupLabel:`Tema`,currentlyActive:`Atualmente ativo`,updateFailed:`Falha ao atualizar o tema`},p={heading:`Companion móvel`,description:`Controle o Specrails a partir da app SpecRails Companion no seu telemóvel, 100% através da sua rede local. Desativado por omissão.`,accessOn:`Acesso móvel ligado`,accessOff:`Acesso móvel desligado`,listeningOnPort:`À escuta na porta {{port}}`,notListening:`Não está à escuta`,turnOn:`Ligar`,turnOff:`Desligar`,pairWebDevice:`Emparelhar companion web`,reset:`Repor`,resetConfirm:`Repor a identidade móvel? Todos os dispositivos emparelhados serão revogados e terão de emparelhar novamente.`,identityReset:`Identidade móvel reposta`,enableFailed:`Não foi possível ativar o acesso móvel: {{message}}`,disableFailed:`Não foi possível desativar o acesso móvel: {{message}}`,windowsFirewall:`A Firewall do Windows pedirá para permitir o servidor SpecRails na primeira ativação — escolha “Permitir em redes privadas”.`,pairedDevices:`Dispositivos emparelhados`,noDevices:`Ainda não há dispositivos emparelhados.`,revokeDevice:`Revogar {{name}}`},m={title:`Emparelhar companion web`,description:`Abra specrails.dev/companion-app no seu telemóvel e leia este código com ele.`,startFailed:`Não foi possível iniciar o emparelhamento: {{error}}`,showThenScan:`Depois de o seu telemóvel ler isto, toque em “Ler código do telemóvel” e aponte a câmara para o telemóvel.`,scanAnswer:`Ler código do telemóvel`,scanning:`Aponte a câmara para o código no seu telemóvel…`,cameraFailed:`Câmara indisponível: {{message}}`,notAnswer:`Esse QR não é uma resposta de emparelhamento.`,connecting:`A ligar…`,paired:`✓ Emparelhado`,pairedToast:`Companion web emparelhado`,answerRejected:`O desktop rejeitou esse código. Gere um novo e tente novamente.`,copyCode:`Copiar código`,codeCopied:`Código copiado`,cancel:`Cancelar`},h={heading:`Specrails Core`,installed:`Instalado:`,updateAvailable:`Atualização disponível: {{version}}`,upToDate:`Atualizado`,neverChecked:`Não verificado`,check:`Procurar atualizações`,checking:`A verificar…`,update:`Atualizar para {{version}}`,downloading:`A descarregar…`,materializing:`A instalar…`,affectsAll:`Aplica-se a todos os projetos — sem reiniciar.`,unavailable:`As atualizações do core não estão disponíveis nesta versão.`,toastDone:`Specrails Core atualizado para {{version}}`,toastError:`Falha na atualização do core: {{message}}`,toastUpToDate:`O Specrails Core está atualizado`,toastCheckFailed:`Falha ao verificar atualizações: {{message}}`,loadFailed:`Não foi possível atualizar o estado do Core. Tentar novamente`,runtime:`Motor: {{version}}`,bundled:`Incluído no Desktop: {{version}}`,sources:{override:`Seleção explícita`,managed:`Gerido pelo Desktop`,bundled:`Incluído no Desktop`,local:`Pacote local`,global:`CLI externa`},repair:`Concluir atualização {{version}}`},g={heading:`Specrails Desktop`,installed:`Instalada:`,check:`Verificar atualizações`,checking:`Verificando…`,upToDate:`Você está na versão mais recente`,updateAvailable:`Atualização disponível: {{version}}`,autoHint:`Verificação automática ao iniciar e a cada 6 horas.`,unavailable:`Atualizações estão disponíveis apenas no app desktop.`,toastUpToDate:`O Specrails Desktop está atualizado`,toastCheckFailed:`Falha ao verificar atualizações: {{message}}`},_={title:`{{name}} — Configurações`,description:`Configuração do projeto: prompts, branch, ambiente, orçamento, telemetria e terminal.`,nav:{general:`Geral`,branch:`Branch`,environment:`Ambiente`,budget:`Orçamento`,telemetry:`Telemetria`,terminal:`Terminal`,agentRuntime:`Motor de agentes`}},v={title:`Ramo de integração`,description:`O ramo a partir do qual os rails paralelos derivam e para o qual apontam os seus PRs em rascunho. Deixe vazio para resolver automaticamente para o ramo padrão do repositório.`,placeholder:`automático (ramo padrão)`,resolved:`Os rails derivam de <mono>{{branch}}</mono>`,save:`Guardar ramo`,saved:`Ramo de integração guardado`,saveFailed:`Não foi possível guardar o ramo de integração`},y={title:`Ambiente dos worktrees`,description:`Escolha os nomes das variáveis de ambiente que este projeto passa para jobs de rail e worktrees isolados de loops. Só os nomes são guardados; os valores são lidos quando a execução começa, com recuperação a partir do login shell se faltarem no processo Desktop.`,label:`Variável de ambiente`,placeholder:`NODE_AUTH_TOKEN`,helper:`Prima Enter ou Adicionar. Pode colar vários nomes separados por vírgulas ou espaços.`,add:`Adicionar`,empty:`Ainda não há variáveis específicas para este projeto.`,remove:`Remover {{name}}`,save:`Guardar ambiente`,saved:`Ambiente dos worktrees guardado`,saveFailed:`Não foi possível guardar o ambiente dos worktrees`,invalidName:`{{name}} não é um nome válido de variável de ambiente`,noValues:`Adicione apenas nomes de variáveis, não segredos KEY=value.`},b={heading:`Efeitos`,description:`Detalhes visuais da app. Cada um pode ser desativado aqui.`,thinkingHalo:{label:`Halo de raciocínio no compositor do agente`,description:`Enquanto o agente pensa ou escreve, o anel orbital do Construtor brilha à volta do compositor: surge com fade ao começar o turno e desvanece quando a resposta termina.`},reducedMotion:`Respeita a definição de movimento reduzido do sistema: o anel fica como um brilho estático.`,preview:`Pré-visualização`,previewThinking:`A pensar…`},x={language:e,page:t,errors:n,telemetry:r,prePrompt:i,freestylePrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g,projectDialog:_,integrationBranch:v,worktreeEnv:y,effects:b};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,x as default,s as desktop,b as effects,n as errors,a as freestylePrePrompt,v as integrationBranch,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,_ as projectDialog,r as telemetry,u as terminal,l as webhooks,y as worktreeEnv};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Idioma`,description:`Idioma de la UI para todo Desktop. Se aplica al instante — no hace falta reiniciar.`,selectLabel:`Idioma de la interfaz`,updateFailed:`No se pudo guardar la preferencia de idioma`},t={title:`Ajustes del proyecto`},n={saveFailed:`Error al guardar: {{message}}`},r={title:`Telemetría del pipeline`,description:`Captura el uso de tokens, la duración de las fases y la actividad de los subagentes para exportar diagnósticos. Activada por defecto.`,toggleLabel:`Activar telemetría del pipeline`,toggleDescription:`Cuando está activa, los datos OTEL de los jobs del pipeline se capturan en local. Usa el botón <mono>Exportar diagnóstico</mono> en cualquier tarjeta de job para descargarlos.`,enabled:`Telemetría del pipeline activada`,disabled:`Telemetría del pipeline desactivada`,saveFailed:`No se pudo guardar el ajuste de telemetría`},i={title:`Pre-prompt de rail`,description:`Instrucciones extra específicas del proyecto que se añaden a los jobs de rail implement, después del contexto del ticket y antes de la ejecución.`,label:`Pre-prompt`,placeholder:`Ejemplo: Prefiere cambios incrementales, mantén las migraciones retrocompatibles y añade tests para cada cambio de rail.`,helper:`Úsalo para directrices estables del proyecto que deban acompañar cada ejecución de implementación en rail.`,saveButton:`Guardar pre-prompt`,cleared:`Pre-prompt borrado`,saved:`Pre-prompt guardado`,saveFailed:`No se pudo guardar el pre-prompt`},a={title:`Pre-prompt de Freestyle`,description:`Instrucción enviada al proveedor seleccionado en Freestyle. Freestyle se salta el pipeline de OpenSpec — le entrega al proveedor este pre-prompt más el texto de la spec y le deja implementar de forma autónoma. Déjalo en blanco para usar el valor por defecto integrado.`,label:`Pre-prompt Freestyle`,placeholder:`Déjalo en blanco para usar la instrucción por defecto de Freestyle.`,helper:`El texto de la spec se añade automáticamente después de este pre-prompt. Vacío = por defecto.`,saveButton:`Guardar pre-prompt Freestyle`,resetToDefault:`Pre-prompt Freestyle restablecido al valor por defecto`,saved:`Pre-prompt Freestyle guardado`,saveFailed:`No se pudo guardar el pre-prompt Freestyle`},o={title:`Presupuesto`,description:`Define un límite de gasto diario para este proyecto. La cola se pausa automáticamente al alcanzar el límite.`,dailyLabel:`Presupuesto diario (USD)`,dailyHelper:`Déjalo en blanco para desactivarlo. El gasto se calcula sobre las últimas 24 horas.`,dailyPlaceholder:`p. ej. 5.00`,perJobLabel:`Alerta de coste por job (USD)`,perJobHelper:`Avisa cuando un único job de este proyecto supere este importe.`,perJobPlaceholder:`p. ej. 0.50`,invalidNumber:`Introduce un número positivo o déjalo en blanco para desactivar`,dailyRemoved:`Presupuesto diario eliminado`,dailySet:"Presupuesto diario fijado en ${{amount}}",perJobAlertDisabled:`Alerta de coste por job desactivada`,alertSet:"Alerta configurada para jobs de más de ${{amount}}",saveBudgetFailed:`No se pudo guardar el presupuesto`,saveThresholdFailed:`No se pudo guardar el umbral`},s={nav:{appearance:`Apariencia`,specrailsAgents:`Proveedores de IA`,code:`Código`,terminal:`Terminal`,updates:`Actualizaciones`,mobile:`Móvil`,mcp:`MCP`,projects:`Proyectos`,advanced:`Avanzado`,webhooks:`Webhooks`,about:`Acerca de`,effects:`Efectos`},title:`Ajustes de Desktop`,description:`Gestiona los proyectos registrados y consulta la información de Desktop.`,registeredProjects:`Proyectos registrados`,noProjects:`Aún no hay proyectos registrados`,techUrlDescription:`URL base de la API de specrails-tech (por defecto: http://localhost:3000)`,techUrlSaved:`URL de specrails-tech guardada`,techUrlSaveFailed:`No se pudo guardar la URL`,budgetAlertsHeading:`Presupuesto y alertas`,dailyBudgetLabel:`Presupuesto diario de Desktop (USD)`,dailyBudgetHelper:`Límite global de gasto diario en todos los proyectos. Las colas se pausan automáticamente al superarlo.`,dailyBudgetPlaceholder:`p. ej. 10.00`,perJobHelper:`Avisa cuando un único job supere este importe. Déjalo en blanco para desactivarlo.`,costAlertsDisabled:`Alertas de coste desactivadas`,dailyBudgetRemoved:`Presupuesto diario de Desktop eliminado`,dailyBudgetSet:"Presupuesto diario de Desktop fijado en ${{amount}}",dailyBudgetSaveFailed:`No se pudo guardar el presupuesto diario de Desktop`,projectRemoved:`Proyecto eliminado`,projectRemoveFailed:`No se pudo eliminar el proyecto`,onboardingHeading:`Onboarding`,platformTour:`Tour de la plataforma`,platformTourDescription:`Vuelve a ver el asistente de bienvenida para repasar las funciones clave.`,replayTour:`Repetir tour`,terminalPanelHeading:`Panel de terminal`,infoHeading:`Información de Desktop`,infoPort:`Puerto`,infoProjects:`Proyectos`,infoDb:`BD de Desktop`},c={heading:`Notificaciones del sistema`,description:`Muestra notificaciones nativas de escritorio cuando los jobs se completan o fallan. Las notificaciones solo aparecen cuando la pestaña no tiene el foco.`,enableLabel:`Activar notificaciones del sistema`,notifyOn:`Notificar en:`,filterAll:`Todos (completados y fallidos)`,filterCompleted:`Solo completados`,filterFailed:`Solo fallidos`,enabledToast:`Notificaciones del sistema activadas`,disabledToast:`Notificaciones del sistema desactivadas`},l={heading:`Webhooks salientes`,description:`Notifica a herramientas externas (Slack, Zapier, CI/CD) los eventos de Desktop. Las peticiones se firman con <code>X-Specrails-Signature</code> cuando hay un secreto configurado.`,eventJobCompleted:`Job completado`,eventJobFailed:`Job fallido`,eventDailyBudgetExceeded:`Presupuesto diario superado`,statusOn:`on`,statusOff:`off`,disable:`Desactivar`,enable:`Activar`,sendTestPing:`Enviar ping de prueba`,addHeading:`Añadir webhook`,secretPlaceholder:`Secreto de firma (opcional)`,addButton:`Añadir webhook`,urlRequired:`La URL es obligatoria`,selectEvent:`Selecciona al menos un evento`,added:`Webhook añadido`,addFailed:`No se pudo añadir el webhook`,updateFailed:`No se pudo actualizar el webhook`,removed:`Webhook eliminado`,removeFailed:`No se pudo eliminar el webhook`,testPingSent:`Ping de prueba enviado`,testPingFailed:`No se pudo enviar el ping de prueba`},u={title:`Panel de terminal`,desktopDescription:`Valores por defecto de Desktop aplicados a todos los proyectos salvo que exista un override por proyecto.`,projectDescription:`Overrides por proyecto para el panel de terminal. Deja un campo sin cambios para heredar el valor por defecto de Desktop.`,fontFamily:`Familia tipográfica`,fontSize:`Tamaño de fuente ({{min}}–{{max}})`,renderMode:`Modo de renderizado`,copyOnSelect:`Copiar al seleccionar`,shellIntegration:`Integración con el shell (marcas OSC 133)`,notifyLongRunning:`Notificar comandos de larga duración`,longCommandThreshold:`Umbral de comando largo (ms)`,imageRendering:`Renderizado de imágenes inline (Sixel + iTerm2)`,browserShortcutUrl:`URL del atajo de navegador`,quickScript:`Script rápido (se pega en el terminal activo — pulsa Enter manualmente)`,reset:`Restablecer`,unsavedChanges:`Cambios sin guardar`,clearOverride:`Quitar override`,clear:`Quitar`,inheritingDefault:`Heredando el valor por defecto de Desktop`,nothingToSave:`Nada que guardar`,saved:`Ajustes del terminal guardados`},d={heading:`Sección de código`,summaryLanguage:`Idioma de los resúmenes`,monthlyBudget:`Presupuesto mensual (USD)`,budgetHelper:"Tope de gasto de `surface=file-summary` por mes natural. Las regeneraciones iniciadas por el usuario pueden sobrepasarlo."},f={taglines:{dracula:`El original — oscuro con tinte púrpura y acentos neón vivos`,"aurora-light":`Claro premium — índigo inspirado en Linear sobre blanco cálido`,"obsidian-dark":`Oscuro premium — casi negro con tinte azul y acentos eléctricos`,specrails:`Tema de marca — azul marino-índigo profundo con acentos cian saturados`,"code-rain":`Terminal de fósforo — menta suave sobre casi negro verdoso`,galaxy:`Azul de espacio profundo con una estela de hoja brillante`},heading:`Apariencia`,themeGroupLabel:`Tema`,currentlyActive:`Activo actualmente`,updateFailed:`No se pudo actualizar el tema`},p={heading:`App móvil`,description:`Controla Specrails desde la app SpecRails Companion de tu teléfono, 100 % a través de tu red local. Desactivado por defecto.`,accessOn:`Acceso móvil activado`,accessOff:`Acceso móvil desactivado`,listeningOnPort:`A la escucha en el puerto {{port}}`,notListening:`No está a la escucha`,turnOn:`Activar`,turnOff:`Desactivar`,pairWebDevice:`Emparejar companion web`,reset:`Restablecer`,resetConfirm:`¿Restablecer la identidad móvil? Todos los dispositivos emparejados se revocarán y tendrán que emparejarse de nuevo.`,identityReset:`Identidad móvil restablecida`,enableFailed:`No se pudo activar el acceso móvil: {{message}}`,disableFailed:`No se pudo desactivar el acceso móvil: {{message}}`,windowsFirewall:`El Firewall de Windows pedirá permiso para el servidor de SpecRails la primera vez que lo actives — elige «Permitir en redes privadas».`,pairedDevices:`Dispositivos emparejados`,noDevices:`Aún no hay dispositivos emparejados.`,revokeDevice:`Revocar {{name}}`},m={title:`Emparejar companion web`,description:`Abre specrails.dev/companion-app en tu teléfono y escanea este código con él.`,startFailed:`No se pudo iniciar el emparejamiento: {{error}}`,showThenScan:`Cuando tu teléfono haya escaneado esto, toca «Escanear código del teléfono» y apunta la cámara hacia tu teléfono.`,scanAnswer:`Escanear código del teléfono`,scanning:`Apunta la cámara al código de tu teléfono…`,cameraFailed:`Cámara no disponible: {{message}}`,notAnswer:`Ese QR no es una respuesta de emparejamiento.`,connecting:`Conectando…`,paired:`✓ Emparejado`,pairedToast:`Companion web emparejado`,answerRejected:`El equipo de escritorio rechazó ese código. Genera uno nuevo e inténtalo de nuevo.`,copyCode:`Copiar código`,codeCopied:`Código copiado`,cancel:`Cancelar`},h={heading:`Specrails Core`,installed:`Instalado:`,updateAvailable:`Actualización disponible: {{version}}`,upToDate:`Actualizado`,neverChecked:`Sin comprobar`,check:`Buscar actualizaciones`,checking:`Comprobando…`,update:`Actualizar a {{version}}`,downloading:`Descargando…`,materializing:`Instalando…`,affectsAll:`Afecta a todos los proyectos — sin reiniciar.`,unavailable:`Las actualizaciones del core no están disponibles en esta versión.`,toastDone:`Specrails Core actualizado a {{version}}`,toastError:`Error al actualizar el core: {{message}}`,toastUpToDate:`Specrails Core está actualizado`,toastCheckFailed:`Error al comprobar actualizaciones: {{message}}`,loadFailed:`No se pudo actualizar el estado de Core. Reintentar`,runtime:`Motor: {{version}}`,bundled:`Incluido en Desktop: {{version}}`,sources:{override:`Selección explícita`,managed:`Gestionado por Desktop`,bundled:`Incluido en Desktop`,local:`Paquete local`,global:`CLI externo`},repair:`Completar actualización {{version}}`},g={heading:`Specrails Desktop`,installed:`Instalada:`,check:`Buscar actualizaciones`,checking:`Comprobando…`,upToDate:`Tienes la última versión`,updateAvailable:`Actualización disponible: {{version}}`,autoHint:`Se comprueba automáticamente al arrancar y cada 6 horas.`,unavailable:`Las actualizaciones solo están disponibles en la app de escritorio.`,toastUpToDate:`Specrails Desktop está actualizado`,toastCheckFailed:`Error al buscar actualizaciones: {{message}}`},_={title:`{{name}} — Ajustes`,description:`Configuración del proyecto: prompts, rama base, entorno, presupuesto, telemetría y terminal.`,nav:{general:`General`,branch:`Rama base`,environment:`Entorno`,budget:`Presupuesto`,telemetry:`Telemetría`,terminal:`Terminal`,agentRuntime:`Motor de agentes`}},v={title:`Rama de integración`,description:`La rama desde la que parten los rails paralelos y a la que apuntan sus PRs en borrador. Déjalo vacío para resolver automáticamente a la rama por defecto del repositorio.`,placeholder:`automático (rama por defecto)`,resolved:`Los rails parten de <mono>{{branch}}</mono>`,save:`Guardar rama`,saved:`Rama de integración guardada`,saveFailed:`No se pudo guardar la rama de integración`},y={title:`Entorno de worktrees`,description:`Elige los nombres de variables de entorno que este proyecto pasa a jobs de rail y worktrees aislados de loops. Solo se guardan nombres; los valores se leen al iniciar la ejecución, recuperándolos del login shell si faltan en el proceso de escritorio.`,label:`Variable de entorno`,placeholder:`NODE_AUTH_TOKEN`,helper:`Pulsa Enter o Añadir. Puedes pegar varios nombres separados por comas o espacios.`,add:`Añadir`,empty:`Aún no hay variables específicas para este proyecto.`,remove:`Quitar {{name}}`,save:`Guardar entorno`,saved:`Entorno de worktrees guardado`,saveFailed:`No se pudo guardar el entorno de worktrees`,invalidName:`{{name}} no es un nombre válido de variable de entorno`,noValues:`Añade solo nombres de variables, no secretos KEY=value.`},b={heading:`Efectos`,description:`Detalles visuales de la app. Cada uno se puede desactivar aquí.`,thinkingHalo:{label:`Halo de pensamiento en el composer del agente`,description:`Mientras el agente piensa o escribe, el anillo orbitante del Constructor brilla alrededor del composer: aparece con un fundido al empezar el turno y se desvanece al terminar la respuesta.`},reducedMotion:`Respeta el ajuste de movimiento reducido del sistema: el anillo queda como un brillo estático.`,preview:`Vista previa`,previewThinking:`Pensando…`},x={language:e,page:t,errors:n,telemetry:r,prePrompt:i,freestylePrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g,projectDialog:_,integrationBranch:v,worktreeEnv:y,effects:b};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,x as default,s as desktop,b as effects,n as errors,a as freestylePrePrompt,v as integrationBranch,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,_ as projectDialog,r as telemetry,u as terminal,l as webhooks,y as worktreeEnv};
|