specrails-desktop 2.18.2 → 2.19.1
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 +1 -1
- package/client/dist/assets/{ActivityFeedPage-mGnv5SOe.js → ActivityFeedPage-C0_k6n5T.js} +1 -1
- package/client/dist/assets/AgentBrowserCapture-NHUCEnTh.js +1 -0
- package/client/dist/assets/AgentModeCodePane-jddXrhPY.js +2 -0
- package/client/dist/assets/AgentsPage-BPjf6bId.js +86 -0
- package/client/dist/assets/AnalyticsPage-BaJjj5mO.js +1 -0
- package/client/dist/assets/{BarChart-BqHUOnl9.js → BarChart-HPiao--v.js} +1 -1
- package/client/dist/assets/CodePage-CAD4KfkC.js +2 -0
- package/client/dist/assets/{DesktopAnalyticsPage-CR-m97Ui.js → DesktopAnalyticsPage-B2RBxIvj.js} +1 -1
- package/client/dist/assets/DocsDialog-BJDvUEGj.js +11 -0
- package/client/dist/assets/DocsPage-B6H-DBs8.js +11 -0
- package/client/dist/assets/{ExportDropdown-C-o1Q4ef.js → ExportDropdown-CYMcbLTD.js} +1 -1
- package/client/dist/assets/IntegrationsPage-Dx_UpQVk.js +3 -0
- package/client/dist/assets/JobDetailPage-BlTnsRAN.js +16 -0
- package/client/dist/assets/JobsPage-EB0PbXOk.js +1 -0
- package/client/dist/assets/LoopBuilderPage-DfWfhhJY.js +7 -0
- package/client/dist/assets/LoopsPage-DCVATTv5.js +1 -0
- package/client/dist/assets/{addspec-B9dY_F5T.js → addspec-BXV6sx5l.js} +1 -1
- package/client/dist/assets/{addspec-tbxr3sHa.js → addspec-CS895X6A.js} +1 -1
- package/client/dist/assets/{addspec-W0r16BOC2.js → addspec-CXfEOrD42.js} +1 -1
- package/client/dist/assets/{addspec-D43TlMVp2.js → addspec-D28kw9ow2.js} +1 -1
- package/client/dist/assets/{addspec-B9nhMikb.js → addspec-D39EEg02.js} +1 -1
- package/client/dist/assets/{addspec-DfgIZ5lO.js → addspec-DC1tgsFG.js} +1 -1
- package/client/dist/assets/{addspec-BtNaJHu2.js → addspec-DcHALPEp.js} +1 -1
- package/client/dist/assets/{addspec-BloGn_ey.js → addspec-DxW6oPsk.js} +1 -1
- package/client/dist/assets/{agent-Bm2tPrdr.js → agent-B5Ycau5M.js} +1 -1
- package/client/dist/assets/{agent-DMUrz9ZS2.js → agent-BEz08l4_2.js} +1 -1
- package/client/dist/assets/{agent-C4bO1l_v.js → agent-BIX51CEA.js} +1 -1
- package/client/dist/assets/{agent-9WdSxPU5.js → agent-Bc9Kwf65.js} +1 -1
- package/client/dist/assets/{agent-pO8x4jbR.js → agent-BiM7puyn.js} +1 -1
- package/client/dist/assets/{agent-CgKsh88Z2.js → agent-C0kYSv3m2.js} +1 -1
- package/client/dist/assets/agent-CCzWlfqs.js +1 -0
- package/client/dist/assets/{agent-ASIyVcg0.js → agent-DiCSo31C.js} +1 -1
- package/client/dist/assets/{agents-DfGvYtpq2.js → agents-BFrHy5d-2.js} +1 -1
- package/client/dist/assets/{agents-Dli56gr82.js → agents-BFy2Kq_k2.js} +1 -1
- package/client/dist/assets/{agents-C07al8rI.js → agents-BXDCFJQa.js} +1 -1
- package/client/dist/assets/{agents-BAxAwHy-.js → agents-BySH0Gvw.js} +1 -1
- package/client/dist/assets/{agents-Eqw_AQ6H.js → agents-CTdwacTO.js} +1 -1
- package/client/dist/assets/{agents-BjT_xLjv.js → agents-Cev2oFfX.js} +1 -1
- package/client/dist/assets/{agents-BUYBb825.js → agents-CsDEv4Fj.js} +1 -1
- package/client/dist/assets/{agents-52t8NVpS.js → agents-z0kA-y0Q.js} +1 -1
- package/client/dist/assets/dashboard-Bl2_Yjs6.js +1 -0
- package/client/dist/assets/dashboard-C_vS9RaM2.js +1 -0
- package/client/dist/assets/dashboard-CcEpALV_.js +1 -0
- package/client/dist/assets/dashboard-CfltY66K.js +1 -0
- package/client/dist/assets/dashboard-CoED_41r.js +1 -0
- package/client/dist/assets/dashboard-DLeC5ziO.js +1 -0
- package/client/dist/assets/dashboard-DxEPkALo2.js +1 -0
- package/client/dist/assets/dashboard-MgDVmaYS2.js +1 -0
- package/client/dist/assets/{dist-js-CUegfF6k.js → dist-js-ClEfL6Bo.js} +1 -1
- package/client/dist/assets/{dist-js-BHhtSerX.js → dist-js-b2_z7zAi.js} +1 -1
- package/client/dist/assets/index-9yNUBwEi.css +2 -0
- package/client/dist/assets/{index-B7vB20Jw.js → index-BeujshsU.js} +57 -57
- package/client/dist/assets/{lib-PQoHlR5u.js → lib-CfphudAm.js} +1 -1
- package/client/dist/assets/loops-BEUiCzEI.js +1 -0
- package/client/dist/assets/loops-BlrQiK122.js +1 -0
- package/client/dist/assets/loops-Bs0ectZ32.js +1 -0
- package/client/dist/assets/loops-CLZV8HHY2.js +1 -0
- package/client/dist/assets/loops-CQuuMlyZ.js +1 -0
- package/client/dist/assets/loops-DuuWQWTI.js +1 -0
- package/client/dist/assets/loops-KOTryzk5.js +1 -0
- package/client/dist/assets/loops-t1mUZtf0.js +1 -0
- package/client/dist/assets/nav--1ErXZrS.js +1 -0
- package/client/dist/assets/nav-18nqSJ8h.js +1 -0
- package/client/dist/assets/nav-BuonHb17.js +1 -0
- package/client/dist/assets/nav-C-sCoOLY2.js +1 -0
- package/client/dist/assets/nav-ClXz_3Ic2.js +1 -0
- package/client/dist/assets/nav-CtqgSQeE2.js +1 -0
- package/client/dist/assets/nav-S3YvCaVv.js +1 -0
- package/client/dist/assets/nav-czg8NkN-.js +1 -0
- package/client/dist/assets/settings-BOZBX-Vq.js +1 -0
- package/client/dist/assets/settings-CX29QcQW.js +1 -0
- package/client/dist/assets/settings-CfOWHPzc2.js +1 -0
- package/client/dist/assets/settings-DaXhxNug2.js +1 -0
- package/client/dist/assets/settings-DmyDpuzu.js +1 -0
- package/client/dist/assets/settings-DwPRLcxr2.js +1 -0
- package/client/dist/assets/settings-MjYVJvDE.js +1 -0
- package/client/dist/assets/settings-zJFdTzKE.js +1 -0
- package/client/dist/assets/{setup-BYoDYoPY2.js → setup-BmXfxlzA2.js} +1 -1
- package/client/dist/assets/{setup-faMApo0U2.js → setup-BxVydxbl2.js} +1 -1
- package/client/dist/assets/{setup-C5UbM0RP.js → setup-DIRZ1Lf-.js} +1 -1
- package/client/dist/assets/{setup-Bf9eLKxU.js → setup-DwbKSnKQ.js} +1 -1
- package/client/dist/assets/{setup-JFkWWZnR.js → setup-Dx13pESZ.js} +1 -1
- package/client/dist/assets/{setup-CqGrWb6G.js → setup-G4ZvDKxX.js} +1 -1
- package/client/dist/assets/{setup-tloaTobG2.js → setup-SLAi4xxQ2.js} +1 -1
- package/client/dist/assets/{setup-4us-Bz3H.js → setup-Z01j3st4.js} +1 -1
- package/client/dist/assets/{upload-PnJDPHZH.js → upload-Ox9jUq1X.js} +1 -1
- package/client/dist/assets/{value-BTDefcOV.js → value-BeQVX5gN.js} +1 -1
- package/client/dist/index.html +10 -10
- package/docs/codex.md +5 -5
- package/docs/customizing.md +4 -4
- package/docs/gemini.md +2 -2
- package/docs/getting-started.md +1 -1
- package/docs/guide/de/integrations/1-ai-providers.md +2 -2
- package/docs/guide/de/integrations/5-mcp-server.md +20 -1
- package/docs/guide/de/pipeline/1-rails-and-jobs.md +4 -4
- package/docs/guide/de/pipeline/2-the-job-detail-view.md +1 -1
- package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/de/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/en/integrations/1-ai-providers.md +2 -2
- package/docs/guide/en/integrations/5-mcp-server.md +20 -1
- package/docs/guide/en/pipeline/1-rails-and-jobs.md +4 -4
- package/docs/guide/en/pipeline/2-the-job-detail-view.md +1 -1
- package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/en/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/es/integrations/1-ai-providers.md +2 -2
- package/docs/guide/es/integrations/5-mcp-server.md +20 -1
- package/docs/guide/es/pipeline/1-rails-and-jobs.md +4 -4
- package/docs/guide/es/pipeline/2-the-job-detail-view.md +1 -1
- package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/es/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/fr/integrations/1-ai-providers.md +2 -2
- package/docs/guide/fr/integrations/5-mcp-server.md +20 -1
- package/docs/guide/fr/pipeline/1-rails-and-jobs.md +4 -4
- package/docs/guide/fr/pipeline/2-the-job-detail-view.md +1 -1
- package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/fr/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/it/integrations/1-ai-providers.md +2 -2
- package/docs/guide/it/integrations/5-mcp-server.md +20 -1
- package/docs/guide/it/pipeline/1-rails-and-jobs.md +4 -4
- package/docs/guide/it/pipeline/2-the-job-detail-view.md +1 -1
- package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/it/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/ja/integrations/1-ai-providers.md +2 -2
- package/docs/guide/ja/integrations/5-mcp-server.md +20 -1
- package/docs/guide/ja/pipeline/1-rails-and-jobs.md +4 -4
- package/docs/guide/ja/pipeline/2-the-job-detail-view.md +1 -1
- package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/ja/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/pt/integrations/1-ai-providers.md +2 -2
- package/docs/guide/pt/integrations/5-mcp-server.md +20 -1
- package/docs/guide/pt/pipeline/1-rails-and-jobs.md +4 -4
- package/docs/guide/pt/pipeline/2-the-job-detail-view.md +1 -1
- package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/pt/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/zh/integrations/1-ai-providers.md +2 -2
- package/docs/guide/zh/integrations/5-mcp-server.md +20 -1
- package/docs/guide/zh/pipeline/1-rails-and-jobs.md +4 -4
- package/docs/guide/zh/pipeline/2-the-job-detail-view.md +1 -1
- package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/zh/pipeline/5-the-loop-builder.md +2 -2
- package/docs/internals/switch-to-agent-mode-design.md +301 -0
- package/docs/internals/visual-design-audit.md +184 -0
- package/docs/mcp.md +26 -1
- package/docs/running-pipelines.md +10 -10
- package/docs/tracking-cost.md +1 -1
- package/package.json +1 -1
- package/server/dist/agent-chat-manager.js +107 -33
- package/server/dist/agent-chat-router.js +170 -8
- package/server/dist/agent-cwd-manager.js +2 -47
- package/server/dist/agent-operator-prompt.js +277 -0
- package/server/dist/agent-store.js +27 -5
- package/server/dist/attachment-manager.js +138 -0
- package/server/dist/desktop-db.js +15 -0
- package/server/dist/loop-factory.js +12 -2
- package/server/dist/mcp/guide.js +186 -51
- package/server/dist/mcp/tools/analytics.js +1 -1
- package/server/dist/mcp/tools/app-settings.js +45 -5
- package/server/dist/mcp/tools/chat.js +9 -2
- package/server/dist/mcp/tools/code.js +3 -2
- package/server/dist/mcp/tools/jobs.js +18 -6
- package/server/dist/mcp/tools/loops.js +57 -5
- package/server/dist/mcp/tools/meta.js +43 -3
- package/server/dist/mcp/tools/rails.js +6 -6
- package/server/dist/mcp/tools/setup.js +2 -1
- package/server/dist/mcp/tools/specs.js +60 -38
- package/server/dist/mcp/tools/types.js +17 -8
- package/server/dist/mcp/tools/watch.js +71 -8
- package/server/dist/project-router-helpers.js +1 -1
- package/server/dist/project-router-tickets.js +43 -4
- package/server/dist/providers/claude-adapter.js +6 -0
- package/server/dist/providers/codex-adapter.js +10 -0
- package/server/dist/providers/gemini-adapter.js +3 -0
- package/server/dist/rails-router.js +8 -17
- package/server/dist/spec-models.js +1 -0
- package/client/dist/assets/AgentsPage-BH1isg5j.js +0 -86
- package/client/dist/assets/AnalyticsPage-ByyshYRI.js +0 -1
- package/client/dist/assets/CodePage-CU7T_HYs.js +0 -2
- package/client/dist/assets/DocsDialog-CEmZp_8V.js +0 -11
- package/client/dist/assets/DocsPage-DYbAQ1AT.js +0 -11
- package/client/dist/assets/IntegrationsPage-C6fKdwVH.js +0 -3
- package/client/dist/assets/JobDetailPage-CKfIfBgE.js +0 -16
- package/client/dist/assets/JobsPage-nBng0riZ.js +0 -1
- package/client/dist/assets/LoopBuilderPage-Co_TYqYk.js +0 -7
- package/client/dist/assets/LoopsPage-a2hd37Ya.js +0 -1
- package/client/dist/assets/agent-Dwkz5mPS.js +0 -1
- package/client/dist/assets/dashboard-BTiH361F.js +0 -1
- package/client/dist/assets/dashboard-COSm_14E.js +0 -1
- package/client/dist/assets/dashboard-CfOs70FN2.js +0 -1
- package/client/dist/assets/dashboard-Cyzp4ox9.js +0 -1
- package/client/dist/assets/dashboard-CzHDp14_2.js +0 -1
- package/client/dist/assets/dashboard-D6Woy2B5.js +0 -1
- package/client/dist/assets/dashboard-DwbH4oVH.js +0 -1
- package/client/dist/assets/dashboard-cWhU3krA2.js +0 -1
- package/client/dist/assets/index-B0FxQALR.css +0 -2
- package/client/dist/assets/loops-BDhEfnx82.js +0 -1
- package/client/dist/assets/loops-BM5QggwH.js +0 -1
- package/client/dist/assets/loops-CPjLAAxj.js +0 -1
- package/client/dist/assets/loops-D8Iu6Jss.js +0 -1
- package/client/dist/assets/loops-DKnk79TB2.js +0 -1
- package/client/dist/assets/loops-DLW0aFMm.js +0 -1
- package/client/dist/assets/loops-Dcv3dFy_2.js +0 -1
- package/client/dist/assets/loops-y7wFRx6M.js +0 -1
- package/client/dist/assets/nav-1hj2izqB2.js +0 -1
- package/client/dist/assets/nav-BBUKMAu-2.js +0 -1
- package/client/dist/assets/nav-CLqkP-26.js +0 -1
- package/client/dist/assets/nav-Cv46L837.js +0 -1
- package/client/dist/assets/nav-DE3yWQw6.js +0 -1
- package/client/dist/assets/nav-DgA-rjLk2.js +0 -1
- package/client/dist/assets/nav-EG2pr6vN.js +0 -1
- package/client/dist/assets/nav-r3mIJVfU.js +0 -1
- package/client/dist/assets/settings-BKmORxlB2.js +0 -1
- package/client/dist/assets/settings-BVv2JgQ8.js +0 -1
- package/client/dist/assets/settings-Bghm3pAV.js +0 -1
- package/client/dist/assets/settings-BuC_aplX.js +0 -1
- package/client/dist/assets/settings-Bw_Qk8E32.js +0 -1
- package/client/dist/assets/settings-CAKgJv7p.js +0 -1
- package/client/dist/assets/settings-CEUgk1Ck.js +0 -1
- package/client/dist/assets/settings-C_PDE20s2.js +0 -1
- /package/client/dist/assets/{activity-Uj576ckT.js → activity-BlvN5rhP.js} +0 -0
- /package/client/dist/assets/{activity-w1qMFwxh.js → activity-C5SeKbom.js} +0 -0
- /package/client/dist/assets/{activity-BySXFT2J2.js → activity-DIJexk6v2.js} +0 -0
- /package/client/dist/assets/{activity-B82z3Pna.js → activity-DLdwUYv7.js} +0 -0
- /package/client/dist/assets/{activity-BVpZrs0J.js → activity-DOKV_Wyf.js} +0 -0
- /package/client/dist/assets/{activity-BId0pwuS2.js → activity-DVuiy8TI2.js} +0 -0
- /package/client/dist/assets/{activity-DIWnV0Pl.js → activity-Dsf3J7iW.js} +0 -0
- /package/client/dist/assets/{agentstudio-C7xxqVWn.js → agentstudio-B8H2H4Db2.js} +0 -0
- /package/client/dist/assets/{agentstudio-D-UoNAIA.js → agentstudio-B9zthaTJ.js} +0 -0
- /package/client/dist/assets/{agentstudio-0o3XKrcy.js → agentstudio-BDMpU01s.js} +0 -0
- /package/client/dist/assets/{agentstudio-Bu8m5jDw.js → agentstudio-CSZo7p8K.js} +0 -0
- /package/client/dist/assets/{agentstudio-ObTpVbBP.js → agentstudio-CdD6J23W.js} +0 -0
- /package/client/dist/assets/{agentstudio-PzFB3vfh2.js → agentstudio-D80fZu_M2.js} +0 -0
- /package/client/dist/assets/{agentstudio-OJjjz6Uf2.js → agentstudio-EuKglkaF2.js} +0 -0
- /package/client/dist/assets/{aiedit-DRrNiaB4.js → aiedit-B_VOTUo42.js} +0 -0
- /package/client/dist/assets/{aiedit-sP_iao2j.js → aiedit-Cxoe_0wv.js} +0 -0
- /package/client/dist/assets/{aiedit-DAM_WRAl2.js → aiedit-D59sPapq2.js} +0 -0
- /package/client/dist/assets/{aiedit-BaLZalLa.js → aiedit-DX3BBpXF.js} +0 -0
- /package/client/dist/assets/{aiedit-BIQqv2XM2.js → aiedit-GYOYWCHJ2.js} +0 -0
- /package/client/dist/assets/{aiedit-BjlUzasF.js → aiedit-TON-4N9S.js} +0 -0
- /package/client/dist/assets/{aiedit-BmDufyGU.js → aiedit-ybQmdsST.js} +0 -0
- /package/client/dist/assets/{analytics-MVJRjcY52.js → analytics-B2jjXLCP2.js} +0 -0
- /package/client/dist/assets/{analytics-C4z_NgJZ.js → analytics-BTkXLTfa.js} +0 -0
- /package/client/dist/assets/{analytics-DL2vJCbq.js → analytics-BotqRU_R.js} +0 -0
- /package/client/dist/assets/{analytics-e1mkNTgy2.js → analytics-Ck3vl2Qo2.js} +0 -0
- /package/client/dist/assets/{analytics-Ds_PNxtO2.js → analytics-CqMJQb7N.js} +0 -0
- /package/client/dist/assets/{analytics-B_rxNC9X.js → analytics-DGOoMkaZ.js} +0 -0
- /package/client/dist/assets/{analytics-BDqqCzN9.js → analytics-DL7uwNAI2.js} +0 -0
- /package/client/dist/assets/{attachments-BP0Ac1yt.js → attachments-7w-BR2V2.js} +0 -0
- /package/client/dist/assets/{attachments-CPBVeHX72.js → attachments-B5QX1Xfa2.js} +0 -0
- /package/client/dist/assets/{attachments-Db7JfA8a.js → attachments-BcE7kZG-2.js} +0 -0
- /package/client/dist/assets/{attachments-CJaO1vCH.js → attachments-BsJJXFzT.js} +0 -0
- /package/client/dist/assets/{attachments-8QCKHCEF2.js → attachments-Cbh4AwjP.js} +0 -0
- /package/client/dist/assets/{attachments-CV2uaTGE.js → attachments-D0fGlFve.js} +0 -0
- /package/client/dist/assets/{attachments-CaOjdN332.js → attachments-D3DJpd3e2.js} +0 -0
- /package/client/dist/assets/{browser-C9rUUxo4.js → browser-9GR11iTi.js} +0 -0
- /package/client/dist/assets/{browser-CEqx11iy.js → browser-BOxg0p3n.js} +0 -0
- /package/client/dist/assets/{browser-543jbxE4.js → browser-BSh8xUWV.js} +0 -0
- /package/client/dist/assets/{browser-CLC0etB_2.js → browser-CaV3BJNY2.js} +0 -0
- /package/client/dist/assets/{browser-0xeW8fUa2.js → browser-CmWGMRGf2.js} +0 -0
- /package/client/dist/assets/{browser-ExmELH702.js → browser-D6wbpBOL2.js} +0 -0
- /package/client/dist/assets/{browser-DyG2l9Wa.js → browser-dsgDU1HB.js} +0 -0
- /package/client/dist/assets/{chat-DagUyoVA.js → chat-B90iLDI4.js} +0 -0
- /package/client/dist/assets/{chat-Cu6F3d6g2.js → chat-CAo0jCnj2.js} +0 -0
- /package/client/dist/assets/{chat-CN8BMAMc.js → chat-CW54IP3u.js} +0 -0
- /package/client/dist/assets/{chat-NQPCBQo72.js → chat-CYHUUW0p2.js} +0 -0
- /package/client/dist/assets/{chat-CCytD3P8.js → chat-D1PXX_p2.js} +0 -0
- /package/client/dist/assets/{chat-IjutwlBg.js → chat-DhpcWjOf.js} +0 -0
- /package/client/dist/assets/{chat-vVpwkOp52.js → chat-cFG-UfRA2.js} +0 -0
- /package/client/dist/assets/{code-Dhb6jbAU.js → code--qUk_yn-.js} +0 -0
- /package/client/dist/assets/{code-Ce-nBIwj.js → code-B1aOMCVV.js} +0 -0
- /package/client/dist/assets/{code-BaG05zK62.js → code-B5UrmjaE2.js} +0 -0
- /package/client/dist/assets/{code-Dap54vOb.js → code-CjBHU0nw.js} +0 -0
- /package/client/dist/assets/{code-_NOCo-Ol2.js → code-Cjv4_HkK2.js} +0 -0
- /package/client/dist/assets/{code-32l6Naxu2.js → code-D7GLAjrz2.js} +0 -0
- /package/client/dist/assets/{code-C5cibF2F.js → code-DZKjfzBN.js} +0 -0
- /package/client/dist/assets/{commands-Cc2WpuXa.js → commands-B9XaopQC.js} +0 -0
- /package/client/dist/assets/{commands-k9wbNYoi.js → commands-BCx1uDIE.js} +0 -0
- /package/client/dist/assets/{commands-CM99Upsz2.js → commands-Bhw9Hqsa2.js} +0 -0
- /package/client/dist/assets/{commands-Bc8y9eNo2.js → commands-D0RnooQF2.js} +0 -0
- /package/client/dist/assets/{commands-Bl3-KVfj.js → commands-DuaQT-it.js} +0 -0
- /package/client/dist/assets/{commands-DASXJD-l.js → commands-MqNuGGO4.js} +0 -0
- /package/client/dist/assets/{commands-C5WQ9blx2.js → commands-oB9q2vy_2.js} +0 -0
- /package/client/dist/assets/{common-CHARW6MZ2.js → common-BXzqeuiC2.js} +0 -0
- /package/client/dist/assets/{common-0aY9HQBP.js → common-BaJ6MF7T.js} +0 -0
- /package/client/dist/assets/{common-CQCJzAQq2.js → common-C-jaOdxz2.js} +0 -0
- /package/client/dist/assets/{common-DNhhqjlJ.js → common-CKjy-R8-.js} +0 -0
- /package/client/dist/assets/{common-YdyZtmaI2.js → common-CRd-Ge5u2.js} +0 -0
- /package/client/dist/assets/{common-5jScBJqt.js → common-DPGR3Tfo.js} +0 -0
- /package/client/dist/assets/{common-BdaRciTu.js → common-wEB9RBdf.js} +0 -0
- /package/client/dist/assets/{explore-ChtxIiSM.js → explore-B_79NLR5.js} +0 -0
- /package/client/dist/assets/{explore-BzdMEpuf.js → explore-D-htKul_.js} +0 -0
- /package/client/dist/assets/{explore-B82VMUJ_.js → explore-D5b2jgvR.js} +0 -0
- /package/client/dist/assets/{explore-DfcUfiPw2.js → explore-Dvp-5qOw2.js} +0 -0
- /package/client/dist/assets/{explore-CbW0381i2.js → explore-FaKfWCr72.js} +0 -0
- /package/client/dist/assets/{explore-BGz1rvQE.js → explore-IS8VyaSZ.js} +0 -0
- /package/client/dist/assets/{explore-yRF7wFSp2.js → explore-OZhWV0Eb2.js} +0 -0
- /package/client/dist/assets/{format-command-D96da4fZ.js → format-command-CHImQv6W.js} +0 -0
- /package/client/dist/assets/{integrations-CnrX7vqw2.js → integrations-B97cGWfo2.js} +0 -0
- /package/client/dist/assets/{integrations-BJvrlcc7.js → integrations-Bp3leAh3.js} +0 -0
- /package/client/dist/assets/{integrations-CPKYkG36.js → integrations-C3Ma3GdM.js} +0 -0
- /package/client/dist/assets/{integrations-BA5pM05t.js → integrations-C5MUA-0-.js} +0 -0
- /package/client/dist/assets/{integrations-B0OBPU9_.js → integrations-CiQbCn_W.js} +0 -0
- /package/client/dist/assets/{integrations-DeJFRyXz2.js → integrations-Du_0rDfi2.js} +0 -0
- /package/client/dist/assets/{integrations-DBou159M2.js → integrations-t4X5UVcx2.js} +0 -0
- /package/client/dist/assets/{jira-mi37H4Kt.js → jira-B1XaR6fj.js} +0 -0
- /package/client/dist/assets/{jira-Srx2P5zS.js → jira-BCHx9zUF.js} +0 -0
- /package/client/dist/assets/{jira-DeotPx6P2.js → jira-BqXyykbt2.js} +0 -0
- /package/client/dist/assets/{jira-BwLBgmfI2.js → jira-BzFvFn7t2.js} +0 -0
- /package/client/dist/assets/{jira-BDgxAFTF2.js → jira-D6IDTIsc2.js} +0 -0
- /package/client/dist/assets/{jira-NwlUCcQD.js → jira-DSZ5xFRl.js} +0 -0
- /package/client/dist/assets/{jira-D3GGzXOI.js → jira-DdEKW9Pu.js} +0 -0
- /package/client/dist/assets/{jobs-D8adm2BX.js → jobs-BX9dP3Qn.js} +0 -0
- /package/client/dist/assets/{jobs-B56vQEkh2.js → jobs-BgHEgCWk2.js} +0 -0
- /package/client/dist/assets/{jobs-K_Y8KAZ2.js → jobs-CU-khJTt.js} +0 -0
- /package/client/dist/assets/{jobs-BYIk6Tg_.js → jobs-Ce0SE81t.js} +0 -0
- /package/client/dist/assets/{jobs-C-lM-iax2.js → jobs-CeOcGHd_2.js} +0 -0
- /package/client/dist/assets/{jobs-CYdevGgT.js → jobs-Ct5v2p6T.js} +0 -0
- /package/client/dist/assets/{jobs-OwM0ZWhI2.js → jobs-m7L0K9uC2.js} +0 -0
- /package/client/dist/assets/{mcp-D3E4_Mmk2.js → mcp-4QbfLPa4.js} +0 -0
- /package/client/dist/assets/{mcp-B6nwJJmR.js → mcp-CXy61khH.js} +0 -0
- /package/client/dist/assets/{mcp-CNgFiTEh.js → mcp-CmOBPDjE.js} +0 -0
- /package/client/dist/assets/{mcp-mupPuPDO2.js → mcp-NlLc9T8u2.js} +0 -0
- /package/client/dist/assets/{mcp-B4irfLJ2.js → mcp-_DUUXTHB2.js} +0 -0
- /package/client/dist/assets/{mcp-BP7PpbDr2.js → mcp-dlOyUQQy2.js} +0 -0
- /package/client/dist/assets/{mcp-BOoEGTSQ.js → mcp-zqSVP7nA.js} +0 -0
- /package/client/dist/assets/{specs-D4z5d8uq.js → specs-57pue7UQ.js} +0 -0
- /package/client/dist/assets/{specs-CWNKAScX2.js → specs-BWQ-0EXt2.js} +0 -0
- /package/client/dist/assets/{specs-B8mwScoM2.js → specs-BYSOlQRw2.js} +0 -0
- /package/client/dist/assets/{specs-B5XOoH-02.js → specs-CkP0B28v2.js} +0 -0
- /package/client/dist/assets/{specs-DgvIRZtM.js → specs-RSYuLgF4.js} +0 -0
- /package/client/dist/assets/{specs-DuRzE5wE.js → specs-d-zU7_3Q.js} +0 -0
- /package/client/dist/assets/{specs-Bj_3fDrQ.js → specs-nM5Cpcqe.js} +0 -0
- /package/client/dist/assets/{terminal-DoMTHedv2.js → terminal-Adi3W-GZ2.js} +0 -0
- /package/client/dist/assets/{terminal-DOwfkxqa2.js → terminal-BA6FCZna2.js} +0 -0
- /package/client/dist/assets/{terminal-CH0fdHvP.js → terminal-BCIUSkrg.js} +0 -0
- /package/client/dist/assets/{terminal-B2sExUis.js → terminal-C8KlD61D.js} +0 -0
- /package/client/dist/assets/{terminal-DjSSa5qP.js → terminal-D3RTuBwy.js} +0 -0
- /package/client/dist/assets/{terminal-w0i-OCp32.js → terminal-DCkOEjSj2.js} +0 -0
- /package/client/dist/assets/{terminal-CPMigUX7.js → terminal-DOuNm2BI.js} +0 -0
- /package/client/dist/assets/{tickets-D00mSt832.js → tickets-B2q36GlQ2.js} +0 -0
- /package/client/dist/assets/{tickets-CQTana1u.js → tickets-Bsyv_znj.js} +0 -0
- /package/client/dist/assets/{tickets-D7CSuWjO.js → tickets-C_UPra_1.js} +0 -0
- /package/client/dist/assets/{tickets-heDAaj8C2.js → tickets-D72LbUtU2.js} +0 -0
- /package/client/dist/assets/{tickets-DvbFg_-c2.js → tickets-DDjU7UfE2.js} +0 -0
- /package/client/dist/assets/{tickets-onKZz6Dd.js → tickets-DR4ZrPMf.js} +0 -0
- /package/client/dist/assets/{tickets-Dq7HDy8n.js → tickets-DiUA3rXq.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`Loops`,t=`再利用可能な自動化ループ — すべてのプロジェクトで共有されます。`,n=`新しいループ`,r={drafts:`下書き`,published:`公開済み`,templates:`テンプレート`,builtIn:`組み込み`},i={search:`テンプレートを検索…`,noResults:`フィルターに一致するテンプレートがありません。`,clearFilter:`フィルターをクリア`,resultCount_one:`{{count}} 件のテンプレート`,resultCount_other:`{{count}} 件のテンプレート`,needsSpec:`スペックが必要`,standalone:`単独実行`,needsSpecHint:`スペックをドラッグした rail で実行`,standaloneHint:`単独で実行 — プロジェクトを選ぶだけ`},a={API:`API`,Automation:`自動化`,CI:`CI`,Database:`データベース`,Debugging:`デバッグ`,DevOps:`DevOps`,Docs:`ドキュメント`,Git:`Git`,Maintenance:`メンテナンス`,Performance:`パフォーマンス`,Planning:`計画`,Quality:`品質`,Review:`レビュー`,Security:`セキュリティ`,Testing:`テスト`},o={draft:`下書き`,published:`公開済み`,running:`実行中`},s={title:`ループはまだありません`,body:`ゼロから作成するか、テンプレートから始めましょう。`},c={edit:`編集`,delete:`削除`,publish:`公開`,unpublish:`公開を取り消す`,duplicate:`複製`,use:`テンプレートを使用`,preview:`プレビュー`,fork:`フォークして編集`,run:`実行`,export:`エクスポート`,import:`インポート`,select:`{{name}} を選択`},l={nodes_one:`{{count}} 個のノード`,nodes_other:`{{count}} 個のノード`,usedIn:`使用中 · {{project}}`},u=`このループを削除しますか?すべてのレールのピッカーから表示されなくなります。`,d=`新しいループ`,f={load:`ループの読み込みに失敗しました`,save:`ループの保存に失敗しました`,publishInvalid:`このループはまだ公開できません — ハイライトされた問題を修正してください。`},p={back:`ループに戻る`,save:`保存`,saved:`ループを保存しました`,publish:`公開`,published:`ループを公開しました`,addNode:`ノードを追加`,deleteNode:`ノードを削除`,config:{maxIterations:`最大反復回数`,timeout:`タイムアウト(分)`,maxIterationsHint:`Loop Decider の反復回数の上限 — 目標が未達でも到達したらループを停止。暴走ループを防ぎます。`,timeoutHint:`実行全体の実時間の上限(分)。超過すると実行は停止し失敗として記録されます — 最大反復回数と並ぶ安全策です。`,maxCost:`最大コスト ($)`,maxCostHint:`実行全体の任意の USD 予算。ステップ間で確認(各ステップの費用はそのステップ終了時にのみ判明)するため、合計が超えると次のステップ前にループを停止します(1ステップ分超過する可能性あり)。Claude 以外のプロバイダーでは費用は推定値です。空欄 = 上限なし。`},nodes:{start:`開始`,"ai-step":`AI ステップ`,shell:`シェル`,decider:`ループ判定`,condition:`条件`,end:`終了`},inspector:{selectNode:`編集するノードを選択してください。`,prompt:`プロンプト`,provider:`プロバイダー`,model:`モデル`,effort:`推論の労力`,command:`コマンド`,goal:`目標 / 停止条件`,join:`結合`,outcome:`結果`,startNote:`ループのエントリーポイント。最初のステップに接続してください。`,promptHint:`トークンをクリックまたはドラッグしてプロンプトに挿入します。`,tokensSpec:`Spec フィールド`,tokensJira:`Jira`,tokensCommands:`コマンド`,label:`名前`},branch:{continue:`↻ 続行`,stop:`✓ 終了`},edgesHelp:{label:`ステップの接続方法`,body:`矢印は実行の順序を設定するもので、データの流れではありません — ボックスには入力ポートがなく、エッジはパラメータを運びません。各 AI Step は自動的にそのセッションを再開し (これまでの完全なコンテキスト)、加えて前のステップの短い要約を引き継ぎます。手作業での配線は一切ありません。Loop Decider には 2 つの出力があります: ↻ Continue (目標未達 → ループバック) と ✓ Stop (目標達成 → 終了)。`},arrange:{label:`整列`,vertical:`垂直`,horizontal:`水平`,grid:`グリッド`,reset:`リセット`},constants:{label:`定数`,manage:`定数を管理`,title:`ループ定数`,empty:`カスタム定数はまだありません。`,name:`名前`,value:`値`,add:`追加`,builtinBadge:`組み込み`},paste:{done_one:`{{count}} 個のステップを貼り付けました`,done_other:`{{count}} 個のステップを貼り付けました`},problems:{count_one:`{{count}} 件の問題`,count_other:`{{count}} 件の問題`,NO_START:`開始ノードを追加してください。`,MULTIPLE_START:`開始ノードは1つだけ許可されます。`,NO_END:`終了ノードを少なくとも1つ追加してください。`,ORPHAN:`このステップは開始から到達できません。`,DECIDER_BRANCHES:`Loop Decider には継続と停止の分岐が必要です。`,EMPTY_PROMPT:`AI ステップのプロンプトが空です。`,EMPTY_COMMAND:`Shell ステップのコマンドが空です。`,EMPTY_GOAL:`Loop Decider に目標がありません。`,DEAD_END:`このステップには出力接続がありません。`},preview:{label:`プレビュー`,title:`ドライラン プレビュー`,sampleNote:`Spec の値はサンプルです。コマンドと定数は実行時と同じように解決されます。`,empty:`プレビューするステップがありません。`,error:`プレビューに失敗しました`}},m={steps:`ステップ`,limits:`最大 {{iterations}} 回 · {{timeout}} 分タイムアウト`},h=`組み込み`,g={title:`{{name}} を実行`,subtitle:`このループをプロジェクトで実行します(チケット不要)。`,project:`プロジェクト`,provider:`プロバイダー`,model:`モデル`,effort:`推論の強度`,execute:`実行`,noProjects:`利用可能なプロジェクトがありません。`,launched:`{{name}} を実行中`},_=JSON.parse(`{"ship-and-green":{"name":"Ship & Green","description":"完全自律: spec を実装し、検証し、失敗時には修正 (refine) する — すべてがグリーンになるまで 検証 → 修正 → 検証 をループします。人手による介入は不要です。"},"verify-pass":{"name":"Verify Pass","description":"自律的な検証と修正: プロジェクトの build / lint / テストを検出して実行し、失敗時には修正 — グリーンになるまで 検証 → 修正 → 検証 を繰り返します。"},"ci-watch":{"name":"CI Watch","description":"オープンな PR の CI チェックをポーリングし (エージェントがリポジトリの CI ツールを使用)、すべてのチェックがグリーンになるまで続けます。"},"lint-and-fix":{"name":"Lint & Fix","description":"エージェントがプロジェクトの linter を検出して実行し、すべての問題を修正します。コードベースがクリーンになるまで反復します。"},"type-safe":{"name":"Type Safe","description":"エージェントがプロジェクトの型チェッカーを検出して実行し、すべてのエラーを解消します。問題なくパスするまで反復します。"},"coverage-climb":{"name":"Coverage Climb","description":"エージェントがプロジェクトのカバレッジツールを実行し、しきい値をパスするまで的を絞ったテストを追加します。"},"build-fix":{"name":"Build Fix","description":"エージェントがプロジェクトの本番 build を検出して実行し、グリーンになるまでコンパイル / バンドルのエラーを修正します。"},"deploy-check":{"name":"Deploy Check","description":"エージェントがデプロイ / ヘルスステータスをポーリングし (プロジェクトの deploy ツールを使用)、サービスが正常を報告するまで続けます。"},"factory_implement":{"name":"実装","description":"完全自律: spec を実装し、検証し、失敗時には修正 (refine) する — すべてのテストがパスするまでループします。"},"factory_batch":{"name":"一括実装","description":"レールのすべてのチケットを一度に一括実装し、失敗時にはグリーンになるまで 検証 + 修正 を行います。"},"factory_ultracode":{"name":"Freestyle","description":"スペックをそのままモデルに渡して完全な自由を与えます — パイプラインなしで通常のコーディングエージェントのように動作し、その後グリーンになるまで検証+改善します。Claude 専用。"},"autoloop-tdd":{"name":"TDD 自動ループ","description":"{{spec.title}} に対する厳格なレッド・グリーン・リファクタのサイクル。まず失敗するテストで各挙動を固定し、グリーンにする最小限のコードだけを書き、整理する。仕様を完全にカバーするまで繰り返します。"},"e2e-until-green":{"name":"グリーンまで E2E","description":"{{spec.title}} の E2E スイートを実行し、失敗したユーザーフローを一つずつ診断して、根本にある UI や連携の不具合を修正。すべての E2E が通るまでサイクルを回します。"},"flaky-test-triage":{"name":"Flaky テスト切り分け","description":"{{spec.title}} まわりの失敗テストを何度か再実行し、本物のリグレッションと不安定な flake を切り分け。実際の破損を直し、flaky なものは安定化または記録します。"},"independent-verifier-pass":{"name":"独立検証パス","description":"{{spec.title}} を敵対的に検証。ビルド・lint・テストをゼロから再実行し、過去の「動いた」という主張ではなく生のコマンド出力だけを信じて、あらゆる抜けを洗い出し修正します。"},"post-edit-test-guard":{"name":"編集後テストガード","description":"{{spec.title}} の編集をひとまとまり加えるたびに、変更ファイルに関わる最小限のテストを即座に実行。リグレッションを最後ではなく発生した瞬間に捕まえます。"},"post-merge-regression-guard":{"name":"マージ後リグレッション防止","description":"マージやリベースで他人の作業が {{spec.title}} に入った直後に高速な smoke test を実行し、連携の破損を即座に検出。新たな機能開発を上に積み始める前に手当てします。"},"pre-commit-guard":{"name":"コミット前ガード","description":"{{spec.title}} のすべてのコミットを差し止める安全ゲート。先にテストスイートを実行し、レッドの間はコミットを拒否するので、壊れたコードが履歴に入りません。"},"visual-regression-until-match":{"name":"一致までビジュアル回帰","description":"変更した UI のビジュアルスナップショットを取得し、意図しないピクセル差分をすべて追跡。承認された意図的なデザイン変更だけが残り、ビジュアルスイートがグリーンになるまで自己修正します。"},"format-until-clean":{"name":"クリーンまで整形","description":"プロジェクトのフォーマッタを適用し、自動修正できない少数のスタイル問題を片付け、再度フォーマットを実行しても作業ツリーが変化しなくなるまで続けます。"},"lint-typecheck-fix":{"name":"lint・型チェック修正","description":"linter と型チェッカーを実行し、報告された各問題を最小限の編集で解消。両方のゲートが完全にクリーンになるまでループします。"},"a11y-audit-until-clean":{"name":"クリーンまで A11y 監査","description":"変更した画面に自動アクセシビリティチェックを実行し、違反をカテゴリごとに一つずつ修正。監査の指摘がゼロになるまで繰り返します。"},"de-sloppify-pass":{"name":"雑さ除去パス","description":"機能が入った後、差分に残った雑なもの — デバッグ出力、不要な分岐、いい加減な命名、肥大した関数 — を一掃して整理し、その整理が何も壊していないことを証明します。"},"fix-ci-until-green":{"name":"グリーンまで CI 修正","description":"このブランチで直近にレッドになった CI を取得し、手元で破損を再現。本当の原因を直してプッシュし、すべてのチェックが成功するまでサイクルを回します。"},"pr-babysitter":{"name":"PR 見守り","description":"一定間隔で、見ている PR を巡回し、各 PR をマージ可能に保ちます。レッドの CI を立て直し、ベースブランチから遅れたものはリベースし、停滞したものには催促を — 人の判断が要るものはエスカレーションします。"},"pr-watch-loop":{"name":"PR 監視ループ","description":"ウォッチリストの PR を一定間隔でポーリングし、各 PR の CI とレビュー状況を要約。些細な阻害要因はその場で片付け、担当者が必要なものは表に出します。"},"pr-self-review":{"name":"PR セルフレビュー","description":"自分の作業差分を、厳しいシニアレビュアーになったつもりで批評し、見つけた点を解消。重大な指摘が出なくなるまで再レビューします — PR を手放す前に。"},"spec-first-ship":{"name":"仕様ファースト出荷","description":"要件チェックリストを一項目ずつ完了へ導きます。各パスで未チェックの要件を一つ実装して証明し、チェックを付ける — 仕様が「完了」の契約になります。"},"dependency-audit-weekly":{"name":"週次 依存監査","description":"毎週、遅れているパッケージを棚卸しし、安全に上げられるものと危ういものに仕分けて、すぐ実行できる明確なアップグレード計画を返します。"},"dependency-upgrade-one-by-one":{"name":"依存を一つずつ更新","description":"パスごとに古いパッケージを正確に一つだけ上げ、それで壊れた箇所を直し、プロジェクトがまだ動くことを証明してコミット — まとめて上げるより遥かに安全です。"},"knip-until-clean":{"name":"クリーンまでデッドコード除去","description":"参照されないエクスポート、孤立したファイル、誰も import しない依存を洗い出して安全に削除。デッドコードスキャナの報告が無くなるまで続けます。"},"docs-sync-after-edits":{"name":"ドキュメントをコードに同期","description":"コード編集を一通り終えたら、変更が触れたドキュメント — README、API リファレンス、インラインコメント — をすべて探し出し、実際の挙動に合わせて更新します。"},"security-audit-weekly":{"name":"週次 セキュリティ監査","description":"依存ツリーに対し毎週、脆弱性スキャンを実行し、出てきたものを深刻度と実際の露出度でトリアージして、優先順位付きの是正計画を返します。"},"npm-audit-fix-loop":{"name":"脆弱性を一つずつ修正","description":"依存の high・critical の勧告を慎重に解消します。パスごとに一つ修正し、それぞれをテストスイートで検証 — ビルドを静かに壊しかねない一括強制修正は避けます。"},"api-contract-until-match":{"name":"一致まで API 契約","description":"実装のレスポンスが公開された API 契約を満たすまで作業を進め、スキーマが約束する内容とハンドラが実際に返す内容との乖離を埋めます。"},"openapi-sync-until-valid":{"name":"妥当になるまで OpenAPI 同期","description":"OpenAPI ドキュメントを整形式かつ実際のルートハンドラに忠実に保ちます。仕様エラーやコードとドキュメントのずれをパスごとに直し、linter が満足するまで続けます。"},"migration-until-applied":{"name":"適用までマイグレーション","description":"データベーススキーマをきれいに前へ進めます。保留中のマイグレーションを実行し、浮かび上がったスキーマや SQL の不具合を直し、マイグレーション履歴の整合を確認します。"},"bundle-size-budget":{"name":"バンドルサイズ予算","description":"クライアントバンドルを予算超過させずに機能を投入します。パスごとに計測し、サイズゲートがグリーンになるまで削減・コード分割・遅延読み込みを行います。"},"changelog-sync-after-ship":{"name":"出荷後 Changelog 同期","description":"出荷後、changelog がユーザー向けの物語を語れているか確認します。入った変更を見直し、Keep a Changelog 形式のエントリを書き、目に見える変更が漏れていないか確かめます。"},"guardrails-learning-loop":{"name":"ガードレール学習ループ","description":"ゲートがグリーンになるまで反復しますが、同じ失敗が二度起きるたびに先にガードレールメモを書き残し、既に失敗した手を試し直してイテレーションを無駄にしないようにします。"},"ralph-story-executor":{"name":"バックログ実行","description":"ユーザーストーリーのバックログを毎回まっさらな文脈で一つずつ処理します。次の未完ストーリーを選び、それだけを作り、プロジェクトのゲートがグリーンに保たれることを証明し、コミットして完了とし、次へ進みます。"},"investigation-script-loop":{"name":"調査スクリプトループ","description":"バグの真の原因を実証的に突き止めます。疑わしい挙動を再現する使い捨ての小さなスクリプトを書いて実行し、生の出力を読み、その出力自体が根本原因を示すまでプローブを磨きます。"},"reflexion-debug-loop":{"name":"省察デバッグループ","description":"失敗するテストを空回りせずグリーンにします。試行が失敗するたびに短い省察をディスクに記録し、次の試みの前に参照することで、既に除外した修正をループが繰り返さないようにします。"},"merge-conflict-resolver":{"name":"マージ競合の解決","description":"リベースでブランチをターゲットに追従させ、両者の意図を保ちながら競合をファイルごとに解消。結果がなお通ることを証明してから、ブランチが最新になったと宣言します。"},"staging-smoke-test":{"name":"ステージング smoke test","description":"ステージングへのデプロイ後、固定の smoke チェックリスト — 認証、主要なユーザー導線、重要な連携 — をたどり、壊れるたびに最小の問題を直して再実行。チェックリスト全体がクリーンになるまで繰り返します。"},"deploy-verification-loop":{"name":"デプロイ検証ループ","description":"デプロイ後、health と smoke のエンドポイントを一定間隔でポーリングし、不健全な応答を調査して修正またはエスカレーション。設定したすべてのエンドポイントが成功を報告するまでチェックを続けます。"},"factory_openspec":{"name":"OpenSpec Lifecycle","description":"チケットからアーカイブまでの OpenSpec ライフサイクル: アーティファクト生成 (opsx:ff) → 実装 (opsx:apply) → 検証 (opsx:verify)。FAIL なら同じ change を修正しに戻り、PASS なら無人でアーカイブします。"}}`),v={title:e,subtitle:t,newLoop:n,sections:r,gallery:i,categories:a,status:o,empty:s,actions:c,card:l,confirmDelete:u,newLoopName:d,errors:f,builder:p,preview:m,builtInBadge:h,run:g,catalog:_,import:{done_one:`{{count}} 個のループをインポートしました`,done_other:`{{count}} 個のループをインポートしました`,skipped_one:`{{count}} 件の重複をスキップ:{{names}}`,skipped_other:`{{count}} 件の重複をスキップ:{{names}}`,invalid:`そのファイルは有効なループのエクスポートではありません。`}};export{c as actions,p as builder,h as builtInBadge,l as card,_ as catalog,a as categories,u as confirmDelete,v as default,s as empty,f as errors,i as gallery,n as newLoop,d as newLoopName,m as preview,g as run,r as sections,o as status,t as subtitle,e as title};
|
|
@@ -0,0 +1 @@
|
|
|
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}}`},n={desktopTitle:`Desktop`,loops:`Loops`,docs:`Docs`,analytics:`Análises`,settings:`Definições`},r={projectTitle:`Projeto`,dashboard:`Dashboard`,jobs:`Jobs`,analytics:`Análises`,agents:`Agentes`,code:`Código`,integrations:`Integrações`,settings:`Definições`},i={home:`Início`,analytics:`Análises`,docs:`Docs`,settings:`Definições`,noCli:`Sem CLI de IA`,noCliTooltip:`Nenhuma CLI de IA detetada. Instale o Claude Code ou a Codex CLI.`,activeCli:`CLI ativa: {{label}}`},a={connected:`ligado`,syncing:`a sincronizar...`,reconnecting:`a religar...`,disconnected:`desligado`,connectionRestored:`Ligação restaurada`},o={searchShortcut:`Pesquisar (⌘K)`,searchPlaceholder:`Pesquisar…`,minimizeWindow:`Minimizar janela`,maximizeWindow:`Maximizar janela`,closeWindow:`Fechar janela`},s={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`},c={title:`Ocorreu um erro`,occurredIn:`Ocorreu um erro em <strong>{{name}}</strong>`},l={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`},u={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)`},d={sidebarPin:e,projects:t,arcSidebar:n,rightSidebar:r,navbar:i,statusBar:a,titleBar:o,costAlerts:s,errorBoundary:c,healthWidget:l,collapsibleSection:u};export{n as arcSidebar,u as collapsibleSection,s as costAlerts,d as default,c as errorBoundary,l as healthWidget,i as navbar,t as projects,r as rightSidebar,e as sidebarPin,a as statusBar,o as titleBar};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./chunk-BNv3lrIs.js";var t=e({arcSidebar:()=>i,collapsibleSection:()=>f,costAlerts:()=>l,default:()=>p,errorBoundary:()=>u,healthWidget:()=>d,navbar:()=>o,projects:()=>r,rightSidebar:()=>a,sidebarPin:()=>n,statusBar:()=>s,titleBar:()=>c}),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}}`},i={desktopTitle:`Desktop`,loops:`Loops`,docs:`Docs`,analytics:`Analytics`,settings:`Settings`},a={projectTitle:`Project`,dashboard:`Dashboard`,jobs:`Jobs`,analytics:`Analytics`,agents:`Agents`,code:`Code`,integrations:`Integrations`,settings:`Settings`},o={home:`Home`,analytics:`Analytics`,docs:`Docs`,settings:`Settings`,noCli:`No AI CLI`,noCliTooltip:`No AI CLI detected. Install Claude Code or Codex CLI.`,activeCli:`Active CLI: {{label}}`},s={connected:`connected`,syncing:`syncing...`,reconnecting:`reconnecting...`,disconnected:`disconnected`,connectionRestored:`Connection restored`},c={searchShortcut:`Search (⌘K)`,searchPlaceholder:`Search…`,minimizeWindow:`Minimize window`,maximizeWindow:`Maximize window`,closeWindow:`Close window`},l={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`},u={title:`Something went wrong`,occurredIn:`An error occurred in <strong>{{name}}</strong>`},d={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`},f={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)`},p={sidebarPin:n,projects:r,arcSidebar:i,rightSidebar:a,navbar:o,statusBar:s,titleBar:c,costAlerts:l,errorBoundary:u,healthWidget:d,collapsibleSection:f};export{t};
|
|
@@ -0,0 +1 @@
|
|
|
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}} を折りたたむ`},n={desktopTitle:`Desktop`,loops:`Loops`,docs:`ドキュメント`,analytics:`分析`,settings:`設定`},r={projectTitle:`プロジェクト`,dashboard:`ダッシュボード`,jobs:`ジョブ`,analytics:`分析`,agents:`エージェント`,code:`コード`,integrations:`インテグレーション`,settings:`設定`},i={home:`ホーム`,analytics:`分析`,docs:`ドキュメント`,settings:`設定`,noCli:`AI CLI なし`,noCliTooltip:`AI CLI が見つかりません。Claude Code または Codex CLI をインストールしてください。`,activeCli:`使用中の CLI: {{label}}`},a={connected:`接続済み`,syncing:`同期中...`,reconnecting:`再接続中...`,disconnected:`切断`,connectionRestored:`接続が回復しました`},o={searchShortcut:`検索 (⌘K)`,searchPlaceholder:`検索…`,minimizeWindow:`ウィンドウを最小化`,maximizeWindow:`ウィンドウを最大化`,closeWindow:`ウィンドウを閉じる`},s={costAlertTitle:`コストアラート`,costAlertDescription:"ジョブのコストが ${{cost}} — しきい値は ${{threshold}} です",dailyBudgetTitle:`1 日の予算を超過しました`,dailyBudgetDescription:"本日 ${{budget}} のうち ${{spent}} を消費しました。キューを一時停止しました。",desktopBudgetTitle:`Desktop の 1 日の予算を超過しました`,desktopBudgetDescription:"Desktop 全体で ${{budget}} のうち ${{spent}} を消費。キューを一時停止しました。",bannerMessage:"1 日の予算を超過しました — ${{budget}} のうち ${{spent}} を消費。キューは一時停止中です。",dismiss:`閉じる`},c={title:`問題が発生しました`,occurredIn:`<strong>{{name}}</strong> でエラーが発生しました`},l={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}}日前`},u={dragToReorder:`ドラッグで並べ替え`,unpinAria:`セクションのピン留めを解除 (デフォルトで折りたたみ)`,pinAria:`セクションをピン留め (常に展開)`,unpinTooltip:`ピン留め解除 (デフォルトで折りたたみ)`,pinTooltip:`ピン留めして開く (常に展開)`},d={sidebarPin:e,projects:t,arcSidebar:n,rightSidebar:r,navbar:i,statusBar:a,titleBar:o,costAlerts:s,errorBoundary:c,healthWidget:l,collapsibleSection:u};export{n as arcSidebar,u as collapsibleSection,s as costAlerts,d as default,c as errorBoundary,l as healthWidget,i as navbar,t as projects,r as rightSidebar,e as sidebarPin,a as statusBar,o as titleBar};
|
|
@@ -0,0 +1 @@
|
|
|
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}}`},n={desktopTitle:`Desktop`,loops:`Loops`,docs:`Docs`,analytics:`Analytics`,settings:`Impostazioni`},r={projectTitle:`Progetto`,dashboard:`Dashboard`,jobs:`Job`,analytics:`Analytics`,agents:`Agenti`,code:`Codice`,integrations:`Integrazioni`,settings:`Impostazioni`},i={home:`Home`,analytics:`Analytics`,docs:`Docs`,settings:`Impostazioni`,noCli:`Nessuna CLI AI`,noCliTooltip:`Nessuna CLI AI rilevata. Installa Claude Code o Codex CLI.`,activeCli:`CLI attiva: {{label}}`},a={connected:`connesso`,syncing:`sincronizzazione...`,reconnecting:`riconnessione...`,disconnected:`disconnesso`,connectionRestored:`Connessione ripristinata`},o={searchShortcut:`Cerca (⌘K)`,searchPlaceholder:`Cerca…`,minimizeWindow:`Riduci a icona`,maximizeWindow:`Ingrandisci finestra`,closeWindow:`Chiudi finestra`},s={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`},c={title:`Qualcosa è andato storto`,occurredIn:`Si è verificato un errore in <strong>{{name}}</strong>`},l={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`},u={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)`},d={sidebarPin:e,projects:t,arcSidebar:n,rightSidebar:r,navbar:i,statusBar:a,titleBar:o,costAlerts:s,errorBoundary:c,healthWidget:l,collapsibleSection:u};export{n as arcSidebar,u as collapsibleSection,s as costAlerts,d as default,c as errorBoundary,l as healthWidget,i as navbar,t as projects,r as rightSidebar,e as sidebarPin,a as statusBar,o as titleBar};
|
|
@@ -0,0 +1 @@
|
|
|
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}}`},n={desktopTitle:`Desktop`,loops:`Loops`,docs:`文档`,analytics:`分析`,settings:`设置`},r={projectTitle:`项目`,dashboard:`仪表盘`,jobs:`任务`,analytics:`分析`,agents:`Agent`,code:`代码`,integrations:`集成`,settings:`设置`},i={home:`首页`,analytics:`分析`,docs:`文档`,settings:`设置`,noCli:`无 AI CLI`,noCliTooltip:`未检测到 AI CLI。请安装 Claude Code 或 Codex CLI。`,activeCli:`当前 CLI:{{label}}`},a={connected:`已连接`,syncing:`同步中...`,reconnecting:`重新连接中...`,disconnected:`已断开`,connectionRestored:`连接已恢复`},o={searchShortcut:`搜索 (⌘K)`,searchPlaceholder:`搜索…`,minimizeWindow:`最小化窗口`,maximizeWindow:`最大化窗口`,closeWindow:`关闭窗口`},s={costAlertTitle:`成本警报`,costAlertDescription:"任务成本 ${{cost}} — 阈值为 ${{threshold}}",dailyBudgetTitle:`已超出每日预算`,dailyBudgetDescription:"今日已花费 ${{spent}},预算 ${{budget}}。队列已暂停。",desktopBudgetTitle:`已超出 Desktop 每日预算`,desktopBudgetDescription:"Desktop 总花费 ${{spent}},预算 ${{budget}}。队列已暂停。",bannerMessage:"已超出每日预算 — 已花费 ${{spent}},预算 ${{budget}}。队列已暂停。",dismiss:`忽略`},c={title:`出错了`,occurredIn:`<strong>{{name}}</strong> 中发生了错误`},l={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}} 天前`},u={dragToReorder:`拖动以重新排序`,unpinAria:`取消固定该区块(默认折叠)`,pinAria:`固定该区块(保持展开)`,unpinTooltip:`取消固定(默认折叠)`,pinTooltip:`固定展开(保持展开)`},d={sidebarPin:e,projects:t,arcSidebar:n,rightSidebar:r,navbar:i,statusBar:a,titleBar:o,costAlerts:s,errorBoundary:c,healthWidget:l,collapsibleSection:u};export{n as arcSidebar,u as collapsibleSection,s as costAlerts,d as default,c as errorBoundary,l as healthWidget,i as navbar,t as projects,r as rightSidebar,e as sidebarPin,a as statusBar,o as titleBar};
|
|
@@ -0,0 +1 @@
|
|
|
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}}`},n={desktopTitle:`Desktop`,loops:`Loops`,docs:`Docs`,analytics:`Analíticas`,settings:`Ajustes`},r={projectTitle:`Proyecto`,dashboard:`Dashboard`,jobs:`Jobs`,analytics:`Analíticas`,agents:`Agentes`,code:`Código`,integrations:`Integraciones`,settings:`Ajustes`},i={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 o Codex CLI.`,activeCli:`CLI activo: {{label}}`},a={connected:`conectado`,syncing:`sincronizando...`,reconnecting:`reconectando...`,disconnected:`desconectado`,connectionRestored:`Conexión restablecida`},o={searchShortcut:`Buscar (⌘K)`,searchPlaceholder:`Buscar…`,minimizeWindow:`Minimizar ventana`,maximizeWindow:`Maximizar ventana`,closeWindow:`Cerrar ventana`},s={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`},c={title:`Algo ha salido mal`,occurredIn:`Se ha producido un error en <strong>{{name}}</strong>`},l={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`},u={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)`},d={sidebarPin:e,projects:t,arcSidebar:n,rightSidebar:r,navbar:i,statusBar:a,titleBar:o,costAlerts:s,errorBoundary:c,healthWidget:l,collapsibleSection:u};export{n as arcSidebar,u as collapsibleSection,s as costAlerts,d as default,c as errorBoundary,l as healthWidget,i as navbar,t as projects,r as rightSidebar,e as sidebarPin,a as statusBar,o as titleBar};
|
|
@@ -0,0 +1 @@
|
|
|
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}}`},n={desktopTitle:`Desktop`,loops:`Loops`,docs:`Docs`,analytics:`Analytics`,settings:`Paramètres`},r={projectTitle:`Projet`,dashboard:`Tableau de bord`,jobs:`Jobs`,analytics:`Analytics`,agents:`Agents`,code:`Code`,integrations:`Intégrations`,settings:`Paramètres`},i={home:`Accueil`,analytics:`Analytics`,docs:`Docs`,settings:`Paramètres`,noCli:`Aucune CLI IA`,noCliTooltip:`Aucune CLI IA détectée. Installez Claude Code ou Codex CLI.`,activeCli:`CLI active : {{label}}`},a={connected:`connecté`,syncing:`synchronisation...`,reconnecting:`reconnexion...`,disconnected:`déconnecté`,connectionRestored:`Connexion rétablie`},o={searchShortcut:`Rechercher (⌘K)`,searchPlaceholder:`Rechercher…`,minimizeWindow:`Réduire la fenêtre`,maximizeWindow:`Agrandir la fenêtre`,closeWindow:`Fermer la fenêtre`},s={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`},c={title:`Une erreur est survenue`,occurredIn:`Une erreur s'est produite dans <strong>{{name}}</strong>`},l={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`},u={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)`},d={sidebarPin:e,projects:t,arcSidebar:n,rightSidebar:r,navbar:i,statusBar:a,titleBar:o,costAlerts:s,errorBoundary:c,healthWidget:l,collapsibleSection:u};export{n as arcSidebar,u as collapsibleSection,s as costAlerts,d as default,c as errorBoundary,l as healthWidget,i as navbar,t as projects,r as rightSidebar,e as sidebarPin,a as statusBar,o as titleBar};
|
|
@@ -0,0 +1 @@
|
|
|
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`},n={desktopTitle:`Desktop`,loops:`Loops`,docs:`Doku`,analytics:`Analytics`,settings:`Einstellungen`},r={projectTitle:`Projekt`,dashboard:`Dashboard`,jobs:`Jobs`,analytics:`Analytics`,agents:`Agenten`,code:`Code`,integrations:`Integrationen`,settings:`Einstellungen`},i={home:`Start`,analytics:`Analytics`,docs:`Doku`,settings:`Einstellungen`,noCli:`Keine AI-CLI`,noCliTooltip:`Keine AI-CLI gefunden. Installiere Claude Code oder Codex CLI.`,activeCli:`Aktive CLI: {{label}}`},a={connected:`verbunden`,syncing:`synchronisiere...`,reconnecting:`verbinde neu...`,disconnected:`getrennt`,connectionRestored:`Verbindung wiederhergestellt`},o={searchShortcut:`Suchen (⌘K)`,searchPlaceholder:`Suchen…`,minimizeWindow:`Fenster minimieren`,maximizeWindow:`Fenster maximieren`,closeWindow:`Fenster schließen`},s={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`},c={title:`Etwas ist schiefgelaufen`,occurredIn:`In <strong>{{name}}</strong> ist ein Fehler aufgetreten`},l={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`},u={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)`},d={sidebarPin:e,projects:t,arcSidebar:n,rightSidebar:r,navbar:i,statusBar:a,titleBar:o,costAlerts:s,errorBoundary:c,healthWidget:l,collapsibleSection:u};export{n as arcSidebar,u as collapsibleSection,s as costAlerts,d as default,c as errorBoundary,l as healthWidget,i as navbar,t as projects,r as rightSidebar,e as sidebarPin,a as statusBar,o as titleBar};
|
|
@@ -0,0 +1 @@
|
|
|
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. Désactivé 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 et batch-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 à Claude en mode Freestyle (rails Claude uniquement). Freestyle saute le pipeline OpenSpec — il transmet à Claude 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`,code:`Code`,terminal:`Terminal`,updates:`Mises à jour`,mobile:`Mobile`,mcp:`MCP`,projects:`Projets`,advanced:`Avancé`,webhooks:`Webhooks`,about:`À propos`},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`,matrix:`Terminal phosphore — menthe douce sur fond presque noir verdâtre`,specrails:`Thème de la marque — bleu marine-indigo profond aux accents cyan saturés`},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}}`},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}}`},_={language:e,page:t,errors:n,telemetry:r,prePrompt:i,ultraPrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,_ as default,s as desktop,n as errors,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,r as telemetry,u as terminal,a as ultraPrePrompt,l as webhooks};
|
|
@@ -0,0 +1 @@
|
|
|
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. Desativada 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 e batch-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 Claude em Freestyle (rails apenas Claude). O Freestyle salta o pipeline OpenSpec — entrega ao Claude 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`,code:`Código`,terminal:`Terminal`,updates:`Atualizações`,mobile:`Móvel`,mcp:`MCP`,projects:`Projetos`,advanced:`Avançado`,webhooks:`Webhooks`,about:`Sobre`},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`,matrix:`Terminal de fósforo — menta suave sobre quase preto esverdeado`,specrails:`Tema da marca — azul-marinho-índigo profundo com acentos ciano saturados`},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}}`},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}}`},_={language:e,page:t,errors:n,telemetry:r,prePrompt:i,ultraPrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,_ as default,s as desktop,n as errors,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,r as telemetry,u as terminal,a as ultraPrePrompt,l as webhooks};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`语言`,description:`Desktop 全局界面语言。即时生效,无需重启。`,selectLabel:`界面语言`,updateFailed:`无法保存语言偏好`},t={title:`项目设置`},n={saveFailed:`保存失败:{{message}}`},r={title:`流水线遥测`,description:`采集 token 用量、阶段耗时和子 Agent 活动以供诊断导出。默认关闭。`,toggleLabel:`启用流水线遥测`,toggleDescription:`开启后,流水线任务的 OTEL 数据将在本地采集。在任意任务卡片上使用<mono>导出诊断</mono>按钮即可下载。`,enabled:`已启用流水线遥测`,disabled:`已禁用流水线遥测`,saveFailed:`保存遥测设置失败`},i={title:`Rail 前置提示词`,description:`追加到 implement 与 batch-implement rail 任务中的项目专属附加指令,位于工单上下文之后、开始执行之前。`,label:`前置提示词`,placeholder:`示例:优先采用增量修改,保持迁移向后兼容,并为每次 rail 变更添加测试。`,helper:`用于应随每次 rail 实现运行附带的稳定项目指引。`,saveButton:`保存前置提示词`,cleared:`前置提示词已清除`,saved:`前置提示词已保存`,saveFailed:`保存前置提示词失败`},a={title:`Freestyle 前置提示词`,description:`在 Freestyle(仅限 Claude 的 rail)模式下发送给 Claude 的指令。Freestyle 跳过 OpenSpec 流水线——直接把该前置提示词加上 spec 文本交给 Claude,让其自主实现。留空则使用内置默认值。`,label:`Freestyle 前置提示词`,placeholder:`留空以使用默认的 Freestyle 指令。`,helper:`spec 文本会自动追加在该前置提示词之后。留空 = 使用默认值。`,saveButton:`保存 Freestyle 前置提示词`,resetToDefault:`Freestyle 前置提示词已重置为默认值`,saved:`Freestyle 前置提示词已保存`,saveFailed:`保存 Freestyle 前置提示词失败`},o={title:`预算`,description:`为此项目设置每日支出上限。达到上限时队列自动暂停。`,dailyLabel:`每日预算(USD)`,dailyHelper:`留空表示禁用。支出按最近 24 小时计算。`,dailyPlaceholder:`如 5.00`,perJobLabel:`单任务成本告警(USD)`,perJobHelper:`当此项目中的单个任务超过此金额时告警。`,perJobPlaceholder:`如 0.50`,invalidNumber:`请输入正数,或留空以禁用`,dailyRemoved:`已移除每日预算`,dailySet:"每日预算已设为 ${{amount}}",perJobAlertDisabled:`已禁用单任务成本告警`,alertSet:"已设置任务超过 ${{amount}} 时告警",saveBudgetFailed:`保存预算失败`,saveThresholdFailed:`保存阈值失败`},s={nav:{appearance:`外观`,code:`代码`,terminal:`终端`,updates:`更新`,mobile:`移动端`,mcp:`MCP`,projects:`项目`,advanced:`高级`,webhooks:`Webhooks`,about:`关于`},title:`Desktop 设置`,description:`管理已注册的项目并查看 Desktop 信息。`,registeredProjects:`已注册项目`,noProjects:`尚未注册任何项目`,techUrlDescription:`specrails-tech API 的基础 URL(默认:http://localhost:3000)`,techUrlSaved:`specrails-tech URL 已保存`,techUrlSaveFailed:`保存 URL 失败`,budgetAlertsHeading:`预算与告警`,dailyBudgetLabel:`Desktop 每日预算(USD)`,dailyBudgetHelper:`所有项目的全局每日支出上限。超出后队列自动暂停。`,dailyBudgetPlaceholder:`如 10.00`,perJobHelper:`当单个任务超过此金额时告警。留空表示禁用。`,costAlertsDisabled:`已禁用成本告警`,dailyBudgetRemoved:`已移除 Desktop 每日预算`,dailyBudgetSet:"Desktop 每日预算已设为 ${{amount}}",dailyBudgetSaveFailed:`保存 Desktop 每日预算失败`,projectRemoved:`项目已移除`,projectRemoveFailed:`移除项目失败`,onboardingHeading:`新手引导`,platformTour:`平台导览`,platformTourDescription:`重播欢迎向导,回顾核心功能。`,replayTour:`重播导览`,terminalPanelHeading:`终端面板`,infoHeading:`Desktop 信息`,infoPort:`端口`,infoProjects:`项目`,infoDb:`Desktop 数据库`},c={heading:`系统通知`,description:`任务完成或失败时显示原生桌面通知。仅在标签页未聚焦时显示通知。`,enableLabel:`启用系统通知`,notifyOn:`通知时机:`,filterAll:`全部(完成与失败)`,filterCompleted:`仅完成`,filterFailed:`仅失败`,enabledToast:`已启用系统通知`,disabledToast:`已禁用系统通知`},l={heading:`出站 Webhook`,description:`在 Desktop 事件发生时通知外部工具(Slack、Zapier、CI/CD)。设置密钥后,请求会通过 <code>X-Specrails-Signature</code> 进行签名。`,eventJobCompleted:`任务完成`,eventJobFailed:`任务失败`,eventDailyBudgetExceeded:`超出每日预算`,statusOn:`开`,statusOff:`关`,disable:`禁用`,enable:`启用`,sendTestPing:`发送测试 ping`,addHeading:`添加 Webhook`,secretPlaceholder:`签名密钥(可选)`,addButton:`添加 Webhook`,urlRequired:`URL 为必填项`,selectEvent:`请至少选择一个事件`,added:`Webhook 已添加`,addFailed:`添加 Webhook 失败`,updateFailed:`更新 Webhook 失败`,removed:`Webhook 已移除`,removeFailed:`移除 Webhook 失败`,testPingSent:`测试 ping 已发送`,testPingFailed:`发送测试 ping 失败`},u={title:`终端面板`,desktopDescription:`Desktop 全局默认值,应用于所有项目,除非设置了项目级覆盖。`,projectDescription:`终端面板的项目级覆盖。保持字段不变即继承 Desktop 默认值。`,fontFamily:`字体`,fontSize:`字号({{min}}–{{max}})`,renderMode:`渲染模式`,copyOnSelect:`选中即复制`,shellIntegration:`Shell 集成(OSC 133 标记)`,notifyLongRunning:`长耗时命令通知`,longCommandThreshold:`长命令阈值(ms)`,imageRendering:`内联图片渲染(Sixel + iTerm2)`,browserShortcutUrl:`浏览器快捷方式 URL`,quickScript:`快捷脚本(粘贴到活动终端——需手动按 Enter)`,reset:`重置`,unsavedChanges:`有未保存的更改`,clearOverride:`清除覆盖`,clear:`清除`,inheritingDefault:`正在继承 Desktop 默认值`,nothingToSave:`没有可保存的内容`,saved:`终端设置已保存`},d={heading:`代码板块`,summaryLanguage:`摘要语言`,monthlyBudget:`每月预算(USD)`,budgetHelper:"每个自然月 `surface=file-summary` 支出的上限。用户手动发起的重新生成可超出此限制。"},f={taglines:{dracula:`经典原版 — 紫色调暗色主题,霓虹色点缀鲜明`,"aurora-light":`高级浅色 — 受 Linear 启发的靛蓝配暖白底色`,"obsidian-dark":`高级深色 — 近黑蓝调配电光色点缀`,matrix:`磷光终端 — 绿黑底色上的柔和薄荷绿`,specrails:`品牌主题 — 深海军靛蓝配饱和青色点缀`},heading:`外观`,themeGroupLabel:`主题`,currentlyActive:`当前使用中`,updateFailed:`更新主题失败`},p={heading:`移动伴侣`,description:`通过手机上的 SpecRails Companion 应用控制 Specrails,完全经由本地网络。默认关闭。`,accessOn:`移动访问已开启`,accessOff:`移动访问已关闭`,listeningOnPort:`正在监听端口 {{port}}`,notListening:`未在监听`,turnOn:`开启`,turnOff:`关闭`,pairWebDevice:`配对网页伴侣`,reset:`重置`,resetConfirm:`确定要重置移动身份吗?所有已配对设备都将被吊销,必须重新配对。`,identityReset:`移动身份已重置`,enableFailed:`无法启用移动访问:{{message}}`,disableFailed:`无法禁用移动访问:{{message}}`,windowsFirewall:`首次启用时,Windows 防火墙会询问是否允许 SpecRails 服务器——请选择“允许在专用网络上”。`,pairedDevices:`已配对设备`,noDevices:`尚无已配对设备。`,revokeDevice:`吊销 {{name}}`},m={title:`配对网页伴侣`,description:`在手机上打开 specrails.dev/companion-app,然后用它扫描此二维码。`,startFailed:`无法开始配对:{{error}}`,showThenScan:`手机扫描此码后,点按“扫描手机的二维码”,并将摄像头对准手机。`,scanAnswer:`扫描手机的二维码`,scanning:`请将摄像头对准手机上的二维码…`,cameraFailed:`摄像头不可用:{{message}}`,notAnswer:`该二维码不是配对应答。`,connecting:`正在连接…`,paired:`✓ 已配对`,pairedToast:`网页伴侣已配对`,answerRejected:`桌面端拒绝了该码。请重新生成一个并重试。`,copyCode:`复制配对码`,codeCopied:`配对码已复制`,cancel:`取消`},h={heading:`Specrails Core`,installed:`已安装:`,updateAvailable:`有可用更新:{{version}}`,upToDate:`已是最新`,neverChecked:`尚未检查`,check:`检查更新`,checking:`检查中…`,update:`更新到 {{version}}`,downloading:`下载中…`,materializing:`安装中…`,affectsAll:`适用于所有项目 — 无需重启。`,unavailable:`此版本不支持核心更新。`,toastDone:`Specrails Core 已更新到 {{version}}`,toastError:`核心更新失败:{{message}}`,toastUpToDate:`Specrails Core 已是最新`,toastCheckFailed:`检查更新失败:{{message}}`},g={heading:`Specrails Desktop`,installed:`已安装:`,check:`检查更新`,checking:`检查中…`,upToDate:`已是最新版本`,updateAvailable:`有可用更新: {{version}}`,autoHint:`启动时及每 6 小时自动检查。`,unavailable:`更新仅在桌面应用中可用。`,toastUpToDate:`Specrails Desktop 已是最新`,toastCheckFailed:`检查更新失败: {{message}}`},_={language:e,page:t,errors:n,telemetry:r,prePrompt:i,ultraPrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,_ as default,s as desktop,n as errors,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,r as telemetry,u as terminal,a as ultraPrePrompt,l as webhooks};
|
|
@@ -0,0 +1 @@
|
|
|
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. Desactivada 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 y batch-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 a Claude en Freestyle (rails solo de Claude). Freestyle se salta el pipeline de OpenSpec — le entrega a Claude 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`,code:`Código`,terminal:`Terminal`,updates:`Actualizaciones`,mobile:`Móvil`,mcp:`MCP`,projects:`Proyectos`,advanced:`Avanzado`,webhooks:`Webhooks`,about:`Acerca de`},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`,matrix:`Terminal de fósforo — menta suave sobre casi negro verdoso`,specrails:`Tema de marca — azul marino-índigo profundo con acentos cian saturados`},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}}`},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}}`},_={language:e,page:t,errors:n,telemetry:r,prePrompt:i,ultraPrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,_ as default,s as desktop,n as errors,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,r as telemetry,u as terminal,a as ultraPrePrompt,l as webhooks};
|
|
@@ -0,0 +1 @@
|
|
|
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 aus.`,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- und batch-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 Claude gesendet wird (nur Claude-Rails). Freestyle überspringt die OpenSpec-Pipeline – Claude 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`,code:`Code`,terminal:`Terminal`,updates:`Updates`,mobile:`Mobil`,mcp:`MCP`,projects:`Projekte`,advanced:`Erweitert`,webhooks:`Webhooks`,about:`Info`},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`,matrix:`Phosphor-Terminal — sanftes Mint auf grünlichem Fast-Schwarz`,specrails:`Marken-Theme — tiefes Marine-Indigo mit satten Cyan-Akzenten`},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}}`},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}}`},_={language:e,page:t,errors:n,telemetry:r,prePrompt:i,ultraPrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,_ as default,s as desktop,n as errors,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,r as telemetry,u as terminal,a as ultraPrePrompt,l as webhooks};
|
|
@@ -0,0 +1 @@
|
|
|
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. Disattivata 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 e batch-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 a Claude in Freestyle (rail solo Claude). Freestyle salta la pipeline OpenSpec — consegna a Claude 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`,code:`Codice`,terminal:`Terminale`,updates:`Aggiornamenti`,mobile:`Mobile`,mcp:`MCP`,projects:`Progetti`,advanced:`Avanzate`,webhooks:`Webhooks`,about:`Info`},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`,matrix:`Terminale al fosforo — menta tenue su quasi nero verdastro`,specrails:`Tema del brand — blu navy-indaco profondo con accenti ciano saturi`},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}}`},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}}`},_={language:e,page:t,errors:n,telemetry:r,prePrompt:i,ultraPrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,_ as default,s as desktop,n as errors,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,r as telemetry,u as terminal,a as ultraPrePrompt,l as webhooks};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`言語`,description:`Desktop 全体の UI 言語。即座に適用され、再起動は不要です。`,selectLabel:`インターフェース言語`,updateFailed:`言語設定を保存できませんでした`},t={title:`プロジェクト設定`},n={saveFailed:`保存に失敗しました: {{message}}`},r={title:`パイプラインテレメトリ`,description:`診断エクスポート用にトークン使用量、フェーズ時間、サブエージェントの活動を記録します。デフォルトはオフです。`,toggleLabel:`パイプラインテレメトリを有効化`,toggleDescription:`オンにすると、パイプラインジョブの OTEL データがローカルに記録されます。ジョブカードの <mono>診断をエクスポート</mono> ボタンからダウンロードできます。`,enabled:`パイプラインテレメトリを有効にしました`,disabled:`パイプラインテレメトリを無効にしました`,saveFailed:`テレメトリ設定の保存に失敗しました`},i={title:`レールのプレプロンプト`,description:`implement と batch-implement のレールジョブで、チケットコンテキストの後・実行前に追加されるプロジェクト固有の指示です。`,label:`プレプロンプト`,placeholder:`例: 段階的な変更を優先し、マイグレーションの後方互換性を保ち、レールの変更ごとにテストを追加すること。`,helper:`すべてのレール実装の実行に常に添えたい、安定したプロジェクト指針に使用してください。`,saveButton:`プレプロンプトを保存`,cleared:`プレプロンプトをクリアしました`,saved:`プレプロンプトを保存しました`,saveFailed:`プレプロンプトの保存に失敗しました`},a={title:`Freestyle プレプロンプト`,description:`Freestyle(Claude 専用レール)で Claude に送られる指示です。Freestyle は OpenSpec パイプラインをスキップし、このプレプロンプトとスペックテキストを Claude に渡して自律的に実装させます。空欄の場合は組み込みのデフォルトを使用します。`,label:`Freestyle プレプロンプト`,placeholder:`空欄の場合はデフォルトの Freestyle 指示を使用します。`,helper:`スペックテキストはこのプレプロンプトの後に自動で追加されます。空欄 = デフォルト。`,saveButton:`Freestyle プレプロンプトを保存`,resetToDefault:`Freestyle プレプロンプトをデフォルトにリセットしました`,saved:`Freestyle プレプロンプトを保存しました`,saveFailed:`Freestyle プレプロンプトの保存に失敗しました`},o={title:`予算`,description:`このプロジェクトの1日あたりの支出上限を設定します。上限に達するとキューは自動で一時停止します。`,dailyLabel:`日次予算(USD)`,dailyHelper:`無効にするには空欄のままにします。支出は過去24時間で計算されます。`,dailyPlaceholder:`例: 5.00`,perJobLabel:`ジョブ単位のコストアラート(USD)`,perJobHelper:`このプロジェクトの単一ジョブがこの金額を超えたときにアラートします。`,perJobPlaceholder:`例: 0.50`,invalidNumber:`正の数値を入力するか、無効にするには空欄のままにしてください`,dailyRemoved:`日次予算を削除しました`,dailySet:"日次予算を ${{amount}} に設定しました",perJobAlertDisabled:`ジョブ単位のコストアラートを無効にしました`,alertSet:"${{amount}} を超えるジョブにアラートを設定しました",saveBudgetFailed:`予算の保存に失敗しました`,saveThresholdFailed:`しきい値の保存に失敗しました`},s={nav:{appearance:`外観`,code:`コード`,terminal:`ターミナル`,updates:`更新`,mobile:`モバイル`,mcp:`MCP`,projects:`プロジェクト`,advanced:`詳細`,webhooks:`Webhooks`,about:`概要`},title:`Desktop 設定`,description:`登録済みプロジェクトの管理と Desktop 情報の表示。`,registeredProjects:`登録済みプロジェクト`,noProjects:`登録されたプロジェクトはまだありません`,techUrlDescription:`specrails-tech API のベース URL(デフォルト: http://localhost:3000)`,techUrlSaved:`specrails-tech の URL を保存しました`,techUrlSaveFailed:`URL の保存に失敗しました`,budgetAlertsHeading:`予算とアラート`,dailyBudgetLabel:`Desktop 日次予算(USD)`,dailyBudgetHelper:`全プロジェクト共通のグローバルな日次支出上限。超過するとキューは自動で一時停止します。`,dailyBudgetPlaceholder:`例: 10.00`,perJobHelper:`単一ジョブがこの金額を超えたときにアラートします。無効にするには空欄のままにします。`,costAlertsDisabled:`コストアラートを無効にしました`,dailyBudgetRemoved:`Desktop の日次予算を削除しました`,dailyBudgetSet:"Desktop の日次予算を ${{amount}} に設定しました",dailyBudgetSaveFailed:`Desktop の日次予算の保存に失敗しました`,projectRemoved:`プロジェクトを削除しました`,projectRemoveFailed:`プロジェクトの削除に失敗しました`,onboardingHeading:`オンボーディング`,platformTour:`プラットフォームツアー`,platformTourDescription:`ウェルカムウィザードを再生して主要機能を確認します。`,replayTour:`ツアーを再生`,terminalPanelHeading:`ターミナルパネル`,infoHeading:`Desktop 情報`,infoPort:`ポート`,infoProjects:`プロジェクト`,infoDb:`Desktop DB`},c={heading:`OS 通知`,description:`ジョブの完了・失敗時にネイティブのデスクトップ通知を表示します。通知はタブがフォーカスされていないときのみ表示されます。`,enableLabel:`OS 通知を有効化`,notifyOn:`通知の対象:`,filterAll:`すべて(完了と失敗)`,filterCompleted:`完了のみ`,filterFailed:`失敗のみ`,enabledToast:`OS 通知を有効にしました`,disabledToast:`OS 通知を無効にしました`},l={heading:`アウトバウンド Webhook`,description:`Desktop のイベントを外部ツール(Slack、Zapier、CI/CD)に通知します。シークレットが設定されている場合、リクエストは <code>X-Specrails-Signature</code> で署名されます。`,eventJobCompleted:`ジョブ完了`,eventJobFailed:`ジョブ失敗`,eventDailyBudgetExceeded:`日次予算超過`,statusOn:`オン`,statusOff:`オフ`,disable:`無効化`,enable:`有効化`,sendTestPing:`テスト ping を送信`,addHeading:`Webhook を追加`,secretPlaceholder:`署名シークレット(任意)`,addButton:`Webhook を追加`,urlRequired:`URL は必須です`,selectEvent:`イベントを1つ以上選択してください`,added:`Webhook を追加しました`,addFailed:`Webhook の追加に失敗しました`,updateFailed:`Webhook の更新に失敗しました`,removed:`Webhook を削除しました`,removeFailed:`Webhook の削除に失敗しました`,testPingSent:`テスト ping を送信しました`,testPingFailed:`テスト ping の送信に失敗しました`},u={title:`ターミナルパネル`,desktopDescription:`プロジェクト別のオーバーライドがない限り、すべてのプロジェクトに適用される Desktop 全体のデフォルトです。`,projectDescription:`ターミナルパネルのプロジェクト別オーバーライド。Desktop のデフォルトを継承するには、フィールドを変更しないでください。`,fontFamily:`フォントファミリー`,fontSize:`フォントサイズ({{min}}–{{max}})`,renderMode:`レンダリングモード`,copyOnSelect:`選択時にコピー`,shellIntegration:`シェル統合(OSC 133 マーク)`,notifyLongRunning:`長時間実行コマンドの通知`,longCommandThreshold:`長時間コマンドのしきい値(ms)`,imageRendering:`インライン画像レンダリング(Sixel + iTerm2)`,browserShortcutUrl:`ブラウザショートカット URL`,quickScript:`クイックスクリプト(アクティブなターミナルに貼り付け — Enter は手動)`,reset:`リセット`,unsavedChanges:`未保存の変更`,clearOverride:`オーバーライドをクリア`,clear:`クリア`,inheritingDefault:`Desktop のデフォルトを継承中`,nothingToSave:`保存する変更はありません`,saved:`ターミナル設定を保存しました`},d={heading:`Code セクション`,summaryLanguage:`要約の言語`,monthlyBudget:`月次予算(USD)`,budgetHelper:"暦月ごとの `surface=file-summary` 支出の上限。ユーザーが開始した再生成は上限を超えられます。"},f={taglines:{dracula:`オリジナル — 紫がかったダークにネオンのアクセント`,"aurora-light":`プレミアムライト — Linear風のインディゴと温かみのあるオフホワイト`,"obsidian-dark":`プレミアムダーク — 青みがかった漆黒にエレクトリックなアクセント`,matrix:`蛍光ターミナル — 緑がかった漆黒にソフトミント`,specrails:`ブランドテーマ — 深いネイビーインディゴに鮮やかなシアン`},heading:`外観`,themeGroupLabel:`テーマ`,currentlyActive:`現在アクティブ`,updateFailed:`テーマの更新に失敗しました`},p={heading:`モバイルコンパニオン`,description:`スマートフォンの SpecRails Companion アプリから Specrails を操作します。通信は 100% ローカルネットワーク経由です。デフォルトはオフです。`,accessOn:`モバイルアクセス オン`,accessOff:`モバイルアクセス オフ`,listeningOnPort:`ポート {{port}} で待機中`,notListening:`待機していません`,turnOn:`オンにする`,turnOff:`オフにする`,pairWebDevice:`Web コンパニオンをペアリング`,reset:`リセット`,resetConfirm:`モバイル ID をリセットしますか?ペアリング済みのすべてのデバイスが無効化され、再ペアリングが必要になります。`,identityReset:`モバイル ID をリセットしました`,enableFailed:`モバイルアクセスを有効にできませんでした: {{message}}`,disableFailed:`モバイルアクセスを無効にできませんでした: {{message}}`,windowsFirewall:`初回有効化時に Windows ファイアウォールが SpecRails サーバーの許可を求めます — 「プライベートネットワークで許可」を選択してください。`,pairedDevices:`ペアリング済みデバイス`,noDevices:`ペアリングされたデバイスはまだありません。`,revokeDevice:`{{name}} を無効化`},m={title:`Web コンパニオンをペアリング`,description:`スマートフォンで specrails.dev/companion-app を開き、それでこのコードをスキャンしてください。`,startFailed:`ペアリングを開始できませんでした: {{error}}`,showThenScan:`スマートフォンでこれをスキャンしたら、「スマートフォンのコードをスキャン」をタップし、カメラをスマートフォンに向けてください。`,scanAnswer:`スマートフォンのコードをスキャン`,scanning:`カメラをスマートフォンのコードに向けてください…`,cameraFailed:`カメラを利用できません: {{message}}`,notAnswer:`その QR はペアリング応答ではありません。`,connecting:`接続中…`,paired:`✓ ペアリング済み`,pairedToast:`Web コンパニオンをペアリングしました`,answerRejected:`デスクトップがそのコードを拒否しました。新しいコードを生成して再試行してください。`,copyCode:`コードをコピー`,codeCopied:`コードをコピーしました`,cancel:`キャンセル`},h={heading:`Specrails Core`,installed:`インストール済み:`,updateAvailable:`アップデートあり: {{version}}`,upToDate:`最新です`,neverChecked:`未確認`,check:`アップデートを確認`,checking:`確認中…`,update:`{{version}} に更新`,downloading:`ダウンロード中…`,materializing:`インストール中…`,affectsAll:`すべてのプロジェクトに適用 — 再起動不要。`,unavailable:`このビルドではコアの更新は利用できません。`,toastDone:`Specrails Core を {{version}} に更新しました`,toastError:`コアの更新に失敗しました: {{message}}`,toastUpToDate:`Specrails Core は最新です`,toastCheckFailed:`更新の確認に失敗しました: {{message}}`},g={heading:`Specrails Desktop`,installed:`インストール済み:`,check:`アップデートを確認`,checking:`確認中…`,upToDate:`最新バージョンです`,updateAvailable:`アップデートあり: {{version}}`,autoHint:`起動時と6時間ごとに自動確認します。`,unavailable:`アップデートはデスクトップアプリでのみ利用できます。`,toastUpToDate:`Specrails Desktop は最新です`,toastCheckFailed:`アップデートの確認に失敗しました: {{message}}`},_={language:e,page:t,errors:n,telemetry:r,prePrompt:i,ultraPrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,_ as default,s as desktop,n as errors,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,r as telemetry,u as terminal,a as ultraPrePrompt,l as webhooks};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./chunk-BNv3lrIs.js";var t=e({appUpdate:()=>v,appearance:()=>m,budget:()=>c,codeSection:()=>p,coreUpdate:()=>_,default:()=>y,desktop:()=>l,errors:()=>i,language:()=>n,mobile:()=>h,notifications:()=>u,page:()=>r,pairWeb:()=>g,prePrompt:()=>o,telemetry:()=>a,terminal:()=>f,ultraPrePrompt:()=>s,webhooks:()=>d}),n={title:`Language`,description:`Desktop-wide UI language. Applies instantly — no restart needed.`,selectLabel:`Interface language`,updateFailed:`Could not save the language preference`},r={title:`Project Settings`},i={saveFailed:`Failed to save: {{message}}`},a={title:`Pipeline Telemetry`,description:`Capture token usage, phase durations, and subagent activity for diagnostic export. Off by default.`,toggleLabel:`Enable pipeline telemetry`,toggleDescription:`When on, OTEL data from pipeline jobs is captured locally. Use the <mono>Export diagnostic</mono> button on any job card to download.`,enabled:`Pipeline telemetry enabled`,disabled:`Pipeline telemetry disabled`,saveFailed:`Failed to save telemetry setting`},o={title:`Rail Pre-prompt`,description:`Extra project-specific instructions appended to implement and batch-implement rail jobs after the ticket context and before execution.`,label:`Pre-prompt`,placeholder:`Example: Prefer incremental changes, keep migrations backward compatible, and add tests for every rail change.`,helper:`Use this for stable project guidance that should accompany every rail implementation run.`,saveButton:`Save pre-prompt`,cleared:`Pre-prompt cleared`,saved:`Pre-prompt saved`,saveFailed:`Failed to save pre-prompt`},s={title:`Freestyle pre-prompt`,description:`Instruction sent to Claude in Freestyle (Claude-only rails). Freestyle skips the OpenSpec pipeline — it hands Claude this pre-prompt plus the spec text and lets it implement autonomously. Leave blank to use the built-in default.`,label:`Freestyle pre-prompt`,placeholder:`Leave blank to use the default Freestyle instruction.`,helper:`The spec text is appended automatically after this pre-prompt. Empty = default.`,saveButton:`Save Freestyle pre-prompt`,resetToDefault:`Freestyle pre-prompt reset to default`,saved:`Freestyle pre-prompt saved`,saveFailed:`Failed to save Freestyle pre-prompt`},c={title:`Budget`,description:`Set a daily spend cap for this project. The queue auto-pauses when the limit is hit.`,dailyLabel:`Daily budget (USD)`,dailyHelper:`Leave blank to disable. Spend is calculated over the last 24 hours.`,dailyPlaceholder:`e.g. 5.00`,perJobLabel:`Per-job cost alert (USD)`,perJobHelper:`Alert when a single job in this project exceeds this amount.`,perJobPlaceholder:`e.g. 0.50`,invalidNumber:`Enter a positive number or leave blank to disable`,dailyRemoved:`Daily budget removed`,dailySet:"Daily budget set to ${{amount}}",perJobAlertDisabled:`Per-job cost alert disabled`,alertSet:"Alert set for jobs over ${{amount}}",saveBudgetFailed:`Failed to save budget`,saveThresholdFailed:`Failed to save threshold`},l={nav:{appearance:`Appearance`,code:`Code`,terminal:`Terminal`,updates:`Updates`,mobile:`Mobile`,mcp:`MCP`,projects:`Projects`,advanced:`Advanced`,webhooks:`Webhooks`,about:`About`},title:`Desktop Settings`,description:`Manage registered projects and view Desktop information.`,registeredProjects:`Registered Projects`,noProjects:`No projects registered yet`,techUrlDescription:`Base URL for the specrails-tech API (default: http://localhost:3000)`,techUrlSaved:`specrails-tech URL saved`,techUrlSaveFailed:`Failed to save URL`,budgetAlertsHeading:`Budget & Alerts`,dailyBudgetLabel:`Desktop daily budget (USD)`,dailyBudgetHelper:`Global daily spend limit across all projects. Queues auto-pause when exceeded.`,dailyBudgetPlaceholder:`e.g. 10.00`,perJobHelper:`Alert when a single job exceeds this amount. Leave blank to disable.`,costAlertsDisabled:`Cost alerts disabled`,dailyBudgetRemoved:`Desktop daily budget removed`,dailyBudgetSet:"Desktop daily budget set to ${{amount}}",dailyBudgetSaveFailed:`Failed to save Desktop daily budget`,projectRemoved:`Project removed`,projectRemoveFailed:`Failed to remove project`,onboardingHeading:`Onboarding`,platformTour:`Platform Tour`,platformTourDescription:`Replay the welcome wizard to review key features.`,replayTour:`Replay Tour`,terminalPanelHeading:`Terminal Panel`,infoHeading:`Desktop Information`,infoPort:`Port`,infoProjects:`Projects`,infoDb:`Desktop DB`},u={heading:`OS Notifications`,description:`Show native desktop notifications when jobs complete or fail. Notifications only appear when the tab is not focused.`,enableLabel:`Enable OS Notifications`,notifyOn:`Notify on:`,filterAll:`All (completed & failed)`,filterCompleted:`Completed only`,filterFailed:`Failed only`,enabledToast:`OS notifications enabled`,disabledToast:`OS notifications disabled`},d={heading:`Outbound Webhooks`,description:`Notify external tools (Slack, Zapier, CI/CD) on Desktop events. Requests are signed via <code>X-Specrails-Signature</code> when a secret is set.`,eventJobCompleted:`Job completed`,eventJobFailed:`Job failed`,eventDailyBudgetExceeded:`Daily budget exceeded`,statusOn:`on`,statusOff:`off`,disable:`Disable`,enable:`Enable`,sendTestPing:`Send test ping`,addHeading:`Add webhook`,secretPlaceholder:`Signing secret (optional)`,addButton:`Add Webhook`,urlRequired:`URL is required`,selectEvent:`Select at least one event`,added:`Webhook added`,addFailed:`Failed to add webhook`,updateFailed:`Failed to update webhook`,removed:`Webhook removed`,removeFailed:`Failed to remove webhook`,testPingSent:`Test ping sent`,testPingFailed:`Failed to send test ping`},f={title:`Terminal panel`,desktopDescription:`Desktop-wide defaults applied to every project unless a per-project override is set.`,projectDescription:`Per-project overrides for the terminal panel. Leave a field unchanged to inherit the Desktop default.`,fontFamily:`Font family`,fontSize:`Font size ({{min}}–{{max}})`,renderMode:`Render mode`,copyOnSelect:`Copy on select`,shellIntegration:`Shell integration (OSC 133 marks)`,notifyLongRunning:`Notify on long-running commands`,longCommandThreshold:`Long-command threshold (ms)`,imageRendering:`Inline image rendering (Sixel + iTerm2)`,browserShortcutUrl:`Browser shortcut URL`,quickScript:`Quick script (pasted into active terminal — Enter manually)`,reset:`Reset`,unsavedChanges:`Unsaved changes`,clearOverride:`Clear override`,clear:`Clear`,inheritingDefault:`Inheriting Desktop default`,nothingToSave:`Nothing to save`,saved:`Terminal settings saved`},p={heading:`Code section`,summaryLanguage:`Summary language`,monthlyBudget:`Monthly budget (USD)`,budgetHelper:"Cap on `surface=file-summary` spend per calendar month. User-initiated regenerations can override."},m={taglines:{dracula:`The original — dark purple-tinted with vivid neon accents`,"aurora-light":`Premium light — Linear-inspired indigo on warm off-white`,"obsidian-dark":`Premium dark — near-black blue-tinted with electric accents`,matrix:`Phosphor terminal — soft mint on green-tinted near-black`,specrails:`Brand theme — deep navy-indigo with saturated cyan accents`},heading:`Appearance`,themeGroupLabel:`Theme`,currentlyActive:`Currently active`,updateFailed:`Failed to update theme`},h={heading:`Mobile companion`,description:`Control Specrails from the SpecRails Companion app on your phone, 100% over your local network. Off by default.`,accessOn:`Mobile access on`,accessOff:`Mobile access off`,listeningOnPort:`Listening on port {{port}}`,notListening:`Not listening`,turnOn:`Turn on`,turnOff:`Turn off`,pairWebDevice:`Pair web companion`,reset:`Reset`,resetConfirm:`Reset the mobile identity? Every paired device will be revoked and must pair again.`,identityReset:`Mobile identity reset`,enableFailed:`Could not enable mobile access: {{message}}`,disableFailed:`Could not disable mobile access: {{message}}`,windowsFirewall:`Windows Firewall will ask to allow the SpecRails server on first enable — choose “Allow on private networks”.`,pairedDevices:`Paired devices`,noDevices:`No devices paired yet.`,revokeDevice:`Revoke {{name}}`},g={title:`Pair web companion`,description:`Open specrails.dev/companion-app on your phone, then scan this code with it.`,startFailed:`Could not start pairing: {{error}}`,showThenScan:`After your phone scans this, tap “Scan phone's code” and point the camera at your phone.`,scanAnswer:`Scan phone's code`,scanning:`Point the camera at the code on your phone…`,cameraFailed:`Camera unavailable: {{message}}`,notAnswer:`That QR isn't a pairing answer.`,connecting:`Connecting…`,paired:`✓ Paired`,pairedToast:`Web companion paired`,answerRejected:`The desktop rejected that code. Generate a fresh one and retry.`,copyCode:`Copy code`,codeCopied:`Code copied`,cancel:`Cancel`},_={heading:`Specrails Core`,installed:`Installed:`,updateAvailable:`Update available: {{version}}`,upToDate:`Up to date`,neverChecked:`Not checked yet`,check:`Check for updates`,checking:`Checking…`,update:`Update to {{version}}`,downloading:`Downloading…`,materializing:`Installing…`,affectsAll:`Applies to all projects — no restart needed.`,unavailable:`Core updates aren't available in this build.`,toastDone:`Specrails Core updated to {{version}}`,toastError:`Core update failed: {{message}}`,toastUpToDate:`Specrails Core is up to date`,toastCheckFailed:`Update check failed: {{message}}`},v={heading:`Specrails Desktop`,installed:`Installed:`,check:`Check for updates`,checking:`Checking…`,upToDate:`You're on the latest version`,updateAvailable:`Update available: {{version}}`,autoHint:`Checks automatically at launch and every 6 hours.`,unavailable:`App updates are only available in the desktop app.`,toastUpToDate:`Specrails Desktop is up to date`,toastCheckFailed:`Update check failed: {{message}}`},y={language:n,page:r,errors:i,telemetry:a,prePrompt:o,ultraPrePrompt:s,budget:c,desktop:l,notifications:u,webhooks:d,terminal:f,codeSection:p,appearance:m,mobile:h,pairWeb:g,coreUpdate:_,appUpdate:v};export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={configureAgents:`Configurar agentes de {{provider}}`,configureSubtitle:`Elige qué agentes instalar y cómo ejecutarlos.`,tabs:{agents:`Agentes`,models:`Modelos`},skipForNow:`Omitir por ahora`,install:`Instalar`,nextProvider:`Siguiente: {{provider}}`,installingProvider:`Instalando {{provider}}…`,installingSpecrails:`Instalando specrails...`,installingFromTemplates:`Instalando agentes desde plantillas`,waitingForOutput:`Esperando salida...`,checkpoints:{baseInstall:`Instalación base`,agentSelection:`Selección de agentes`,agentGeneration:`Generación de agentes`},steps:{configure:`Configurar`},summary:{agents:`Agentes`,agentSkills:`Skills de agente`,skills:`Skills`,openspecSkills:`Skills de OpenSpec`,legacyRemoved_one:`Eliminado {{count}} comando legacy <code>/specrails:*</code>`,legacyRemoved_other:`Eliminados {{count}} comandos legacy <code>/specrails:*</code>`},complete:{welcome:`Bienvenido a <spec>spec</spec><rails>rails</rails>`,configured:`<strong>{{projectName}}</strong> ya está configurado con flujos de desarrollo impulsados por IA. Tus agentes y comandos especializados están listos para usar.`,installedForEngines_one:`Instalado para {{count}} motor`,installedForEngines_other:`Instalado para {{count}} motores`,installed:`Instalado`,installFailed:`Error en la instalación`,learnMore:`Aprende a sacar el máximo partido a specrails:`,continueToProject:`Continuar al proyecto`,jira:{title:`Conecta un tablero de Jira`,subtitle:`Opcional — respalda las specs de este proyecto con un tablero de Jira. También puedes hacerlo más tarde en Ajustes.`,configure:`Configurar Jira`,optional:`opcional`},mcpHint:`Conecta herramientas de IA externas a Specrails mediante un servidor MCP local seguro — actívalo en Ajustes.`,agentChatHint:`Opera Specrails conversando — el agente integrado maneja toda la app por ti. Ábrelo desde la burbuja o con ⌘⇧A.`},error:{title:`La configuración ha fallado`,skipSetup:`Omitir configuración`,prereqMissing:`La configuración de SpecRails necesita Node.js, npm, npx y Git disponibles en el PATH antes de poder instalar este proyecto.`,prereqRetryHint:`Instala las herramientas que faltan, reinicia Specrails y reintenta la configuración.`}},t={title:`Añadir proyecto`,description:`Registra un directorio de proyecto para gestionarlo desde Specrails.`,noProviderDetected:`No se ha detectado ningún CLI de IA. Instala primero Claude Code o Codex CLI.`,pathLabel:`Ruta del proyecto`,pathPlaceholder:`/Users/yo/mi-proyecto`,pathHint:`Ruta absoluta a la raíz del proyecto`,browseForFolder:`Buscar carpeta`,selectProjectFolder:`Seleccionar carpeta del proyecto`,nameLabel:`Nombre para mostrar`,optional:`(opcional)`,namePlaceholder:`Mi proyecto`,nameHint:`Por defecto, el nombre del directorio`,providersLabel:`Proveedores de IA`,notFound:`no encontrado`,multiProviderHint:`Se configurarán ambos motores. El primero es el predeterminado del proyecto. No se puede cambiar después de la creación.`,singleProviderHint:`No se puede cambiar una vez creado el proyecto.`,adding:`Añadiendo...`,submit:`Añadir proyecto`,toolsRequired_one:`Se necesita {{tools}} para añadir un proyecto`,toolsRequired_other:`Se necesitan {{tools}} para añadir un proyecto`,errors:{pathRequired:`La ruta del proyecto es obligatoria`,selectProvider:`Selecciona al menos un proveedor de IA`,addFailed:`No se pudo añadir el proyecto`},toasts:{registered:`Proyecto "{{name}}" registrado`}},n={corruptedBundle:`bundle dañado — reinstala la app`,notInstalled:`no instalado`,failedToExecute:`encontrado pero no se pudo ejecutar`,failedToExecuteAt:`encontrado en {{path}} pero no se pudo ejecutar`,failedToExecuteWithError:`encontrado pero no se pudo ejecutar ({{error}})`,failedToExecuteAtWithError:`encontrado en {{path}} pero no se pudo ejecutar ({{error}})`,needsMinimum:`{{version}} encontrada — se necesita {{minVersion}}+`,unknownVersion:`desconocida`,installedLabel:`instalado`,verifyError:`No se pudieron verificar las herramientas de desarrollo en local — la instalación lo validará.`,allDetected:`Todas las herramientas necesarias detectadas`,bundleCorruptedTitle:`Bundle de la app dañado`,toolsRequired_one:`{{count}} herramienta de desarrollo necesaria`,toolsRequired_other:`{{count}} herramientas de desarrollo necesarias`,reinstallHint:`Reinstala la app Specrails para restaurar las herramientas incluidas.`,installMissingHint:`Instala las herramientas que faltan para continuar.`,moreInfo:`Más información`,bundledBadge:`incluida`},r={title:`Instalar herramientas de desarrollo`,description:`SpecRails necesita Node.js, npm, npx y Git en el PATH. Elige el snippet de tu SO, ejecútalo y pulsa "Ya lo he instalado, volver a comprobar".`,darwin:{intro:`Homebrew te da ambas herramientas en una línea. Si no tienes brew, usa las descargas oficiales.`,installNodeGit:`Instalar Node.js y Git con Homebrew`},win32:{intro:`Winget viene incluido en Windows 11 y en las versiones recientes de Windows 10. Abre PowerShell o Terminal y ejecuta:`,installNode:`Instalar Node.js LTS`,installGit:`Instalar Git`,note:`Tras la instalación, reinicia Specrails para que Windows actualice el PATH.`},linux:{intro:`Usa el gestor de paquetes de tu distro:`,debian:`Debian / Ubuntu`,fedora:`Fedora / RHEL`},links:{nodeOfficial:`Node.js (oficial)`,gitOfficial:`Git (oficial)`,gitWindows:`Git para Windows (oficial)`},showOtherPlatforms:`Mostrar otras plataformas`,hideOtherPlatforms:`Ocultar otras plataformas`,recheck:`Ya lo he instalado, volver a comprobar`,diagnostics:{copy:`Copiar diagnóstico`,copied:`Diagnóstico copiado`,failed:`Error al copiar`},corrupted:{title:`Bundle de la app dañado`,description:`No se pudieron verificar una o más herramientas incluidas (Node.js, Git).`,body:`Esta herramienta viene incluida con la app Specrails y no puede instalarse por separado. Si ves este mensaje, el bundle de la app puede estar dañado. Reinstala Specrails.`}},i={title:`Progreso de la configuración`,progress:`{{done}} de {{total}} completados`,rawLog_one:`Log sin procesar ({{count}} línea)`,rawLog_other:`Log sin procesar ({{count}} líneas)`},a={title:`Asistente de configuración`,subtitle:`Responde a las preguntas para configurar tu proyecto`,settingUp:`Configurando tu proyecto...`,placeholder:`Escribe una respuesta...`,keyboardHint:`Enter para enviar, Shift+Enter para nueva línea`},o={title:`Bienvenido a <spec>spec</spec><rails>rails</rails>`,description:`Specrails gestiona varios proyectos desde una única interfaz. Añade tu primer proyecto para empezar.`,addFirstProject:`Añade tu primer proyecto`,jiraHint:`Conecta cada proyecto a su propio tablero de Jira — las specs se sincronizan en ambos sentidos.`,mcpHint:`Conecta herramientas de IA externas a Specrails mediante un servidor MCP local seguro — actívalo en Ajustes.`,agentChatHint:`Opera Specrails conversando — un agente integrado gestiona specs, rails y analíticas por ti a través del MCP local. Ábrelo desde la burbuja o con ⌘⇧A.`},s=JSON.parse(`{"productTour":"Tour del producto","stepCount":"Paso {{current}} de {{total}}","goToStep":"Ir al paso {{step}}: {{label}}","stepLabel":"Paso {{step}}","dontShowAgain":"No volver a mostrar","skipTour":"Saltar el tour","getStarted":"Empezar","flow":{"addSpec":"Añade una spec","dropInRail":"Suéltala en un rail","hitPlay":"Dale a Play","ship":"Ship","architect":"Arquitecto","developer":"Desarrollador","reviewer":"Revisor"},"language":{"nav":"Idioma","title":"Elige tu idioma","subtitle":"Specrails habla tu idioma","intro":"Selecciona el idioma en el que quieres la interfaz. Se aplica al instante — este tour incluido.","note":"Puedes cambiarlo cuando quieras en Ajustes → Idioma."},"theme":{"nav":"Tema","title":"Elige tu estilo","subtitle":"Temas integrados, aplicados al instante","intro":"Decide qué aspecto tendrá Specrails — el tema se aplica en cuanto haces clic.","note":"Puedes cambiarlo cuando quieras en Ajustes → Apariencia."},"welcome":{"nav":"Bienvenida","title":"Bienvenido a Specrails","subtitle":"Tu centro de mando local para publicar software con agentes de IA","intro":"Specrails convierte una idea en código publicado — y te permite <b>ver, dirigir y confiar en</b> cada paso. Redacta una spec hablando con una IA, suéltala en un rail de ejecución y dale a Play. El pipeline se encarga de la arquitectura, la implementación, la revisión y la pull request, retransmitiendo su trabajo en directo en todo momento.","coreLoopLabel":"El bucle principal","flowCaption":"Cada spec pasa automáticamente por <b>Arquitecto → Desarrollador → Revisor → Ship</b>.","localNote":"<b>100 % local · un solo usuario · sin cuentas.</b> Todo se ejecuta en tu máquina. Tu código nunca sale del portátil a menos que <i>tú</i> lances un agente sobre él.","tourNote":"Este tour rápido repasa todo lo que puede hacer la aplicación — alrededor de un minuto."},"authorSpecs":{"nav":"Crea specs","title":"Convierte ideas en specs","subtitle":"Seis formas de capturar exactamente lo que quieres construir","intro":"Una <b>spec</b> es una descripción del trabajo que quieres que se haga. Redáctala como mejor encaje en cada momento — desde una línea rápida hasta una conversación completa con la IA.","exploreLabel":"Explore — conversa","exploreBody":"Describe lo que quieres en un chat; un borrador en vivo se reconstruye en cada turno. Un slider de presets ajusta cuánto contexto del proyecto ve la IA — desde solo tu mensaje hasta el codebase completo más tus servidores MCP.","quickLabel":"Quick — de una sola vez","quickBody":"¿Ya sabes lo que quieres? Genera una spec completa en un solo turno. Opcionalmente, enriquécela con una Contract Layer: nombres exactos, formas de datos, invariantes y una lista de archivos a tocar para que los agentes no reinventen nada.","websiteLabel":"Desde una web","websiteBody":"Abre un navegador embebido. Selecciona un elemento al pasar el ratón o arrastra un rectángulo, y la captura, el DOM y el CSS aplicado se convierten en adjuntos. La versión de escritorio incluye su propio Chromium, así que funciona sin conexión.","smashLabel":"SMASH para una épica grande","smashBody":"Divide una spec grande en una familia de sub-specs más pequeñas con un clic — cada hija lleva un breve resumen en su tarjeta.","draftsLabel":"Borradores y seguir editando","draftsBody":"Aparca una exploración en curso como ticket en borrador y retómala más tarde; reabre cualquier spec en Explore para seguir refinándola.","compareLabel":"Compara lado a lado","compareBody":"Arrastra una spec al borde de la pantalla y se desliza un selector con tus otras specs — revisa dos a la vez, al estilo tablet."},"rails":{"nav":"Ejecuta en rails","title":"Ejecuta el pipeline sobre rails","subtitle":"Organiza las specs en carriles y lanza los agentes","intro":"El lado derecho del Dashboard son tus <b>Rails</b> — carriles de ejecución. Arrastra una tarjeta de spec a un rail y pulsa <play>▶ Play</play> para lanzar un job de implementación.","jobLabel":"Qué ejecuta cada job","flowCaption":"Cada fase retransmite sus logs en directo mientras trabaja.","modeLabel":"Elige un Loop para ejecutar","modeBody":"Cada rail ejecuta un <b>Loop</b>. Elige uno de serie — <b>Implement</b> (el pipeline estructurado completo), <b>Batch</b> (varias specs a la vez) o <b>Ultracode</b> (Claude trabaja de forma autónoma, sin pipeline fijo) — o uno que hayas creado tú.","profilesLabel":"Perfiles de agentes","profilesBody":"Un catálogo declarativo por proyecto que decide qué agentes se ejecutan y qué modelo usa cada uno — se elige por rail y se congela por job para que el trabajo concurrente quede aislado.","jobDetailLabel":"Detalle del job en directo","jobDetailBody":"Cada job muestra una cabecera con la identidad del ticket, un contador de duración en directo y los turnos y tokens acumulados, con el coste definitivo resuelto al terminar.","isolationLabel":"Muchos proyectos, aislados","isolationBody":"Cada proyecto tiene su propia base de datos y su propia cola de jobs. Ejecuta proyectos distintos a la vez y cambia entre ellos desde la barra lateral izquierda — tu posición se recuerda por proyecto.","loopsLabel":"Crea tus propios loops","loopsBody":"<b>Loops</b> es un editor visual: encadena pasos de IA, comandos de shell y un <b>Loop Decider</b> que se repite hasta cumplir un objetivo — p. ej. verificar → corregir → verificar hasta que todo esté en verde. Publica un loop y elígelo en cualquier rail."},"agent":{"nav":"Chat con el agente","title":"Opera la app conversando","subtitle":"Un copiloto que maneja Specrails por ti","intro":"El <b>chat con el agente</b> integrado te permite manejar Specrails preguntando — crea specs, lanza rails, consulta analíticas — en lugar de ir haciendo clic. Funciona a través de las propias herramientas <b>MCP</b> de Specrails y, como todo es en vivo, ves cómo cambia el tablero mientras trabaja.","openLabel":"Siempre a un clic","openBody":"Ábrelo desde la burbuja flotante de abajo, o pulsa ⌘⇧A (Ctrl+Shift+A) desde cualquier sitio. El panel se mueve, se redimensiona, se maximiza y recuerda dónde lo dejaste.","operateLabel":"Maneja toda la app","operateBody":"Elige un proyecto (o Inicio para todo) y un proveedor, y simplemente pide: “lanza los tres tickets de mayor prioridad”, “¿cuánto he gastado esta semana?”.","levelsLabel":"Tú llevas las riendas","levelsBody":"Un nivel en vivo — <b>Observa → Edita → Opera → Autónomo</b>, que se alterna con Shift+Tab — decide hasta dónde puede llegar. Nunca actúa por encima del nivel que fijes.","watchLabel":"Míralo suceder","watchBody":"El panel no es modal, así que los rails y las specs aparecen en el dashboard en tiempo real mientras el agente trabaja. Un chip de estado muestra qué está haciendo ahora mismo.","mcpLabel":"Funciona sobre el MCP local","mcpBody":"El agente maneja la app a través del servidor MCP integrado de Specrails. Si está apagado, el panel ofrece activarlo con un clic — no se instala nada."},"providers":{"nav":"Tu agente","title":"Trae tu propio agente","subtitle":"Claude Code y Codex, como motores de primera clase","intro":"La aplicación trata <b>Claude Code</b> y <b>Codex CLI</b> como motores intercambiables tras un mismo contrato. Un proyecto puede instalar uno o ambos — la elección se hace en el momento de la instalación.","table":{"capability":"Capacidad","streamingResume":"Streaming y reanudación de sesión","native":"Nativo","costReporting":"Informe de costes","providerBilled":"Facturado por el proveedor","estimated":"Estimado (~)","telemetry":"Telemetría (OTEL)","synthesized":"Sintetizada","agentProfiles":"Perfiles de agentes"},"calloutLabel":"Cuando ambos están instalados","calloutBody":"Elige el motor <b>por spec, por rail o por lanzamiento de terminal</b>. La aplicación recuerda tu última elección por proyecto. El coste de Codex se estima con una tarifa local y siempre se marca con <mono>~</mono>."},"cost":{"nav":"Controla el coste","title":"Controla cada céntimo","subtitle":"Cada invocación facturable, registrada y visualizada","intro":"Cada invocación de IA — en rails, Quick, Explore, ediciones con IA, SMASH y resúmenes de archivos — se registra tanto para <b>Claude como para Codex</b>. Se acabó adivinar lo que cuestan los agentes.","analyticsLabel":"Página de analítica","analyticsBody":"Un hero de burn-rate, línea temporal diaria, top de tickets, desglose por modelo y un scatter de coste frente a turnos. Filtra por periodo (7d / 30d / 90d / Todo) y por superficie.","perTicketLabel":"Gasto por ticket","perTicketBody":"El detalle de cada spec muestra cuánto costó y cuántos turnos llevó, con enlace directo a la analítica filtrada por ese ticket.","honestLabel":"Números honestos","honestBody":"El coste de Claude es la cifra facturada por el proveedor; el de Codex es estimado y se marca con <mono>~</mono>. Los totales de tokens incluyen los niveles de caché, así que las cifras cuadran de verdad.","budgetsLabel":"Presupuestos y alertas","budgetsBody":"Define un presupuesto diario y una alerta de coste por job; la aplicación pausa la cola automáticamente cuando cruzas la línea. Exporta lo que quieras a CSV o JSON."},"workspace":{"nav":"Espacio de trabajo","title":"Hazlo tu espacio de trabajo","subtitle":"Todo lo que necesitas sin salir de la ventana","terminalLabel":"Panel de terminal","terminalBody":"Un terminal real al estilo VS Code en la parte inferior (<mod>{{mod}}</mod> <j>J</j>) — renderizado WebGL, búsqueda, imágenes inline, arrastrar y soltar rutas e integración con el shell. Hasta 10 sesiones por proyecto.","codeLabel":"Explorador de código","codeBody":"Un árbol de archivos de solo lectura y un visor Monaco con resúmenes de IA en lenguaje llano y chips de procedencia «tocado por IA», para que cualquiera pueda seguir qué cambió y por qué.","integrationsLabel":"Integraciones","integrationsBody":"Un marketplace por proyecto de integraciones MCP — la navegación semántica de código de Serena viene incluida. Las instalaciones son aditivas: añadir una nunca altera otra.","themesLabel":"Temas","themesBody":"Cinco temas integrados — specrails (por defecto), dracula, aurora-light, obsidian-dark y matrix — aplicados antes de que la UI pinte, así no hay parpadeo. Cámbialos en Ajustes → Apariencia.","chatsLabel":"Chats minimizables","chatsBody":"Aparca una sesión de Explore o AI Edit en un chip del dock y retómala más tarde — nunca se pierde entre recargas o cambios de proyecto.","desktopLabel":"Escritorio o navegador","desktopBody":"Ejecuta Specrails en tu navegador o descarga la app de escritorio firmada (macOS y Windows), que incluye su propio servidor y runtimes."},"companion":{"nav":"Compañera móvil","title":"Llévate Specrails contigo","subtitle":"Specrails Companion — tus pipelines, en tu teléfono","intro":"<b>Specrails Companion</b> es una app web en specrails.dev/companion-app — ábrela en tu teléfono (o añádela a tu pantalla de inicio) para navegar por el tablero de specs, lanzar y detener rails, seguir los logs de los jobs en directo y echar un vistazo a la analítica. Sin instalación, sin tienda de apps.","localLabel":"100 % local, como todo lo demás","localBody":"Tu teléfono se conecta directamente a este ordenador — peer-to-peer y cifrado (WebRTC). Sin servidores intermedios en la nube, sin cuentas, y tu código nunca sale de tus dispositivos.","downloadLabel":"Ábrela en tu teléfono","downloadHint":"Escanea el código con la cámara de tu teléfono o abre specrails.dev/companion-app en su navegador.","open":"Abrir Specrails Companion","pairLabel":"Emparejar lleva diez segundos","pairBody":"En tu teléfono abre specrails.dev/companion-app y luego, aquí, ve a Ajustes → Compañera móvil → Emparejar compañera web y sigue los pasos en pantalla."},"moveFast":{"nav":"Ve rápido","title":"Muévete a la velocidad del pensamiento","subtitle":"Teclado primero, en todas partes","paletteLabel":"Paleta de comandos","paletteShortcut":"<f>Pulsa</f> <mod>{{mod}}</mod> <m>+</m> <k>K</k> <m>en cualquier parte</m>","paletteBody":"Cambia de proyecto, ejecuta comandos de spec, salta a cualquier página y encuentra jobs recientes — todo con búsqueda difusa.","terminalLabel":"Panel de terminal","terminalBody":"Alterna con <mod>{{mod}}</mod> <j>J</j>.","shortcutsLabel":"Todos los atajos","shortcutsBody":"Pulsa <q>?</q> para ver la chuleta completa.","chatLabel":"Barra lateral de chat","chatBody":"Alterna la barra lateral derecha con <mod>{{mod}}</mod> <bkey>B</bkey>.","projectsLabel":"Barra lateral de proyectos","projectsBody":"Alterna la barra lateral Arc izquierda con <alt>{{alt}}</alt> <mod>{{mod}}</mod> <bkey>B</bkey>.","outro":"<b>Fin del tour.</b> Añade un proyecto desde la barra lateral izquierda y publica tu primera spec. Puedes reabrir este recorrido cuando quieras desde Ajustes."},"jira":{"label":"Integración con Jira","body":"Respalda cualquier proyecto con un <b>tablero de Jira</b> — cada spec es un issue de Jira, sincronizado en ambos sentidos: el estado sigue al rail y se publica un comentario al terminar un job. Configúralo por proyecto al añadirlo, o cuando quieras en Ajustes."}}`),c={wizard:e,addProject:t,prerequisites:n,instructions:r,checkpoints:i,setupChat:a,welcome:o,onboarding:s};export{t as addProject,i as checkpoints,c as default,r as instructions,s as onboarding,n as prerequisites,a as setupChat,o as welcome,e as wizard};
|
|
1
|
+
var e={configureAgents:`Configurar agentes de {{provider}}`,configureSubtitle:`Elige qué agentes instalar y cómo ejecutarlos.`,tabs:{agents:`Agentes`,models:`Modelos`},skipForNow:`Omitir por ahora`,install:`Instalar`,nextProvider:`Siguiente: {{provider}}`,installingProvider:`Instalando {{provider}}…`,installingSpecrails:`Instalando specrails...`,installingFromTemplates:`Instalando agentes desde plantillas`,waitingForOutput:`Esperando salida...`,checkpoints:{baseInstall:`Instalación base`,agentSelection:`Selección de agentes`,agentGeneration:`Generación de agentes`},steps:{configure:`Configurar`},summary:{agents:`Agentes`,agentSkills:`Skills de agente`,skills:`Skills`,openspecSkills:`Skills de OpenSpec`,legacyRemoved_one:`Eliminado {{count}} comando legacy <code>/specrails:*</code>`,legacyRemoved_other:`Eliminados {{count}} comandos legacy <code>/specrails:*</code>`},complete:{welcome:`Bienvenido a <spec>spec</spec><rails>rails</rails>`,configured:`<strong>{{projectName}}</strong> ya está configurado con flujos de desarrollo impulsados por IA. Tus agentes y comandos especializados están listos para usar.`,installedForEngines_one:`Instalado para {{count}} motor`,installedForEngines_other:`Instalado para {{count}} motores`,installed:`Instalado`,installFailed:`Error en la instalación`,learnMore:`Aprende a sacar el máximo partido a specrails:`,continueToProject:`Continuar al proyecto`,jira:{title:`Conecta un tablero de Jira`,subtitle:`Opcional — respalda las specs de este proyecto con un tablero de Jira. También puedes hacerlo más tarde en Ajustes.`,configure:`Configurar Jira`,optional:`opcional`},mcpHint:`Conecta herramientas de IA externas a Specrails mediante un servidor MCP local seguro — actívalo en Ajustes.`,agentChatHint:`Opera Specrails conversando — el agente integrado maneja toda la app por ti. Ábrelo desde la burbuja o con ⌘⇧A.`},error:{title:`La configuración ha fallado`,skipSetup:`Omitir configuración`,prereqMissing:`La configuración de SpecRails necesita Node.js, npm, npx y Git disponibles en el PATH antes de poder instalar este proyecto.`,prereqRetryHint:`Instala las herramientas que faltan, reinicia Specrails y reintenta la configuración.`}},t={title:`Añadir proyecto`,description:`Registra un directorio de proyecto para gestionarlo desde Specrails.`,noProviderDetected:`No se ha detectado ningún CLI de IA. Instala primero Claude Code o Codex CLI.`,pathLabel:`Ruta del proyecto`,pathPlaceholder:`/Users/yo/mi-proyecto`,pathHint:`Ruta absoluta a la raíz del proyecto`,browseForFolder:`Buscar carpeta`,selectProjectFolder:`Seleccionar carpeta del proyecto`,nameLabel:`Nombre para mostrar`,optional:`(opcional)`,namePlaceholder:`Mi proyecto`,nameHint:`Por defecto, el nombre del directorio`,providersLabel:`Proveedores de IA`,notFound:`no encontrado`,multiProviderHint:`Se configurarán ambos motores. El primero es el predeterminado del proyecto. No se puede cambiar después de la creación.`,singleProviderHint:`No se puede cambiar una vez creado el proyecto.`,adding:`Añadiendo...`,submit:`Añadir proyecto`,toolsRequired_one:`Se necesita {{tools}} para añadir un proyecto`,toolsRequired_other:`Se necesitan {{tools}} para añadir un proyecto`,errors:{pathRequired:`La ruta del proyecto es obligatoria`,selectProvider:`Selecciona al menos un proveedor de IA`,addFailed:`No se pudo añadir el proyecto`},toasts:{registered:`Proyecto "{{name}}" registrado`}},n={corruptedBundle:`bundle dañado — reinstala la app`,notInstalled:`no instalado`,failedToExecute:`encontrado pero no se pudo ejecutar`,failedToExecuteAt:`encontrado en {{path}} pero no se pudo ejecutar`,failedToExecuteWithError:`encontrado pero no se pudo ejecutar ({{error}})`,failedToExecuteAtWithError:`encontrado en {{path}} pero no se pudo ejecutar ({{error}})`,needsMinimum:`{{version}} encontrada — se necesita {{minVersion}}+`,unknownVersion:`desconocida`,installedLabel:`instalado`,verifyError:`No se pudieron verificar las herramientas de desarrollo en local — la instalación lo validará.`,allDetected:`Todas las herramientas necesarias detectadas`,bundleCorruptedTitle:`Bundle de la app dañado`,toolsRequired_one:`{{count}} herramienta de desarrollo necesaria`,toolsRequired_other:`{{count}} herramientas de desarrollo necesarias`,reinstallHint:`Reinstala la app Specrails para restaurar las herramientas incluidas.`,installMissingHint:`Instala las herramientas que faltan para continuar.`,moreInfo:`Más información`,bundledBadge:`incluida`},r={title:`Instalar herramientas de desarrollo`,description:`SpecRails necesita Node.js, npm, npx y Git en el PATH. Elige el snippet de tu SO, ejecútalo y pulsa "Ya lo he instalado, volver a comprobar".`,darwin:{intro:`Homebrew te da ambas herramientas en una línea. Si no tienes brew, usa las descargas oficiales.`,installNodeGit:`Instalar Node.js y Git con Homebrew`},win32:{intro:`Winget viene incluido en Windows 11 y en las versiones recientes de Windows 10. Abre PowerShell o Terminal y ejecuta:`,installNode:`Instalar Node.js LTS`,installGit:`Instalar Git`,note:`Tras la instalación, reinicia Specrails para que Windows actualice el PATH.`},linux:{intro:`Usa el gestor de paquetes de tu distro:`,debian:`Debian / Ubuntu`,fedora:`Fedora / RHEL`},links:{nodeOfficial:`Node.js (oficial)`,gitOfficial:`Git (oficial)`,gitWindows:`Git para Windows (oficial)`},showOtherPlatforms:`Mostrar otras plataformas`,hideOtherPlatforms:`Ocultar otras plataformas`,recheck:`Ya lo he instalado, volver a comprobar`,diagnostics:{copy:`Copiar diagnóstico`,copied:`Diagnóstico copiado`,failed:`Error al copiar`},corrupted:{title:`Bundle de la app dañado`,description:`No se pudieron verificar una o más herramientas incluidas (Node.js, Git).`,body:`Esta herramienta viene incluida con la app Specrails y no puede instalarse por separado. Si ves este mensaje, el bundle de la app puede estar dañado. Reinstala Specrails.`}},i={title:`Progreso de la configuración`,progress:`{{done}} de {{total}} completados`,rawLog_one:`Log sin procesar ({{count}} línea)`,rawLog_other:`Log sin procesar ({{count}} líneas)`},a={title:`Asistente de configuración`,subtitle:`Responde a las preguntas para configurar tu proyecto`,settingUp:`Configurando tu proyecto...`,placeholder:`Escribe una respuesta...`,keyboardHint:`Enter para enviar, Shift+Enter para nueva línea`},o={title:`Bienvenido a <spec>spec</spec><rails>rails</rails>`,description:`Specrails gestiona varios proyectos desde una única interfaz. Añade tu primer proyecto para empezar.`,addFirstProject:`Añade tu primer proyecto`,jiraHint:`Conecta cada proyecto a su propio tablero de Jira — las specs se sincronizan en ambos sentidos.`,mcpHint:`Conecta herramientas de IA externas a Specrails mediante un servidor MCP local seguro — actívalo en Ajustes.`,agentChatHint:`Opera Specrails conversando — un agente integrado gestiona specs, rails y analíticas por ti a través del MCP local. Ábrelo desde la burbuja o con ⌘⇧A.`},s=JSON.parse(`{"productTour":"Tour del producto","stepCount":"Paso {{current}} de {{total}}","goToStep":"Ir al paso {{step}}: {{label}}","stepLabel":"Paso {{step}}","dontShowAgain":"No volver a mostrar","skipTour":"Saltar el tour","getStarted":"Empezar","flow":{"addSpec":"Añade una spec","dropInRail":"Suéltala en un rail","hitPlay":"Dale a Play","ship":"Ship","architect":"Arquitecto","developer":"Desarrollador","reviewer":"Revisor"},"language":{"nav":"Idioma","title":"Elige tu idioma","subtitle":"Specrails habla tu idioma","intro":"Selecciona el idioma en el que quieres la interfaz. Se aplica al instante — este tour incluido.","note":"Puedes cambiarlo cuando quieras en Ajustes → Idioma."},"theme":{"nav":"Tema","title":"Elige tu estilo","subtitle":"Temas integrados, aplicados al instante","intro":"Decide qué aspecto tendrá Specrails — el tema se aplica en cuanto haces clic.","note":"Puedes cambiarlo cuando quieras en Ajustes → Apariencia."},"welcome":{"nav":"Bienvenida","title":"Bienvenido a Specrails","subtitle":"Tu centro de mando local para publicar software con agentes de IA","intro":"Specrails convierte una idea en código publicado — y te permite <b>ver, dirigir y confiar en</b> cada paso. Redacta una spec hablando con una IA, suéltala en un rail de ejecución y dale a Play. El pipeline se encarga de la arquitectura, la implementación, la revisión y la pull request, retransmitiendo su trabajo en directo en todo momento.","coreLoopLabel":"El bucle principal","flowCaption":"Cada spec pasa automáticamente por <b>Arquitecto → Desarrollador → Revisor → Ship</b>.","localNote":"<b>100 % local · un solo usuario · sin cuentas.</b> Todo se ejecuta en tu máquina. Tu código nunca sale del portátil a menos que <i>tú</i> lances un agente sobre él.","tourNote":"Este tour rápido repasa todo lo que puede hacer la aplicación — alrededor de un minuto."},"authorSpecs":{"nav":"Crea specs","title":"Convierte ideas en specs","subtitle":"Seis formas de capturar exactamente lo que quieres construir","intro":"Una <b>spec</b> es una descripción del trabajo que quieres que se haga. Redáctala como mejor encaje en cada momento — desde una línea rápida hasta una conversación completa con la IA.","exploreLabel":"Explore — conversa","exploreBody":"Describe lo que quieres en un chat; un borrador en vivo se reconstruye en cada turno. Un slider de presets ajusta cuánto contexto del proyecto ve la IA — desde solo tu mensaje hasta el codebase completo más tus servidores MCP.","quickLabel":"Quick — de una sola vez","quickBody":"¿Ya sabes lo que quieres? Genera una spec completa en un solo turno. Opcionalmente, enriquécela con una Contract Layer: nombres exactos, formas de datos, invariantes y una lista de archivos a tocar para que los agentes no reinventen nada.","websiteLabel":"Desde una web","websiteBody":"Abre un navegador embebido. Selecciona un elemento al pasar el ratón o arrastra un rectángulo, y la captura, el DOM y el CSS aplicado se convierten en adjuntos. La versión de escritorio incluye su propio Chromium, así que funciona sin conexión.","smashLabel":"SMASH para una épica grande","smashBody":"Divide una spec grande en una familia de sub-specs más pequeñas con un clic — cada hija lleva un breve resumen en su tarjeta.","draftsLabel":"Borradores y seguir editando","draftsBody":"Aparca una exploración en curso como ticket en borrador y retómala más tarde; reabre cualquier spec en Explore para seguir refinándola.","compareLabel":"Compara lado a lado","compareBody":"Arrastra una spec al borde de la pantalla y se desliza un selector con tus otras specs — revisa dos a la vez, al estilo tablet."},"rails":{"nav":"Ejecuta en rails","title":"Ejecuta el pipeline sobre rails","subtitle":"Organiza las specs en carriles y lanza los agentes","intro":"El lado derecho del Dashboard son tus <b>Rails</b> — carriles de ejecución. Arrastra una tarjeta de spec a un rail y pulsa <play>▶ Play</play> para lanzar un job de implementación.","jobLabel":"Qué ejecuta cada job","flowCaption":"Cada fase retransmite sus logs en directo mientras trabaja.","modeLabel":"Elige un Loop para ejecutar","modeBody":"Cada rail ejecuta un <b>Loop</b>. Elige uno de serie — <b>Implement</b> (el pipeline estructurado completo), <b>Batch</b> (varias specs a la vez) o <b>Freestyle</b> (Claude trabaja de forma autónoma, sin pipeline fijo) — o uno que hayas creado tú.","profilesLabel":"Perfiles de agentes","profilesBody":"Un catálogo declarativo por proyecto que decide qué agentes se ejecutan y qué modelo usa cada uno — se elige por rail y se congela por job para que el trabajo concurrente quede aislado.","jobDetailLabel":"Detalle del job en directo","jobDetailBody":"Cada job muestra una cabecera con la identidad del ticket, un contador de duración en directo y los turnos y tokens acumulados, con el coste definitivo resuelto al terminar.","isolationLabel":"Muchos proyectos, aislados","isolationBody":"Cada proyecto tiene su propia base de datos y su propia cola de jobs. Ejecuta proyectos distintos a la vez y cambia entre ellos desde la barra lateral izquierda — tu posición se recuerda por proyecto.","loopsLabel":"Crea tus propios loops","loopsBody":"<b>Loops</b> es un editor visual: encadena pasos de IA, comandos de shell y un <b>Loop Decider</b> que se repite hasta cumplir un objetivo — p. ej. verificar → corregir → verificar hasta que todo esté en verde. Publica un loop y elígelo en cualquier rail."},"agent":{"nav":"Chat con el agente","title":"Opera la app conversando","subtitle":"Un copiloto que maneja Specrails por ti","intro":"El <b>chat con el agente</b> integrado te permite manejar Specrails preguntando — crea specs, lanza rails, consulta analíticas — en lugar de ir haciendo clic. Funciona a través de las propias herramientas <b>MCP</b> de Specrails y, como todo es en vivo, ves cómo cambia el tablero mientras trabaja.","openLabel":"Siempre a un clic","openBody":"Ábrelo desde la burbuja flotante de abajo, o pulsa ⌘⇧A (Ctrl+Shift+A) desde cualquier sitio. El panel se mueve, se redimensiona, se maximiza y recuerda dónde lo dejaste.","operateLabel":"Maneja toda la app","operateBody":"Elige un proyecto (o Inicio para todo) y un proveedor, y simplemente pide: “lanza los tres tickets de mayor prioridad”, “¿cuánto he gastado esta semana?”.","levelsLabel":"Tú llevas las riendas","levelsBody":"Un nivel en vivo — <b>Observa → Edita → Opera → Autónomo</b>, que se alterna con Shift+Tab — decide hasta dónde puede llegar. Nunca actúa por encima del nivel que fijes.","watchLabel":"Míralo suceder","watchBody":"El panel no es modal, así que los rails y las specs aparecen en el dashboard en tiempo real mientras el agente trabaja. Un chip de estado muestra qué está haciendo ahora mismo.","mcpLabel":"Funciona sobre el MCP local","mcpBody":"El agente maneja la app a través del servidor MCP integrado de Specrails. Si está apagado, el panel ofrece activarlo con un clic — no se instala nada."},"providers":{"nav":"Tu agente","title":"Trae tu propio agente","subtitle":"Claude Code y Codex, como motores de primera clase","intro":"La aplicación trata <b>Claude Code</b> y <b>Codex CLI</b> como motores intercambiables tras un mismo contrato. Un proyecto puede instalar uno o ambos — la elección se hace en el momento de la instalación.","table":{"capability":"Capacidad","streamingResume":"Streaming y reanudación de sesión","native":"Nativo","costReporting":"Informe de costes","providerBilled":"Facturado por el proveedor","estimated":"Estimado (~)","telemetry":"Telemetría (OTEL)","synthesized":"Sintetizada","agentProfiles":"Perfiles de agentes"},"calloutLabel":"Cuando ambos están instalados","calloutBody":"Elige el motor <b>por spec, por rail o por lanzamiento de terminal</b>. La aplicación recuerda tu última elección por proyecto. El coste de Codex se estima con una tarifa local y siempre se marca con <mono>~</mono>."},"cost":{"nav":"Controla el coste","title":"Controla cada céntimo","subtitle":"Cada invocación facturable, registrada y visualizada","intro":"Cada invocación de IA — en rails, Quick, Explore, ediciones con IA, SMASH y resúmenes de archivos — se registra tanto para <b>Claude como para Codex</b>. Se acabó adivinar lo que cuestan los agentes.","analyticsLabel":"Página de analítica","analyticsBody":"Un hero de burn-rate, línea temporal diaria, top de tickets, desglose por modelo y un scatter de coste frente a turnos. Filtra por periodo (7d / 30d / 90d / Todo) y por superficie.","perTicketLabel":"Gasto por ticket","perTicketBody":"El detalle de cada spec muestra cuánto costó y cuántos turnos llevó, con enlace directo a la analítica filtrada por ese ticket.","honestLabel":"Números honestos","honestBody":"El coste de Claude es la cifra facturada por el proveedor; el de Codex es estimado y se marca con <mono>~</mono>. Los totales de tokens incluyen los niveles de caché, así que las cifras cuadran de verdad.","budgetsLabel":"Presupuestos y alertas","budgetsBody":"Define un presupuesto diario y una alerta de coste por job; la aplicación pausa la cola automáticamente cuando cruzas la línea. Exporta lo que quieras a CSV o JSON."},"workspace":{"nav":"Espacio de trabajo","title":"Hazlo tu espacio de trabajo","subtitle":"Todo lo que necesitas sin salir de la ventana","terminalLabel":"Panel de terminal","terminalBody":"Un terminal real al estilo VS Code en la parte inferior (<mod>{{mod}}</mod> <j>J</j>) — renderizado WebGL, búsqueda, imágenes inline, arrastrar y soltar rutas e integración con el shell. Hasta 10 sesiones por proyecto.","codeLabel":"Explorador de código","codeBody":"Un árbol de archivos de solo lectura y un visor Monaco con resúmenes de IA en lenguaje llano y chips de procedencia «tocado por IA», para que cualquiera pueda seguir qué cambió y por qué.","integrationsLabel":"Integraciones","integrationsBody":"Un marketplace por proyecto de integraciones MCP — la navegación semántica de código de Serena viene incluida. Las instalaciones son aditivas: añadir una nunca altera otra.","themesLabel":"Temas","themesBody":"Cinco temas integrados — specrails (por defecto), dracula, aurora-light, obsidian-dark y matrix — aplicados antes de que la UI pinte, así no hay parpadeo. Cámbialos en Ajustes → Apariencia.","chatsLabel":"Chats minimizables","chatsBody":"Aparca una sesión de Explore o AI Edit en un chip del dock y retómala más tarde — nunca se pierde entre recargas o cambios de proyecto.","desktopLabel":"Escritorio o navegador","desktopBody":"Ejecuta Specrails en tu navegador o descarga la app de escritorio firmada (macOS y Windows), que incluye su propio servidor y runtimes."},"companion":{"nav":"Compañera móvil","title":"Llévate Specrails contigo","subtitle":"Specrails Companion — tus pipelines, en tu teléfono","intro":"<b>Specrails Companion</b> es una app web en specrails.dev/companion-app — ábrela en tu teléfono (o añádela a tu pantalla de inicio) para navegar por el tablero de specs, lanzar y detener rails, seguir los logs de los jobs en directo y echar un vistazo a la analítica. Sin instalación, sin tienda de apps.","localLabel":"100 % local, como todo lo demás","localBody":"Tu teléfono se conecta directamente a este ordenador — peer-to-peer y cifrado (WebRTC). Sin servidores intermedios en la nube, sin cuentas, y tu código nunca sale de tus dispositivos.","downloadLabel":"Ábrela en tu teléfono","downloadHint":"Escanea el código con la cámara de tu teléfono o abre specrails.dev/companion-app en su navegador.","open":"Abrir Specrails Companion","pairLabel":"Emparejar lleva diez segundos","pairBody":"En tu teléfono abre specrails.dev/companion-app y luego, aquí, ve a Ajustes → Compañera móvil → Emparejar compañera web y sigue los pasos en pantalla."},"moveFast":{"nav":"Ve rápido","title":"Muévete a la velocidad del pensamiento","subtitle":"Teclado primero, en todas partes","paletteLabel":"Paleta de comandos","paletteShortcut":"<f>Pulsa</f> <mod>{{mod}}</mod> <m>+</m> <k>K</k> <m>en cualquier parte</m>","paletteBody":"Cambia de proyecto, ejecuta comandos de spec, salta a cualquier página y encuentra jobs recientes — todo con búsqueda difusa.","terminalLabel":"Panel de terminal","terminalBody":"Alterna con <mod>{{mod}}</mod> <j>J</j>.","shortcutsLabel":"Todos los atajos","shortcutsBody":"Pulsa <q>?</q> para ver la chuleta completa.","chatLabel":"Barra lateral de chat","chatBody":"Alterna la barra lateral derecha con <mod>{{mod}}</mod> <bkey>B</bkey>.","projectsLabel":"Barra lateral de proyectos","projectsBody":"Alterna la barra lateral Arc izquierda con <alt>{{alt}}</alt> <mod>{{mod}}</mod> <bkey>B</bkey>.","outro":"<b>Fin del tour.</b> Añade un proyecto desde la barra lateral izquierda y publica tu primera spec. Puedes reabrir este recorrido cuando quieras desde Ajustes."},"jira":{"label":"Integración con Jira","body":"Respalda cualquier proyecto con un <b>tablero de Jira</b> — cada spec es un issue de Jira, sincronizado en ambos sentidos: el estado sigue al rail y se publica un comentario al terminar un job. Configúralo por proyecto al añadirlo, o cuando quieras en Ajustes."}}`),c={wizard:e,addProject:t,prerequisites:n,instructions:r,checkpoints:i,setupChat:a,welcome:o,onboarding:s};export{t as addProject,i as checkpoints,c as default,r as instructions,s as onboarding,n as prerequisites,a as setupChat,o as welcome,e as wizard};
|