specrails-desktop 2.47.0 → 2.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/client/dist/assets/{ActivityFeedPage-DSCpSOGV.js → ActivityFeedPage-CGq6QhP5.js} +1 -1
- package/client/dist/assets/AgentBrowserCapture-C4GZ-kdf.js +1 -0
- package/client/dist/assets/AgentModeAnalyticsPane-_IPmL0ZS.js +2 -0
- package/client/dist/assets/AgentModeCodePane-B5WG5DOP.js +2 -0
- package/client/dist/assets/{AgentModeJobsPane-Dw3DNFkh.js → AgentModeJobsPane-w1N_HIXh.js} +1 -1
- package/client/dist/assets/AgentsPage-CmwnnT46.js +87 -0
- package/client/dist/assets/AnalyticsPage-BUMsKtsJ.js +1 -0
- package/client/dist/assets/CodePage-PjgywJPS.js +3 -0
- package/client/dist/assets/DesktopAnalyticsPage-BXY1pH4y.js +1 -0
- package/client/dist/assets/DocsDialog-ccQETHKB.js +11 -0
- package/client/dist/assets/DocsPage-DzEgplB3.js +11 -0
- package/client/dist/assets/{ExportDropdown-BwuvqS2Y.js → ExportDropdown-B8bBGopr.js} +1 -1
- package/client/dist/assets/InteractiveJobComposer-CEwGkJ8F.js +19 -0
- package/client/dist/assets/JobDetailModal-BYXmuTDe.js +1 -0
- package/client/dist/assets/JobDetailPage-CWp6MwJj.js +1 -0
- package/client/dist/assets/JobsPage-D1O1uyG8.js +1 -0
- package/client/dist/assets/{LoopBuilderPage-Byvq8Oqx.js → LoopBuilderPage-DQE-7Vby.js} +2 -2
- package/client/dist/assets/{LoopPreviewModal-BMC9Mgj1.js → LoopPreviewModal-Bk7zIXD5.js} +1 -1
- package/client/dist/assets/LoopsPage-CqG7mx56.js +1 -0
- package/client/dist/assets/MinimizedChatsContext-UpnqccPx.js +1 -0
- package/client/dist/assets/PluginsPage-CjgVvmpW.js +2 -0
- package/client/dist/assets/{ProjectSettingsDialog-nspqxH-M.js → ProjectSettingsDialog-D6vBCoay.js} +1 -1
- package/client/dist/assets/{RepositoryDeliveries-Dq9NJOWi.js → RepositoryDeliveries-C36ipKp_.js} +1 -1
- package/client/dist/assets/{RepositoryScopeSelector-C3jKG2z0.js → RepositoryScopeSelector-0Gz_fR1E.js} +1 -1
- package/client/dist/assets/ReviewPacketPage-Dr9RYs7q.js +1 -0
- package/client/dist/assets/TemplatePreviewModal-sCMHYFJo.js +1 -0
- package/client/dist/assets/TicketDetailModalContext-C5GgJlEt.js +14 -0
- package/client/dist/assets/{Trans-C0KyPo2O.js → Trans-9pHTy2fH.js} +1 -1
- package/client/dist/assets/{addspec-D2YIQ0GU.js → addspec-BOvgmcgk.js} +1 -1
- package/client/dist/assets/{addspec-B_TPJt-R.js → addspec-Clmyfn_R.js} +1 -1
- package/client/dist/assets/{addspec-A1lDQa4M.js → addspec-CsNaBpHp.js} +1 -1
- package/client/dist/assets/{addspec-CQBjzt24.js → addspec-D2tvWmmV.js} +1 -1
- package/client/dist/assets/{addspec-CLYLvaVP.js → addspec-D3nFwvD0.js} +1 -1
- package/client/dist/assets/{addspec-BPpZ_olp.js → addspec-DVLEhK3w.js} +1 -1
- package/client/dist/assets/{addspec-iFdQ6D99.js → addspec-DXbK-tb0.js} +1 -1
- package/client/dist/assets/{addspec-BHZd0N5F.js → addspec-OHG8DFEn.js} +1 -1
- package/client/dist/assets/agentRuntime-BUimiX__.js +1 -0
- package/client/dist/assets/agentRuntime-BcN97sAB.js +1 -0
- package/client/dist/assets/agentRuntime-Ckyg-ahT.js +1 -0
- package/client/dist/assets/agentRuntime-DJCwyX4t.js +1 -0
- package/client/dist/assets/agentRuntime-DVzPJOl0.js +1 -0
- package/client/dist/assets/agentRuntime-V9AZTG3c.js +1 -0
- package/client/dist/assets/agentRuntime-bAAjw1vw.js +1 -0
- package/client/dist/assets/agentRuntime-v4qKAYH-.js +1 -0
- package/client/dist/assets/{agents-DyI4rbHa.js → agents-CA5eT1d0.js} +1 -1
- package/client/dist/assets/{agents-_5mJMkAE.js → agents-CAgy-5uS.js} +1 -1
- package/client/dist/assets/{agents-BIT1UdTy.js → agents-CNm6Qzlv.js} +1 -1
- package/client/dist/assets/{agents-CST-lpYX.js → agents-CTwbx-fb.js} +1 -1
- package/client/dist/assets/{agents-C7fKfvm8.js → agents-DEGV1Vao.js} +1 -1
- package/client/dist/assets/{agents-DsgGMGwU.js → agents-HsDF1aQU.js} +1 -1
- package/client/dist/assets/{agents-Cm2JYrAa.js → agents-IQjdA-z9.js} +1 -1
- package/client/dist/assets/{agents-H6tVQUNP.js → agents-RkGoteXh.js} +1 -1
- package/client/dist/assets/analytics-BNgZ1Nj7.js +1 -0
- package/client/dist/assets/analytics-BlypLLR6.js +1 -0
- package/client/dist/assets/analytics-CoEzWPx4.js +1 -0
- package/client/dist/assets/analytics-DFh5lSOl.js +1 -0
- package/client/dist/assets/analytics-DZp-DS2U.js +1 -0
- package/client/dist/assets/analytics-DjLlE7jS.js +1 -0
- package/client/dist/assets/analytics-jzCkOec3.js +1 -0
- package/client/dist/assets/analytics-nZIjjtCc.js +1 -0
- package/client/dist/assets/{dashboard-BK_mez-z.js → dashboard-C29Qwa-L.js} +1 -1
- package/client/dist/assets/{dashboard-BwkjxI6H.js → dashboard-CSJzf5OT.js} +1 -1
- package/client/dist/assets/{dashboard-C3bDKf7s.js → dashboard-CTfEtkqX.js} +1 -1
- package/client/dist/assets/{dashboard-Bt0cCzeG.js → dashboard-Cr4D8oMn.js} +1 -1
- package/client/dist/assets/{dashboard-fRrP0Kv0.js → dashboard-Csf1yGSN.js} +1 -1
- package/client/dist/assets/{dashboard-CdvjGfog.js → dashboard-D40HP2ks.js} +1 -1
- package/client/dist/assets/dashboard-DBAP2_SQ.js +1 -0
- package/client/dist/assets/{dashboard-B14uYXkG.js → dashboard-DMklepmz.js} +1 -1
- package/client/dist/assets/file-text-CFT-xXKN.js +1 -0
- package/client/dist/assets/{formatDistanceToNow-D44phX1J.js → formatDistanceToNow-w_2U5pm0.js} +1 -1
- package/client/dist/assets/{getTimezoneOffsetInMilliseconds-EAh9LFSx.js → getTimezoneOffsetInMilliseconds-BRymg1Kk.js} +1 -1
- package/client/dist/assets/index-D0ScFZvR.css +2 -0
- package/client/dist/assets/index-DORCrgbI.js +77 -0
- package/client/dist/assets/jira-api-BqHbSdxK.js +1 -0
- package/client/dist/assets/jobs-C6qmvUAi.js +1 -0
- package/client/dist/assets/jobs-C9j2PuwW.js +1 -0
- package/client/dist/assets/jobs-DLHdDkHc.js +1 -0
- package/client/dist/assets/jobs-DSp9DoD_.js +1 -0
- package/client/dist/assets/jobs-DTQO08nJ.js +1 -0
- package/client/dist/assets/jobs-DoFaEl9g.js +1 -0
- package/client/dist/assets/jobs-Dpw6AEOP.js +1 -0
- package/client/dist/assets/jobs-DrF8Do8s.js +1 -0
- package/client/dist/assets/{narration-UWi_xIZ-.js → narration--hUhjM5v.js} +1 -1
- package/client/dist/assets/{narration-DiPyj06T.js → narration-CHI06czm.js} +1 -1
- package/client/dist/assets/{narration-DrBAf8uv.js → narration-DjKB3pQZ.js} +1 -1
- package/client/dist/assets/{narration-CqNvgRi9.js → narration-DtCYvRLM.js} +1 -1
- package/client/dist/assets/{narration-B1uGfofH.js → narration-DvLQBW9U.js} +1 -1
- package/client/dist/assets/{narration-BKcL4Srl.js → narration-eSx3gR0W.js} +1 -1
- package/client/dist/assets/{narration-OyujFouL.js → narration-n3hOA7LY.js} +1 -1
- package/client/dist/assets/{narration-BtjKyHVM.js → narration-thJOeT2-.js} +1 -1
- package/client/dist/assets/packet-BNW8ODQw.js +1 -0
- package/client/dist/assets/packet-CXYvfdjy.js +1 -0
- package/client/dist/assets/packet-CtIlB8YE.js +1 -0
- package/client/dist/assets/packet-DA1SJkMH.js +1 -0
- package/client/dist/assets/packet-DYcWfBip.js +1 -0
- package/client/dist/assets/packet-DseX9yKC.js +1 -0
- package/client/dist/assets/packet-_m5aOy_d.js +1 -0
- package/client/dist/assets/packet-qOemUAm3.js +1 -0
- package/client/dist/assets/{project-repositories-GRYdjlKB.js → project-repositories-BsCs1PPA.js} +1 -1
- package/client/dist/assets/provider-capabilities-Vi1ZGvAK.js +1 -0
- package/client/dist/assets/settings-BsehKpty.js +1 -0
- package/client/dist/assets/settings-CQWob3SB.js +1 -0
- package/client/dist/assets/settings-CgCl0hzy.js +1 -0
- package/client/dist/assets/settings-DLRLd22L.js +1 -0
- package/client/dist/assets/settings-Dn5prAFl.js +1 -0
- package/client/dist/assets/settings-HZSu-K4l.js +1 -0
- package/client/dist/assets/{settings-DEgcA0jd.js → settings-p4OVIyRh.js} +1 -1
- package/client/dist/assets/settings-rddaldUp.js +1 -0
- package/client/dist/assets/setup-B5FHuxvB.js +1 -0
- package/client/dist/assets/setup-BihzXadx.js +1 -0
- package/client/dist/assets/setup-BtC6Hg4K.js +1 -0
- package/client/dist/assets/setup-C9Fy9PKQ.js +1 -0
- package/client/dist/assets/setup-CROyqD5N.js +1 -0
- package/client/dist/assets/setup-DpqzaEEA.js +1 -0
- package/client/dist/assets/setup-Dwzt5nO1.js +1 -0
- package/client/dist/assets/setup-zLEDnG7N.js +1 -0
- package/client/dist/assets/{spending-CN9PHM65.js → spending-hcgxHP4O.js} +1 -1
- package/client/dist/assets/{useDesktop-iius_s5d.js → useDesktop-CAisjKWC.js} +1 -1
- package/client/dist/assets/{useSharedWebSocket-D7hkZ3Ka.js → useSharedWebSocket-BHIfW4QT.js} +2 -2
- package/client/dist/assets/wrench-BfmNO9Vw.js +1 -0
- package/client/dist/index.html +27 -26
- package/docs/guide/de/integrations/7-local-engines.md +37 -0
- package/docs/guide/en/integrations/7-local-engines.md +37 -0
- package/docs/guide/es/integrations/7-local-engines.md +37 -0
- package/docs/guide/fr/integrations/7-local-engines.md +37 -0
- package/docs/guide/it/integrations/7-local-engines.md +37 -0
- package/docs/guide/ja/integrations/7-local-engines.md +37 -0
- package/docs/guide/pt/integrations/7-local-engines.md +37 -0
- package/docs/guide/zh/integrations/7-local-engines.md +37 -0
- package/docs/internals/adding-a-provider.md +12 -0
- package/docs/internals/local-agent-runner.md +153 -0
- package/docs/internals/review-packet.md +8 -0
- package/docs/local-providers.md +215 -0
- package/local-runner/dist/specrails-local-runner.js +15815 -0
- package/package.json +7 -5
- package/server/dist/agent-chat-manager.js +8 -1
- package/server/dist/agent-chat-router.js +5 -2
- package/server/dist/agent-fence-promotion.js +53 -0
- package/server/dist/agent-mcp-config.js +4 -1
- package/server/dist/agent-runtime-bridge.js +7 -2
- package/server/dist/agent-runtime-controls-router.js +12 -1
- package/server/dist/agent-runtime-controls.js +37 -2
- package/server/dist/agent-runtime-effective-config.js +28 -7
- package/server/dist/agent-runtime-metrics.js +1 -1
- package/server/dist/agent-runtime-settings-router.js +76 -6
- package/server/dist/agent-runtime-settings.js +137 -7
- package/server/dist/agent-spec-framing.js +10 -4
- package/server/dist/binary-probe.js +12 -0
- package/server/dist/blueprint-router.js +3 -2
- package/server/dist/chat-manager.js +5 -1
- package/server/dist/desktop-router.js +87 -4
- package/server/dist/index.js +13 -0
- package/server/dist/interactive-job-session.js +3 -1
- package/server/dist/local-engine-detection.js +118 -0
- package/server/dist/loop-executors.js +2 -1
- package/server/dist/loop-role-engines.js +129 -0
- package/server/dist/loop-run-manager.js +4 -4
- package/server/dist/mcp/tools/app-settings.js +30 -4
- package/server/dist/mcp/tools/rails.js +1 -1
- package/server/dist/pr-body.js +11 -2
- package/server/dist/pricing.js +15 -0
- package/server/dist/provider-detection.js +63 -1
- package/server/dist/provider-selection.js +26 -1
- package/server/dist/providers/index.js +4 -1
- package/server/dist/providers/local-adapter-registry.js +56 -0
- package/server/dist/providers/local-adapter.js +426 -0
- package/server/dist/providers/registry.js +39 -4
- package/server/dist/rail-isolated-launch.js +3 -3
- package/server/dist/rails-router.js +66 -10
- package/server/dist/result-event.js +17 -0
- package/server/dist/review-packet.js +1 -0
- package/server/dist/schemas/agent-runtime.schema.json +10 -2
- package/server/dist/setup-manager.js +5 -1
- package/server/dist/spec-models.js +14 -2
- package/server/dist/worktree-node-modules.js +97 -65
- package/client/dist/assets/AgentBrowserCapture-mc1c5pgS.js +0 -1
- package/client/dist/assets/AgentModeAnalyticsPane--UkamBTm.js +0 -2
- package/client/dist/assets/AgentModeCodePane-DJCswsvU.js +0 -2
- package/client/dist/assets/AgentsPage-ChElPUL9.js +0 -87
- package/client/dist/assets/AnalyticsPage-BGtkFHBp.js +0 -1
- package/client/dist/assets/CodePage-BBnw3VGn.js +0 -3
- package/client/dist/assets/DesktopAnalyticsPage-B85tNScc.js +0 -1
- package/client/dist/assets/DocsDialog-D4cXrOMl.js +0 -11
- package/client/dist/assets/DocsPage-BCAbC6qy.js +0 -11
- package/client/dist/assets/InteractiveJobComposer-Coq-Zhk0.js +0 -19
- package/client/dist/assets/JobDetailModal--Mjam0Nc.js +0 -1
- package/client/dist/assets/JobDetailPage-B6ShWSBh.js +0 -1
- package/client/dist/assets/JobsPage-DHU_ep_B.js +0 -1
- package/client/dist/assets/LoopsPage-CFGl-Nw8.js +0 -1
- package/client/dist/assets/MinimizedChatsContext-DHjHBYqa.js +0 -1
- package/client/dist/assets/PluginsPage-BHygRnW6.js +0 -2
- package/client/dist/assets/ReviewPacketPage-C9mqhi65.js +0 -1
- package/client/dist/assets/TemplatePreviewModal-BmwoAjOr.js +0 -1
- package/client/dist/assets/TicketDetailModalContext-lYmoONrd.js +0 -14
- package/client/dist/assets/agentRuntime-62GWdc26.js +0 -1
- package/client/dist/assets/agentRuntime-BN1mKAuY.js +0 -1
- package/client/dist/assets/agentRuntime-BNBCzQLM.js +0 -1
- package/client/dist/assets/agentRuntime-BQE_K1GG.js +0 -1
- package/client/dist/assets/agentRuntime-CCU3HCtS.js +0 -1
- package/client/dist/assets/agentRuntime-DT72Bpdv.js +0 -1
- package/client/dist/assets/agentRuntime-ZfMPeeiP.js +0 -1
- package/client/dist/assets/agentRuntime-g3W8Ry4d.js +0 -1
- package/client/dist/assets/analytics-47pYygtV.js +0 -1
- package/client/dist/assets/analytics-B0vt1g5U.js +0 -1
- package/client/dist/assets/analytics-BMzCvrCU.js +0 -1
- package/client/dist/assets/analytics-BlFN3Zwx.js +0 -1
- package/client/dist/assets/analytics-CZYzL-nR.js +0 -1
- package/client/dist/assets/analytics-DAsb9MJ8.js +0 -1
- package/client/dist/assets/analytics-FXQlQ2Yt.js +0 -1
- package/client/dist/assets/analytics-RnFCNkah.js +0 -1
- package/client/dist/assets/dashboard-BfBir_6o.js +0 -1
- package/client/dist/assets/file-text-BcLCfcWZ.js +0 -1
- package/client/dist/assets/index-Cfh9aaep.css +0 -2
- package/client/dist/assets/index-DgMBighL.js +0 -76
- package/client/dist/assets/jira-api-BQR6G0YY.js +0 -1
- package/client/dist/assets/jobs-5PQJbdOf.js +0 -1
- package/client/dist/assets/jobs-B2B08Oy9.js +0 -1
- package/client/dist/assets/jobs-BJZtBbwb.js +0 -1
- package/client/dist/assets/jobs-BlWEsQb7.js +0 -1
- package/client/dist/assets/jobs-ConfD8xD.js +0 -1
- package/client/dist/assets/jobs-DMPU64ms.js +0 -1
- package/client/dist/assets/jobs-DojASiTp.js +0 -1
- package/client/dist/assets/jobs-kVHkNpB-.js +0 -1
- package/client/dist/assets/packet-BQ2tXfJI.js +0 -1
- package/client/dist/assets/packet-BdpOJ1Cy.js +0 -1
- package/client/dist/assets/packet-C3Ievb9R.js +0 -1
- package/client/dist/assets/packet-C4zJIG0Y.js +0 -1
- package/client/dist/assets/packet-Cx-zRuWn.js +0 -1
- package/client/dist/assets/packet-DUTGX52M.js +0 -1
- package/client/dist/assets/packet-DhsKtUPB.js +0 -1
- package/client/dist/assets/packet-z3LJ8Zyy.js +0 -1
- package/client/dist/assets/provider-capabilities-CXipwrXJ.js +0 -1
- package/client/dist/assets/settings-B3rWEwOx.js +0 -1
- package/client/dist/assets/settings-BcVoiMyw.js +0 -1
- package/client/dist/assets/settings-BlYvaQ7w.js +0 -1
- package/client/dist/assets/settings-CD5uEBiL.js +0 -1
- package/client/dist/assets/settings-CyhS0DLJ.js +0 -1
- package/client/dist/assets/settings-DCMFUGDs.js +0 -1
- package/client/dist/assets/settings-DmbYKyMJ.js +0 -1
- package/client/dist/assets/setup-2xGgu4Sk.js +0 -1
- package/client/dist/assets/setup-Ba11l2JA.js +0 -1
- package/client/dist/assets/setup-BzW4kMok.js +0 -1
- package/client/dist/assets/setup-COzwYhkJ.js +0 -1
- package/client/dist/assets/setup-CRVULhtF.js +0 -1
- package/client/dist/assets/setup-DgvlxwpE.js +0 -1
- package/client/dist/assets/setup-Dw_wYeEY.js +0 -1
- package/client/dist/assets/setup-ZPtEeJPW.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-Bjbbp_KS.js";import{a as t}from"./useDesktop-iius_s5d.js";var n=e(`wrench`,[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z`,key:`1ngwbx`}]]);async function r(e){let t=await e.text(),n=t?JSON.parse(t):{};if(!e.ok)throw Error(n.error||`Request failed (${e.status})`);return n}function i(e){return e??t()}var a=e=>({method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),o={getConnection(e){return fetch(`${i(e)}/jira/connection`).then(e=>r(e))},test(e,t){return fetch(`${i(t)}/jira/test`,a(e)).then(e=>r(e))},discoverProjects(e,t){return fetch(`${i(t)}/jira/discover-projects`,a(e)).then(e=>r(e))},discoverStatuses(e,t){return fetch(`${i(t)}/jira/discover-statuses`,a(e)).then(e=>r(e))},connect(e,t){return fetch(`${i(t)}/jira/connect`,a(e)).then(e=>r(e))},setEnabled(e,t){return fetch(`${i(t)}/jira/connection`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({enabled:e})}).then(e=>r(e))},patchConnection(e,t){return fetch(`${i(t)}/jira/connection`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}).then(e=>r(e))},listStatuses(e){return fetch(`${i(e)}/jira/statuses`).then(e=>r(e))},moveSpecToStatus(e,t,n){return fetch(`${i(n)}/jira/specs/${e}/move-to-status`,a({status:t})).then(e=>r(e))},discardSpec(e,t,n){return fetch(`${i(n)}/jira/specs/${e}/discard`,a({comment:t})).then(e=>r(e))},getSpecDetails(e,t){return fetch(`${i(t)}/jira/specs/${e}/details`).then(e=>r(e))},disconnect(e){return fetch(`${i(e)}/jira/connection`,{method:`DELETE`}).then(e=>r(e))},syncNow(e){return fetch(`${i(e)}/jira/sync`,{method:`POST`}).then(e=>r(e))},resume(e){return fetch(`${i(e)}/jira/resume`,{method:`POST`}).then(e=>r(e))},listOutbox(e,t){let n=e?`?state=${e}`:``;return fetch(`${i(t)}/jira/outbox${n}`).then(e=>r(e))},retryOutbox(e,t){return fetch(`${i(t)}/jira/outbox/${e}/retry`,{method:`POST`}).then(e=>r(e))}};export{n,o as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={running:`运行中`,completed:`已完成`,done:`完成`,failed:`失败`,canceled:`已取消`,queued:`排队中`,zombie:`僵尸`,skipped:`已跳过`},t={running:`任务正在执行`,completed:`任务已成功完成`,failed:`任务以非零退出码结束`,canceled:`任务已被手动取消`,queued:`任务正在队列中等待`,queuedToRun:`任务正在等待运行`,zombie:`任务因长时间无活动而被自动终止`,skipped:`因流水线中的上游任务失败,此任务被跳过`},n={running:`运行中`,completed:`已完成`,failed:`失败`,canceled:`已取消`,zombie_terminated:`僵尸`,queued:`排队中`,skipped:`已跳过`},r={title:`任务`,exportJobs:`导出任务`,proposalDeleted:`提案已删除`,proposal:{title:`提案`,noContent:`暂无提案内容。`,githubIssue:`GitHub Issue:`,status:{input:`等待输入`,exploring:`探索中`,review:`等待审核`,refining:`优化中`,creatingIssue:`正在创建议题`,created:`已创建`,cancelled:`已取消`,unknown:`未知状态:{{status}}`}}},i={breadcrumbDashboard:`Dashboard`,breadcrumbJob:`任务 #{{id}}`,notFound:`未找到任务`,notFoundDescription:`任务 ID“{{id}}”不存在`,backToDashboard:`返回 Dashboard`,startedAgo:`开始于 {{timeAgo}}`,queuedWaiting:`已排队——等待开始`,exportDiagnostic:`导出诊断`,exportDiagnosticAria:`导出诊断包`,exportDiagnosticTooltip:`下载包含此任务遥测、日志和摘要的 ZIP`,reExecute:`重新执行`,reExecuteTooltip:`用相同命令启动一个新任务`,cancelJob:`取消任务`,cancelJobTooltip:`向运行中的进程发送 SIGTERM。任务将被标记为已取消。`,cancelInteractive:`丢弃`,finalizeJob:`定稿任务`,finalizing:`正在定稿…`,finalizeJobTooltip:`结束此交互会话,并将每一轮的 token 和成本汇总到任务总计中。`,interactive:{ready:`就绪 — 发送提示`,working:`代理处理中…`,placeholder:`向运行中的任务发送消息…`,send:`发送`,liveTotals:"{{turns}} 轮 · ${{cost}}",autoHint:`该任务会按计划自行完成 — 消息只是可选的引导。`,wrapUp:`立即收尾`,wrapUpTooltip:`立即结束会话 — 任务以目前已产出的工作完成,每一轮的 token 与费用都会计入总额。`,wrapUpStep:`结算此步骤`,wrapUpStepTooltip:`立即结束当前步骤 — 循环将带着该步骤目前的产出继续推进。`,wrappingUp:`正在收尾…`,queued_one:`{{count}} 条排队消息`,queued_other:`{{count}} 条排队消息`,waitingForStep:`步骤间隙 — 循环正在决定接下来运行什么。下一个 AI 步骤开始后即可发送消息。`,waitingForStepShort:`等待下一个步骤…`,sendDisabledEmpty:`请先输入消息`,sendDisabledWaiting:`当前没有活跃的步骤会话`},toast:{jobDeleted:`任务已删除`,cancelSignalSent:`已发送取消信号`,cancelSignalSentDescription:`任务将在下一个安全点停止`,failed:`失败`,networkError:`网络错误`,exportFailed:`导出失败`,exportFailedHttp:`导出失败(HTTP {{status}})`,jobRequeued:`任务已重新排队`,spawnFailed:`启动任务失败`,finalizeScheduled:`正在定稿交互任务…`,finalizeFailed:`任务定稿失败`,sendFailed:`发送消息失败`,wrapUpScheduled:`正在收尾任务…`,wrapUpStepScheduled:`正在结算步骤 — 循环将带着已有产出继续`}},a={inProgress:`任务进行中`,completed:`任务已完成`,failed:`任务失败`,duration:`时长`,cost:`成本`,turns:`轮次`,tokens:`Token`,filesCount_one:`{{count}} 个文件`,filesCount_other:`{{count}} 个文件`,pipelineTotal:`流水线合计({{count}} 个阶段)`,totalCost:`总成本`,totalTokens:`总 token 数`,filesModified:`修改的文件`,zoneInProgress:`进行中`,zoneFinal:`最终汇总`,zoneFinalPending:`最终汇总 — 完成后计算`,pendingCaption:`完成后计算`,pendingTooltip:`这是提供方的真实数字;任务完成后显示。`,costTooltip:`真实费用由提供方在任务结束时计费。`,liveTooltip:`实时`,explainer:`费用、轮次和令牌是提供方的真实数字,将在任务完成后显示。`,notAvailable:`不可用`,steps_one:`{{count}} 步`,steps_other:`{{count}} 步`,activity:{editing:`正在编辑 {{arg}}`,writing:`正在写入 {{arg}}`,reading:`正在读取 {{arg}}`,searching:`正在搜索“{{arg}}”`,running:`正在执行:{{arg}}`,thinking:`正在思考…`,reasoning:`正在推理…`,working:`正在处理…`,connecting:`正在连接代理…`,starting:`正在启动…`},pipelinePartial:`≥ 表示部分 — {{count}} 个阶段尚无成本记录`,pipelinePartialTooltip:`部分阶段在报告成本前已结束,因此该总额为下限。`,pipelineCostUnavailable:`所有阶段的成本遥测数据均不可用。`,pipelineUsageUnavailable:`所有阶段的 token 遥测数据均不可用。`,pipelineUsagePartial:`≥ 显示值 — {{count}} 个阶段无 token 遥测数据`,pipelineUsageTooltip:`提供方可能在不提供 token 遥测数据的情况下完成阶段;仅计入已知用量。`},o={showMore:`+ 还有 {{count}} 个`,showLess:`收起`,deletedTicket:`#{{id}}(已删除)`,deletedTooltip:`工单已不存在`},s={notFound:`未找到任务`,cancelConfirmTitle:`取消任务?`,cancelConfirmDescription:`任务将在下一个安全点停止。此操作无法撤销。`,keepRunning:`继续运行`,cancelJob:`取消任务`,stopRun:`停止运行`,stopRunConfirmTitle:`停止此运行?`,stopRunConfirmDescription:`循环运行将在下一个步骤边界停止。此操作无法撤销。`,toast:{cancelSignalSent:`已发送取消信号`,cancelSignalSentDescription:`任务将在下一个安全点停止`,stopSignalSent:`已发送停止信号`,stopSignalSentDescription:`运行将在下一个步骤边界停止`,cancelFailed:`取消失败`,networkError:`网络错误`}},c={title:`任务对比`,jobN:`任务 {{n}}`,loadFailed:`加载对比失败:{{error}}`,duration:`时长`,cost:`成本`,tokensOut:`输出 token`,tokensIn:`输入 token`,cacheRead:`缓存读取`,model:`模型`,phasesDone:`完成阶段数`,betterValueHint:`绿色高亮表示更优值`},l={emptyTitle:`暂无任务`,emptyDescription:`在上方运行命令后,任务历史会显示在这里`,loadFailed:`加载任务失败`,filterAll:`全部({{count}})`,filterStatus:`{{status}}({{count}})`,fromDate:`开始日期`,toDate:`结束日期`,clear:`清除`,exitCompareMode:`退出对比模式`,compareTwoJobs:`对比 2 个任务`,clearJobs:`清空任务`,selectTwoToCompare:`选择 2 个任务进行对比`,selectOneMore:`再选择 1 个任务`,readyToCompare:`就绪——点击对比`,compareAction:`对比 →`,colStatus:`状态`,colCommand:`命令`,colDuration:`时长`,colTokens:`Token`,colCost:`成本`,colStarted:`开始时间`,profileTooltip:`Profile:{{name}}`,pipelinePart:`属于某个流水线`,pipelineDependsOn:`(依赖上一步)`,deleteProposal:`删除提案`,loadMore:`加载更多(剩余 {{count}} 个)`,priority:{critical:`紧急`,high:`高`,normal:`普通`,low:`低`},clearModal:{title:`清空任务`,jobsInHistory_one:`历史中有 {{count}} 个任务`,jobsInHistory_other:`历史中有 {{count}} 个任务`,clearAll_one:`清空全部 {{count}} 个任务`,clearAll_other:`清空全部 {{count}} 个任务`,orByRange:`或按日期范围清除:`,fromPlaceholder:`开始`,toPlaceholder:`结束`,clearInRange_one:`清除范围内 {{count}} 个任务`,clearInRange_other:`清除范围内 {{count}} 个任务`,clearRange:`清除范围`},deleteProposalConfirm:{title:`删除提案?`,description:`将永久删除 1 个提案。此操作无法撤销。`},toast:{cleared_one:`已清除 {{count}} 个任务`,cleared_other:`已清除 {{count}} 个任务`,clearFailed:`清除任务失败`,networkError:`网络错误`}},u={none:`没有进行中的任务`,noneHint:`在下方选择一个命令以启动任务`,exitCode:`退出码 {{code}}`,cancelTooltip:`向运行中的 claude 进程发送 SIGTERM`,viewLogs:`查看日志`,toast:{cancelRequested:`已请求取消任务`,cancelRequestedDescription:`正在向进程发送 SIGTERM`,cancelFailed:`取消任务失败`,networkError:`取消任务时发生网络错误`}},d={setup:`准备`,iteration:`迭代 {{current}}/{{limit}}`,iterationBadge:`迭代 {{count}}`,follow:`实时跟随中`,resumeFollow:`恢复跟随`,expandAll:`全部展开`,collapseAll:`全部折叠`,copyStep:`复制步骤`,copied:`步骤已复制到剪贴板`,stepDetail:`步骤详情`,stepDetailTemplate:`模板`,stepDetailCommand:`命令`,copyCommand:`复制`,interrupted:`已中断`,waiting:`等待下一个步骤…`,stepMapAria:`循环步骤图`,stalled:`已停滞`,stalledIdle_one:`{{count}} 分钟内无提供方输出,应用已停止此次尝试`,stalledIdle_other:`{{count}} 分钟内无提供方输出,应用已停止此次尝试`,providerLimit:`提供商限额`,providerLimitHint:`提供商返回了用量限额提示,应用已停止运行而不是继续循环。`},f={loading:`正在加载日志…`,empty:`暂无日志输出`,filterPlaceholder:`筛选日志…`,copySuccess:`日志已复制到剪贴板`,copyFailed:`复制日志失败`,lineCount:`{{filtered}} / {{total}} 行`,jumpToBottom:`跳到底部`,phaseLines_one:`{{count}} 行`,phaseLines_other:`{{count}} 行`,noMatchingLines:`没有匹配的行`,noOutput:`无输出`,completed:`已完成`,turns_one:`{{count}} 轮`,turns_other:`{{count}} 轮`},p={title:`运行结果`,execution:`执行`,implementation:`实现`,validation:`验证`,archive:`归档`,delivery:`交付`,counters:`{{steps}} 个步骤 · {{evaluations}} 次决策评估 · {{turns}} 轮代理对话`,unavailable:`不可用`,evidence:`证据、例外和阶段耗时`,snapshot:`完成时记录:{{change}} · {{at}}`,acceptedBy:`由 {{by}} 接受`,required:`必需`,supplementary:`补充`,attempts:`{{count}} 次尝试`,phaseCostUnavailable:`Core 各阶段成本不可用;供应商用量归属于循环步骤。`,noCoreEvidence:`验收证据不可用。执行成功本身并不代表工单已完成。`,status:{success:`成功`,failed:`失败`,blocked:`已阻塞`,stopped:`已停止`,stalled:`无进展`,complete:`已完成`,incomplete:`未完成`,verified:`已验证`,"with-exceptions":`已验证(含例外)`,pending:`待处理`,"pending-host":`等待宿主交付`,done:`已完成`,running:`进行中`,skipped:`已跳过`,passed:`通过`,unavailable:`不可用`}},m={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p};export{u as activeJob,c as comparison,p as completion,m as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={running:`en ejecución`,completed:`completado`,done:`hecho`,failed:`fallido`,canceled:`cancelado`,queued:`en cola`,zombie:`zombie`,skipped:`omitido`},t={running:`El job se está ejecutando`,completed:`El job se completó correctamente`,failed:`El job terminó con un código de salida distinto de cero`,canceled:`El job se canceló manualmente`,queued:`El job está esperando en la cola`,queuedToRun:`El job está esperando para ejecutarse`,zombie:`El job se terminó automáticamente tras una inactividad prolongada`,skipped:`El job se omitió porque falló un job padre del pipeline`},n={running:`en ejecución`,completed:`completado`,failed:`fallido`,canceled:`cancelado`,zombie_terminated:`zombie`,queued:`en cola`,skipped:`omitido`},r={title:`Jobs`,exportJobs:`Exportar jobs`,proposalDeleted:`Propuesta eliminada`,proposal:{title:`Propuesta`,noContent:`Aún no hay contenido de la propuesta.`,githubIssue:`Issue de GitHub:`,status:{input:`Esperando información`,exploring:`Explorando`,review:`Lista para revisión`,refining:`Refinando`,creatingIssue:`Creando incidencia`,created:`Creada`,cancelled:`Cancelada`,unknown:`Estado desconocido: {{status}}`}}},i={breadcrumbDashboard:`Dashboard`,breadcrumbJob:`Job #{{id}}`,notFound:`Job no encontrado`,notFoundDescription:`El ID de job «{{id}}» no existe`,backToDashboard:`Volver al Dashboard`,startedAgo:`Iniciado {{timeAgo}}`,queuedWaiting:`En cola — esperando para empezar`,exportDiagnostic:`Exportar diagnóstico`,exportDiagnosticAria:`Exportar paquete de diagnóstico`,exportDiagnosticTooltip:`Descarga un ZIP con la telemetría, los logs y el resumen de este job`,reExecute:`Reejecutar`,reExecuteTooltip:`Lanza un nuevo job con el mismo comando`,cancelJob:`Cancelar job`,cancelJobTooltip:`Envía SIGTERM al proceso en ejecución. El job se marcará como cancelado.`,cancelInteractive:`Descartar`,finalizeJob:`Finalizar job`,finalizing:`Finalizando…`,finalizeJobTooltip:`Termina esta sesión interactiva e incorpora los tokens y el coste de cada turno al total del job.`,interactive:{ready:`Listo — envía un prompt`,working:`El agente está trabajando…`,placeholder:`Envía un mensaje al job en ejecución…`,send:`Enviar`,liveTotals:"{{turns}} turnos · ${{cost}}",autoHint:`Este job sigue su plan y termina solo — los mensajes son orientación opcional.`,wrapUp:`Terminar ahora`,wrapUpTooltip:`Finaliza la sesión ahora — el job se completa con el trabajo producido hasta el momento, con los tokens y el coste de cada turno sumados al total.`,wrapUpStep:`Cerrar este paso`,wrapUpStepTooltip:`Finaliza el paso actual ahora — el loop avanza con lo que el paso ha producido hasta el momento.`,wrappingUp:`Terminando…`,queued_one:`{{count}} mensaje en cola`,queued_other:`{{count}} mensajes en cola`,waitingForStep:`Entre pasos — el loop está decidiendo qué se ejecuta a continuación. Podrás enviar un mensaje cuando empiece el siguiente paso de IA.`,waitingForStepShort:`Esperando el siguiente paso…`,sendDisabledEmpty:`Escribe un mensaje primero`,sendDisabledWaiting:`Ahora mismo no hay ninguna sesión de paso activa`},toast:{jobDeleted:`Job eliminado`,cancelSignalSent:`Señal de cancelación enviada`,cancelSignalSentDescription:`El job se detendrá en el siguiente punto seguro`,failed:`Error`,networkError:`Error de red`,exportFailed:`Error al exportar`,exportFailedHttp:`Error al exportar (HTTP {{status}})`,jobRequeued:`Job reencolado`,spawnFailed:`No se pudo lanzar el job`,finalizeScheduled:`Finalizando job interactivo…`,finalizeFailed:`No se pudo finalizar el job`,sendFailed:`No se pudo enviar el mensaje`,wrapUpScheduled:`Terminando el job…`,wrapUpStepScheduled:`Cerrando el paso — el loop avanza con lo que ha producido`}},a={inProgress:`Job en curso`,completed:`Job completado`,failed:`Job fallido`,duration:`Duración`,cost:`Coste`,turns:`Turnos`,tokens:`Tokens`,filesCount_one:`{{count}} archivo`,filesCount_other:`{{count}} archivos`,pipelineTotal:`Total del pipeline ({{count}} fases)`,totalCost:`Coste total`,totalTokens:`Tokens totales`,filesModified:`Archivos modificados`,zoneInProgress:`En curso`,zoneFinal:`Resumen final`,zoneFinalPending:`Resumen final — se calcula al terminar`,pendingCaption:`Se calcula al terminar`,pendingTooltip:`Esta cifra es la real del proveedor; aparece al terminar el job.`,costTooltip:`El coste real lo factura el proveedor al cerrar el job.`,liveTooltip:`En vivo`,explainer:`Las cifras de coste, turnos y tokens son las reales del proveedor y aparecen al terminar.`,notAvailable:`No disponible`,steps_one:`{{count}} paso`,steps_other:`{{count}} pasos`,activity:{editing:`Editando {{arg}}`,writing:`Escribiendo {{arg}}`,reading:`Leyendo {{arg}}`,searching:`Buscando “{{arg}}”`,running:`Ejecutando: {{arg}}`,thinking:`Pensando…`,reasoning:`Razonando…`,working:`Trabajando…`,connecting:`Conectando con el agente…`,starting:`Iniciando…`},pipelinePartial:`≥ mostrado — {{count}} fase(s) aún sin coste registrado`,pipelinePartialTooltip:`Algunas fases no informaron el coste, por lo que este total es un mínimo.`,pipelineCostUnavailable:`La telemetría de coste no está disponible en ninguna fase.`,pipelineUsageUnavailable:`La telemetría de tokens no está disponible en ninguna fase.`,pipelineUsagePartial:`≥ mostrado — {{count}} fase(s) sin telemetría de tokens`,pipelineUsageTooltip:`Los proveedores pueden completar fases sin exponer telemetría de tokens; solo se incluye el uso conocido.`},o={showMore:`+ {{count}} más`,showLess:`Mostrar menos`,deletedTicket:`#{{id}} (eliminado)`,deletedTooltip:`El ticket ya no existe`},s={notFound:`Job no encontrado`,cancelConfirmTitle:`¿Cancelar el job?`,cancelConfirmDescription:`El job se detendrá en el siguiente punto seguro. Esta acción no se puede deshacer.`,keepRunning:`Seguir ejecutando`,cancelJob:`Cancelar job`,stopRun:`Detener ejecución`,stopRunConfirmTitle:`¿Detener esta ejecución?`,stopRunConfirmDescription:`La ejecución del loop se detendrá en el siguiente límite de paso. Esta acción no se puede deshacer.`,toast:{cancelSignalSent:`Señal de cancelación enviada`,cancelSignalSentDescription:`El job se detendrá en el siguiente punto seguro`,stopSignalSent:`Señal de detención enviada`,stopSignalSentDescription:`La ejecución se detendrá en el siguiente límite de paso`,cancelFailed:`No se pudo cancelar`,networkError:`Error de red`}},c={title:`Comparación de jobs`,jobN:`Job {{n}}`,loadFailed:`No se pudo cargar la comparación: {{error}}`,duration:`Duración`,cost:`Coste`,tokensOut:`Tokens de salida`,tokensIn:`Tokens de entrada`,cacheRead:`Lectura de caché`,model:`Modelo`,phasesDone:`Fases completadas`,betterValueHint:`Los resaltados en verde indican mejor valor`},l={emptyTitle:`Aún no hay jobs`,emptyDescription:`Ejecuta un comando arriba para ver aquí tu historial de jobs`,loadFailed:`No se pudieron cargar los jobs`,filterAll:`Todos ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`Fecha de inicio`,toDate:`Fecha de fin`,clear:`Limpiar`,exitCompareMode:`Salir del modo comparación`,compareTwoJobs:`Comparar 2 jobs`,clearJobs:`Limpiar jobs`,selectTwoToCompare:`Selecciona 2 jobs para comparar`,selectOneMore:`Selecciona 1 job más`,readyToCompare:`Listo — haz clic en comparar`,compareAction:`Comparar →`,colStatus:`Estado`,colCommand:`Comando`,colDuration:`Duración`,colTokens:`Tokens`,colCost:`Coste`,colStarted:`Inicio`,profileTooltip:`Perfil: {{name}}`,pipelinePart:`Parte de un pipeline`,pipelineDependsOn:`(depende del paso anterior)`,deleteProposal:`Eliminar propuesta`,loadMore:`Cargar más ({{count}} restantes)`,priority:{critical:`crítica`,high:`alta`,normal:`normal`,low:`baja`},clearModal:{title:`Limpiar jobs`,jobsInHistory_one:`{{count}} job en el historial`,jobsInHistory_other:`{{count}} jobs en el historial`,clearAll_one:`Limpiar {{count}} job`,clearAll_other:`Limpiar los {{count}} jobs`,orByRange:`O limpiar por rango de fechas:`,fromPlaceholder:`Desde`,toPlaceholder:`Hasta`,clearInRange_one:`Limpiar {{count}} job del rango`,clearInRange_other:`Limpiar {{count}} jobs del rango`,clearRange:`Limpiar rango`},deleteProposalConfirm:{title:`¿Eliminar la propuesta?`,description:`Se eliminará permanentemente 1 propuesta. Esta acción no se puede deshacer.`},toast:{cleared_one:`{{count}} job eliminado`,cleared_other:`{{count}} jobs eliminados`,clearFailed:`No se pudieron limpiar los jobs`,networkError:`Error de red`}},u={none:`Ningún job activo`,noneHint:`Selecciona un comando abajo para iniciar un job`,exitCode:`exit {{code}}`,cancelTooltip:`Envía SIGTERM al proceso de claude en ejecución`,viewLogs:`Ver logs`,toast:{cancelRequested:`Cancelación del job solicitada`,cancelRequestedDescription:`Enviando SIGTERM al proceso`,cancelFailed:`No se pudo cancelar el job`,networkError:`Error de red al cancelar el job`}},d={setup:`Preparación`,iteration:`Iteración {{current}}/{{limit}}`,iterationBadge:`iter {{count}}`,follow:`Siguiendo en vivo`,resumeFollow:`Reanudar seguimiento`,expandAll:`Expandir todo`,collapseAll:`Contraer todo`,copyStep:`Copiar paso`,copied:`Paso copiado al portapapeles`,stepDetail:`Detalles del paso`,stepDetailTemplate:`Plantilla`,stepDetailCommand:`Comando`,copyCommand:`Copiar`,interrupted:`Interrumpido`,waiting:`Esperando el siguiente paso...`,stepMapAria:`Mapa de pasos del loop`,stalled:`Atascado`,stalledIdle_one:`Sin salida del proveedor durante {{count}} minuto: la app detuvo este intento`,stalledIdle_other:`Sin salida del proveedor durante {{count}} minutos: la app detuvo este intento`,providerLimit:`Límite del proveedor`,providerLimitHint:`El proveedor respondió con un aviso de límite de uso, así que la app detuvo el run en vez de seguir iterando.`},f={loading:`Cargando logs...`,empty:`Aún no hay salida de log`,filterPlaceholder:`Filtrar logs...`,copySuccess:`Log copiado al portapapeles`,copyFailed:`No se pudo copiar el log`,lineCount:`{{filtered}} / {{total}} líneas`,jumpToBottom:`Ir al final`,phaseLines_one:`{{count}} línea`,phaseLines_other:`{{count}} líneas`,noMatchingLines:`Ninguna línea coincide`,noOutput:`Sin salida`,completed:`Completado`,turns_one:`{{count}} turno`,turns_other:`{{count}} turnos`},p={title:`Resultado de ejecución`,execution:`Ejecución`,implementation:`Implementación`,validation:`Validación`,archive:`Archivo`,delivery:`Entrega`,counters:`Pasos: {{steps}} · Evaluaciones del decider: {{evaluations}} · Turnos del agente: {{turns}}`,unavailable:`No disponible`,evidence:`Evidencia, excepciones y tiempos por fase`,snapshot:`Registrado al finalizar: {{change}} · {{at}}`,acceptedBy:`Aceptado por {{by}}`,required:`Obligatorio`,supplementary:`Complementario`,attempts:`Intentos: {{count}}`,phaseCostUnavailable:`El coste por fase de Core no está disponible; el consumo del proveedor se atribuye a pasos del loop.`,noCoreEvidence:`Evidencia de aceptación no disponible. El éxito de ejecución por sí solo no confirma que se haya completado el ticket.`,status:{success:`Correcta`,failed:`Fallida`,blocked:`Bloqueada`,stopped:`Detenida`,stalled:`Sin progreso`,complete:`Completa`,incomplete:`Incompleta`,verified:`Verificada`,"with-exceptions":`Verificada con excepciones`,pending:`Pendiente`,"pending-host":`Pendiente del host`,done:`Completado`,running:`En curso`,skipped:`Omitido`,passed:`Correcto`,unavailable:`No disponible`}},m={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p};export{u as activeJob,c as comparison,p as completion,m as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={running:`läuft`,completed:`abgeschlossen`,done:`fertig`,failed:`fehlgeschlagen`,canceled:`abgebrochen`,queued:`in Warteschlange`,zombie:`Zombie`,skipped:`übersprungen`},t={running:`Job wird gerade ausgeführt`,completed:`Job erfolgreich abgeschlossen`,failed:`Job wurde mit einem Exit-Code ungleich null beendet`,canceled:`Job wurde manuell abgebrochen`,queued:`Job wartet in der Warteschlange`,queuedToRun:`Job wartet auf Ausführung`,zombie:`Job wurde nach längerer Inaktivität automatisch beendet`,skipped:`Job wurde übersprungen, weil ein übergeordneter Job in der Pipeline fehlgeschlagen ist`},n={running:`läuft`,completed:`abgeschlossen`,failed:`fehlgeschlagen`,canceled:`abgebrochen`,zombie_terminated:`Zombie`,queued:`in Warteschlange`,skipped:`übersprungen`},r={title:`Jobs`,exportJobs:`Jobs exportieren`,proposalDeleted:`Vorschlag gelöscht`,proposal:{title:`Vorschlag`,noContent:`Noch kein Inhalt für den Vorschlag.`,githubIssue:`GitHub-Issue:`,status:{input:`Wartet auf Eingabe`,exploring:`Wird untersucht`,review:`Bereit zur Prüfung`,refining:`Wird verfeinert`,creatingIssue:`Issue wird erstellt`,created:`Erstellt`,cancelled:`Abgebrochen`,unknown:`Unbekannter Status: {{status}}`}}},i={breadcrumbDashboard:`Dashboard`,breadcrumbJob:`Job #{{id}}`,notFound:`Job nicht gefunden`,notFoundDescription:`Die Job-ID „{{id}}“ existiert nicht`,backToDashboard:`Zurück zum Dashboard`,startedAgo:`Gestartet {{timeAgo}}`,queuedWaiting:`In Warteschlange – wartet auf Start`,exportDiagnostic:`Diagnose exportieren`,exportDiagnosticAria:`Diagnose-Bundle exportieren`,exportDiagnosticTooltip:`ZIP mit Telemetrie, Logs und Zusammenfassung für diesen Job herunterladen`,reExecute:`Erneut ausführen`,reExecuteTooltip:`Neuen Job mit demselben Befehl starten`,cancelJob:`Job abbrechen`,cancelJobTooltip:`SIGTERM an den laufenden Prozess senden. Der Job wird als abgebrochen markiert.`,cancelInteractive:`Verwerfen`,finalizeJob:`Job abschließen`,finalizing:`Wird abgeschlossen…`,finalizeJobTooltip:`Diese interaktive Sitzung beenden und Tokens sowie Kosten aller Turns in die Job-Gesamtsumme einrechnen.`,interactive:{ready:`Bereit – sende einen Prompt`,working:`Agent arbeitet…`,placeholder:`Sende eine Nachricht an den laufenden Job…`,send:`Senden`,liveTotals:"{{turns}} Turns · ${{cost}}",autoHint:`Dieser Job folgt seinem Plan und endet von selbst — Nachrichten sind optionale Steuerung.`,wrapUp:`Jetzt abschließen`,wrapUpTooltip:`Beendet die Session jetzt — der Job wird mit der bisher erzeugten Arbeit abgeschlossen, Tokens und Kosten jedes Turns fließen in die Summe ein.`,wrapUpStep:`Diesen Schritt abschließen`,wrapUpStepTooltip:`Beendet den aktuellen Schritt jetzt — der Loop geht mit dem weiter, was der Schritt bisher erzeugt hat.`,wrappingUp:`Wird abgeschlossen…`,queued_one:`{{count}} Nachricht in der Warteschlange`,queued_other:`{{count}} Nachrichten in der Warteschlange`,waitingForStep:`Zwischen den Schritten — der Loop entscheidet gerade, was als Nächstes läuft. Du kannst eine Nachricht senden, sobald der nächste KI-Schritt startet.`,waitingForStepShort:`Warten auf den nächsten Schritt…`,sendDisabledEmpty:`Schreibe zuerst eine Nachricht`,sendDisabledWaiting:`Gerade ist keine Schritt-Session aktiv`},toast:{jobDeleted:`Job gelöscht`,cancelSignalSent:`Abbruchsignal gesendet`,cancelSignalSentDescription:`Der Job stoppt am nächsten sicheren Punkt`,failed:`Fehlgeschlagen`,networkError:`Netzwerkfehler`,exportFailed:`Export fehlgeschlagen`,exportFailedHttp:`Export fehlgeschlagen (HTTP {{status}})`,jobRequeued:`Job erneut eingereiht`,spawnFailed:`Job konnte nicht gestartet werden`,finalizeScheduled:`Interaktiver Job wird abgeschlossen…`,finalizeFailed:`Job konnte nicht abgeschlossen werden`,sendFailed:`Nachricht konnte nicht gesendet werden`,wrapUpScheduled:`Job wird abgeschlossen…`,wrapUpStepScheduled:`Schritt wird abgeschlossen — der Loop geht mit dem Erzeugten weiter`}},a={inProgress:`Job läuft`,completed:`Job abgeschlossen`,failed:`Job fehlgeschlagen`,duration:`Dauer`,cost:`Kosten`,turns:`Turns`,tokens:`Tokens`,filesCount_one:`{{count}} Datei`,filesCount_other:`{{count}} Dateien`,pipelineTotal:`Pipeline gesamt ({{count}} Phasen)`,totalCost:`Gesamtkosten`,totalTokens:`Tokens gesamt`,filesModified:`Geänderte Dateien`,zoneInProgress:`Läuft`,zoneFinal:`Endabrechnung`,zoneFinalPending:`Endabrechnung — wird am Ende berechnet`,pendingCaption:`Wird am Ende berechnet`,pendingTooltip:`Dies ist der reale Wert des Anbieters; er erscheint, wenn der Job endet.`,costTooltip:`Die realen Kosten werden vom Anbieter beim Abschluss des Jobs berechnet.`,liveTooltip:`Live`,explainer:`Kosten, Runden und Tokens sind die realen Werte des Anbieters und erscheinen am Ende.`,notAvailable:`Nicht verfügbar`,steps_one:`{{count}} Schritt`,steps_other:`{{count}} Schritte`,activity:{editing:`Bearbeite {{arg}}`,writing:`Schreibe {{arg}}`,reading:`Lese {{arg}}`,searching:`Suche „{{arg}}“`,running:`Führe aus: {{arg}}`,thinking:`Denkt nach…`,reasoning:`Überlegt…`,working:`Arbeitet…`,connecting:`Verbinde mit dem Agenten…`,starting:`Startet…`},pipelinePartial:`≥ angezeigt — {{count}} Phase(n) ohne erfasste Kosten`,pipelinePartialTooltip:`Einige Phasen wurden beendet, bevor ihre Kosten gemeldet wurden – dieser Gesamtwert ist eine Untergrenze.`,pipelineCostUnavailable:`Die Kostentelemetrie ist für alle Phasen nicht verfügbar.`,pipelineUsageUnavailable:`Die Token-Telemetrie ist für alle Phasen nicht verfügbar.`,pipelineUsagePartial:`≥ angezeigt — Phasen ohne Token-Telemetrie: {{count}}`,pipelineUsageTooltip:`Anbieter können Phasen abschließen, ohne Token-Telemetrie bereitzustellen; enthalten ist nur die bekannte Nutzung.`},o={showMore:`+ {{count}} weitere`,showLess:`Weniger anzeigen`,deletedTicket:`#{{id}} (gelöscht)`,deletedTooltip:`Ticket existiert nicht mehr`},s={notFound:`Job nicht gefunden`,cancelConfirmTitle:`Job abbrechen?`,cancelConfirmDescription:`Der Job stoppt am nächsten sicheren Punkt. Diese Aktion kann nicht rückgängig gemacht werden.`,keepRunning:`Weiterlaufen lassen`,cancelJob:`Job abbrechen`,stopRun:`Lauf stoppen`,stopRunConfirmTitle:`Diesen Lauf stoppen?`,stopRunConfirmDescription:`Der Loop-Lauf stoppt an der nächsten Schrittgrenze. Diese Aktion kann nicht rückgängig gemacht werden.`,toast:{cancelSignalSent:`Abbruchsignal gesendet`,cancelSignalSentDescription:`Der Job stoppt am nächsten sicheren Punkt`,stopSignalSent:`Stoppsignal gesendet`,stopSignalSentDescription:`Der Lauf stoppt an der nächsten Schrittgrenze`,cancelFailed:`Abbrechen fehlgeschlagen`,networkError:`Netzwerkfehler`}},c={title:`Job-Vergleich`,jobN:`Job {{n}}`,loadFailed:`Vergleich konnte nicht geladen werden: {{error}}`,duration:`Dauer`,cost:`Kosten`,tokensOut:`Ausgabe-Tokens`,tokensIn:`Eingabe-Tokens`,cacheRead:`Cache-Read`,model:`Modell`,phasesDone:`Abgeschlossene Phasen`,betterValueHint:`Grün hervorgehoben = besserer Wert`},l={emptyTitle:`Noch keine Jobs`,emptyDescription:`Führe oben einen Befehl aus, um hier deinen Job-Verlauf zu sehen`,loadFailed:`Jobs konnten nicht geladen werden`,filterAll:`Alle ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`Von`,toDate:`Bis`,clear:`Zurücksetzen`,exitCompareMode:`Vergleichsmodus verlassen`,compareTwoJobs:`2 Jobs vergleichen`,clearJobs:`Jobs löschen`,selectTwoToCompare:`Wähle 2 Jobs zum Vergleichen`,selectOneMore:`Wähle 1 weiteren Job`,readyToCompare:`Bereit – auf Vergleichen klicken`,compareAction:`Vergleichen →`,colStatus:`Status`,colCommand:`Befehl`,colDuration:`Dauer`,colTokens:`Tokens`,colCost:`Kosten`,colStarted:`Gestartet`,profileTooltip:`Profil: {{name}}`,pipelinePart:`Teil einer Pipeline`,pipelineDependsOn:`(hängt vom vorherigen Schritt ab)`,deleteProposal:`Vorschlag löschen`,loadMore:`Mehr laden ({{count}} verbleibend)`,priority:{critical:`kritisch`,high:`hoch`,normal:`normal`,low:`niedrig`},clearModal:{title:`Jobs löschen`,jobsInHistory_one:`{{count}} Job im Verlauf`,jobsInHistory_other:`{{count}} Jobs im Verlauf`,clearAll_one:`{{count}} Job löschen`,clearAll_other:`Alle {{count}} Jobs löschen`,orByRange:`Oder nach Datumsbereich löschen:`,fromPlaceholder:`Von`,toPlaceholder:`Bis`,clearInRange_one:`{{count}} Job im Zeitraum löschen`,clearInRange_other:`{{count}} Jobs im Zeitraum löschen`,clearRange:`Zeitraum löschen`},deleteProposalConfirm:{title:`Vorschlag löschen?`,description:`Dadurch wird 1 Vorschlag dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.`},toast:{cleared_one:`{{count}} Job gelöscht`,cleared_other:`{{count}} Jobs gelöscht`,clearFailed:`Jobs konnten nicht gelöscht werden`,networkError:`Netzwerkfehler`}},u={none:`Kein aktiver Job`,noneHint:`Wähle unten einen Befehl, um einen Job zu starten`,exitCode:`exit {{code}}`,cancelTooltip:`SIGTERM an den laufenden claude-Prozess senden`,viewLogs:`Logs anzeigen`,toast:{cancelRequested:`Job-Abbruch angefordert`,cancelRequestedDescription:`SIGTERM wird an den Prozess gesendet`,cancelFailed:`Job konnte nicht abgebrochen werden`,networkError:`Netzwerkfehler beim Abbrechen des Jobs`}},d={setup:`Vorbereitung`,iteration:`Iteration {{current}}/{{limit}}`,iterationBadge:`Iter. {{count}}`,follow:`Folgt live`,resumeFollow:`Verfolgung fortsetzen`,expandAll:`Alle ausklappen`,collapseAll:`Alle einklappen`,copyStep:`Schritt kopieren`,copied:`Schritt in die Zwischenablage kopiert`,stepDetail:`Schrittdetails`,stepDetailTemplate:`Vorlage`,stepDetailCommand:`Befehl`,copyCommand:`Kopieren`,interrupted:`Unterbrochen`,waiting:`Warte auf den nächsten Schritt…`,stepMapAria:`Loop-Schrittübersicht`,stalled:`Hängt`,stalledIdle_one:`{{count}} Minute ohne Provider-Ausgabe – die App hat diesen Versuch beendet`,stalledIdle_other:`{{count}} Minuten ohne Provider-Ausgabe – die App hat diesen Versuch beendet`,providerLimit:`Anbieter-Limit`,providerLimitHint:`Der Anbieter antwortete mit einem Nutzungslimit-Hinweis; die App hat den Lauf gestoppt statt weiterzudrehen.`},f={loading:`Logs werden geladen…`,empty:`Noch keine Log-Ausgabe`,filterPlaceholder:`Logs filtern…`,copySuccess:`Log in die Zwischenablage kopiert`,copyFailed:`Log konnte nicht kopiert werden`,lineCount:`{{filtered}} / {{total}} Zeilen`,jumpToBottom:`Zum Ende springen`,phaseLines_one:`{{count}} Zeile`,phaseLines_other:`{{count}} Zeilen`,noMatchingLines:`Keine passenden Zeilen`,noOutput:`Keine Ausgabe`,completed:`Abgeschlossen`,turns_one:`{{count}} Turn`,turns_other:`{{count}} Turns`},p={title:`Ausführungsergebnis`,execution:`Ausführung`,implementation:`Implementierung`,validation:`Validierung`,archive:`Archivierung`,delivery:`Auslieferung`,counters:`Schritte: {{steps}} · Auswertungen: {{evaluations}} · Agentenrunden: {{turns}}`,unavailable:`Nicht verfügbar`,evidence:`Nachweise, Ausnahmen und Phasenzeiten`,snapshot:`Bei Abschluss erfasst: {{change}} · {{at}}`,acceptedBy:`Akzeptiert von {{by}}`,required:`Erforderlich`,supplementary:`Ergänzend`,attempts:`Versuche: {{count}}`,phaseCostUnavailable:`Kosten pro Core-Phase sind nicht verfügbar; der Anbieterverbrauch wird Schleifenschritten zugeordnet.`,noCoreEvidence:`Abnahmenachweise sind nicht verfügbar. Eine erfolgreiche Ausführung allein bestätigt keinen abgeschlossenen Vorgang.`,status:{success:`Erfolgreich`,failed:`Fehlgeschlagen`,blocked:`Blockiert`,stopped:`Gestoppt`,stalled:`Ohne Fortschritt`,complete:`Abgeschlossen`,incomplete:`Unvollständig`,verified:`Verifiziert`,"with-exceptions":`Mit Ausnahmen verifiziert`,pending:`Ausstehend`,"pending-host":`Auslieferung durch Host ausstehend`,done:`Abgeschlossen`,running:`Läuft`,skipped:`Übersprungen`,passed:`Bestanden`,unavailable:`Nicht verfügbar`}},m={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p};export{u as activeJob,c as comparison,p as completion,m as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={running:`em execução`,completed:`concluído`,done:`feito`,failed:`falhou`,canceled:`cancelado`,queued:`em fila`,zombie:`zombie`,skipped:`ignorado`},t={running:`O job está em execução`,completed:`O job foi concluído com sucesso`,failed:`O job terminou com um código de saída diferente de zero`,canceled:`O job foi cancelado manualmente`,queued:`O job está a aguardar na fila`,queuedToRun:`O job está a aguardar para ser executado`,zombie:`O job foi terminado automaticamente após inatividade prolongada`,skipped:`O job foi ignorado porque um job anterior do pipeline falhou`},n={running:`em execução`,completed:`concluído`,failed:`falhou`,canceled:`cancelado`,zombie_terminated:`zombie`,queued:`em fila`,skipped:`ignorado`},r={title:`Jobs`,exportJobs:`Exportar jobs`,proposalDeleted:`Proposta eliminada`,proposal:{title:`Proposta`,noContent:`Ainda não há conteúdo da proposta.`,githubIssue:`Issue do GitHub:`,status:{input:`A aguardar dados`,exploring:`A explorar`,review:`Pronta para revisão`,refining:`A refinar`,creatingIssue:`A criar issue`,created:`Criada`,cancelled:`Cancelada`,unknown:`Estado desconhecido: {{status}}`}}},i={breadcrumbDashboard:`Dashboard`,breadcrumbJob:`Job #{{id}}`,notFound:`Job não encontrado`,notFoundDescription:`O ID de job "{{id}}" não existe`,backToDashboard:`Voltar ao Dashboard`,startedAgo:`Iniciado {{timeAgo}}`,queuedWaiting:`Em fila — a aguardar início`,exportDiagnostic:`Exportar diagnóstico`,exportDiagnosticAria:`Exportar pacote de diagnóstico`,exportDiagnosticTooltip:`Transferir um ZIP com telemetria, logs e resumo deste job`,reExecute:`Reexecutar`,reExecuteTooltip:`Lançar um novo job com o mesmo comando`,cancelJob:`Cancelar job`,cancelJobTooltip:`Enviar SIGTERM ao processo em execução. O job será marcado como cancelado.`,cancelInteractive:`Descartar`,finalizeJob:`Finalizar job`,finalizing:`A finalizar…`,finalizeJobTooltip:`Terminar esta sessão interativa e somar os tokens e o custo de cada turno ao total do job.`,interactive:{ready:`Pronto — envie um prompt`,working:`Agente a trabalhar…`,placeholder:`Envie uma mensagem ao job em execução…`,send:`Enviar`,liveTotals:"{{turns}} turnos · ${{cost}}",autoHint:`Este job segue o seu plano e termina sozinho — as mensagens são orientação opcional.`,wrapUp:`Concluir agora`,wrapUpTooltip:`Termina a sessão agora — o job conclui com o trabalho produzido até ao momento, com os tokens e o custo de cada turno somados ao total.`,wrapUpStep:`Fechar este passo`,wrapUpStepTooltip:`Termina o passo atual agora — o loop avança com o que o passo produziu até ao momento.`,wrappingUp:`A concluir…`,queued_one:`{{count}} mensagem em fila`,queued_other:`{{count}} mensagens em fila`,waitingForStep:`Entre passos — o loop está a decidir o que corre a seguir. Poderá enviar uma mensagem quando o próximo passo de IA começar.`,waitingForStepShort:`A aguardar o próximo passo…`,sendDisabledEmpty:`Escreva primeiro uma mensagem`,sendDisabledWaiting:`Não há nenhuma sessão de passo ativa neste momento`},toast:{jobDeleted:`Job eliminado`,cancelSignalSent:`Sinal de cancelamento enviado`,cancelSignalSentDescription:`O job vai parar no próximo ponto seguro`,failed:`Falhou`,networkError:`Erro de rede`,exportFailed:`Falha na exportação`,exportFailedHttp:`Falha na exportação (HTTP {{status}})`,jobRequeued:`Job colocado novamente na fila`,spawnFailed:`Falha ao lançar o job`,finalizeScheduled:`A finalizar o job interativo…`,finalizeFailed:`Falha ao finalizar o job`,sendFailed:`Falha ao enviar a mensagem`,wrapUpScheduled:`A concluir o job…`,wrapUpStepScheduled:`A fechar o passo — o loop avança com o que produziu`}},a={inProgress:`Job em curso`,completed:`Job concluído`,failed:`Job falhou`,duration:`Duração`,cost:`Custo`,turns:`Turnos`,tokens:`Tokens`,filesCount_one:`{{count}} ficheiro`,filesCount_other:`{{count}} ficheiros`,pipelineTotal:`Total do pipeline ({{count}} fases)`,totalCost:`Custo total`,totalTokens:`Total de tokens`,filesModified:`Ficheiros modificados`,zoneInProgress:`Em andamento`,zoneFinal:`Resumo final`,zoneFinalPending:`Resumo final — calculado ao terminar`,pendingCaption:`Calculado ao terminar`,pendingTooltip:`Este é o valor real do provedor; aparece ao terminar o job.`,costTooltip:`O custo real é cobrado pelo provedor ao encerrar o job.`,liveTooltip:`Ao vivo`,explainer:`Custo, turnos e tokens são os valores reais do provedor e aparecem ao terminar.`,notAvailable:`Indisponível`,steps_one:`{{count}} passo`,steps_other:`{{count}} passos`,activity:{editing:`Editando {{arg}}`,writing:`Escrevendo {{arg}}`,reading:`Lendo {{arg}}`,searching:`Buscando “{{arg}}”`,running:`Executando: {{arg}}`,thinking:`Pensando…`,reasoning:`Raciocinando…`,working:`Trabalhando…`,connecting:`Conectando ao agente…`,starting:`Iniciando…`},pipelinePartial:`≥ exibido — {{count}} fase(s) sem custo registrado`,pipelinePartialTooltip:`Algumas fases terminaram antes de reportar o custo, portanto este total é um limite inferior.`,pipelineCostUnavailable:`A telemetria de custo está indisponível em todas as fases.`,pipelineUsageUnavailable:`A telemetria de tokens está indisponível em todas as fases.`,pipelineUsagePartial:`≥ mostrado — fases sem telemetria de tokens: {{count}}`,pipelineUsageTooltip:`Os fornecedores podem concluir fases sem fornecer telemetria de tokens; apenas a utilização conhecida é incluída.`},o={showMore:`+ {{count}} mais`,showLess:`Mostrar menos`,deletedTicket:`#{{id}} (eliminado)`,deletedTooltip:`O ticket já não existe`},s={notFound:`Job não encontrado`,cancelConfirmTitle:`Cancelar o job?`,cancelConfirmDescription:`O job vai parar no próximo ponto seguro. Esta ação não pode ser anulada.`,keepRunning:`Manter em execução`,cancelJob:`Cancelar job`,stopRun:`Parar execução`,stopRunConfirmTitle:`Parar esta execução?`,stopRunConfirmDescription:`A execução do loop será interrompida no próximo limite de etapa. Esta ação não pode ser desfeita.`,toast:{cancelSignalSent:`Sinal de cancelamento enviado`,cancelSignalSentDescription:`O job vai parar no próximo ponto seguro`,stopSignalSent:`Sinal de parada enviado`,stopSignalSentDescription:`A execução será interrompida no próximo limite de etapa`,cancelFailed:`Falha ao cancelar`,networkError:`Erro de rede`}},c={title:`Comparação de jobs`,jobN:`Job {{n}}`,loadFailed:`Falha ao carregar a comparação: {{error}}`,duration:`Duração`,cost:`Custo`,tokensOut:`Tokens de saída`,tokensIn:`Tokens de entrada`,cacheRead:`Leitura de cache`,model:`Modelo`,phasesDone:`Fases concluídas`,betterValueHint:`Os destaques a verde indicam melhor valor`},l={emptyTitle:`Ainda não há jobs`,emptyDescription:`Execute um comando acima para ver aqui o seu histórico de jobs`,loadFailed:`Falha ao carregar os jobs`,filterAll:`Todos ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`Data inicial`,toDate:`Data final`,clear:`Limpar`,exitCompareMode:`Sair do modo de comparação`,compareTwoJobs:`Comparar 2 jobs`,clearJobs:`Limpar jobs`,selectTwoToCompare:`Selecione 2 jobs para comparar`,selectOneMore:`Selecione mais 1 job`,readyToCompare:`Pronto — clique em comparar`,compareAction:`Comparar →`,colStatus:`Estado`,colCommand:`Comando`,colDuration:`Duração`,colTokens:`Tokens`,colCost:`Custo`,colStarted:`Início`,profileTooltip:`Perfil: {{name}}`,pipelinePart:`Parte de um pipeline`,pipelineDependsOn:`(depende do passo anterior)`,deleteProposal:`Eliminar proposta`,loadMore:`Carregar mais ({{count}} restantes)`,priority:{critical:`crítica`,high:`alta`,normal:`normal`,low:`baixa`},clearModal:{title:`Limpar jobs`,jobsInHistory_one:`{{count}} job no histórico`,jobsInHistory_other:`{{count}} jobs no histórico`,clearAll_one:`Limpar {{count}} job`,clearAll_other:`Limpar todos os {{count}} jobs`,orByRange:`Ou limpar por intervalo de datas:`,fromPlaceholder:`De`,toPlaceholder:`Até`,clearInRange_one:`Limpar {{count}} job no intervalo`,clearInRange_other:`Limpar {{count}} jobs no intervalo`,clearRange:`Limpar intervalo`},deleteProposalConfirm:{title:`Eliminar a proposta?`,description:`Isto vai eliminar permanentemente 1 proposta. Esta ação não pode ser anulada.`},toast:{cleared_one:`{{count}} job removido`,cleared_other:`{{count}} jobs removidos`,clearFailed:`Falha ao limpar os jobs`,networkError:`Erro de rede`}},u={none:`Nenhum job ativo`,noneHint:`Selecione um comando abaixo para iniciar um job`,exitCode:`exit {{code}}`,cancelTooltip:`Enviar SIGTERM ao processo claude em execução`,viewLogs:`Ver logs`,toast:{cancelRequested:`Cancelamento do job pedido`,cancelRequestedDescription:`A enviar SIGTERM ao processo`,cancelFailed:`Falha ao cancelar o job`,networkError:`Erro de rede ao cancelar o job`}},d={setup:`Preparação`,iteration:`Iteração {{current}}/{{limit}}`,iterationBadge:`iter {{count}}`,follow:`A seguir em direto`,resumeFollow:`Retomar acompanhamento`,expandAll:`Expandir tudo`,collapseAll:`Recolher tudo`,copyStep:`Copiar passo`,copied:`Passo copiado para a área de transferência`,stepDetail:`Detalhes do passo`,stepDetailTemplate:`Modelo`,stepDetailCommand:`Comando`,copyCommand:`Copiar`,interrupted:`Interrompido`,waiting:`A aguardar o próximo passo...`,stepMapAria:`Mapa de passos do loop`,stalled:`Travado`,stalledIdle_one:`Sem saída do fornecedor durante {{count}} minuto — a app parou esta tentativa`,stalledIdle_other:`Sem saída do fornecedor durante {{count}} minutos — a app parou esta tentativa`,providerLimit:`Limite do fornecedor`,providerLimitHint:`O fornecedor respondeu com um aviso de limite de utilização, por isso a app parou a execução em vez de continuar a ciclar.`},f={loading:`A carregar logs...`,empty:`Ainda sem saída de log`,filterPlaceholder:`Filtrar logs...`,copySuccess:`Log copiado para a área de transferência`,copyFailed:`Falha ao copiar o log`,lineCount:`{{filtered}} / {{total}} linhas`,jumpToBottom:`Ir para o fim`,phaseLines_one:`{{count}} linha`,phaseLines_other:`{{count}} linhas`,noMatchingLines:`Nenhuma linha corresponde`,noOutput:`Sem saída`,completed:`Concluído`,turns_one:`{{count}} turno`,turns_other:`{{count}} turnos`},p={title:`Resultado da execução`,execution:`Execução`,implementation:`Implementação`,validation:`Validação`,archive:`Arquivo`,delivery:`Entrega`,counters:`Passos: {{steps}} · Avaliações: {{evaluations}} · Turnos do agente: {{turns}}`,unavailable:`Indisponível`,evidence:`Evidências, exceções e tempos por fase`,snapshot:`Registado ao concluir: {{change}} · {{at}}`,acceptedBy:`Aceite por {{by}}`,required:`Obrigatório`,supplementary:`Complementar`,attempts:`Tentativas: {{count}}`,phaseCostUnavailable:`O custo por fase do Core não está disponível; o consumo do fornecedor é atribuído aos passos do loop.`,noCoreEvidence:`Evidência de aceitação indisponível. O sucesso da execução, por si só, não confirma a conclusão do ticket.`,status:{success:`Bem-sucedida`,failed:`Falhou`,blocked:`Bloqueada`,stopped:`Parada`,stalled:`Sem progresso`,complete:`Completa`,incomplete:`Incompleta`,verified:`Verificada`,"with-exceptions":`Verificada com exceções`,pending:`Pendente`,"pending-host":`Entrega pelo host pendente`,done:`Concluído`,running:`Em curso`,skipped:`Ignorado`,passed:`Aprovado`,unavailable:`Indisponível`}},m={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p};export{u as activeJob,c as comparison,p as completion,m as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={running:`in esecuzione`,completed:`completato`,done:`concluso`,failed:`fallito`,canceled:`annullato`,queued:`in coda`,zombie:`zombie`,skipped:`saltato`},t={running:`Il job è in esecuzione`,completed:`Job completato con successo`,failed:`Il job è uscito con un codice di uscita diverso da zero`,canceled:`Il job è stato annullato manualmente`,queued:`Il job è in attesa nella coda`,queuedToRun:`Il job è in attesa di essere eseguito`,zombie:`Il job è stato terminato automaticamente dopo un'inattività prolungata`,skipped:`Il job è stato saltato perché un job padre della pipeline è fallito`},n={running:`in esecuzione`,completed:`completato`,failed:`fallito`,canceled:`annullato`,zombie_terminated:`zombie`,queued:`in coda`,skipped:`saltato`},r={title:`Job`,exportJobs:`Esporta job`,proposalDeleted:`Proposta eliminata`,proposal:{title:`Proposta`,noContent:`Ancora nessun contenuto nella proposta.`,githubIssue:`Issue GitHub:`,status:{input:`In attesa di input`,exploring:`Esplorazione`,review:`Pronta per la revisione`,refining:`Perfezionamento`,creatingIssue:`Creazione issue`,created:`Creata`,cancelled:`Annullata`,unknown:`Stato sconosciuto: {{status}}`}}},i={breadcrumbDashboard:`Dashboard`,breadcrumbJob:`Job #{{id}}`,notFound:`Job non trovato`,notFoundDescription:`L'ID job "{{id}}" non esiste`,backToDashboard:`Torna alla dashboard`,startedAgo:`Avviato {{timeAgo}}`,queuedWaiting:`In coda — in attesa di avvio`,exportDiagnostic:`Esporta diagnostica`,exportDiagnosticAria:`Esporta bundle diagnostico`,exportDiagnosticTooltip:`Scarica uno ZIP con telemetria, log e riepilogo di questo job`,reExecute:`Riesegui`,reExecuteTooltip:`Avvia un nuovo job con lo stesso comando`,cancelJob:`Annulla job`,cancelJobTooltip:`Invia SIGTERM al processo in esecuzione. Il job verrà contrassegnato come annullato.`,cancelInteractive:`Scarta`,finalizeJob:`Finalizza job`,finalizing:`Finalizzazione…`,finalizeJobTooltip:`Termina questa sessione interattiva e somma al totale del job i token e il costo di ogni turno.`,interactive:{ready:`Pronto — invia un prompt`,working:`L'agente sta lavorando…`,placeholder:`Invia un messaggio al job in esecuzione…`,send:`Invia`,liveTotals:"{{turns}} turni · ${{cost}}",autoHint:`Questo job segue il suo piano e termina da solo — i messaggi sono indicazioni opzionali.`,wrapUp:`Concludi ora`,wrapUpTooltip:`Termina la sessione ora — il job si completa con il lavoro prodotto finora, con i token e il costo di ogni turno sommati al totale.`,wrapUpStep:`Chiudi questo passo`,wrapUpStepTooltip:`Termina il passo corrente ora — il loop avanza con quanto il passo ha prodotto finora.`,wrappingUp:`Conclusione in corso…`,queued_one:`{{count}} messaggio in coda`,queued_other:`{{count}} messaggi in coda`,waitingForStep:`Tra un passo e l'altro — il loop sta decidendo cosa eseguire dopo. Potrai inviare un messaggio quando partirà il prossimo passo IA.`,waitingForStepShort:`In attesa del prossimo passo…`,sendDisabledEmpty:`Scrivi prima un messaggio`,sendDisabledWaiting:`Al momento non c'è nessuna sessione di passo attiva`},toast:{jobDeleted:`Job eliminato`,cancelSignalSent:`Segnale di annullamento inviato`,cancelSignalSentDescription:`Il job si fermerà al prossimo punto sicuro`,failed:`Operazione non riuscita`,networkError:`Errore di rete`,exportFailed:`Esportazione non riuscita`,exportFailedHttp:`Esportazione non riuscita (HTTP {{status}})`,jobRequeued:`Job rimesso in coda`,spawnFailed:`Impossibile avviare il job`,finalizeScheduled:`Finalizzazione del job interattivo…`,finalizeFailed:`Impossibile finalizzare il job`,sendFailed:`Impossibile inviare il messaggio`,wrapUpScheduled:`Conclusione del job…`,wrapUpStepScheduled:`Chiusura del passo — il loop avanza con quanto prodotto`}},a={inProgress:`Job in corso`,completed:`Job completato`,failed:`Job fallito`,duration:`Durata`,cost:`Costo`,turns:`Turni`,tokens:`Token`,filesCount_one:`{{count}} file`,filesCount_other:`{{count}} file`,pipelineTotal:`Totale pipeline ({{count}} fasi)`,totalCost:`Costo totale`,totalTokens:`Token totali`,filesModified:`File modificati`,zoneInProgress:`In corso`,zoneFinal:`Riepilogo finale`,zoneFinalPending:`Riepilogo finale — calcolato al termine`,pendingCaption:`Calcolato al termine`,pendingTooltip:`Questa è la cifra reale del provider; appare al termine del job.`,costTooltip:`Il costo reale viene fatturato dal provider alla chiusura del job.`,liveTooltip:`In diretta`,explainer:`Costo, turni e token sono le cifre reali del provider e appaiono al termine.`,notAvailable:`Non disponibile`,steps_one:`{{count}} passo`,steps_other:`{{count}} passi`,activity:{editing:`Modifica di {{arg}}`,writing:`Scrittura di {{arg}}`,reading:`Lettura di {{arg}}`,searching:`Ricerca di «{{arg}}»`,running:`Esecuzione: {{arg}}`,thinking:`Sta pensando…`,reasoning:`Sta ragionando…`,working:`Al lavoro…`,connecting:`Connessione all'agente…`,starting:`Avvio…`},pipelinePartial:`≥ mostrato — {{count}} fase/i senza costo registrato`,pipelinePartialTooltip:`Alcune fasi si sono interrotte prima di riportare il costo, quindi questo totale è un limite inferiore.`,pipelineCostUnavailable:`La telemetria dei costi non è disponibile per nessuna fase.`,pipelineUsageUnavailable:`La telemetria dei token non è disponibile per nessuna fase.`,pipelineUsagePartial:`≥ mostrato — fasi senza telemetria dei token: {{count}}`,pipelineUsageTooltip:`I provider possono completare le fasi senza esporre la telemetria dei token; è incluso solo l'utilizzo noto.`},o={showMore:`+ altri {{count}}`,showLess:`Mostra meno`,deletedTicket:`#{{id}} (eliminato)`,deletedTooltip:`Il ticket non esiste più`},s={notFound:`Job non trovato`,cancelConfirmTitle:`Annullare il job?`,cancelConfirmDescription:`Il job si fermerà al prossimo punto sicuro. Questa azione è irreversibile.`,keepRunning:`Continua l'esecuzione`,cancelJob:`Annulla job`,stopRun:`Ferma esecuzione`,stopRunConfirmTitle:`Fermare questa esecuzione?`,stopRunConfirmDescription:`L'esecuzione del loop si fermerà al prossimo confine di step. Questa azione non può essere annullata.`,toast:{cancelSignalSent:`Segnale di annullamento inviato`,cancelSignalSentDescription:`Il job si fermerà al prossimo punto sicuro`,stopSignalSent:`Segnale di arresto inviato`,stopSignalSentDescription:`L'esecuzione si fermerà al prossimo confine di step`,cancelFailed:`Annullamento non riuscito`,networkError:`Errore di rete`}},c={title:`Confronto job`,jobN:`Job {{n}}`,loadFailed:`Impossibile caricare il confronto: {{error}}`,duration:`Durata`,cost:`Costo`,tokensOut:`Token in uscita`,tokensIn:`Token in ingresso`,cacheRead:`Lettura cache`,model:`Modello`,phasesDone:`Fasi completate`,betterValueHint:`Le evidenziazioni verdi indicano il valore migliore`},l={emptyTitle:`Ancora nessun job`,emptyDescription:`Esegui un comando qui sopra per vedere qui la cronologia dei job`,loadFailed:`Impossibile caricare i job`,filterAll:`Tutti ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`Dalla data`,toDate:`Alla data`,clear:`Cancella`,exitCompareMode:`Esci dalla modalità confronto`,compareTwoJobs:`Confronta 2 job`,clearJobs:`Cancella job`,selectTwoToCompare:`Seleziona 2 job da confrontare`,selectOneMore:`Seleziona 1 altro job`,readyToCompare:`Pronto — clicca Confronta`,compareAction:`Confronta →`,colStatus:`Stato`,colCommand:`Comando`,colDuration:`Durata`,colTokens:`Token`,colCost:`Costo`,colStarted:`Avvio`,profileTooltip:`Profilo: {{name}}`,pipelinePart:`Parte di una pipeline`,pipelineDependsOn:`(dipende dal passaggio precedente)`,deleteProposal:`Elimina proposta`,loadMore:`Carica altri ({{count}} rimanenti)`,priority:{critical:`critica`,high:`alta`,normal:`normale`,low:`bassa`},clearModal:{title:`Cancella job`,jobsInHistory_one:`{{count}} job nella cronologia`,jobsInHistory_other:`{{count}} job nella cronologia`,clearAll_one:`Cancella {{count}} job`,clearAll_other:`Cancella tutti i {{count}} job`,orByRange:`Oppure cancella per intervallo di date:`,fromPlaceholder:`Da`,toPlaceholder:`A`,clearInRange_one:`Cancella {{count}} job nell'intervallo`,clearInRange_other:`Cancella {{count}} job nell'intervallo`,clearRange:`Cancella intervallo`},deleteProposalConfirm:{title:`Eliminare la proposta?`,description:`Verrà eliminata definitivamente 1 proposta. Questa azione è irreversibile.`},toast:{cleared_one:`{{count}} job cancellato`,cleared_other:`{{count}} job cancellati`,clearFailed:`Impossibile cancellare i job`,networkError:`Errore di rete`}},u={none:`Nessun job attivo`,noneHint:`Seleziona un comando qui sotto per avviare un job`,exitCode:`exit {{code}}`,cancelTooltip:`Invia SIGTERM al processo claude in esecuzione`,viewLogs:`Vedi log`,toast:{cancelRequested:`Annullamento del job richiesto`,cancelRequestedDescription:`Invio di SIGTERM al processo`,cancelFailed:`Impossibile annullare il job`,networkError:`Errore di rete durante l'annullamento del job`}},d={setup:`Preparazione`,iteration:`Iterazione {{current}}/{{limit}}`,iterationBadge:`iter {{count}}`,follow:`Seguendo in diretta`,resumeFollow:`Riprendi a seguire`,expandAll:`Espandi tutto`,collapseAll:`Comprimi tutto`,copyStep:`Copia passo`,copied:`Passo copiato negli appunti`,stepDetail:`Dettagli del passo`,stepDetailTemplate:`Modello`,stepDetailCommand:`Comando`,copyCommand:`Copia`,interrupted:`Interrotto`,waiting:`In attesa del prossimo passo...`,stepMapAria:`Mappa dei passi del loop`,stalled:`Bloccato`,stalledIdle_one:`Nessun output dal provider per {{count}} minuto — l'app ha fermato questo tentativo`,stalledIdle_other:`Nessun output dal provider per {{count}} minuti — l'app ha fermato questo tentativo`,providerLimit:`Limite del provider`,providerLimitHint:`Il provider ha risposto con un avviso di limite d'uso, quindi l'app ha fermato la run invece di continuare a ciclare.`},f={loading:`Caricamento dei log...`,empty:`Ancora nessun output di log`,filterPlaceholder:`Filtra i log...`,copySuccess:`Log copiato negli appunti`,copyFailed:`Impossibile copiare il log`,lineCount:`{{filtered}} / {{total}} righe`,jumpToBottom:`Vai in fondo`,phaseLines_one:`{{count}} riga`,phaseLines_other:`{{count}} righe`,noMatchingLines:`Nessuna riga corrispondente`,noOutput:`Nessun output`,completed:`Completato`,turns_one:`{{count}} turno`,turns_other:`{{count}} turni`},p={title:`Risultato dell’esecuzione`,execution:`Esecuzione`,implementation:`Implementazione`,validation:`Validazione`,archive:`Archiviazione`,delivery:`Consegna`,counters:`Passaggi: {{steps}} · Valutazioni: {{evaluations}} · Turni dell’agente: {{turns}}`,unavailable:`Non disponibile`,evidence:`Prove, eccezioni e tempi per fase`,snapshot:`Registrato al completamento: {{change}} · {{at}}`,acceptedBy:`Accettato da {{by}}`,required:`Obbligatorio`,supplementary:`Supplementare`,attempts:`Tentativi: {{count}}`,phaseCostUnavailable:`Il costo per fase di Core non è disponibile; il consumo del fornitore è attribuito ai passaggi del ciclo.`,noCoreEvidence:`Prove di accettazione non disponibili. Il successo dell’esecuzione da solo non conferma il completamento del ticket.`,status:{success:`Riuscita`,failed:`Fallita`,blocked:`Bloccata`,stopped:`Interrotta`,stalled:`Senza progressi`,complete:`Completa`,incomplete:`Incompleta`,verified:`Verificata`,"with-exceptions":`Verificata con eccezioni`,pending:`In attesa`,"pending-host":`Consegna dell’host in attesa`,done:`Completato`,running:`In corso`,skipped:`Saltato`,passed:`Superato`,unavailable:`Non disponibile`}},m={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p};export{u as activeJob,c as comparison,p as completion,m as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({activeJob:()=>f,comparison:()=>u,completion:()=>h,default:()=>g,detail:()=>o,logViewer:()=>m,loopExplorer:()=>p,modal:()=>l,page:()=>a,recent:()=>d,statusLabel:()=>n,statusName:()=>i,statusPanel:()=>s,statusTooltip:()=>r,ticketHeader:()=>c}),n={running:`running`,completed:`completed`,done:`done`,failed:`failed`,canceled:`canceled`,queued:`queued`,zombie:`zombie`,skipped:`skipped`},r={running:`Job is actively executing`,completed:`Job completed successfully`,failed:`Job exited with a non-zero exit code`,canceled:`Job was manually canceled`,queued:`Job is waiting in the queue`,queuedToRun:`Job is waiting to run`,zombie:`Job was auto-terminated after prolonged inactivity`,skipped:`Job was skipped because a parent job in the pipeline failed`},i={running:`running`,completed:`completed`,failed:`failed`,canceled:`canceled`,zombie_terminated:`zombie`,queued:`queued`,skipped:`skipped`},a={title:`Jobs`,exportJobs:`Export Jobs`,proposalDeleted:`Proposal deleted`,proposal:{title:`Proposal`,noContent:`No proposal content yet.`,githubIssue:`GitHub Issue:`,status:{input:`Awaiting input`,exploring:`Exploring`,review:`Ready for review`,refining:`Refining`,creatingIssue:`Creating issue`,created:`Created`,cancelled:`Cancelled`,unknown:`Unknown status: {{status}}`}}},o={breadcrumbDashboard:`Dashboard`,breadcrumbJob:`Job #{{id}}`,notFound:`Job not found`,notFoundDescription:`The job ID "{{id}}" doesn't exist`,backToDashboard:`Back to Dashboard`,startedAgo:`Started {{timeAgo}}`,queuedWaiting:`Queued — waiting to start`,exportDiagnostic:`Export diagnostic`,exportDiagnosticAria:`Export diagnostic bundle`,exportDiagnosticTooltip:`Download ZIP with telemetry, logs, and summary for this job`,reExecute:`Re-execute`,reExecuteTooltip:`Spawn a new job with the same command`,cancelJob:`Cancel Job`,cancelJobTooltip:`Send SIGTERM to the running process. The job will be marked as canceled.`,cancelInteractive:`Discard`,finalizeJob:`Finalize Job`,finalizing:`Finalizing…`,finalizeJobTooltip:`End this interactive session and roll every turn's tokens and cost into the job total.`,interactive:{ready:`Ready — send a prompt`,working:`Agent working…`,placeholder:`Send a message to the running job…`,send:`Send`,liveTotals:"{{turns}} turns · ${{cost}}",autoHint:`This job follows its plan and finishes on its own — messages are optional steering.`,wrapUp:`Wrap up now`,wrapUpTooltip:`End the session now — the job completes with the work produced so far, every turn's tokens and cost rolled into the total.`,wrapUpStep:`Settle this step`,wrapUpStepTooltip:`End the current step now — the loop advances with what the step has produced so far.`,wrappingUp:`Wrapping up…`,queued_one:`{{count}} queued message`,queued_other:`{{count}} queued messages`,waitingForStep:`Between steps — the loop is deciding what runs next. You can send a message when the next AI step starts.`,waitingForStepShort:`Waiting for the next step…`,sendDisabledEmpty:`Type a message first`,sendDisabledWaiting:`No active step session right now`},toast:{jobDeleted:`Job deleted`,cancelSignalSent:`Cancel signal sent`,cancelSignalSentDescription:`Job will stop at the next safe point`,failed:`Failed`,networkError:`Network error`,exportFailed:`Export failed`,exportFailedHttp:`Export failed (HTTP {{status}})`,jobRequeued:`Job re-queued`,spawnFailed:`Failed to spawn job`,finalizeScheduled:`Finalizing interactive job…`,finalizeFailed:`Failed to finalize job`,sendFailed:`Failed to send message`,wrapUpScheduled:`Wrapping up the job…`,wrapUpStepScheduled:`Settling the step — the loop advances with what it produced`}},s={inProgress:`Job in progress`,completed:`Job completed`,failed:`Job failed`,duration:`Duration`,cost:`Cost`,turns:`Turns`,tokens:`Tokens`,filesCount_one:`{{count}} file`,filesCount_other:`{{count}} files`,pipelineTotal:`Pipeline total ({{count}} phases)`,totalCost:`Total cost`,totalTokens:`Total tokens`,filesModified:`Files modified`,zoneInProgress:`In progress`,zoneFinal:`Final summary`,zoneFinalPending:`Final summary — calculated when finished`,pendingCaption:`Calculated when finished`,pendingTooltip:`This is the provider's real figure; it appears when the job finishes.`,costTooltip:`The real cost is billed by the provider when the job closes.`,liveTooltip:`Live`,explainer:`Cost, turns and tokens are the provider's real figures and appear when the job finishes.`,notAvailable:`Not available`,steps_one:`{{count}} step`,steps_other:`{{count}} steps`,activity:{editing:`Editing {{arg}}`,writing:`Writing {{arg}}`,reading:`Reading {{arg}}`,searching:`Searching “{{arg}}”`,running:`Running: {{arg}}`,thinking:`Thinking…`,reasoning:`Reasoning…`,working:`Working…`,connecting:`Connecting to the agent…`,starting:`Starting…`},pipelinePartial:`≥ shown — {{count}} phase(s) have no recorded cost yet`,pipelinePartialTooltip:`Some phases did not report cost, so this total is a lower bound.`,pipelineCostUnavailable:`Cost telemetry is unavailable for every phase.`,pipelineUsageUnavailable:`Token telemetry is unavailable for every phase.`,pipelineUsagePartial:`≥ shown — {{count}} phase(s) have no token telemetry`,pipelineUsageTooltip:`Providers may complete phases without exposing token telemetry; only known usage is included.`},c={showMore:`+ {{count}} more`,showLess:`Show less`,deletedTicket:`#{{id}} (deleted)`,deletedTooltip:`Ticket no longer exists`},l={notFound:`Job not found`,cancelConfirmTitle:`Cancel job?`,cancelConfirmDescription:`The job will stop at the next safe point. This action cannot be undone.`,keepRunning:`Keep running`,cancelJob:`Cancel job`,stopRun:`Stop run`,stopRunConfirmTitle:`Stop this run?`,stopRunConfirmDescription:`The loop run will stop at the next step boundary. This action cannot be undone.`,toast:{cancelSignalSent:`Cancel signal sent`,cancelSignalSentDescription:`Job will stop at the next safe point`,stopSignalSent:`Stop signal sent`,stopSignalSentDescription:`The run will stop at the next step boundary`,cancelFailed:`Failed to cancel`,networkError:`Network error`}},u={title:`Job Comparison`,jobN:`Job {{n}}`,loadFailed:`Failed to load comparison: {{error}}`,duration:`Duration`,cost:`Cost`,tokensOut:`Tokens out`,tokensIn:`Tokens in`,cacheRead:`Cache read`,model:`Model`,phasesDone:`Phases done`,betterValueHint:`Green highlights indicate better value`},d={emptyTitle:`No jobs yet`,emptyDescription:`Run a command above to see your job history here`,loadFailed:`Failed to load jobs`,filterAll:`All ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`From date`,toDate:`To date`,clear:`Clear`,exitCompareMode:`Exit compare mode`,compareTwoJobs:`Compare 2 jobs`,clearJobs:`Clear jobs`,selectTwoToCompare:`Select 2 jobs to compare`,selectOneMore:`Select 1 more job`,readyToCompare:`Ready — click compare`,compareAction:`Compare →`,colStatus:`Status`,colCommand:`Command`,colDuration:`Duration`,colTokens:`Tokens`,colCost:`Cost`,colStarted:`Started`,profileTooltip:`Profile: {{name}}`,pipelinePart:`Part of a pipeline`,pipelineDependsOn:`(depends on previous step)`,deleteProposal:`Delete proposal`,loadMore:`Load more ({{count}} remaining)`,priority:{critical:`critical`,high:`high`,normal:`normal`,low:`low`},clearModal:{title:`Clear Jobs`,jobsInHistory_one:`{{count}} job in history`,jobsInHistory_other:`{{count}} jobs in history`,clearAll_one:`Clear all {{count}} job`,clearAll_other:`Clear all {{count}} jobs`,orByRange:`Or clear by date range:`,fromPlaceholder:`From`,toPlaceholder:`To`,clearInRange_one:`Clear {{count}} job in range`,clearInRange_other:`Clear {{count}} jobs in range`,clearRange:`Clear range`},deleteProposalConfirm:{title:`Delete proposal?`,description:`This will permanently delete 1 proposal. This action cannot be undone.`},toast:{cleared_one:`Cleared {{count}} job`,cleared_other:`Cleared {{count}} jobs`,clearFailed:`Failed to clear jobs`,networkError:`Network error`}},f={none:`No active job`,noneHint:`Select a command below to start a job`,exitCode:`exit {{code}}`,cancelTooltip:`Send SIGTERM to the running claude process`,viewLogs:`View Logs`,toast:{cancelRequested:`Job cancellation requested`,cancelRequestedDescription:`Sending SIGTERM to the process`,cancelFailed:`Failed to cancel job`,networkError:`Network error canceling job`}},p={setup:`Setup`,iteration:`Iteration {{current}}/{{limit}}`,iterationBadge:`iter {{count}}`,follow:`Following live`,resumeFollow:`Resume follow`,expandAll:`Expand all`,collapseAll:`Collapse all`,copyStep:`Copy step`,copied:`Step copied to clipboard`,stepDetail:`Step details`,stepDetailTemplate:`Template`,stepDetailCommand:`Command`,copyCommand:`Copy`,interrupted:`Interrupted`,waiting:`Waiting for the next step…`,stepMapAria:`Loop step map`,stalled:`Stalled`,stalledIdle_one:`No provider output for {{count}} minute — the app stopped this attempt`,stalledIdle_other:`No provider output for {{count}} minutes — the app stopped this attempt`,providerLimit:`Provider limit`,providerLimitHint:`The provider answered with a usage or rate-limit notice, so the app stopped the run instead of cycling.`},m={loading:`Loading logs...`,empty:`No log output yet`,filterPlaceholder:`Filter logs...`,copySuccess:`Log copied to clipboard`,copyFailed:`Failed to copy log`,lineCount:`{{filtered}} / {{total}} lines`,jumpToBottom:`Jump to bottom`,phaseLines_one:`{{count}} line`,phaseLines_other:`{{count}} lines`,noMatchingLines:`No matching lines`,noOutput:`No output`,completed:`Completed`,turns_one:`{{count}} turn`,turns_other:`{{count}} turns`},h={title:`Run result`,execution:`Execution`,implementation:`Implementation`,validation:`Validation`,archive:`Archive`,delivery:`Delivery`,counters:`Steps: {{steps}} · Decider evaluations: {{evaluations}} · Agent turns: {{turns}}`,unavailable:`Unavailable`,evidence:`Evidence, exceptions and phase timings`,snapshot:`Recorded at completion: {{change}} · {{at}}`,acceptedBy:`Accepted by {{by}}`,required:`Required`,supplementary:`Supplementary`,attempts:`Attempts: {{count}}`,phaseCostUnavailable:`Cost per Core phase is unavailable; provider usage is attributed to loop steps.`,noCoreEvidence:`Acceptance evidence unavailable. Execution success alone does not confirm ticket completion.`,status:{success:`Succeeded`,failed:`Failed`,blocked:`Blocked`,stopped:`Stopped`,stalled:`Stalled`,complete:`Complete`,incomplete:`Incomplete`,verified:`Verified`,"with-exceptions":`Verified with exceptions`,pending:`Pending`,"pending-host":`Pending host delivery`,done:`Done`,running:`Running`,skipped:`Skipped`,passed:`Passed`,unavailable:`Unavailable`}},g={statusLabel:n,statusTooltip:r,statusName:i,page:a,detail:o,statusPanel:s,ticketHeader:c,modal:l,comparison:u,recent:d,activeJob:f,loopExplorer:p,logViewer:m,completion:h};export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={running:`実行中`,completed:`完了`,done:`完了`,failed:`失敗`,canceled:`キャンセル`,queued:`待機中`,zombie:`ゾンビ`,skipped:`スキップ`},t={running:`ジョブは実行中です`,completed:`ジョブは正常に完了しました`,failed:`ジョブは非ゼロの終了コードで終了しました`,canceled:`ジョブは手動でキャンセルされました`,queued:`ジョブはキュー内で待機しています`,queuedToRun:`ジョブは実行待ちです`,zombie:`長時間アクティビティがなかったため、ジョブは自動終了されました`,skipped:`パイプライン内の親ジョブが失敗したため、ジョブはスキップされました`},n={running:`実行中`,completed:`完了`,failed:`失敗`,canceled:`キャンセル`,zombie_terminated:`ゾンビ`,queued:`待機中`,skipped:`スキップ`},r={title:`ジョブ`,exportJobs:`ジョブをエクスポート`,proposalDeleted:`提案を削除しました`,proposal:{title:`提案`,noContent:`提案の内容はまだありません。`,githubIssue:`GitHub Issue:`,status:{input:`入力待ち`,exploring:`調査中`,review:`レビュー待ち`,refining:`改善中`,creatingIssue:`Issue を作成中`,created:`作成済み`,cancelled:`キャンセル済み`,unknown:`不明なステータス: {{status}}`}}},i={breadcrumbDashboard:`ダッシュボード`,breadcrumbJob:`ジョブ #{{id}}`,notFound:`ジョブが見つかりません`,notFoundDescription:`ジョブ ID「{{id}}」は存在しません`,backToDashboard:`ダッシュボードに戻る`,startedAgo:`{{timeAgo}}に開始`,queuedWaiting:`キュー登録済み — 開始待ち`,exportDiagnostic:`診断をエクスポート`,exportDiagnosticAria:`診断バンドルをエクスポート`,exportDiagnosticTooltip:`このジョブのテレメトリ、ログ、サマリーを含む ZIP をダウンロード`,reExecute:`再実行`,reExecuteTooltip:`同じコマンドで新しいジョブを起動`,cancelJob:`ジョブをキャンセル`,cancelJobTooltip:`実行中のプロセスに SIGTERM を送信します。ジョブはキャンセル済みとしてマークされます。`,cancelInteractive:`破棄`,finalizeJob:`ジョブをファイナライズ`,finalizing:`ファイナライズ中…`,finalizeJobTooltip:`このインタラクティブセッションを終了し、各ターンのトークンとコストをジョブの合計に集計します。`,interactive:{ready:`準備完了 — プロンプトを送信してください`,working:`エージェント作業中…`,placeholder:`実行中のジョブにメッセージを送信…`,send:`送信`,liveTotals:"{{turns}} ターン · ${{cost}}",autoHint:`このジョブは計画に沿って自動で完了します — メッセージは任意の指示です。`,wrapUp:`今すぐ切り上げる`,wrapUpTooltip:`セッションを今すぐ終了します — これまでの成果でジョブが完了し、各ターンのトークンとコストは合計に計上されます。`,wrapUpStep:`このステップを確定`,wrapUpStepTooltip:`現在のステップを今すぐ終了します — ループはこれまでの成果を持って次へ進みます。`,wrappingUp:`切り上げ中…`,queued_one:`{{count}} 件のキュー済みメッセージ`,queued_other:`{{count}} 件のキュー済みメッセージ`,waitingForStep:`ステップの合間です — ループが次に実行する内容を決めています。次の AI ステップが始まるとメッセージを送信できます。`,waitingForStepShort:`次のステップを待機中…`,sendDisabledEmpty:`先にメッセージを入力してください`,sendDisabledWaiting:`現在アクティブなステップセッションはありません`},toast:{jobDeleted:`ジョブを削除しました`,cancelSignalSent:`キャンセルシグナルを送信しました`,cancelSignalSentDescription:`ジョブは次の安全なポイントで停止します`,failed:`失敗しました`,networkError:`ネットワークエラー`,exportFailed:`エクスポートに失敗しました`,exportFailedHttp:`エクスポートに失敗しました (HTTP {{status}})`,jobRequeued:`ジョブを再キューしました`,spawnFailed:`ジョブの起動に失敗しました`,finalizeScheduled:`インタラクティブジョブをファイナライズ中…`,finalizeFailed:`ジョブのファイナライズに失敗しました`,sendFailed:`メッセージの送信に失敗しました`,wrapUpScheduled:`ジョブを切り上げ中…`,wrapUpStepScheduled:`ステップを確定中 — ループは産出済みの成果で先へ進みます`}},a={inProgress:`ジョブ実行中`,completed:`ジョブ完了`,failed:`ジョブ失敗`,duration:`実行時間`,cost:`コスト`,turns:`ターン`,tokens:`トークン`,filesCount_one:`{{count}} ファイル`,filesCount_other:`{{count}} ファイル`,pipelineTotal:`パイプライン合計({{count}} フェーズ)`,totalCost:`合計コスト`,totalTokens:`合計トークン`,filesModified:`変更ファイル`,zoneInProgress:`進行中`,zoneFinal:`最終サマリー`,zoneFinalPending:`最終サマリー — 完了時に計算`,pendingCaption:`完了時に計算`,pendingTooltip:`これはプロバイダーの実際の数値です。ジョブ完了時に表示されます。`,costTooltip:`実際のコストはジョブ終了時にプロバイダーが請求します。`,liveTooltip:`ライブ`,explainer:`コスト・ターン・トークンはプロバイダーの実際の数値で、完了時に表示されます。`,notAvailable:`利用不可`,steps_one:`{{count}} ステップ`,steps_other:`{{count}} ステップ`,activity:{editing:`{{arg}} を編集中`,writing:`{{arg}} を書き込み中`,reading:`{{arg}} を読み込み中`,searching:`「{{arg}}」を検索中`,running:`実行中: {{arg}}`,thinking:`思考中…`,reasoning:`推論中…`,working:`作業中…`,connecting:`エージェントに接続中…`,starting:`起動中…`},pipelinePartial:`≥ は部分値 — {{count}} 個のフェーズにコスト記録がありません`,pipelinePartialTooltip:`一部のフェーズはコストを報告する前に終了したため、この合計は下限値です。`,pipelineCostUnavailable:`すべてのフェーズでコストのテレメトリを利用できません。`,pipelineUsageUnavailable:`すべてのフェーズでトークンのテレメトリを利用できません。`,pipelineUsagePartial:`≥ 表示値 — {{count}} フェーズでトークンのテレメトリなし`,pipelineUsageTooltip:`プロバイダーはトークンのテレメトリを提供せずにフェーズを完了する場合があります。既知の使用量のみが含まれます。`},o={showMore:`+ 他 {{count}} 件`,showLess:`折りたたむ`,deletedTicket:`#{{id}}(削除済み)`,deletedTooltip:`チケットはもう存在しません`},s={notFound:`ジョブが見つかりません`,cancelConfirmTitle:`ジョブをキャンセルしますか?`,cancelConfirmDescription:`ジョブは次の安全なポイントで停止します。この操作は元に戻せません。`,keepRunning:`実行を続ける`,cancelJob:`ジョブをキャンセル`,stopRun:`実行を停止`,stopRunConfirmTitle:`この実行を停止しますか?`,stopRunConfirmDescription:`ループ実行は次のステップ境界で停止します。この操作は取り消せません。`,toast:{cancelSignalSent:`キャンセルシグナルを送信しました`,cancelSignalSentDescription:`ジョブは次の安全なポイントで停止します`,stopSignalSent:`停止シグナルを送信しました`,stopSignalSentDescription:`実行は次のステップ境界で停止します`,cancelFailed:`キャンセルに失敗しました`,networkError:`ネットワークエラー`}},c={title:`ジョブ比較`,jobN:`ジョブ {{n}}`,loadFailed:`比較の読み込みに失敗しました: {{error}}`,duration:`実行時間`,cost:`コスト`,tokensOut:`出力トークン`,tokensIn:`入力トークン`,cacheRead:`キャッシュ読み取り`,model:`モデル`,phasesDone:`完了フェーズ`,betterValueHint:`緑のハイライトはより良い値を示します`},l={emptyTitle:`ジョブはまだありません`,emptyDescription:`上でコマンドを実行すると、ここにジョブ履歴が表示されます`,loadFailed:`ジョブの読み込みに失敗しました`,filterAll:`すべて ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`開始日`,toDate:`終了日`,clear:`クリア`,exitCompareMode:`比較モードを終了`,compareTwoJobs:`ジョブを2件比較`,clearJobs:`ジョブをクリア`,selectTwoToCompare:`比較するジョブを2件選択`,selectOneMore:`あと1件選択してください`,readyToCompare:`準備完了 — 比較をクリック`,compareAction:`比較 →`,colStatus:`ステータス`,colCommand:`コマンド`,colDuration:`実行時間`,colTokens:`トークン`,colCost:`コスト`,colStarted:`開始`,profileTooltip:`プロファイル: {{name}}`,pipelinePart:`パイプラインの一部`,pipelineDependsOn:`(前のステップに依存)`,deleteProposal:`提案を削除`,loadMore:`さらに読み込む(残り {{count}} 件)`,priority:{critical:`クリティカル`,high:`高`,normal:`通常`,low:`低`},clearModal:{title:`ジョブをクリア`,jobsInHistory_one:`履歴に {{count}} 件のジョブ`,jobsInHistory_other:`履歴に {{count}} 件のジョブ`,clearAll_one:`{{count}} 件のジョブをすべてクリア`,clearAll_other:`{{count}} 件のジョブをすべてクリア`,orByRange:`または日付範囲でクリア:`,fromPlaceholder:`開始`,toPlaceholder:`終了`,clearInRange_one:`範囲内の {{count}} 件のジョブをクリア`,clearInRange_other:`範囲内の {{count}} 件のジョブをクリア`,clearRange:`範囲をクリア`},deleteProposalConfirm:{title:`提案を削除しますか?`,description:`1件の提案が完全に削除されます。この操作は元に戻せません。`},toast:{cleared_one:`{{count}} 件のジョブをクリアしました`,cleared_other:`{{count}} 件のジョブをクリアしました`,clearFailed:`ジョブのクリアに失敗しました`,networkError:`ネットワークエラー`}},u={none:`アクティブなジョブはありません`,noneHint:`下のコマンドを選択してジョブを開始`,exitCode:`exit {{code}}`,cancelTooltip:`実行中の claude プロセスに SIGTERM を送信`,viewLogs:`ログを表示`,toast:{cancelRequested:`ジョブのキャンセルをリクエストしました`,cancelRequestedDescription:`プロセスに SIGTERM を送信しています`,cancelFailed:`ジョブのキャンセルに失敗しました`,networkError:`ジョブのキャンセル中にネットワークエラーが発生しました`}},d={setup:`セットアップ`,iteration:`反復 {{current}}/{{limit}}`,iterationBadge:`反復 {{count}}`,follow:`ライブ追従中`,resumeFollow:`追従を再開`,expandAll:`すべて展開`,collapseAll:`すべて折りたたむ`,copyStep:`ステップをコピー`,copied:`ステップをクリップボードにコピーしました`,stepDetail:`ステップの詳細`,stepDetailTemplate:`テンプレート`,stepDetailCommand:`コマンド`,copyCommand:`コピー`,interrupted:`中断`,waiting:`次のステップを待機中...`,stepMapAria:`ループのステップマップ`,stalled:`停止`,stalledIdle_one:`{{count}} 分間プロバイダーの出力がなく、アプリがこの試行を停止しました`,stalledIdle_other:`{{count}} 分間プロバイダーの出力がなく、アプリがこの試行を停止しました`,providerLimit:`プロバイダー上限`,providerLimitHint:`プロバイダーが利用上限の通知を返したため、アプリはループを続けずに実行を停止しました。`},f={loading:`ログを読み込み中...`,empty:`ログ出力はまだありません`,filterPlaceholder:`ログをフィルター...`,copySuccess:`ログをクリップボードにコピーしました`,copyFailed:`ログのコピーに失敗しました`,lineCount:`{{filtered}} / {{total}} 行`,jumpToBottom:`最下部へ移動`,phaseLines_one:`{{count}} 行`,phaseLines_other:`{{count}} 行`,noMatchingLines:`一致する行はありません`,noOutput:`出力なし`,completed:`完了`,turns_one:`{{count}} ターン`,turns_other:`{{count}} ターン`},p={title:`実行結果`,execution:`実行`,implementation:`実装`,validation:`検証`,archive:`アーカイブ`,delivery:`引き渡し`,counters:`{{steps}} ステップ · {{evaluations}} 回の判定 · エージェント {{turns}} ターン`,unavailable:`利用不可`,evidence:`証拠、例外、フェーズの所要時間`,snapshot:`完了時の記録:{{change}} · {{at}}`,acceptedBy:`承認者:{{by}}`,required:`必須`,supplementary:`補足`,attempts:`{{count}} 回の試行`,phaseCostUnavailable:`Core のフェーズ別コストは利用できません。プロバイダー使用量はループのステップに割り当てられます。`,noCoreEvidence:`受け入れの証拠は利用できません。実行の成功だけではチケットの完了を確認できません。`,status:{success:`成功`,failed:`失敗`,blocked:`ブロック`,stopped:`停止`,stalled:`進展なし`,complete:`完了`,incomplete:`未完了`,verified:`検証済み`,"with-exceptions":`例外付きで検証済み`,pending:`保留`,"pending-host":`ホストの引き渡し待ち`,done:`完了`,running:`実行中`,skipped:`スキップ`,passed:`合格`,unavailable:`利用不可`}},m={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p};export{u as activeJob,c as comparison,p as completion,m as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={running:`en cours`,completed:`terminé`,done:`fini`,failed:`échoué`,canceled:`annulé`,queued:`en attente`,zombie:`zombie`,skipped:`ignoré`},t={running:`Le job est en cours d'exécution`,completed:`Le job s'est terminé avec succès`,failed:`Le job s'est terminé avec un code de sortie non nul`,canceled:`Le job a été annulé manuellement`,queued:`Le job attend dans la file`,queuedToRun:`Le job attend de s'exécuter`,zombie:`Le job a été arrêté automatiquement après une inactivité prolongée`,skipped:`Le job a été ignoré car un job parent du pipeline a échoué`},n={running:`en cours`,completed:`terminé`,failed:`échoué`,canceled:`annulé`,zombie_terminated:`zombie`,queued:`en attente`,skipped:`ignoré`},r={title:`Jobs`,exportJobs:`Exporter les jobs`,proposalDeleted:`Proposition supprimée`,proposal:{title:`Proposition`,noContent:`Aucun contenu de proposition pour l'instant.`,githubIssue:`Issue GitHub :`,status:{input:`En attente de saisie`,exploring:`Exploration`,review:`Prête pour révision`,refining:`Affinage`,creatingIssue:`Création du ticket`,created:`Créée`,cancelled:`Annulée`,unknown:`Statut inconnu : {{status}}`}}},i={breadcrumbDashboard:`Tableau de bord`,breadcrumbJob:`Job #{{id}}`,notFound:`Job introuvable`,notFoundDescription:`L'ID de job « {{id}} » n'existe pas`,backToDashboard:`Retour au tableau de bord`,startedAgo:`Démarré {{timeAgo}}`,queuedWaiting:`En file d'attente — en attente de démarrage`,exportDiagnostic:`Exporter le diagnostic`,exportDiagnosticAria:`Exporter le bundle de diagnostic`,exportDiagnosticTooltip:`Télécharger un ZIP avec la télémétrie, les logs et le résumé de ce job`,reExecute:`Réexécuter`,reExecuteTooltip:`Lancer un nouveau job avec la même commande`,cancelJob:`Annuler le job`,cancelJobTooltip:`Envoyer SIGTERM au processus en cours. Le job sera marqué comme annulé.`,cancelInteractive:`Abandonner`,finalizeJob:`Finaliser le job`,finalizing:`Finalisation…`,finalizeJobTooltip:`Terminer cette session interactive et agréger les tokens et le coût de chaque tour dans le total du job.`,interactive:{ready:`Prêt — envoyez un prompt`,working:`L'agent travaille…`,placeholder:`Envoyez un message au job en cours…`,send:`Envoyer`,liveTotals:"{{turns}} tours · ${{cost}}",autoHint:`Ce job suit son plan et se termine tout seul — les messages ne sont qu'un pilotage optionnel.`,wrapUp:`Terminer maintenant`,wrapUpTooltip:`Met fin à la session maintenant — le job se termine avec le travail produit jusqu'ici, les tokens et le coût de chaque tour étant intégrés au total.`,wrapUpStep:`Clore cette étape`,wrapUpStepTooltip:`Met fin à l'étape en cours maintenant — la boucle avance avec ce que l'étape a produit jusqu'ici.`,wrappingUp:`Finalisation…`,queued_one:`{{count}} message en attente`,queued_other:`{{count}} messages en attente`,waitingForStep:`Entre deux étapes — la boucle décide de la suite. Vous pourrez envoyer un message au démarrage de la prochaine étape IA.`,waitingForStepShort:`En attente de la prochaine étape…`,sendDisabledEmpty:`Écrivez d'abord un message`,sendDisabledWaiting:`Aucune session d'étape active pour le moment`},toast:{jobDeleted:`Job supprimé`,cancelSignalSent:`Signal d'annulation envoyé`,cancelSignalSentDescription:`Le job s'arrêtera au prochain point sûr`,failed:`Échec`,networkError:`Erreur réseau`,exportFailed:`Échec de l'export`,exportFailedHttp:`Échec de l'export (HTTP {{status}})`,jobRequeued:`Job remis en file`,spawnFailed:`Échec du lancement du job`,finalizeScheduled:`Finalisation du job interactif…`,finalizeFailed:`Échec de la finalisation du job`,sendFailed:`Échec de l'envoi du message`,wrapUpScheduled:`Finalisation du job…`,wrapUpStepScheduled:`Clôture de l'étape — la boucle avance avec ce qu'elle a produit`}},a={inProgress:`Job en cours`,completed:`Job terminé`,failed:`Job échoué`,duration:`Durée`,cost:`Coût`,turns:`Tours`,tokens:`Tokens`,filesCount_one:`{{count}} fichier`,filesCount_other:`{{count}} fichiers`,pipelineTotal:`Total du pipeline ({{count}} phases)`,totalCost:`Coût total`,totalTokens:`Total des tokens`,filesModified:`Fichiers modifiés`,zoneInProgress:`En cours`,zoneFinal:`Résumé final`,zoneFinalPending:`Résumé final — calculé à la fin`,pendingCaption:`Calculé à la fin`,pendingTooltip:`C'est le chiffre réel du fournisseur ; il apparaît à la fin du job.`,costTooltip:`Le coût réel est facturé par le fournisseur à la clôture du job.`,liveTooltip:`En direct`,explainer:`Le coût, les tours et les tokens sont les chiffres réels du fournisseur et apparaissent à la fin.`,notAvailable:`Non disponible`,steps_one:`{{count}} étape`,steps_other:`{{count}} étapes`,activity:{editing:`Édition de {{arg}}`,writing:`Écriture de {{arg}}`,reading:`Lecture de {{arg}}`,searching:`Recherche de « {{arg}} »`,running:`Exécution : {{arg}}`,thinking:`Réflexion…`,reasoning:`Raisonnement…`,working:`Travail en cours…`,connecting:`Connexion à l'agent…`,starting:`Démarrage…`},pipelinePartial:`≥ affiché — {{count}} phase(s) sans coût enregistré`,pipelinePartialTooltip:`Certaines phases se sont arrêtées avant de rapporter leur coût ; ce total est donc une borne inférieure.`,pipelineCostUnavailable:`La télémétrie de coût est indisponible pour toutes les phases.`,pipelineUsageUnavailable:`La télémétrie des tokens est indisponible pour toutes les phases.`,pipelineUsagePartial:`≥ affiché — phases sans télémétrie des tokens : {{count}}`,pipelineUsageTooltip:`Les fournisseurs peuvent terminer des phases sans exposer la télémétrie des tokens ; seule l'utilisation connue est incluse.`},o={showMore:`+ {{count}} de plus`,showLess:`Voir moins`,deletedTicket:`#{{id}} (supprimé)`,deletedTooltip:`Le ticket n'existe plus`},s={notFound:`Job introuvable`,cancelConfirmTitle:`Annuler le job ?`,cancelConfirmDescription:`Le job s'arrêtera au prochain point sûr. Cette action est irréversible.`,keepRunning:`Laisser tourner`,cancelJob:`Annuler le job`,stopRun:`Arrêter l'exécution`,stopRunConfirmTitle:`Arrêter cette exécution ?`,stopRunConfirmDescription:`L'exécution de la boucle s'arrêtera à la prochaine limite d'étape. Cette action est irréversible.`,toast:{cancelSignalSent:`Signal d'annulation envoyé`,cancelSignalSentDescription:`Le job s'arrêtera au prochain point sûr`,stopSignalSent:`Signal d'arrêt envoyé`,stopSignalSentDescription:`L'exécution s'arrêtera à la prochaine limite d'étape`,cancelFailed:`Échec de l'annulation`,networkError:`Erreur réseau`}},c={title:`Comparaison de jobs`,jobN:`Job {{n}}`,loadFailed:`Échec du chargement de la comparaison : {{error}}`,duration:`Durée`,cost:`Coût`,tokensOut:`Tokens en sortie`,tokensIn:`Tokens en entrée`,cacheRead:`Lecture cache`,model:`Modèle`,phasesDone:`Phases terminées`,betterValueHint:`Les surlignages verts indiquent la meilleure valeur`},l={emptyTitle:`Aucun job pour l'instant`,emptyDescription:`Exécutez une commande ci-dessus pour voir l'historique de vos jobs ici`,loadFailed:`Échec du chargement des jobs`,filterAll:`Tous ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`Date de début`,toDate:`Date de fin`,clear:`Effacer`,exitCompareMode:`Quitter le mode comparaison`,compareTwoJobs:`Comparer 2 jobs`,clearJobs:`Effacer les jobs`,selectTwoToCompare:`Sélectionnez 2 jobs à comparer`,selectOneMore:`Sélectionnez 1 job de plus`,readyToCompare:`Prêt — cliquez sur comparer`,compareAction:`Comparer →`,colStatus:`Statut`,colCommand:`Commande`,colDuration:`Durée`,colTokens:`Tokens`,colCost:`Coût`,colStarted:`Démarré`,profileTooltip:`Profil : {{name}}`,pipelinePart:`Fait partie d'un pipeline`,pipelineDependsOn:`(dépend de l'étape précédente)`,deleteProposal:`Supprimer la proposition`,loadMore:`Charger plus ({{count}} restants)`,priority:{critical:`critique`,high:`haute`,normal:`normale`,low:`basse`},clearModal:{title:`Effacer les jobs`,jobsInHistory_one:`{{count}} job dans l'historique`,jobsInHistory_other:`{{count}} jobs dans l'historique`,clearAll_one:`Effacer {{count}} job`,clearAll_other:`Effacer les {{count}} jobs`,orByRange:`Ou effacer par plage de dates :`,fromPlaceholder:`Du`,toPlaceholder:`Au`,clearInRange_one:`Effacer {{count}} job dans la plage`,clearInRange_other:`Effacer {{count}} jobs dans la plage`,clearRange:`Effacer la plage`},deleteProposalConfirm:{title:`Supprimer la proposition ?`,description:`Cela supprimera définitivement 1 proposition. Cette action est irréversible.`},toast:{cleared_one:`{{count}} job effacé`,cleared_other:`{{count}} jobs effacés`,clearFailed:`Échec de l'effacement des jobs`,networkError:`Erreur réseau`}},u={none:`Aucun job actif`,noneHint:`Sélectionnez une commande ci-dessous pour démarrer un job`,exitCode:`exit {{code}}`,cancelTooltip:`Envoyer SIGTERM au processus claude en cours`,viewLogs:`Voir les logs`,toast:{cancelRequested:`Annulation du job demandée`,cancelRequestedDescription:`Envoi de SIGTERM au processus`,cancelFailed:`Échec de l'annulation du job`,networkError:`Erreur réseau lors de l'annulation du job`}},d={setup:`Préparation`,iteration:`Itération {{current}}/{{limit}}`,iterationBadge:`itér. {{count}}`,follow:`Suivi en direct`,resumeFollow:`Reprendre le suivi`,expandAll:`Tout développer`,collapseAll:`Tout réduire`,copyStep:`Copier l'étape`,copied:`Étape copiée dans le presse-papiers`,stepDetail:`Détails de l'étape`,stepDetailTemplate:`Modèle`,stepDetailCommand:`Commande`,copyCommand:`Copier`,interrupted:`Interrompue`,waiting:`En attente de la prochaine étape…`,stepMapAria:`Carte des étapes de la boucle`,stalled:`Bloquée`,stalledIdle_one:`Aucune sortie du fournisseur pendant {{count}} minute — l'app a arrêté cette tentative`,stalledIdle_other:`Aucune sortie du fournisseur pendant {{count}} minutes — l'app a arrêté cette tentative`,providerLimit:`Limite du fournisseur`,providerLimitHint:`Le fournisseur a répondu par un avis de limite d'utilisation ; l'app a arrêté l'exécution au lieu de boucler.`},f={loading:`Chargement des logs…`,empty:`Aucune sortie de log pour l'instant`,filterPlaceholder:`Filtrer les logs…`,copySuccess:`Log copié dans le presse-papiers`,copyFailed:`Échec de la copie du log`,lineCount:`{{filtered}} / {{total}} lignes`,jumpToBottom:`Aller en bas`,phaseLines_one:`{{count}} ligne`,phaseLines_other:`{{count}} lignes`,noMatchingLines:`Aucune ligne correspondante`,noOutput:`Aucune sortie`,completed:`Terminé`,turns_one:`{{count}} tour`,turns_other:`{{count}} tours`},p={title:`Résultat de l’exécution`,execution:`Exécution`,implementation:`Implémentation`,validation:`Validation`,archive:`Archivage`,delivery:`Livraison`,counters:`Étapes : {{steps}} · Évaluations : {{evaluations}} · Tours de l’agent : {{turns}}`,unavailable:`Indisponible`,evidence:`Preuves, exceptions et durées des phases`,snapshot:`Enregistré à la fin : {{change}} · {{at}}`,acceptedBy:`Accepté par {{by}}`,required:`Obligatoire`,supplementary:`Complémentaire`,attempts:`Tentatives : {{count}}`,phaseCostUnavailable:`Le coût par phase Core est indisponible ; la consommation du fournisseur est attribuée aux étapes de la boucle.`,noCoreEvidence:`Preuves d’acceptation indisponibles. Une exécution réussie ne confirme pas à elle seule que le ticket est terminé.`,status:{success:`Réussie`,failed:`Échouée`,blocked:`Bloquée`,stopped:`Arrêtée`,stalled:`Sans progression`,complete:`Terminée`,incomplete:`Incomplète`,verified:`Vérifiée`,"with-exceptions":`Vérifiée avec exceptions`,pending:`En attente`,"pending-host":`Livraison par l’hôte en attente`,done:`Terminé`,running:`En cours`,skipped:`Ignoré`,passed:`Réussi`,unavailable:`Indisponible`}},m={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p};export{u as activeJob,c as comparison,p as completion,m as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`ボードに戻る`,t=`まだ作業中です…`,n=`これはすでに解決済みです。`,r=`この納品には技術的な判断が必要です。ボードの詳細操作を使ってください。`,i=`プルリクエスト #{{number}} を開く`,a=`要約は記録されていません。`,o={success:`変更のレビュー準備ができました`,successMany:`{{count}} 件すべての変更がレビュー可能です`,partial:`{{total}} 件のうち {{succeeded}} 件が完了`,noChanges:`変更は不要でした`,failed:`完了できませんでした`,failedPartial:`一部しか完了できませんでした`},s={pill:`AI レビュアーの確信度 {{overall}}/100`,unavailable:`レビュアースコアなし`,tooltip:`AI レビュアーが自分に付けたスコアです — 独立した検証ではありません。`},c={thisBuild:`この作業の費用 {{amount}}`,allVersions:`全バージョン合計:{{amount}}`},l={"create-pr":`承認してプルリクエストを作成`,publish:`承認してレビューに出す`,"merge-local":`自分のプロジェクトに取り込む`,"mark-done":`承認 — 変更なし`,generic:`承認`,irreversibleWarning:`変更をあなたのパソコンのプロジェクトへ直接書き込みます。別のレビュー用コピーはなく、取り消せません。`,irreversibleConfirm:`はい、プロジェクトに書き込む`},u={label:`修正を依頼`,comingSoon:`近日公開:修正内容を一文で伝えられます。`,prompt:`何を変更しますか?`,placeholder:`例:ログインボタンを青にする`,submit:`変更を送る`,hint:`これまでの成果から続けます — やり直しではありません。`},d={label:`破棄する`,stackedNote:`このマイルストーンの後続レールはこの納品を基に構築されています。破棄するとマイルストーンのチェーンが一時停止します。後続レールの作業は保持されます。`},f={title:`承認する前に確認したい点`},p={whatYouAsked:`依頼した内容`,whatIDid:`行われた作業`,howItWasChecked:`確認の方法`},m={line:`{{files}} ファイル変更 · +{{added}} / −{{removed}} 行`,batchNotSplittable:`ファイル変更は納品全体の集計で、依頼ごとではありません。`},h={"app-verified":{title:`Specrails が計測`,caveat:`実際の変更から得た事実です。`},"ai-reported":{title:`AI の報告`,caveat:`AI 自身の言葉です。Specrails はこれらの検査を実行していません。`},"reviewer-score":{title:`AI レビュアーの自己評価`,caveat:`AI が自分の作業を採点したもの — 参考にはなりますが独立したレビューではありません。`}},g={filesChanged:`{{files}} ファイル変更(+{{added}} / −{{removed}} 行)`,testFilesChanged:`テストファイル {{count}} 件を変更`,noTestFilesChanged:`テストファイルの変更はありません。`,commitsRecorded:`作業は {{branches}} 本のブランチに記録されました`,verificationPassed:`AI は検査に合格したと報告しました({{count}})`,verificationFailed:`AI は検査が失敗したと報告しました({{count}})`,noVerificationReported:`AI は検証を報告しませんでした。`,verifyOutput:`AI の検証出力:`,reviewerScore:`総合スコア {{overall}}/100`,reviewerAspect:`{{aspect}}:{{score}}/100`,reviewerScoreUnavailable:`レビュアースコアは生成されませんでした。`,evidenceUnavailable:`証跡なし`},_={humanReviewRecommended:`AI レビュアーは {{overall}}/100 と評価し、人による確認を推奨しています。`,lowConfidence:`AI レビュアーの評価は {{overall}}/100 にとどまりました。`,reviewerFlag:`レビュアーの指摘:`,noTestsForChangedCode:`コード {{files}} ファイルが変更されましたが、テストの変更はありません。`},v={notFound:`このレビューは見つかりませんでした。`,loadFailed:`レビューを読み込めませんでした。`,alreadyResolved:`すでに誰かが回答しています。`,actionFailed:`その操作は完了しませんでした。`,revisionStale:`これは別の場所で解決済みです — 再読み込みして状態を確認してください。`,revisionFailed:`変更を開始できませんでした。入力した文章は保持されています。`},y={title:`以前のバージョン({{count}})`,label:`バージョン {{version}}`,current:`いま見ているもの`,originalBuild:`最初の成果。`},b={title:`当初の依頼から広がっているようです`,advisory:`あくまで提案です — 修正を続けて依頼できます。`,costShare:`{{revisions}} 件の変更で {{revisionCost}} かかりました — 当初 {{originalCost}} の {{share}}% です。`,outOfScopeChurn:`変更された {{total}} ファイルのうち {{files}} 件は当初の依頼に含まれていませんでした。`,revisionCount:`すでに {{revisions}} 回の修正を依頼しています。依頼を書き直したほうが早いかもしれません。`},x={backToBoard:e,stillWorking:t,alreadyResolved:n,fineControlOnly:r,openPr:i,noSolutionRecorded:a,headline:o,confidence:s,cost:c,accept:l,requestChanges:u,discard:d,watchOut:f,sections:p,churn:m,tier:h,proof:g,watch:_,error:v,versions:y,drift:b};export{l as accept,n as alreadyResolved,e as backToBoard,m as churn,s as confidence,c as cost,x as default,d as discard,b as drift,v as error,r as fineControlOnly,o as headline,a as noSolutionRecorded,i as openPr,g as proof,u as requestChanges,p as sections,t as stillWorking,h as tier,y as versions,_ as watch,f as watchOut};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`Retour au tableau`,t=`Toujours en cours…`,n=`Cela a déjà été résolu.`,r=`Cette livraison nécessite une décision technique. Utilisez les contrôles détaillés du tableau.`,i=`Ouvrir la pull request #{{number}}`,a=`Aucun résumé n'a été enregistré.`,o={success:`Votre changement est prêt à être relu`,successMany:`Les {{count}} changements sont prêts à être relus`,partial:`{{succeeded}} changements sur {{total}} sont prêts`,noChanges:`Rien n'avait besoin d'être changé`,failed:`Cela n'a pas pu être terminé`,failedPartial:`Seule une partie a pu être terminée`},s={pill:`Confiance du relecteur IA {{overall}}/100`,unavailable:`Pas de score du relecteur`,tooltip:`Le score que le relecteur IA s'attribue — ce n'est pas une vérification indépendante.`},c={thisBuild:`Ce travail a coûté {{amount}}`,allVersions:`Toutes les versions cumulées : {{amount}}`},l={"create-pr":`Accepter et ouvrir une pull request`,publish:`Accepter et envoyer en relecture`,"merge-local":`Accepter dans mon projet`,"mark-done":`Accepter — rien à changer`,generic:`Accepter`,irreversibleWarning:`Cela écrit les changements directement dans votre projet, sur votre ordinateur. Il n'y a pas de copie de relecture et c'est irréversible.`,irreversibleConfirm:`Oui, écrire dans mon projet`},u={label:`Demander des changements`,comingSoon:`Bientôt : décrivez le changement en une phrase.`,prompt:`Que voulez-vous changer ?`,placeholder:`ex. mettre le bouton de connexion en bleu`,submit:`Envoyer le changement`,hint:`Reprend là où le travail s'est arrêté — sans repartir de zéro.`},d={label:`Jeter ceci`,stackedNote:`Les rails suivants de ce jalon ont été construits sur cette livraison. L'abandonner met la chaîne du jalon en pause ; les rails suivants conservent leur travail.`},f={title:`À regarder avant d'accepter`},p={whatYouAsked:`Ce que vous avez demandé`,whatIDid:`Ce qui a été fait`,howItWasChecked:`Comment cela a été vérifié`},m={line:`{{files}} fichiers modifiés · +{{added}} / −{{removed}} lignes`,batchNotSplittable:`Les modifications de fichiers concernent toute la livraison, pas chaque demande.`},h={"app-verified":{title:`Mesuré par Specrails`,caveat:`Faits tirés des modifications réelles.`},"ai-reported":{title:`Rapporté par l'IA`,caveat:`Les mots de l'IA. Specrails n'a pas exécuté ces vérifications.`},"reviewer-score":{title:`Auto-évaluation du relecteur IA`,caveat:`L'IA note son propre travail — utile, mais pas une relecture indépendante.`}},g={filesChanged:`{{files}} fichiers modifiés (+{{added}} / −{{removed}} lignes)`,testFilesChanged:`{{count}} fichiers de test modifiés`,noTestFilesChanged:`Aucun fichier de test modifié.`,commitsRecorded:`Le travail a été enregistré sur {{branches}} branche(s)`,verificationPassed:`L'IA a rapporté que ses vérifications ont réussi ({{count}})`,verificationFailed:`L'IA a rapporté que ses vérifications ont ÉCHOUÉ ({{count}})`,noVerificationReported:`L'IA n'a rapporté aucune vérification.`,verifyOutput:`Sortie de vérification de l'IA :`,reviewerScore:`Score global {{overall}}/100`,reviewerAspect:`{{aspect}} : {{score}}/100`,reviewerScoreUnavailable:`Aucun score de relecteur produit.`,evidenceUnavailable:`preuves indisponibles`},_={humanReviewRecommended:`Le relecteur IA a noté {{overall}}/100 et recommande une relecture humaine.`,lowConfidence:`Le relecteur IA n'a noté que {{overall}}/100.`,reviewerFlag:`Le relecteur a signalé :`,noTestsForChangedCode:`{{files}} fichiers de code modifiés sans changement de test.`},v={notFound:`Cette relecture est introuvable.`,loadFailed:`La relecture n'a pas pu être chargée.`,alreadyResolved:`Quelqu'un a déjà répondu.`,actionFailed:`Cette action n'a pas abouti.`,revisionStale:`Cela vient d'être résolu ailleurs — rechargez pour voir l'état.`,revisionFailed:`Le changement n'a pas pu démarrer. Votre texte a été conservé.`},y={title:`Versions précédentes ({{count}})`,label:`Version {{version}}`,current:`vous consultez celle-ci`,originalBuild:`Le travail initial.`},b={title:`Cela dépasse peut-être votre demande initiale`,advisory:`Simple suggestion — vous pouvez continuer à demander des changements.`,costShare:`{{revisions}} changement(s) ont coûté {{revisionCost}} — {{share}} % des {{originalCost}} du travail initial.`,outOfScopeChurn:`{{files}} des {{total}} fichiers modifiés ne faisaient pas partie de la demande initiale.`,revisionCount:`Vous avez demandé {{revisions}} séries de changements. Réécrire la demande sera peut-être plus rapide.`},x={backToBoard:e,stillWorking:t,alreadyResolved:n,fineControlOnly:r,openPr:i,noSolutionRecorded:a,headline:o,confidence:s,cost:c,accept:l,requestChanges:u,discard:d,watchOut:f,sections:p,churn:m,tier:h,proof:g,watch:_,error:v,versions:y,drift:b};export{l as accept,n as alreadyResolved,e as backToBoard,m as churn,s as confidence,c as cost,x as default,d as discard,b as drift,v as error,r as fineControlOnly,o as headline,a as noSolutionRecorded,i as openPr,g as proof,u as requestChanges,p as sections,t as stillWorking,h as tier,y as versions,_ as watch,f as watchOut};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`Torna alla bacheca`,t=`Ancora al lavoro…`,n=`È già stato risolto.`,r=`Questa consegna richiede una decisione tecnica. Usa i controlli dettagliati nella bacheca.`,i=`Apri la pull request #{{number}}`,a=`Nessun riepilogo registrato.`,o={success:`La tua modifica è pronta per la revisione`,successMany:`Tutte le {{count}} modifiche sono pronte per la revisione`,partial:`{{succeeded}} modifiche su {{total}} sono pronte`,noChanges:`Non c'era nulla da cambiare`,failed:`Non è stato possibile completarlo`,failedPartial:`È stato completato solo in parte`},s={pill:`Fiducia del revisore IA {{overall}}/100`,unavailable:`Nessun punteggio del revisore`,tooltip:`Il punteggio che il revisore IA assegna a sé stesso — non è un controllo indipendente.`},c={thisBuild:`Questo lavoro è costato {{amount}}`,allVersions:`Tutte le versioni insieme: {{amount}}`},l={"create-pr":`Accetta e apri una pull request`,publish:`Accetta e invia in revisione`,"merge-local":`Accetta nel mio progetto`,"mark-done":`Accetta — nulla da cambiare`,generic:`Accetta`,irreversibleWarning:`Questo scrive le modifiche direttamente nel tuo progetto, sul tuo computer. Non esiste una copia di revisione separata e non è annullabile.`,irreversibleConfirm:`Sì, scrivi nel mio progetto`},u={label:`Chiedi modifiche`,comingSoon:`Prossimamente: descrivi la modifica in una frase.`,prompt:`Cosa vuoi cambiare?`,placeholder:`es. rendi blu il pulsante di accesso`,submit:`Invia la modifica`,hint:`Riprende da dove il lavoro si è fermato — non ricomincia.`},d={label:`Butta via`,stackedNote:`I rail successivi di questa milestone sono stati costruiti su questa consegna. Scartarla mette in pausa la catena della milestone; i rail successivi conservano il loro lavoro.`},f={title:`Da guardare prima di accettare`},p={whatYouAsked:`Cosa hai chiesto`,whatIDid:`Cosa è stato fatto`,howItWasChecked:`Come è stato verificato`},m={line:`{{files}} file modificati · +{{added}} / −{{removed}} righe`,batchNotSplittable:`Le modifiche ai file riguardano tutta la consegna, non ogni richiesta.`},h={"app-verified":{title:`Misurato da Specrails`,caveat:`Fatti presi dalle modifiche reali.`},"ai-reported":{title:`Riferito dall'IA`,caveat:`Parole dell'IA stessa. Specrails non ha eseguito questi controlli.`},"reviewer-score":{title:`Autovalutazione del revisore IA`,caveat:`L'IA valuta il proprio lavoro — utile, ma non è una revisione indipendente.`}},g={filesChanged:`{{files}} file modificati (+{{added}} / −{{removed}} righe)`,testFilesChanged:`{{count}} file di test modificati`,noTestFilesChanged:`Nessun file di test modificato.`,commitsRecorded:`Il lavoro è stato registrato su {{branches}} ramo/i`,verificationPassed:`L'IA ha riferito che i suoi controlli sono passati ({{count}})`,verificationFailed:`L'IA ha riferito che i suoi controlli sono FALLITI ({{count}})`,noVerificationReported:`L'IA non ha riferito alcuna verifica.`,verifyOutput:`Output di verifica dell'IA:`,reviewerScore:`Punteggio complessivo {{overall}}/100`,reviewerAspect:`{{aspect}}: {{score}}/100`,reviewerScoreUnavailable:`Nessun punteggio del revisore prodotto.`,evidenceUnavailable:`prove non disponibili`},_={humanReviewRecommended:`Il revisore IA ha dato {{overall}}/100 e consiglia che una persona lo guardi.`,lowConfidence:`Il revisore IA ha dato solo {{overall}}/100.`,reviewerFlag:`Il revisore ha segnalato:`,noTestsForChangedCode:`{{files}} file di codice modificati senza modifiche ai test.`},v={notFound:`Questa revisione non è stata trovata.`,loadFailed:`Non è stato possibile caricare la revisione.`,alreadyResolved:`Qualcuno ha già risposto.`,actionFailed:`L'azione non è andata a buon fine.`,revisionStale:`È stato appena risolto altrove — ricarica per vedere lo stato.`,revisionFailed:`Non è stato possibile avviare la modifica. Il tuo testo è stato conservato.`},y={title:`Versioni precedenti ({{count}})`,label:`Versione {{version}}`,current:`stai guardando questa`,originalBuild:`Il lavoro originale.`},b={title:`Questo potrebbe essere andato oltre la richiesta iniziale`,advisory:`Solo un suggerimento — puoi continuare a chiedere modifiche.`,costShare:`{{revisions}} modifica/che sono costate {{revisionCost}} — il {{share}}% dei {{originalCost}} del lavoro originale.`,outOfScopeChurn:`{{files}} su {{total}} file modificati non facevano parte della richiesta iniziale.`,revisionCount:`Hai chiesto {{revisions}} giri di modifiche. Riscrivere la richiesta potrebbe essere più rapido.`},x={backToBoard:e,stillWorking:t,alreadyResolved:n,fineControlOnly:r,openPr:i,noSolutionRecorded:a,headline:o,confidence:s,cost:c,accept:l,requestChanges:u,discard:d,watchOut:f,sections:p,churn:m,tier:h,proof:g,watch:_,error:v,versions:y,drift:b};export{l as accept,n as alreadyResolved,e as backToBoard,m as churn,s as confidence,c as cost,x as default,d as discard,b as drift,v as error,r as fineControlOnly,o as headline,a as noSolutionRecorded,i as openPr,g as proof,u as requestChanges,p as sections,t as stillWorking,h as tier,y as versions,_ as watch,f as watchOut};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`返回面板`,t=`仍在处理…`,n=`此项已处理完毕。`,r=`这次交付需要技术决策。请使用面板上的详细控件。`,i=`打开 pull request #{{number}}`,a=`未记录摘要。`,o={success:`你的更改已可供审阅`,successMany:`全部 {{count}} 项更改已可供审阅`,partial:`{{total}} 项更改中有 {{succeeded}} 项已就绪`,noChanges:`无需改动`,failed:`未能完成`,failedPartial:`仅完成了一部分`},s={pill:`AI 审阅者信心 {{overall}}/100`,unavailable:`没有审阅者评分`,tooltip:`AI 审阅者给自己的评分 — 不是独立检查。`},c={thisBuild:`本次花费 {{amount}}`,allVersions:`所有版本合计:{{amount}}`},l={"create-pr":`接受并创建 pull request`,publish:`接受并送交审阅`,"merge-local":`接受到我的项目`,"mark-done":`接受 — 无需改动`,generic:`接受`,irreversibleWarning:`这会把更改直接写入你电脑上的项目。没有单独的审阅副本,且无法撤销。`,irreversibleConfirm:`是的,写入我的项目`},u={label:`要求修改`,comingSoon:`即将推出:用一句话描述要改什么。`,prompt:`你想改什么?`,placeholder:`例如:把登录按钮改成蓝色`,submit:`发送修改`,hint:`从现有成果继续 — 不会重新开始。`},d={label:`丢弃`,stackedNote:`此里程碑的后续轨道基于此交付构建。丢弃它会暂停里程碑链;后续轨道保留其工作。`},f={title:`接受前值得一看`},p={whatYouAsked:`你要求的`,whatIDid:`已完成的`,howItWasChecked:`如何检查的`},m={line:`{{files}} 个文件改动 · +{{added}} / −{{removed}} 行`,batchNotSplittable:`文件改动按整次交付统计,不按单个请求。`},h={"app-verified":{title:`由 Specrails 测量`,caveat:`取自实际改动的事实。`},"ai-reported":{title:`由 AI 报告`,caveat:`AI 自己的说法。Specrails 并未运行这些检查。`},"reviewer-score":{title:`AI 审阅者自评`,caveat:`AI 给自己的工作打分 — 有用,但不是独立审阅。`}},g={filesChanged:`{{files}} 个文件改动(+{{added}} / −{{removed}} 行)`,testFilesChanged:`改动了 {{count}} 个测试文件`,noTestFilesChanged:`没有改动测试文件。`,commitsRecorded:`工作已记录在 {{branches}} 个分支上`,verificationPassed:`AI 报告其检查通过({{count}})`,verificationFailed:`AI 报告其检查失败({{count}})`,noVerificationReported:`AI 未报告任何验证。`,verifyOutput:`AI 的验证输出:`,reviewerScore:`总分 {{overall}}/100`,reviewerAspect:`{{aspect}}:{{score}}/100`,reviewerScoreUnavailable:`未生成审阅者评分。`,evidenceUnavailable:`无证据`},_={humanReviewRecommended:`AI 审阅者给出 {{overall}}/100,建议由人来查看。`,lowConfidence:`AI 审阅者仅给出 {{overall}}/100。`,reviewerFlag:`审阅者标记:`,noTestsForChangedCode:`{{files}} 个代码文件有改动但测试无改动。`},v={notFound:`找不到此审阅。`,loadFailed:`无法加载审阅。`,alreadyResolved:`已有人回应过。`,actionFailed:`该操作未成功。`,revisionStale:`此项刚在别处被处理 — 请重新加载查看状态。`,revisionFailed:`无法开始修改。你的文字已保留。`},y={title:`早前的版本({{count}})`,label:`版本 {{version}}`,current:`你正在查看这个`,originalBuild:`最初的成果。`},b={title:`这可能已超出你最初的要求`,advisory:`只是建议 — 你仍可以继续要求修改。`,costShare:`{{revisions}} 次修改已花费 {{revisionCost}} — 是最初 {{originalCost}} 的 {{share}}%。`,outOfScopeChurn:`{{total}} 个改动文件中有 {{files}} 个不属于最初的要求。`,revisionCount:`你已经要求了 {{revisions}} 轮修改。重写需求可能更快。`},x={backToBoard:e,stillWorking:t,alreadyResolved:n,fineControlOnly:r,openPr:i,noSolutionRecorded:a,headline:o,confidence:s,cost:c,accept:l,requestChanges:u,discard:d,watchOut:f,sections:p,churn:m,tier:h,proof:g,watch:_,error:v,versions:y,drift:b};export{l as accept,n as alreadyResolved,e as backToBoard,m as churn,s as confidence,c as cost,x as default,d as discard,b as drift,v as error,r as fineControlOnly,o as headline,a as noSolutionRecorded,i as openPr,g as proof,u as requestChanges,p as sections,t as stillWorking,h as tier,y as versions,_ as watch,f as watchOut};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({accept:()=>d,alreadyResolved:()=>i,backToBoard:()=>n,churn:()=>g,confidence:()=>l,cost:()=>u,default:()=>C,discard:()=>p,drift:()=>S,error:()=>b,fineControlOnly:()=>a,headline:()=>c,noSolutionRecorded:()=>s,openPr:()=>o,proof:()=>v,requestChanges:()=>f,sections:()=>h,stillWorking:()=>r,tier:()=>_,versions:()=>x,watch:()=>y,watchOut:()=>m}),n=`Back to the board`,r=`Still working on this…`,i=`This has already been resolved.`,a=`This delivery needs a technical decision. Use the detailed controls on the board.`,o=`Open pull request #{{number}}`,s=`No summary was recorded.`,c={success:`Your change is ready for review`,successMany:`All {{count}} changes are ready for review`,partial:`{{succeeded}} of {{total}} changes are ready`,noChanges:`Nothing needed changing`,failed:`This could not be completed`,failedPartial:`Only part of this could be completed`},l={pill:`AI reviewer confidence {{overall}}/100`,unavailable:`No reviewer score`,tooltip:`The AI reviewer's own score for its work — not an independent check.`},u={thisBuild:`This build cost {{amount}}`,allVersions:`All versions together: {{amount}}`},d={"create-pr":`Accept and open a pull request`,publish:`Accept and send for review`,"merge-local":`Accept into my project`,"mark-done":`Accept — nothing to change`,generic:`Accept`,irreversibleWarning:`This writes the changes directly into your project on your computer. There is no separate review copy and this cannot be undone.`,irreversibleConfirm:`Yes, write it into my project`},f={label:`Ask for changes`,comingSoon:`Coming next: describe the change in one sentence.`,prompt:`What would you like changed?`,placeholder:`e.g. make the login button blue`,submit:`Send the change`,hint:`This picks up where the work left off — it does not start over.`},p={label:`Throw this away`,stackedNote:`Later rails of this milestone were built on this delivery. Discarding it pauses the milestone chain; the later rails keep their work.`},m={title:`Worth a look before you accept`},h={whatYouAsked:`What you asked for`,whatIDid:`What was done`,howItWasChecked:`How it was checked`},g={line:`{{files}} files changed · +{{added}} / −{{removed}} lines`,batchNotSplittable:`File changes are reported for the whole delivery, not per request.`},_={"app-verified":{title:`Measured by Specrails`,caveat:`Facts taken from the actual changes.`},"ai-reported":{title:`Reported by the AI`,caveat:`The AI's own words. Specrails did not run these checks itself.`},"reviewer-score":{title:`AI reviewer's self-assessment`,caveat:`The AI grading its own work — useful, but not an independent review.`}},v={filesChanged:`{{files}} files changed (+{{added}} / −{{removed}} lines)`,testFilesChanged:`{{count}} test files were changed`,noTestFilesChanged:`No test files were changed.`,commitsRecorded:`Work was recorded on {{branches}} branch(es)`,verificationPassed:`The AI reported its checks passed ({{count}})`,verificationFailed:`The AI reported its checks FAILED ({{count}})`,noVerificationReported:`The AI did not report any verification.`,verifyOutput:`The AI's verification output:`,reviewerScore:`Overall score {{overall}}/100`,reviewerAspect:`{{aspect}}: {{score}}/100`,reviewerScoreUnavailable:`No reviewer score was produced.`,evidenceUnavailable:`evidence unavailable`},y={humanReviewRecommended:`The AI reviewer scored this {{overall}}/100 and recommends a person look at it.`,lowConfidence:`The AI reviewer scored this only {{overall}}/100.`,reviewerFlag:`The reviewer flagged:`,noTestsForChangedCode:`{{files}} code files changed with no test changes.`},b={notFound:`This review could not be found.`,loadFailed:`The review could not be loaded.`,alreadyResolved:`Someone already answered this.`,actionFailed:`That action did not go through.`,revisionStale:`This was just resolved elsewhere — reload to see where it stands.`,revisionFailed:`The change could not be started. Your text was kept.`},x={title:`Earlier versions ({{count}})`,label:`Version {{version}}`,current:`you're looking at this one`,originalBuild:`The original build.`},S={title:`This may have outgrown its original request`,advisory:`Only a suggestion — you can keep asking for changes.`,costShare:`{{revisions}} change(s) have cost {{revisionCost}} — {{share}}% of the {{originalCost}} original build.`,outOfScopeChurn:`{{files}} of {{total}} changed files were never part of the original request.`,revisionCount:`You've asked for {{revisions}} rounds of changes. Rewriting the request may be quicker.`},C={backToBoard:n,stillWorking:r,alreadyResolved:i,fineControlOnly:a,openPr:o,noSolutionRecorded:s,headline:c,confidence:l,cost:u,accept:d,requestChanges:f,discard:p,watchOut:m,sections:h,churn:g,tier:_,proof:v,watch:y,error:b,versions:x,drift:S};export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`Voltar ao painel`,t=`Ainda a trabalhar nisto…`,n=`Isto já foi resolvido.`,r=`Esta entrega precisa de uma decisão técnica. Use os controlos detalhados do painel.`,i=`Abrir pull request #{{number}}`,a=`Nenhum resumo foi registado.`,o={success:`A sua alteração está pronta para revisão`,successMany:`As {{count}} alterações estão prontas para revisão`,partial:`{{succeeded}} de {{total}} alterações estão prontas`,noChanges:`Não era preciso alterar nada`,failed:`Isto não pôde ser concluído`,failedPartial:`Só parte pôde ser concluída`},s={pill:`Confiança do revisor IA {{overall}}/100`,unavailable:`Sem pontuação do revisor`,tooltip:`A pontuação que o revisor IA dá a si mesmo — não é uma verificação independente.`},c={thisBuild:`Este trabalho custou {{amount}}`,allVersions:`Todas as versões juntas: {{amount}}`},l={"create-pr":`Aceitar e abrir um pull request`,publish:`Aceitar e enviar para revisão`,"merge-local":`Aceitar no meu projeto`,"mark-done":`Aceitar — nada a alterar`,generic:`Aceitar`,irreversibleWarning:`Isto escreve as alterações diretamente no seu projeto, no seu computador. Não há cópia de revisão separada e não pode ser desfeito.`,irreversibleConfirm:`Sim, escrever no meu projeto`},u={label:`Pedir alterações`,comingSoon:`Em breve: descreva a alteração numa frase.`,prompt:`O que quer alterar?`,placeholder:`p. ex. pôr o botão de login azul`,submit:`Enviar a alteração`,hint:`Continua de onde o trabalho ficou — não começa do zero.`},d={label:`Descartar isto`,stackedNote:`Os rails seguintes deste marco foram construídos sobre esta entrega. Descartá-la pausa a cadeia do marco; os rails seguintes mantêm o seu trabalho.`},f={title:`Vale a pena ver antes de aceitar`},p={whatYouAsked:`O que pediu`,whatIDid:`O que foi feito`,howItWasChecked:`Como foi verificado`},m={line:`{{files}} ficheiros alterados · +{{added}} / −{{removed}} linhas`,batchNotSplittable:`As alterações de ficheiros referem-se a toda a entrega, não a cada pedido.`},h={"app-verified":{title:`Medido pelo Specrails`,caveat:`Factos retirados das alterações reais.`},"ai-reported":{title:`Reportado pela IA`,caveat:`Palavras da própria IA. O Specrails não executou estas verificações.`},"reviewer-score":{title:`Autoavaliação do revisor IA`,caveat:`A IA a avaliar o seu próprio trabalho — útil, mas não é uma revisão independente.`}},g={filesChanged:`{{files}} ficheiros alterados (+{{added}} / −{{removed}} linhas)`,testFilesChanged:`{{count}} ficheiros de teste alterados`,noTestFilesChanged:`Nenhum ficheiro de teste alterado.`,commitsRecorded:`O trabalho foi registado em {{branches}} ramo(s)`,verificationPassed:`A IA reportou que as suas verificações passaram ({{count}})`,verificationFailed:`A IA reportou que as suas verificações FALHARAM ({{count}})`,noVerificationReported:`A IA não reportou qualquer verificação.`,verifyOutput:`Saída de verificação da IA:`,reviewerScore:`Pontuação global {{overall}}/100`,reviewerAspect:`{{aspect}}: {{score}}/100`,reviewerScoreUnavailable:`Não foi gerada pontuação do revisor.`,evidenceUnavailable:`sem evidência`},_={humanReviewRecommended:`O revisor IA pontuou {{overall}}/100 e recomenda que uma pessoa veja.`,lowConfidence:`O revisor IA pontuou apenas {{overall}}/100.`,reviewerFlag:`O revisor sinalizou:`,noTestsForChangedCode:`{{files}} ficheiros de código alterados sem alterações em testes.`},v={notFound:`Esta revisão não foi encontrada.`,loadFailed:`Não foi possível carregar a revisão.`,alreadyResolved:`Alguém já respondeu a isto.`,actionFailed:`Essa ação não foi concluída.`,revisionStale:`Isto acabou de ser resolvido noutro lugar — recarregue para ver o estado.`,revisionFailed:`Não foi possível iniciar a alteração. O seu texto foi guardado.`},y={title:`Versões anteriores ({{count}})`,label:`Versão {{version}}`,current:`está a ver esta`,originalBuild:`O trabalho original.`},b={title:`Isto pode ter ultrapassado o que pediu`,advisory:`É apenas uma sugestão — pode continuar a pedir alterações.`,costShare:`{{revisions}} alteração(ões) custaram {{revisionCost}} — {{share}}% dos {{originalCost}} do trabalho original.`,outOfScopeChurn:`{{files}} de {{total}} ficheiros alterados não faziam parte do pedido original.`,revisionCount:`Já pediu {{revisions}} rondas de alterações. Reescrever o pedido pode ser mais rápido.`},x={backToBoard:e,stillWorking:t,alreadyResolved:n,fineControlOnly:r,openPr:i,noSolutionRecorded:a,headline:o,confidence:s,cost:c,accept:l,requestChanges:u,discard:d,watchOut:f,sections:p,churn:m,tier:h,proof:g,watch:_,error:v,versions:y,drift:b};export{l as accept,n as alreadyResolved,e as backToBoard,m as churn,s as confidence,c as cost,x as default,d as discard,b as drift,v as error,r as fineControlOnly,o as headline,a as noSolutionRecorded,i as openPr,g as proof,u as requestChanges,p as sections,t as stillWorking,h as tier,y as versions,_ as watch,f as watchOut};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`Volver al tablero`,t=`Todavía trabajando en esto…`,n=`Esto ya se ha resuelto.`,r=`Esta entrega necesita una decisión técnica. Usa los controles detallados del tablero.`,i=`Abrir pull request #{{number}}`,a=`No se registró ningún resumen.`,o={success:`Tu cambio está listo para revisar`,successMany:`Los {{count}} cambios están listos para revisar`,partial:`{{succeeded}} de {{total}} cambios están listos`,noChanges:`No hacía falta cambiar nada`,failed:`Esto no se pudo completar`,failedPartial:`Solo se pudo completar una parte`},s={pill:`Confianza del revisor IA {{overall}}/100`,unavailable:`Sin puntuación del revisor`,tooltip:`La puntuación que el revisor IA se da a sí mismo — no es una comprobación independiente.`},c={thisBuild:`Este trabajo costó {{amount}}`,allVersions:`Todas las versiones juntas: {{amount}}`},l={"create-pr":`Aceptar y abrir un pull request`,publish:`Aceptar y enviar a revisión`,"merge-local":`Aceptar en mi proyecto`,"mark-done":`Aceptar — nada que cambiar`,generic:`Aceptar`,irreversibleWarning:`Esto escribe los cambios directamente en tu proyecto, en tu ordenador. No hay copia de revisión aparte y no se puede deshacer.`,irreversibleConfirm:`Sí, escríbelo en mi proyecto`},u={label:`Pedir cambios`,comingSoon:`Muy pronto: describe el cambio en una frase.`,prompt:`¿Qué quieres cambiar?`,placeholder:`p. ej. pon el botón de login en azul`,submit:`Enviar el cambio`,hint:`Continúa desde donde quedó el trabajo — no empieza de cero.`},d={label:`Tirar esto`,stackedNote:`Los rails posteriores de este hito se construyeron sobre esta entrega. Descartarla pausa la cadena del hito; los rails posteriores conservan su trabajo.`},f={title:`Merece un vistazo antes de aceptar`},p={whatYouAsked:`Lo que pediste`,whatIDid:`Lo que se hizo`,howItWasChecked:`Cómo se comprobó`},m={line:`{{files}} archivos cambiados · +{{added}} / −{{removed}} líneas`,batchNotSplittable:`Los cambios de archivos se informan para toda la entrega, no por petición.`},h={"app-verified":{title:`Medido por Specrails`,caveat:`Datos tomados de los cambios reales.`},"ai-reported":{title:`Informado por la IA`,caveat:`Palabras de la propia IA. Specrails no ejecutó estas comprobaciones.`},"reviewer-score":{title:`Autoevaluación del revisor IA`,caveat:`La IA calificando su propio trabajo — útil, pero no es una revisión independiente.`}},g={filesChanged:`{{files}} archivos cambiados (+{{added}} / −{{removed}} líneas)`,testFilesChanged:`Se cambiaron {{count}} archivos de test`,noTestFilesChanged:`No se cambió ningún archivo de test.`,commitsRecorded:`El trabajo se registró en {{branches}} rama(s)`,verificationPassed:`La IA informó de que sus comprobaciones pasaron ({{count}})`,verificationFailed:`La IA informó de que sus comprobaciones FALLARON ({{count}})`,noVerificationReported:`La IA no informó de ninguna verificación.`,verifyOutput:`Salida de verificación de la IA:`,reviewerScore:`Puntuación global {{overall}}/100`,reviewerAspect:`{{aspect}}: {{score}}/100`,reviewerScoreUnavailable:`No se generó puntuación del revisor.`,evidenceUnavailable:`sin evidencia`},_={humanReviewRecommended:`El revisor IA puntuó esto {{overall}}/100 y recomienda que lo mire una persona.`,lowConfidence:`El revisor IA puntuó esto solo {{overall}}/100.`,reviewerFlag:`El revisor señaló:`,noTestsForChangedCode:`{{files}} archivos de código cambiados sin cambios en tests.`},v={notFound:`No se encontró esta revisión.`,loadFailed:`No se pudo cargar la revisión.`,alreadyResolved:`Alguien ya respondió a esto.`,actionFailed:`Esa acción no se completó.`,revisionStale:`Esto se acaba de resolver en otro sitio — recarga para ver cómo está.`,revisionFailed:`No se pudo iniciar el cambio. Tu texto se ha conservado.`},y={title:`Versiones anteriores ({{count}})`,label:`Versión {{version}}`,current:`estás viendo esta`,originalBuild:`El trabajo original.`},b={title:`Esto puede haberse salido de lo que pediste`,advisory:`Solo es una sugerencia — puedes seguir pidiendo cambios.`,costShare:`{{revisions}} cambio(s) han costado {{revisionCost}} — el {{share}}% de los {{originalCost}} del trabajo original.`,outOfScopeChurn:`{{files}} de {{total}} archivos cambiados no formaban parte de la petición original.`,revisionCount:`Ya has pedido {{revisions}} rondas de cambios. Reescribir la petición puede ser más rápido.`},x={backToBoard:e,stillWorking:t,alreadyResolved:n,fineControlOnly:r,openPr:i,noSolutionRecorded:a,headline:o,confidence:s,cost:c,accept:l,requestChanges:u,discard:d,watchOut:f,sections:p,churn:m,tier:h,proof:g,watch:_,error:v,versions:y,drift:b};export{l as accept,n as alreadyResolved,e as backToBoard,m as churn,s as confidence,c as cost,x as default,d as discard,b as drift,v as error,r as fineControlOnly,o as headline,a as noSolutionRecorded,i as openPr,g as proof,u as requestChanges,p as sections,t as stillWorking,h as tier,y as versions,_ as watch,f as watchOut};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`Zurück zum Board`,t=`Läuft noch…`,n=`Das wurde bereits entschieden.`,r=`Diese Lieferung braucht eine technische Entscheidung. Nutze die Detailsteuerung im Board.`,i=`Pull Request #{{number}} öffnen`,a=`Keine Zusammenfassung erfasst.`,o={success:`Deine Änderung ist bereit zur Prüfung`,successMany:`Alle {{count}} Änderungen sind bereit zur Prüfung`,partial:`{{succeeded}} von {{total}} Änderungen sind fertig`,noChanges:`Es musste nichts geändert werden`,failed:`Das konnte nicht abgeschlossen werden`,failedPartial:`Nur ein Teil konnte abgeschlossen werden`},s={pill:`Sicherheit des KI-Reviewers {{overall}}/100`,unavailable:`Keine Reviewer-Bewertung`,tooltip:`Die Bewertung, die sich der KI-Reviewer selbst gibt — keine unabhängige Prüfung.`},c={thisBuild:`Diese Arbeit kostete {{amount}}`,allVersions:`Alle Versionen zusammen: {{amount}}`},l={"create-pr":`Annehmen und Pull Request öffnen`,publish:`Annehmen und zur Prüfung senden`,"merge-local":`In mein Projekt übernehmen`,"mark-done":`Annehmen — nichts zu ändern`,generic:`Annehmen`,irreversibleWarning:`Damit werden die Änderungen direkt in dein Projekt auf deinem Rechner geschrieben. Es gibt keine separate Prüfkopie und es ist nicht rückgängig zu machen.`,irreversibleConfirm:`Ja, in mein Projekt schreiben`},u={label:`Änderungen erbitten`,comingSoon:`Kommt als Nächstes: Änderung in einem Satz beschreiben.`,prompt:`Was soll geändert werden?`,placeholder:`z. B. den Login-Button blau machen`,submit:`Änderung senden`,hint:`Setzt dort an, wo die Arbeit aufgehört hat — kein Neuanfang.`},d={label:`Verwerfen`,stackedNote:`Spätere Rails dieses Meilensteins bauen auf dieser Lieferung auf. Sie zu verwerfen pausiert die Meilenstein-Kette; die späteren Rails behalten ihre Arbeit.`},f={title:`Vor dem Annehmen ansehen`},p={whatYouAsked:`Was du wolltest`,whatIDid:`Was getan wurde`,howItWasChecked:`Wie es geprüft wurde`},m={line:`{{files}} Dateien geändert · +{{added}} / −{{removed}} Zeilen`,batchNotSplittable:`Dateiänderungen gelten für die gesamte Lieferung, nicht pro Anfrage.`},h={"app-verified":{title:`Von Specrails gemessen`,caveat:`Fakten aus den tatsächlichen Änderungen.`},"ai-reported":{title:`Von der KI berichtet`,caveat:`Worte der KI selbst. Specrails hat diese Prüfungen nicht ausgeführt.`},"reviewer-score":{title:`Selbsteinschätzung des KI-Reviewers`,caveat:`Die KI bewertet ihre eigene Arbeit — nützlich, aber keine unabhängige Prüfung.`}},g={filesChanged:`{{files}} Dateien geändert (+{{added}} / −{{removed}} Zeilen)`,testFilesChanged:`{{count}} Testdateien geändert`,noTestFilesChanged:`Keine Testdateien geändert.`,commitsRecorded:`Arbeit wurde auf {{branches}} Branch(es) festgehalten`,verificationPassed:`Die KI berichtete, ihre Prüfungen seien bestanden ({{count}})`,verificationFailed:`Die KI berichtete, ihre Prüfungen seien FEHLGESCHLAGEN ({{count}})`,noVerificationReported:`Die KI berichtete keine Verifizierung.`,verifyOutput:`Verifizierungsausgabe der KI:`,reviewerScore:`Gesamtbewertung {{overall}}/100`,reviewerAspect:`{{aspect}}: {{score}}/100`,reviewerScoreUnavailable:`Keine Reviewer-Bewertung erzeugt.`,evidenceUnavailable:`Belege nicht verfügbar`},_={humanReviewRecommended:`Der KI-Reviewer gab {{overall}}/100 und empfiehlt eine menschliche Prüfung.`,lowConfidence:`Der KI-Reviewer gab nur {{overall}}/100.`,reviewerFlag:`Der Reviewer merkte an:`,noTestsForChangedCode:`{{files}} Code-Dateien geändert, ohne Teständerungen.`},v={notFound:`Diese Prüfung wurde nicht gefunden.`,loadFailed:`Die Prüfung konnte nicht geladen werden.`,alreadyResolved:`Jemand hat das schon beantwortet.`,actionFailed:`Diese Aktion ist nicht durchgegangen.`,revisionStale:`Das wurde gerade anderswo entschieden — neu laden, um den Stand zu sehen.`,revisionFailed:`Die Änderung konnte nicht gestartet werden. Dein Text wurde behalten.`},y={title:`Frühere Versionen ({{count}})`,label:`Version {{version}}`,current:`diese siehst du gerade`,originalBuild:`Die ursprüngliche Arbeit.`},b={title:`Das geht möglicherweise über die ursprüngliche Anfrage hinaus`,advisory:`Nur ein Hinweis — du kannst weiter Änderungen erbitten.`,costShare:`{{revisions}} Änderung(en) kosteten {{revisionCost}} — {{share}}% der {{originalCost}} der ursprünglichen Arbeit.`,outOfScopeChurn:`{{files}} von {{total}} geänderten Dateien gehörten nie zur ursprünglichen Anfrage.`,revisionCount:`Du hast {{revisions}} Änderungsrunden erbeten. Die Anfrage neu zu formulieren geht vielleicht schneller.`},x={backToBoard:e,stillWorking:t,alreadyResolved:n,fineControlOnly:r,openPr:i,noSolutionRecorded:a,headline:o,confidence:s,cost:c,accept:l,requestChanges:u,discard:d,watchOut:f,sections:p,churn:m,tier:h,proof:g,watch:_,error:v,versions:y,drift:b};export{l as accept,n as alreadyResolved,e as backToBoard,m as churn,s as confidence,c as cost,x as default,d as discard,b as drift,v as error,r as fineControlOnly,o as headline,a as noSolutionRecorded,i as openPr,g as proof,u as requestChanges,p as sections,t as stillWorking,h as tier,y as versions,_ as watch,f as watchOut};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function e(e){return e===`claude`}function t(e){return e===`claude`||e===`codex`||e===`gemini`}var n={claude:[`low`,`medium`,`high`,`xhigh`],codex:[`minimal`,`low`,`medium`,`high`,`xhigh`,`max`,`ultra`],gemini:[],kimi:[`low`,`high`,`max`]},r=[`low`,`medium`,`high`,`xhigh`],i={"gpt-6-astra":[...r,`max`,`ultra`],"gpt-5.6-sol":[...r,`max`,`ultra`],"gpt-5.6-terra":[...r,`max`,`ultra`],"gpt-5.6-luna":[...r,`max`],"gpt-5.5":r,"gpt-5.4-mini":r};function a(e,t){return e===`kimi`&&t!==`k3`&&t!==`kimi-code/k3`?[]:e===`codex`&&t&&i[t]?i[t]:e?n[e]??[]:[]}function o(e,t){let n=a(e,t);return n.includes(`medium`)?`medium`:n.includes(`high`)?`high`:n[0]}function s(e,t){return a(e,t).length>0}var c={claude:[`none`,`read-only`],codex:[`read-only`],gemini:[`read-only`],kimi:[]};function l(e,t){return e?(c[e]??[]).includes(t):!1}function u(e){return l(e,`none`)||l(e,`read-only`)}function d(e){return e===`claude`||e===`kimi`}function f(e){return e===`claude`||e===`kimi`}function p(e){return e===`kimi`}function m(e){return e===`claude`}function h(e){return m(e)||e===`codex`}function g(e){return e===`claude`}function _(e){return e===`codex`?`Codex`:e===`claude`?`Claude`:e===`gemini`?`Gemini`:e===`kimi`?`Kimi`:e??`Claude`}export{h as a,f as c,l as d,g as f,t as i,u as l,e as n,p as o,a as p,_ as r,d as s,o as t,s as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Lingua`,description:`Lingua della UI per tutto Desktop. Si applica all'istante — nessun riavvio necessario.`,selectLabel:`Lingua dell'interfaccia`,updateFailed:`Impossibile salvare la preferenza di lingua`},t={title:`Impostazioni progetto`},n={saveFailed:`Salvataggio non riuscito: {{message}}`},r={title:`Telemetria della pipeline`,description:`Cattura l'uso dei token, le durate delle fasi e l'attività dei subagent per l'export diagnostico. Attivata per impostazione predefinita.`,toggleLabel:`Abilita la telemetria della pipeline`,toggleDescription:`Quando attiva, i dati OTEL dei job della pipeline vengono catturati localmente. Usa il pulsante <mono>Esporta diagnostica</mono> su qualsiasi card di job per scaricarli.`,enabled:`Telemetria della pipeline abilitata`,disabled:`Telemetria della pipeline disabilitata`,saveFailed:`Salvataggio dell'impostazione di telemetria non riuscito`},i={title:`Pre-prompt dei rail`,description:`Istruzioni extra specifiche del progetto aggiunte ai job rail di implement 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 al provider selezionato in Freestyle. Freestyle salta la pipeline OpenSpec — consegna al provider questo pre-prompt più il testo della spec e lo lascia implementare in autonomia. Lascia vuoto per usare il default integrato.`,label:`Pre-prompt Freestyle`,placeholder:`Lascia vuoto per usare l'istruzione Freestyle predefinita.`,helper:`Il testo della spec viene aggiunto automaticamente dopo questo pre-prompt. Vuoto = default.`,saveButton:`Salva pre-prompt Freestyle`,resetToDefault:`Pre-prompt Freestyle ripristinato al default`,saved:`Pre-prompt Freestyle salvato`,saveFailed:`Salvataggio del pre-prompt Freestyle non riuscito`},o={title:`Budget`,description:`Imposta un tetto di spesa giornaliero per questo progetto. La coda si mette in pausa automaticamente al raggiungimento del limite.`,dailyLabel:`Budget giornaliero (USD)`,dailyHelper:`Lascia vuoto per disabilitare. La spesa è calcolata sulle ultime 24 ore.`,dailyPlaceholder:`es. 5.00`,perJobLabel:`Avviso di costo per job (USD)`,perJobHelper:`Avvisa quando un singolo job di questo progetto supera questo importo.`,perJobPlaceholder:`es. 0.50`,invalidNumber:`Inserisci un numero positivo o lascia vuoto per disabilitare`,dailyRemoved:`Budget giornaliero rimosso`,dailySet:"Budget giornaliero impostato a ${{amount}}",perJobAlertDisabled:`Avviso di costo per job disabilitato`,alertSet:"Avviso impostato per i job oltre ${{amount}}",saveBudgetFailed:`Salvataggio del budget non riuscito`,saveThresholdFailed:`Salvataggio della soglia non riuscito`},s={nav:{appearance:`Aspetto`,specrailsAgents:`Specrails Agents`,code:`Codice`,terminal:`Terminale`,updates:`Aggiornamenti`,mobile:`Mobile`,mcp:`MCP`,projects:`Progetti`,advanced:`Avanzate`,webhooks:`Webhooks`,about:`Info`,effects:`Effetti`},title:`Impostazioni Desktop`,description:`Gestisci i progetti registrati e visualizza le informazioni di Desktop.`,registeredProjects:`Progetti registrati`,noProjects:`Nessun progetto ancora registrato`,techUrlDescription:`URL base per l'API specrails-tech (default: http://localhost:3000)`,techUrlSaved:`URL di specrails-tech salvato`,techUrlSaveFailed:`Salvataggio dell'URL non riuscito`,budgetAlertsHeading:`Budget e avvisi`,dailyBudgetLabel:`Budget giornaliero di Desktop (USD)`,dailyBudgetHelper:`Limite di spesa giornaliero globale su tutti i progetti. Le code si mettono in pausa automaticamente al superamento.`,dailyBudgetPlaceholder:`es. 10.00`,perJobHelper:`Avvisa quando un singolo job supera questo importo. Lascia vuoto per disabilitare.`,costAlertsDisabled:`Avvisi di costo disabilitati`,dailyBudgetRemoved:`Budget giornaliero di Desktop rimosso`,dailyBudgetSet:"Budget giornaliero di Desktop impostato a ${{amount}}",dailyBudgetSaveFailed:`Salvataggio del budget giornaliero di Desktop non riuscito`,projectRemoved:`Progetto rimosso`,projectRemoveFailed:`Rimozione del progetto non riuscita`,onboardingHeading:`Onboarding`,platformTour:`Tour della piattaforma`,platformTourDescription:`Rivedi il wizard di benvenuto per ripassare le funzionalità principali.`,replayTour:`Rivedi il tour`,terminalPanelHeading:`Pannello terminale`,infoHeading:`Informazioni Desktop`,infoPort:`Porta`,infoProjects:`Progetti`,infoDb:`DB di Desktop`},c={heading:`Notifiche di sistema`,description:`Mostra notifiche desktop native quando i job vengono completati o falliscono. Le notifiche appaiono solo quando la scheda non è in primo piano.`,enableLabel:`Abilita le notifiche di sistema`,notifyOn:`Notifica per:`,filterAll:`Tutti (completati e falliti)`,filterCompleted:`Solo completati`,filterFailed:`Solo falliti`,enabledToast:`Notifiche di sistema abilitate`,disabledToast:`Notifiche di sistema disabilitate`},l={heading:`Webhook in uscita`,description:`Notifica strumenti esterni (Slack, Zapier, CI/CD) sugli eventi di Desktop. Le richieste sono firmate via <code>X-Specrails-Signature</code> quando è impostato un secret.`,eventJobCompleted:`Job completato`,eventJobFailed:`Job fallito`,eventDailyBudgetExceeded:`Budget giornaliero superato`,statusOn:`on`,statusOff:`off`,disable:`Disabilita`,enable:`Abilita`,sendTestPing:`Invia ping di test`,addHeading:`Aggiungi webhook`,secretPlaceholder:`Secret di firma (facoltativo)`,addButton:`Aggiungi webhook`,urlRequired:`L'URL è obbligatorio`,selectEvent:`Seleziona almeno un evento`,added:`Webhook aggiunto`,addFailed:`Aggiunta del webhook non riuscita`,updateFailed:`Aggiornamento del webhook non riuscito`,removed:`Webhook rimosso`,removeFailed:`Rimozione del webhook non riuscita`,testPingSent:`Ping di test inviato`,testPingFailed:`Invio del ping di test non riuscito`},u={title:`Pannello terminale`,desktopDescription:`Default a livello di Desktop applicati a ogni progetto, salvo override per progetto.`,projectDescription:`Override per progetto del pannello terminale. Lascia un campo invariato per ereditare il default di Desktop.`,fontFamily:`Famiglia di font`,fontSize:`Dimensione font ({{min}}–{{max}})`,renderMode:`Modalità di rendering`,copyOnSelect:`Copia alla selezione`,shellIntegration:`Integrazione shell (marcatori OSC 133)`,notifyLongRunning:`Notifica per comandi a lunga esecuzione`,longCommandThreshold:`Soglia comandi lunghi (ms)`,imageRendering:`Rendering immagini inline (Sixel + iTerm2)`,browserShortcutUrl:`URL scorciatoia browser`,quickScript:`Script rapido (incollato nel terminale attivo — premi Invio manualmente)`,reset:`Reimposta`,unsavedChanges:`Modifiche non salvate`,clearOverride:`Rimuovi override`,clear:`Rimuovi`,inheritingDefault:`Eredita il default di Desktop`,nothingToSave:`Niente da salvare`,saved:`Impostazioni del terminale salvate`},d={heading:`Sezione Code`,summaryLanguage:`Lingua dei riassunti`,monthlyBudget:`Budget mensile (USD)`,budgetHelper:"Tetto alla spesa `surface=file-summary` per mese di calendario. Le rigenerazioni avviate dall'utente possono superarlo."},f={taglines:{dracula:`L'originale — scuro con sfumature viola e vividi accenti neon`,"aurora-light":`Chiaro premium — indaco ispirato a Linear su bianco caldo`,"obsidian-dark":`Scuro premium — quasi nero con sfumature blu e accenti elettrici`,specrails:`Tema del brand — blu navy-indaco profondo con accenti ciano saturi`,"code-rain":`Terminale al fosforo — menta tenue su quasi nero verdastro`,galaxy:`Blu spazio profondo con una scia luminosa a lama`},heading:`Aspetto`,themeGroupLabel:`Tema`,currentlyActive:`Attualmente attivo`,updateFailed:`Aggiornamento del tema non riuscito`},p={heading:`Companion mobile`,description:`Controlla Specrails dall'app SpecRails Companion sul tuo telefono, 100% sulla tua rete locale. Disattivato per impostazione predefinita.`,accessOn:`Accesso mobile attivo`,accessOff:`Accesso mobile disattivato`,listeningOnPort:`In ascolto sulla porta {{port}}`,notListening:`Non in ascolto`,turnOn:`Attiva`,turnOff:`Disattiva`,pairWebDevice:`Associa companion web`,reset:`Reimposta`,resetConfirm:`Reimpostare l'identità mobile? Ogni dispositivo associato verrà revocato e dovrà associarsi di nuovo.`,identityReset:`Identità mobile reimpostata`,enableFailed:`Impossibile abilitare l'accesso mobile: {{message}}`,disableFailed:`Impossibile disabilitare l'accesso mobile: {{message}}`,windowsFirewall:`Alla prima attivazione Windows Firewall chiederà di consentire il server SpecRails — scegli “Consenti su reti private”.`,pairedDevices:`Dispositivi associati`,noDevices:`Nessun dispositivo ancora associato.`,revokeDevice:`Revoca {{name}}`},m={title:`Associa companion web`,description:`Apri specrails.dev/companion-app sul telefono, poi scansiona questo codice con esso.`,startFailed:`Impossibile avviare l'associazione: {{error}}`,showThenScan:`Dopo che il telefono ha scansionato questo, tocca “Scansiona il codice del telefono” e punta la fotocamera verso il telefono.`,scanAnswer:`Scansiona il codice del telefono`,scanning:`Punta la fotocamera sul codice del telefono…`,cameraFailed:`Fotocamera non disponibile: {{message}}`,notAnswer:`Quel QR non è una risposta di associazione.`,connecting:`Connessione…`,paired:`✓ Associato`,pairedToast:`Companion web associato`,answerRejected:`Il desktop ha rifiutato quel codice. Generane uno nuovo e riprova.`,copyCode:`Copia codice`,codeCopied:`Codice copiato`,cancel:`Annulla`},h={heading:`Specrails Core`,installed:`Installato:`,updateAvailable:`Aggiornamento disponibile: {{version}}`,upToDate:`Aggiornato`,neverChecked:`Non verificato`,check:`Cerca aggiornamenti`,checking:`Verifica…`,update:`Aggiorna a {{version}}`,downloading:`Download…`,materializing:`Installazione…`,affectsAll:`Si applica a tutti i progetti — nessun riavvio necessario.`,unavailable:`Gli aggiornamenti del core non sono disponibili in questa build.`,toastDone:`Specrails Core aggiornato a {{version}}`,toastError:`Aggiornamento del core non riuscito: {{message}}`,toastUpToDate:`Specrails Core è aggiornato`,toastCheckFailed:`Verifica aggiornamenti non riuscita: {{message}}`,loadFailed:`Impossibile aggiornare lo stato di Core. Riprova`,runtime:`Motore: {{version}}`,bundled:`Incluso in Desktop: {{version}}`,sources:{override:`Selezione esplicita`,managed:`Gestito da Desktop`,bundled:`Incluso in Desktop`,local:`Pacchetto locale`,global:`CLI esterna`},repair:`Completa aggiornamento {{version}}`},g={heading:`Specrails Desktop`,installed:`Installata:`,check:`Cerca aggiornamenti`,checking:`Verifica…`,upToDate:`Hai l'ultima versione`,updateAvailable:`Aggiornamento disponibile: {{version}}`,autoHint:`Controllo automatico all'avvio e ogni 6 ore.`,unavailable:`Gli aggiornamenti sono disponibili solo nell'app desktop.`,toastUpToDate:`Specrails Desktop è aggiornato`,toastCheckFailed:`Ricerca aggiornamenti non riuscita: {{message}}`},_={title:`{{name}} — Impostazioni`,description:`Configurazione del progetto: prompt, branch, ambiente, budget, telemetria e terminale.`,nav:{general:`Generale`,branch:`Branch`,environment:`Ambiente`,budget:`Budget`,telemetry:`Telemetria`,terminal:`Terminale`,agentRuntime:`Motore degli agenti`}},v={title:`Ramo di integrazione`,description:`Il ramo da cui i rail paralleli si diramano e a cui puntano le loro PR in bozza. Lascia vuoto per risolvere automaticamente al ramo predefinito del repository.`,placeholder:`automatico (ramo predefinito)`,resolved:`I rail si diramano da <mono>{{branch}}</mono>`,save:`Salva ramo`,saved:`Ramo di integrazione salvato`,saveFailed:`Impossibile salvare il ramo di integrazione`},y={title:`Ambiente dei worktree`,description:`Scegli i nomi delle variabili d'ambiente che questo progetto passa ai job dei rail e ai worktree isolati dei loop. Vengono salvati solo i nomi; i valori vengono letti all'avvio dell'esecuzione, recuperandoli dalla login shell se mancano nel processo Desktop.`,label:`Variabile d'ambiente`,placeholder:`NODE_AUTH_TOKEN`,helper:`Premi Invio o Aggiungi. Puoi incollare più nomi separati da virgole o spazi.`,add:`Aggiungi`,empty:`Non ci sono ancora variabili specifiche per questo progetto.`,remove:`Rimuovi {{name}}`,save:`Salva ambiente`,saved:`Ambiente dei worktree salvato`,saveFailed:`Impossibile salvare l'ambiente dei worktree`,invalidName:`{{name}} non è un nome valido per una variabile d'ambiente`,noValues:`Aggiungi solo nomi di variabili, non segreti KEY=value.`},b={heading:`Effetti`,description:`Tocchi visivi dell'app. Ognuno si può disattivare qui.`,thinkingHalo:{label:`Alone di riflessione sul composer dell'agente`,description:`Mentre l'agente pensa o scrive, l'anello orbitante del Builder brilla attorno al composer: appare in dissolvenza all'inizio del turno e svanisce quando la risposta si conclude.`},reducedMotion:`Rispetta l'impostazione di sistema per la riduzione del movimento: l'anello resta un bagliore statico.`,preview:`Anteprima`,previewThinking:`Sto pensando…`},x={language:e,page:t,errors:n,telemetry:r,prePrompt:i,freestylePrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g,projectDialog:_,integrationBranch:v,worktreeEnv:y,effects:b};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,x as default,s as desktop,b as effects,n as errors,a as freestylePrePrompt,v as integrationBranch,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,_ as projectDialog,r as telemetry,u as terminal,l as webhooks,y as worktreeEnv};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Idioma`,description:`Idioma de la UI para todo Desktop. Se aplica al instante — no hace falta reiniciar.`,selectLabel:`Idioma de la interfaz`,updateFailed:`No se pudo guardar la preferencia de idioma`},t={title:`Ajustes del proyecto`},n={saveFailed:`Error al guardar: {{message}}`},r={title:`Telemetría del pipeline`,description:`Captura el uso de tokens, la duración de las fases y la actividad de los subagentes para exportar diagnósticos. Activada por defecto.`,toggleLabel:`Activar telemetría del pipeline`,toggleDescription:`Cuando está activa, los datos OTEL de los jobs del pipeline se capturan en local. Usa el botón <mono>Exportar diagnóstico</mono> en cualquier tarjeta de job para descargarlos.`,enabled:`Telemetría del pipeline activada`,disabled:`Telemetría del pipeline desactivada`,saveFailed:`No se pudo guardar el ajuste de telemetría`},i={title:`Pre-prompt de rail`,description:`Instrucciones extra específicas del proyecto que se añaden a los jobs de rail implement 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 al proveedor seleccionado en Freestyle. Freestyle se salta el pipeline de OpenSpec — le entrega al proveedor este pre-prompt más el texto de la spec y le deja implementar de forma autónoma. Déjalo en blanco para usar el valor por defecto integrado.`,label:`Pre-prompt Freestyle`,placeholder:`Déjalo en blanco para usar la instrucción por defecto de Freestyle.`,helper:`El texto de la spec se añade automáticamente después de este pre-prompt. Vacío = por defecto.`,saveButton:`Guardar pre-prompt Freestyle`,resetToDefault:`Pre-prompt Freestyle restablecido al valor por defecto`,saved:`Pre-prompt Freestyle guardado`,saveFailed:`No se pudo guardar el pre-prompt Freestyle`},o={title:`Presupuesto`,description:`Define un límite de gasto diario para este proyecto. La cola se pausa automáticamente al alcanzar el límite.`,dailyLabel:`Presupuesto diario (USD)`,dailyHelper:`Déjalo en blanco para desactivarlo. El gasto se calcula sobre las últimas 24 horas.`,dailyPlaceholder:`p. ej. 5.00`,perJobLabel:`Alerta de coste por job (USD)`,perJobHelper:`Avisa cuando un único job de este proyecto supere este importe.`,perJobPlaceholder:`p. ej. 0.50`,invalidNumber:`Introduce un número positivo o déjalo en blanco para desactivar`,dailyRemoved:`Presupuesto diario eliminado`,dailySet:"Presupuesto diario fijado en ${{amount}}",perJobAlertDisabled:`Alerta de coste por job desactivada`,alertSet:"Alerta configurada para jobs de más de ${{amount}}",saveBudgetFailed:`No se pudo guardar el presupuesto`,saveThresholdFailed:`No se pudo guardar el umbral`},s={nav:{appearance:`Apariencia`,specrailsAgents:`Specrails Agents`,code:`Código`,terminal:`Terminal`,updates:`Actualizaciones`,mobile:`Móvil`,mcp:`MCP`,projects:`Proyectos`,advanced:`Avanzado`,webhooks:`Webhooks`,about:`Acerca de`,effects:`Efectos`},title:`Ajustes de Desktop`,description:`Gestiona los proyectos registrados y consulta la información de Desktop.`,registeredProjects:`Proyectos registrados`,noProjects:`Aún no hay proyectos registrados`,techUrlDescription:`URL base de la API de specrails-tech (por defecto: http://localhost:3000)`,techUrlSaved:`URL de specrails-tech guardada`,techUrlSaveFailed:`No se pudo guardar la URL`,budgetAlertsHeading:`Presupuesto y alertas`,dailyBudgetLabel:`Presupuesto diario de Desktop (USD)`,dailyBudgetHelper:`Límite global de gasto diario en todos los proyectos. Las colas se pausan automáticamente al superarlo.`,dailyBudgetPlaceholder:`p. ej. 10.00`,perJobHelper:`Avisa cuando un único job supere este importe. Déjalo en blanco para desactivarlo.`,costAlertsDisabled:`Alertas de coste desactivadas`,dailyBudgetRemoved:`Presupuesto diario de Desktop eliminado`,dailyBudgetSet:"Presupuesto diario de Desktop fijado en ${{amount}}",dailyBudgetSaveFailed:`No se pudo guardar el presupuesto diario de Desktop`,projectRemoved:`Proyecto eliminado`,projectRemoveFailed:`No se pudo eliminar el proyecto`,onboardingHeading:`Onboarding`,platformTour:`Tour de la plataforma`,platformTourDescription:`Vuelve a ver el asistente de bienvenida para repasar las funciones clave.`,replayTour:`Repetir tour`,terminalPanelHeading:`Panel de terminal`,infoHeading:`Información de Desktop`,infoPort:`Puerto`,infoProjects:`Proyectos`,infoDb:`BD de Desktop`},c={heading:`Notificaciones del sistema`,description:`Muestra notificaciones nativas de escritorio cuando los jobs se completan o fallan. Las notificaciones solo aparecen cuando la pestaña no tiene el foco.`,enableLabel:`Activar notificaciones del sistema`,notifyOn:`Notificar en:`,filterAll:`Todos (completados y fallidos)`,filterCompleted:`Solo completados`,filterFailed:`Solo fallidos`,enabledToast:`Notificaciones del sistema activadas`,disabledToast:`Notificaciones del sistema desactivadas`},l={heading:`Webhooks salientes`,description:`Notifica a herramientas externas (Slack, Zapier, CI/CD) los eventos de Desktop. Las peticiones se firman con <code>X-Specrails-Signature</code> cuando hay un secreto configurado.`,eventJobCompleted:`Job completado`,eventJobFailed:`Job fallido`,eventDailyBudgetExceeded:`Presupuesto diario superado`,statusOn:`on`,statusOff:`off`,disable:`Desactivar`,enable:`Activar`,sendTestPing:`Enviar ping de prueba`,addHeading:`Añadir webhook`,secretPlaceholder:`Secreto de firma (opcional)`,addButton:`Añadir webhook`,urlRequired:`La URL es obligatoria`,selectEvent:`Selecciona al menos un evento`,added:`Webhook añadido`,addFailed:`No se pudo añadir el webhook`,updateFailed:`No se pudo actualizar el webhook`,removed:`Webhook eliminado`,removeFailed:`No se pudo eliminar el webhook`,testPingSent:`Ping de prueba enviado`,testPingFailed:`No se pudo enviar el ping de prueba`},u={title:`Panel de terminal`,desktopDescription:`Valores por defecto de Desktop aplicados a todos los proyectos salvo que exista un override por proyecto.`,projectDescription:`Overrides por proyecto para el panel de terminal. Deja un campo sin cambios para heredar el valor por defecto de Desktop.`,fontFamily:`Familia tipográfica`,fontSize:`Tamaño de fuente ({{min}}–{{max}})`,renderMode:`Modo de renderizado`,copyOnSelect:`Copiar al seleccionar`,shellIntegration:`Integración con el shell (marcas OSC 133)`,notifyLongRunning:`Notificar comandos de larga duración`,longCommandThreshold:`Umbral de comando largo (ms)`,imageRendering:`Renderizado de imágenes inline (Sixel + iTerm2)`,browserShortcutUrl:`URL del atajo de navegador`,quickScript:`Script rápido (se pega en el terminal activo — pulsa Enter manualmente)`,reset:`Restablecer`,unsavedChanges:`Cambios sin guardar`,clearOverride:`Quitar override`,clear:`Quitar`,inheritingDefault:`Heredando el valor por defecto de Desktop`,nothingToSave:`Nada que guardar`,saved:`Ajustes del terminal guardados`},d={heading:`Sección de código`,summaryLanguage:`Idioma de los resúmenes`,monthlyBudget:`Presupuesto mensual (USD)`,budgetHelper:"Tope de gasto de `surface=file-summary` por mes natural. Las regeneraciones iniciadas por el usuario pueden sobrepasarlo."},f={taglines:{dracula:`El original — oscuro con tinte púrpura y acentos neón vivos`,"aurora-light":`Claro premium — índigo inspirado en Linear sobre blanco cálido`,"obsidian-dark":`Oscuro premium — casi negro con tinte azul y acentos eléctricos`,specrails:`Tema de marca — azul marino-índigo profundo con acentos cian saturados`,"code-rain":`Terminal de fósforo — menta suave sobre casi negro verdoso`,galaxy:`Azul de espacio profundo con una estela de hoja brillante`},heading:`Apariencia`,themeGroupLabel:`Tema`,currentlyActive:`Activo actualmente`,updateFailed:`No se pudo actualizar el tema`},p={heading:`App móvil`,description:`Controla Specrails desde la app SpecRails Companion de tu teléfono, 100 % a través de tu red local. Desactivado por defecto.`,accessOn:`Acceso móvil activado`,accessOff:`Acceso móvil desactivado`,listeningOnPort:`A la escucha en el puerto {{port}}`,notListening:`No está a la escucha`,turnOn:`Activar`,turnOff:`Desactivar`,pairWebDevice:`Emparejar companion web`,reset:`Restablecer`,resetConfirm:`¿Restablecer la identidad móvil? Todos los dispositivos emparejados se revocarán y tendrán que emparejarse de nuevo.`,identityReset:`Identidad móvil restablecida`,enableFailed:`No se pudo activar el acceso móvil: {{message}}`,disableFailed:`No se pudo desactivar el acceso móvil: {{message}}`,windowsFirewall:`El Firewall de Windows pedirá permiso para el servidor de SpecRails la primera vez que lo actives — elige «Permitir en redes privadas».`,pairedDevices:`Dispositivos emparejados`,noDevices:`Aún no hay dispositivos emparejados.`,revokeDevice:`Revocar {{name}}`},m={title:`Emparejar companion web`,description:`Abre specrails.dev/companion-app en tu teléfono y escanea este código con él.`,startFailed:`No se pudo iniciar el emparejamiento: {{error}}`,showThenScan:`Cuando tu teléfono haya escaneado esto, toca «Escanear código del teléfono» y apunta la cámara hacia tu teléfono.`,scanAnswer:`Escanear código del teléfono`,scanning:`Apunta la cámara al código de tu teléfono…`,cameraFailed:`Cámara no disponible: {{message}}`,notAnswer:`Ese QR no es una respuesta de emparejamiento.`,connecting:`Conectando…`,paired:`✓ Emparejado`,pairedToast:`Companion web emparejado`,answerRejected:`El equipo de escritorio rechazó ese código. Genera uno nuevo e inténtalo de nuevo.`,copyCode:`Copiar código`,codeCopied:`Código copiado`,cancel:`Cancelar`},h={heading:`Specrails Core`,installed:`Instalado:`,updateAvailable:`Actualización disponible: {{version}}`,upToDate:`Actualizado`,neverChecked:`Sin comprobar`,check:`Buscar actualizaciones`,checking:`Comprobando…`,update:`Actualizar a {{version}}`,downloading:`Descargando…`,materializing:`Instalando…`,affectsAll:`Afecta a todos los proyectos — sin reiniciar.`,unavailable:`Las actualizaciones del core no están disponibles en esta versión.`,toastDone:`Specrails Core actualizado a {{version}}`,toastError:`Error al actualizar el core: {{message}}`,toastUpToDate:`Specrails Core está actualizado`,toastCheckFailed:`Error al comprobar actualizaciones: {{message}}`,loadFailed:`No se pudo actualizar el estado de Core. Reintentar`,runtime:`Motor: {{version}}`,bundled:`Incluido en Desktop: {{version}}`,sources:{override:`Selección explícita`,managed:`Gestionado por Desktop`,bundled:`Incluido en Desktop`,local:`Paquete local`,global:`CLI externo`},repair:`Completar actualización {{version}}`},g={heading:`Specrails Desktop`,installed:`Instalada:`,check:`Buscar actualizaciones`,checking:`Comprobando…`,upToDate:`Tienes la última versión`,updateAvailable:`Actualización disponible: {{version}}`,autoHint:`Se comprueba automáticamente al arrancar y cada 6 horas.`,unavailable:`Las actualizaciones solo están disponibles en la app de escritorio.`,toastUpToDate:`Specrails Desktop está actualizado`,toastCheckFailed:`Error al buscar actualizaciones: {{message}}`},_={title:`{{name}} — Ajustes`,description:`Configuración del proyecto: prompts, rama base, entorno, presupuesto, telemetría y terminal.`,nav:{general:`General`,branch:`Rama base`,environment:`Entorno`,budget:`Presupuesto`,telemetry:`Telemetría`,terminal:`Terminal`,agentRuntime:`Motor de agentes`}},v={title:`Rama de integración`,description:`La rama desde la que parten los rails paralelos y a la que apuntan sus PRs en borrador. Déjalo vacío para resolver automáticamente a la rama por defecto del repositorio.`,placeholder:`automático (rama por defecto)`,resolved:`Los rails parten de <mono>{{branch}}</mono>`,save:`Guardar rama`,saved:`Rama de integración guardada`,saveFailed:`No se pudo guardar la rama de integración`},y={title:`Entorno de worktrees`,description:`Elige los nombres de variables de entorno que este proyecto pasa a jobs de rail y worktrees aislados de loops. Solo se guardan nombres; los valores se leen al iniciar la ejecución, recuperándolos del login shell si faltan en el proceso de escritorio.`,label:`Variable de entorno`,placeholder:`NODE_AUTH_TOKEN`,helper:`Pulsa Enter o Añadir. Puedes pegar varios nombres separados por comas o espacios.`,add:`Añadir`,empty:`Aún no hay variables específicas para este proyecto.`,remove:`Quitar {{name}}`,save:`Guardar entorno`,saved:`Entorno de worktrees guardado`,saveFailed:`No se pudo guardar el entorno de worktrees`,invalidName:`{{name}} no es un nombre válido de variable de entorno`,noValues:`Añade solo nombres de variables, no secretos KEY=value.`},b={heading:`Efectos`,description:`Detalles visuales de la app. Cada uno se puede desactivar aquí.`,thinkingHalo:{label:`Halo de pensamiento en el composer del agente`,description:`Mientras el agente piensa o escribe, el anillo orbitante del Constructor brilla alrededor del composer: aparece con un fundido al empezar el turno y se desvanece al terminar la respuesta.`},reducedMotion:`Respeta el ajuste de movimiento reducido del sistema: el anillo queda como un brillo estático.`,preview:`Vista previa`,previewThinking:`Pensando…`},x={language:e,page:t,errors:n,telemetry:r,prePrompt:i,freestylePrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g,projectDialog:_,integrationBranch:v,worktreeEnv:y,effects:b};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,x as default,s as desktop,b as effects,n as errors,a as freestylePrePrompt,v as integrationBranch,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,_ as projectDialog,r as telemetry,u as terminal,l as webhooks,y as worktreeEnv};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({appUpdate:()=>v,appearance:()=>m,budget:()=>c,codeSection:()=>p,coreUpdate:()=>_,default:()=>C,desktop:()=>l,effects:()=>S,errors:()=>i,freestylePrePrompt:()=>s,integrationBranch:()=>b,language:()=>n,mobile:()=>h,notifications:()=>u,page:()=>r,pairWeb:()=>g,prePrompt:()=>o,projectDialog:()=>y,telemetry:()=>a,terminal:()=>f,webhooks:()=>d,worktreeEnv:()=>x}),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. On 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 the selected provider in Freestyle. Freestyle skips the OpenSpec pipeline — it hands the provider 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`,specrailsAgents:`Specrails Agents`,code:`Code`,terminal:`Terminal`,updates:`Updates`,mobile:`Mobile`,mcp:`MCP`,projects:`Projects`,advanced:`Advanced`,webhooks:`Webhooks`,about:`About`,effects:`Effects`},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`,specrails:`Brand theme — deep navy-indigo with saturated cyan accents`,"code-rain":`Phosphor terminal — soft mint on green-tinted near-black`,galaxy:`Deep-space blue with a glowing blade trail`},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}}`,loadFailed:`Could not refresh Core status. Retry`,runtime:`Runtime: {{version}}`,bundled:`Included in Desktop: {{version}}`,sources:{override:`Explicit override`,managed:`Managed by Desktop`,bundled:`Included in Desktop`,local:`Local package`,global:`External CLI`},repair:`Finish updating {{version}}`},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={title:`{{name}} — Settings`,description:`Project-level configuration: prompts, branch, environment, budget, telemetry and terminal.`,nav:{general:`General`,branch:`Branch`,environment:`Environment`,budget:`Budget`,telemetry:`Telemetry`,terminal:`Terminal`,agentRuntime:`Agent runtime`}},b={title:`Integration branch`,description:`The branch parallel rails branch from and target their draft PRs at. Leave empty to auto-resolve to the repository's default branch.`,placeholder:`auto (repository default)`,resolved:`Rails branch off <mono>{{branch}}</mono>`,save:`Save branch`,saved:`Integration branch saved`,saveFailed:`Could not save the integration branch`},x={title:`Worktree environment`,description:`Choose environment variable names this project passes to rail jobs and isolated loop worktrees. Only names are saved; values are read when a run starts, with login-shell recovery when the desktop process is missing them.`,label:`Environment variable`,placeholder:`NODE_AUTH_TOKEN`,helper:`Press Enter or Add. You can paste several names separated by commas or spaces.`,add:`Add`,empty:`No project-specific variables configured yet.`,remove:`Remove {{name}}`,save:`Save environment`,saved:`Worktree environment saved`,saveFailed:`Could not save the worktree environment`,invalidName:`{{name}} is not a valid environment variable name`,noValues:`Add only variable names here, not KEY=value secrets.`},S={heading:`Effects`,description:`Visual flourishes across the app. Each one can be switched off here.`,thinkingHalo:{label:`Thinking halo on the agent composer`,description:`While the agent is thinking or writing, the Builder's orbiting ring glows around the composer — it fades in when a turn starts and fades out when the reply settles.`},reducedMotion:`Follows your system's reduced-motion setting: the ring stays as a static glow.`,preview:`Preview`,previewThinking:`Thinking…`},C={language:n,page:r,errors:i,telemetry:a,prePrompt:o,freestylePrePrompt:s,budget:c,desktop:l,notifications:u,webhooks:d,terminal:f,codeSection:p,appearance:m,mobile:h,pairWeb:g,coreUpdate:_,appUpdate:v,projectDialog:y,integrationBranch:b,worktreeEnv:x,effects:S};export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Sprache`,description:`Desktop-weite UI-Sprache. Wird sofort angewendet – kein Neustart nötig.`,selectLabel:`Oberflächensprache`,updateFailed:`Spracheinstellung konnte nicht gespeichert werden`},t={title:`Projekteinstellungen`},n={saveFailed:`Speichern fehlgeschlagen: {{message}}`},r={title:`Pipeline-Telemetrie`,description:`Erfasst Token-Verbrauch, Phasendauern und Subagent-Aktivität für den Diagnose-Export. Standardmäßig an.`,toggleLabel:`Pipeline-Telemetrie aktivieren`,toggleDescription:`Wenn aktiviert, werden OTEL-Daten aus Pipeline-Jobs lokal erfasst. Verwenden Sie zum Herunterladen die Schaltfläche <mono>Diagnose exportieren</mono> auf einer beliebigen Job-Karte.`,enabled:`Pipeline-Telemetrie aktiviert`,disabled:`Pipeline-Telemetrie deaktiviert`,saveFailed:`Telemetrie-Einstellung konnte nicht gespeichert werden`},i={title:`Rail-Pre-Prompt`,description:`Zusätzliche projektspezifische Anweisungen, die an implement- 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 den ausgewählten Anbieter gesendet wird. Freestyle überspringt die OpenSpec-Pipeline – der Anbieter erhält diesen Pre-Prompt plus den Spec-Text und implementiert autonom. Leer lassen, um den eingebauten Standard zu verwenden.`,label:`Freestyle-Pre-Prompt`,placeholder:`Leer lassen, um die Standard-Freestyle-Anweisung zu verwenden.`,helper:`Der Spec-Text wird automatisch nach diesem Pre-Prompt angehängt. Leer = Standard.`,saveButton:`Freestyle-Pre-Prompt speichern`,resetToDefault:`Freestyle-Pre-Prompt auf Standard zurückgesetzt`,saved:`Freestyle-Pre-Prompt gespeichert`,saveFailed:`Freestyle-Pre-Prompt konnte nicht gespeichert werden`},o={title:`Budget`,description:`Tagesausgabenlimit für dieses Projekt festlegen. Die Queue pausiert automatisch, wenn das Limit erreicht ist.`,dailyLabel:`Tagesbudget (USD)`,dailyHelper:`Leer lassen zum Deaktivieren. Ausgaben werden über die letzten 24 Stunden berechnet.`,dailyPlaceholder:`z. B. 5.00`,perJobLabel:`Kostenalarm pro Job (USD)`,perJobHelper:`Alarm, wenn ein einzelner Job in diesem Projekt diesen Betrag überschreitet.`,perJobPlaceholder:`z. B. 0.50`,invalidNumber:`Positive Zahl eingeben oder leer lassen zum Deaktivieren`,dailyRemoved:`Tagesbudget entfernt`,dailySet:"Tagesbudget auf ${{amount}} gesetzt",perJobAlertDisabled:`Kostenalarm pro Job deaktiviert`,alertSet:"Alarm für Jobs über ${{amount}} gesetzt",saveBudgetFailed:`Budget konnte nicht gespeichert werden`,saveThresholdFailed:`Schwellenwert konnte nicht gespeichert werden`},s={nav:{appearance:`Darstellung`,specrailsAgents:`Specrails Agents`,code:`Code`,terminal:`Terminal`,updates:`Updates`,mobile:`Mobil`,mcp:`MCP`,projects:`Projekte`,advanced:`Erweitert`,webhooks:`Webhooks`,about:`Info`,effects:`Effekte`},title:`Desktop-Einstellungen`,description:`Registrierte Projekte verwalten und Desktop-Informationen einsehen.`,registeredProjects:`Registrierte Projekte`,noProjects:`Noch keine Projekte registriert`,techUrlDescription:`Basis-URL für die specrails-tech-API (Standard: http://localhost:3000)`,techUrlSaved:`specrails-tech-URL gespeichert`,techUrlSaveFailed:`URL konnte nicht gespeichert werden`,budgetAlertsHeading:`Budget & Alarme`,dailyBudgetLabel:`Desktop-Tagesbudget (USD)`,dailyBudgetHelper:`Globales Tagesausgabenlimit über alle Projekte. Queues pausieren automatisch bei Überschreitung.`,dailyBudgetPlaceholder:`z. B. 10.00`,perJobHelper:`Alarm, wenn ein einzelner Job diesen Betrag überschreitet. Leer lassen zum Deaktivieren.`,costAlertsDisabled:`Kostenalarme deaktiviert`,dailyBudgetRemoved:`Desktop-Tagesbudget entfernt`,dailyBudgetSet:"Desktop-Tagesbudget auf ${{amount}} gesetzt",dailyBudgetSaveFailed:`Desktop-Tagesbudget konnte nicht gespeichert werden`,projectRemoved:`Projekt entfernt`,projectRemoveFailed:`Projekt konnte nicht entfernt werden`,onboardingHeading:`Onboarding`,platformTour:`Plattform-Tour`,platformTourDescription:`Den Willkommensassistenten erneut abspielen, um die wichtigsten Funktionen zu sehen.`,replayTour:`Tour erneut abspielen`,terminalPanelHeading:`Terminal-Panel`,infoHeading:`Desktop-Informationen`,infoPort:`Port`,infoProjects:`Projekte`,infoDb:`Desktop-DB`},c={heading:`OS-Benachrichtigungen`,description:`Native Desktop-Benachrichtigungen anzeigen, wenn Jobs abgeschlossen werden oder fehlschlagen. Benachrichtigungen erscheinen nur, wenn der Tab nicht fokussiert ist.`,enableLabel:`OS-Benachrichtigungen aktivieren`,notifyOn:`Benachrichtigen bei:`,filterAll:`Alle (abgeschlossen & fehlgeschlagen)`,filterCompleted:`Nur abgeschlossen`,filterFailed:`Nur fehlgeschlagen`,enabledToast:`OS-Benachrichtigungen aktiviert`,disabledToast:`OS-Benachrichtigungen deaktiviert`},l={heading:`Ausgehende Webhooks`,description:`Externe Tools (Slack, Zapier, CI/CD) bei Desktop-Ereignissen benachrichtigen. Anfragen werden über <code>X-Specrails-Signature</code> signiert, wenn ein Secret gesetzt ist.`,eventJobCompleted:`Job abgeschlossen`,eventJobFailed:`Job fehlgeschlagen`,eventDailyBudgetExceeded:`Tagesbudget überschritten`,statusOn:`an`,statusOff:`aus`,disable:`Deaktivieren`,enable:`Aktivieren`,sendTestPing:`Test-Ping senden`,addHeading:`Webhook hinzufügen`,secretPlaceholder:`Signatur-Secret (optional)`,addButton:`Webhook hinzufügen`,urlRequired:`URL ist erforderlich`,selectEvent:`Mindestens ein Ereignis auswählen`,added:`Webhook hinzugefügt`,addFailed:`Webhook konnte nicht hinzugefügt werden`,updateFailed:`Webhook konnte nicht aktualisiert werden`,removed:`Webhook entfernt`,removeFailed:`Webhook konnte nicht entfernt werden`,testPingSent:`Test-Ping gesendet`,testPingFailed:`Test-Ping konnte nicht gesendet werden`},u={title:`Terminal-Panel`,desktopDescription:`Desktop-weite Standardwerte für alle Projekte, sofern kein projektspezifischer Override gesetzt ist.`,projectDescription:`Projektspezifische Overrides für das Terminal-Panel. Lassen Sie ein Feld unverändert, um den Desktop-Standard zu erben.`,fontFamily:`Schriftfamilie`,fontSize:`Schriftgröße ({{min}}–{{max}})`,renderMode:`Render-Modus`,copyOnSelect:`Beim Auswählen kopieren`,shellIntegration:`Shell-Integration (OSC-133-Marken)`,notifyLongRunning:`Bei lang laufenden Befehlen benachrichtigen`,longCommandThreshold:`Schwellenwert für lange Befehle (ms)`,imageRendering:`Inline-Bilddarstellung (Sixel + iTerm2)`,browserShortcutUrl:`Browser-Shortcut-URL`,quickScript:`Quick-Skript (wird ins aktive Terminal eingefügt – Enter manuell drücken)`,reset:`Zurücksetzen`,unsavedChanges:`Ungespeicherte Änderungen`,clearOverride:`Override entfernen`,clear:`Entfernen`,inheritingDefault:`Erbt Desktop-Standard`,nothingToSave:`Nichts zu speichern`,saved:`Terminal-Einstellungen gespeichert`},d={heading:`Code-Bereich`,summaryLanguage:`Sprache der Zusammenfassungen`,monthlyBudget:`Monatsbudget (USD)`,budgetHelper:"Obergrenze für `surface=file-summary`-Ausgaben pro Kalendermonat. Von Nutzern angestoßene Neugenerierungen können sie überschreiten."},f={taglines:{dracula:`Das Original — dunkel mit Violettstich und lebhaften Neon-Akzenten`,"aurora-light":`Premium hell — Linear-inspiriertes Indigo auf warmem Cremeweiß`,"obsidian-dark":`Premium dunkel — fast schwarz mit Blaustich und elektrischen Akzenten`,specrails:`Marken-Theme — tiefes Marine-Indigo mit satten Cyan-Akzenten`,"code-rain":`Phosphor-Terminal — sanftes Mint auf grünlichem Fast-Schwarz`,galaxy:`Tiefraum-Blau mit einer leuchtenden Klingenspur`},heading:`Erscheinungsbild`,themeGroupLabel:`Theme`,currentlyActive:`Derzeit aktiv`,updateFailed:`Theme konnte nicht aktualisiert werden`},p={heading:`Mobile Companion`,description:`Steuern Sie Specrails über die SpecRails Companion-App auf Ihrem Smartphone – zu 100 % über Ihr lokales Netzwerk. Standardmäßig aus.`,accessOn:`Mobilzugriff an`,accessOff:`Mobilzugriff aus`,listeningOnPort:`Lauscht auf Port {{port}}`,notListening:`Lauscht nicht`,turnOn:`Einschalten`,turnOff:`Ausschalten`,pairWebDevice:`Web-Companion koppeln`,reset:`Zurücksetzen`,resetConfirm:`Mobile Identität zurücksetzen? Alle gekoppelten Geräte werden widerrufen und müssen neu gekoppelt werden.`,identityReset:`Mobile Identität zurückgesetzt`,enableFailed:`Mobilzugriff konnte nicht aktiviert werden: {{message}}`,disableFailed:`Mobilzugriff konnte nicht deaktiviert werden: {{message}}`,windowsFirewall:`Die Windows-Firewall fragt beim ersten Aktivieren, ob der SpecRails-Server zugelassen werden soll – wählen Sie „In privaten Netzwerken zulassen“.`,pairedDevices:`Gekoppelte Geräte`,noDevices:`Noch keine Geräte gekoppelt.`,revokeDevice:`{{name}} widerrufen`},m={title:`Web-Companion koppeln`,description:`Öffnen Sie specrails.dev/companion-app auf Ihrem Smartphone und scannen Sie damit diesen Code.`,startFailed:`Koppeln konnte nicht gestartet werden: {{error}}`,showThenScan:`Nachdem Ihr Smartphone dies gescannt hat, tippen Sie auf „Code des Smartphones scannen“ und richten Sie die Kamera auf Ihr Smartphone.`,scanAnswer:`Code des Smartphones scannen`,scanning:`Richten Sie die Kamera auf den Code auf Ihrem Smartphone…`,cameraFailed:`Kamera nicht verfügbar: {{message}}`,notAnswer:`Dieser QR-Code ist keine Kopplungsantwort.`,connecting:`Verbinden…`,paired:`✓ Gekoppelt`,pairedToast:`Web-Companion gekoppelt`,answerRejected:`Der Desktop hat diesen Code abgelehnt. Erzeugen Sie einen neuen und versuchen Sie es erneut.`,copyCode:`Code kopieren`,codeCopied:`Code kopiert`,cancel:`Abbrechen`},h={heading:`Specrails Core`,installed:`Installiert:`,updateAvailable:`Update verfügbar: {{version}}`,upToDate:`Aktuell`,neverChecked:`Nicht geprüft`,check:`Nach Updates suchen`,checking:`Wird geprüft…`,update:`Auf {{version}} aktualisieren`,downloading:`Wird heruntergeladen…`,materializing:`Wird installiert…`,affectsAll:`Gilt für alle Projekte — kein Neustart nötig.`,unavailable:`Core-Updates sind in diesem Build nicht verfügbar.`,toastDone:`Specrails Core auf {{version}} aktualisiert`,toastError:`Core-Update fehlgeschlagen: {{message}}`,toastUpToDate:`Specrails Core ist aktuell`,toastCheckFailed:`Update-Prüfung fehlgeschlagen: {{message}}`,loadFailed:`Core-Status konnte nicht geladen werden. Erneut versuchen`,runtime:`Laufzeit: {{version}}`,bundled:`In Desktop enthalten: {{version}}`,sources:{override:`Explizite Auswahl`,managed:`Von Desktop verwaltet`,bundled:`In Desktop enthalten`,local:`Lokales Paket`,global:`Externe CLI`},repair:`Update auf {{version}} abschließen`},g={heading:`Specrails Desktop`,installed:`Installiert:`,check:`Nach Updates suchen`,checking:`Wird geprüft…`,upToDate:`Du hast die neueste Version`,updateAvailable:`Update verfügbar: {{version}}`,autoHint:`Wird beim Start und alle 6 Stunden automatisch geprüft.`,unavailable:`App-Updates sind nur in der Desktop-App verfügbar.`,toastUpToDate:`Specrails Desktop ist aktuell`,toastCheckFailed:`Update-Prüfung fehlgeschlagen: {{message}}`},_={title:`{{name}} — Einstellungen`,description:`Projektkonfiguration: Prompts, Branch, Umgebung, Budget, Telemetrie und Terminal.`,nav:{general:`Allgemein`,branch:`Branch`,environment:`Umgebung`,budget:`Budget`,telemetry:`Telemetrie`,terminal:`Terminal`,agentRuntime:`Agenten-Laufzeit`}},v={title:`Integrationszweig`,description:`Der Branch, von dem parallele Rails abzweigen und auf den ihre Entwurfs-PRs zielen. Leer lassen, um automatisch den Standard-Branch des Repositorys zu verwenden.`,placeholder:`automatisch (Standard-Branch)`,resolved:`Rails zweigen von <mono>{{branch}}</mono> ab`,save:`Branch speichern`,saved:`Integrationszweig gespeichert`,saveFailed:`Integrationszweig konnte nicht gespeichert werden`},y={title:`Worktree-Umgebung`,description:`Wählen Sie die Namen der Umgebungsvariablen, die dieses Projekt an Rail-Jobs und isolierte Loop-Worktrees weitergibt. Gespeichert werden nur Namen; Werte werden beim Start gelesen und bei Bedarf aus der Login-Shell nachgeladen.`,label:`Umgebungsvariable`,placeholder:`NODE_AUTH_TOKEN`,helper:`Drücken Sie Enter oder Hinzufügen. Mehrere Namen können durch Kommas oder Leerzeichen getrennt eingefügt werden.`,add:`Hinzufügen`,empty:`Für dieses Projekt sind noch keine eigenen Variablen konfiguriert.`,remove:`{{name}} entfernen`,save:`Umgebung speichern`,saved:`Worktree-Umgebung gespeichert`,saveFailed:`Worktree-Umgebung konnte nicht gespeichert werden`,invalidName:`{{name}} ist kein gültiger Name für eine Umgebungsvariable`,noValues:`Fügen Sie hier nur Variablennamen hinzu, keine KEY=value-Geheimnisse.`},b={heading:`Effekte`,description:`Visuelle Akzente in der App. Jeder lässt sich hier abschalten.`,thinkingHalo:{label:`Denk-Halo am Agent-Composer`,description:`Während der Agent nachdenkt oder schreibt, leuchtet der kreisende Ring des Builders um den Composer: er blendet beim Start eines Turns ein und beim Abschluss der Antwort aus.`},reducedMotion:`Folgt der Systemeinstellung für reduzierte Bewegung: der Ring bleibt ein statisches Leuchten.`,preview:`Vorschau`,previewThinking:`Denkt nach…`},x={language:e,page:t,errors:n,telemetry:r,prePrompt:i,freestylePrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g,projectDialog:_,integrationBranch:v,worktreeEnv:y,effects:b};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,x as default,s as desktop,b as effects,n as errors,a as freestylePrePrompt,v as integrationBranch,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,_ as projectDialog,r as telemetry,u as terminal,l as webhooks,y as worktreeEnv};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`语言`,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 模式下发送给所选提供方的指令。Freestyle 跳过 OpenSpec 流水线——直接把该前置提示词加上 spec 文本交给提供方,让其自主实现。留空则使用内置默认值。`,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:`外观`,specrailsAgents:`Specrails Agents`,code:`代码`,terminal:`终端`,updates:`更新`,mobile:`移动端`,mcp:`MCP`,projects:`项目`,advanced:`高级`,webhooks:`Webhooks`,about:`关于`,effects:`效果`},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":`高级深色 — 近黑蓝调配电光色点缀`,specrails:`品牌主题 — 深海军靛蓝配饱和青色点缀`,"code-rain":`磷光终端 — 绿黑底色上的柔和薄荷绿`,galaxy:`深空蓝配上发光的光刃轨迹`},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}}`,loadFailed:`无法刷新 Core 状态。重试`,runtime:`运行时:{{version}}`,bundled:`Desktop 内置:{{version}}`,sources:{override:`显式指定`,managed:`由 Desktop 管理`,bundled:`Desktop 内置`,local:`本地软件包`,global:`外部 CLI`},repair:`完成 {{version}} 更新`},g={heading:`Specrails Desktop`,installed:`已安装:`,check:`检查更新`,checking:`检查中…`,upToDate:`已是最新版本`,updateAvailable:`有可用更新: {{version}}`,autoHint:`启动时及每 6 小时自动检查。`,unavailable:`更新仅在桌面应用中可用。`,toastUpToDate:`Specrails Desktop 已是最新`,toastCheckFailed:`检查更新失败: {{message}}`},_={title:`{{name}} — 设置`,description:`项目级配置:提示词、分支、环境、预算、遥测和终端。`,nav:{general:`常规`,branch:`分支`,environment:`环境`,budget:`预算`,telemetry:`遥测`,terminal:`终端`,agentRuntime:`代理运行引擎`}},v={title:`集成分支`,description:`并行 rail 从此分支创建,其草稿 PR 也以此为目标。留空则自动解析为仓库的默认分支。`,placeholder:`自动(仓库默认分支)`,resolved:`Rail 从 <mono>{{branch}}</mono> 创建分支`,save:`保存分支`,saved:`集成分支已保存`,saveFailed:`无法保存集成分支`},y={title:`Worktree 环境`,description:`选择此项目传递给 rail job 和隔离 loop worktree 的环境变量名称。只保存名称;值会在运行开始时读取,如果 Desktop 进程中缺失,会尝试从 login shell 恢复。`,label:`环境变量`,placeholder:`NODE_AUTH_TOKEN`,helper:`按 Enter 或添加。可以粘贴多个用逗号或空格分隔的名称。`,add:`添加`,empty:`尚未为此项目配置专用变量。`,remove:`移除 {{name}}`,save:`保存环境`,saved:`Worktree 环境已保存`,saveFailed:`无法保存 Worktree 环境`,invalidName:`{{name}} 不是有效的环境变量名`,noValues:`这里只添加变量名,不要添加 KEY=value 形式的密钥。`},b={heading:`效果`,description:`应用中的视觉点缀,每一项都可以在这里关闭。`,thinkingHalo:{label:`代理输入框的思考光环`,description:`代理思考或书写时,构建器的环绕光环会围绕输入框发光:回合开始时淡入,回复结束时淡出。`},reducedMotion:`遵循系统的减少动态效果设置:光环将保持为静态光晕。`,preview:`预览`,previewThinking:`思考中…`},x={language:e,page:t,errors:n,telemetry:r,prePrompt:i,freestylePrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g,projectDialog:_,integrationBranch:v,worktreeEnv:y,effects:b};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,x as default,s as desktop,b as effects,n as errors,a as freestylePrePrompt,v as integrationBranch,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,_ as projectDialog,r as telemetry,u as terminal,l as webhooks,y as worktreeEnv};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={title:`Langue`,description:`Langue de l'interface pour tout Desktop. S'applique instantanément — aucun redémarrage requis.`,selectLabel:`Langue de l'interface`,updateFailed:`Impossible d'enregistrer la préférence de langue`},t={title:`Paramètres du projet`},n={saveFailed:`Échec de l'enregistrement : {{message}}`},r={title:`Télémétrie du pipeline`,description:`Capture l'usage des tokens, la durée des phases et l'activité des sous-agents pour l'export de diagnostic. Activé par défaut.`,toggleLabel:`Activer la télémétrie du pipeline`,toggleDescription:`Quand elle est activée, les données OTEL des jobs du pipeline sont capturées localement. Utilisez le bouton <mono>Exporter le diagnostic</mono> sur n'importe quelle carte de job pour les télécharger.`,enabled:`Télémétrie du pipeline activée`,disabled:`Télémétrie du pipeline désactivée`,saveFailed:`Échec de l'enregistrement du réglage de télémétrie`},i={title:`Pré-prompt de rail`,description:`Instructions supplémentaires propres au projet, ajoutées aux jobs de rail implement 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 au fournisseur sélectionné en mode Freestyle. Freestyle saute le pipeline OpenSpec — il transmet au fournisseur ce pré-prompt plus le texte de la spec et le laisse implémenter en autonomie. Laissez vide pour utiliser la valeur par défaut intégrée.`,label:`Pré-prompt Freestyle`,placeholder:`Laissez vide pour utiliser l'instruction Freestyle par défaut.`,helper:`Le texte de la spec est ajouté automatiquement après ce pré-prompt. Vide = défaut.`,saveButton:`Enregistrer le pré-prompt Freestyle`,resetToDefault:`Pré-prompt Freestyle réinitialisé à la valeur par défaut`,saved:`Pré-prompt Freestyle enregistré`,saveFailed:`Échec de l'enregistrement du pré-prompt Freestyle`},o={title:`Budget`,description:`Définissez un plafond de dépense quotidien pour ce projet. La file se met automatiquement en pause quand la limite est atteinte.`,dailyLabel:`Budget quotidien (USD)`,dailyHelper:`Laissez vide pour désactiver. La dépense est calculée sur les dernières 24 heures.`,dailyPlaceholder:`ex. 5.00`,perJobLabel:`Alerte de coût par job (USD)`,perJobHelper:`Alerte quand un seul job de ce projet dépasse ce montant.`,perJobPlaceholder:`ex. 0.50`,invalidNumber:`Saisissez un nombre positif ou laissez vide pour désactiver`,dailyRemoved:`Budget quotidien supprimé`,dailySet:`Budget quotidien défini à {{amount}} $`,perJobAlertDisabled:`Alerte de coût par job désactivée`,alertSet:`Alerte définie pour les jobs dépassant {{amount}} $`,saveBudgetFailed:`Échec de l'enregistrement du budget`,saveThresholdFailed:`Échec de l'enregistrement du seuil`},s={nav:{appearance:`Apparence`,specrailsAgents:`Specrails Agents`,code:`Code`,terminal:`Terminal`,updates:`Mises à jour`,mobile:`Mobile`,mcp:`MCP`,projects:`Projets`,advanced:`Avancé`,webhooks:`Webhooks`,about:`À propos`,effects:`Effets`},title:`Paramètres de Desktop`,description:`Gérez les projets enregistrés et consultez les informations de Desktop.`,registeredProjects:`Projets enregistrés`,noProjects:`Aucun projet enregistré pour l'instant`,techUrlDescription:`URL de base de l'API specrails-tech (par défaut : http://localhost:3000)`,techUrlSaved:`URL specrails-tech enregistrée`,techUrlSaveFailed:`Échec de l'enregistrement de l'URL`,budgetAlertsHeading:`Budget & alertes`,dailyBudgetLabel:`Budget quotidien de Desktop (USD)`,dailyBudgetHelper:`Limite de dépense quotidienne globale pour tous les projets. Les files se mettent automatiquement en pause en cas de dépassement.`,dailyBudgetPlaceholder:`ex. 10.00`,perJobHelper:`Alerte quand un seul job dépasse ce montant. Laissez vide pour désactiver.`,costAlertsDisabled:`Alertes de coût désactivées`,dailyBudgetRemoved:`Budget quotidien de Desktop supprimé`,dailyBudgetSet:`Budget quotidien de Desktop défini à {{amount}} $`,dailyBudgetSaveFailed:`Échec de l'enregistrement du budget quotidien de Desktop`,projectRemoved:`Projet supprimé`,projectRemoveFailed:`Échec de la suppression du projet`,onboardingHeading:`Onboarding`,platformTour:`Visite de la plateforme`,platformTourDescription:`Rejouez l'assistant de bienvenue pour revoir les fonctionnalités clés.`,replayTour:`Rejouer la visite`,terminalPanelHeading:`Panneau de terminal`,infoHeading:`Informations de Desktop`,infoPort:`Port`,infoProjects:`Projets`,infoDb:`BD de Desktop`},c={heading:`Notifications système`,description:`Affiche des notifications de bureau natives quand des jobs se terminent ou échouent. Les notifications n'apparaissent que lorsque l'onglet n'a pas le focus.`,enableLabel:`Activer les notifications système`,notifyOn:`Notifier pour :`,filterAll:`Tout (terminés & échoués)`,filterCompleted:`Terminés uniquement`,filterFailed:`Échoués uniquement`,enabledToast:`Notifications système activées`,disabledToast:`Notifications système désactivées`},l={heading:`Webhooks sortants`,description:`Notifiez des outils externes (Slack, Zapier, CI/CD) lors des événements de Desktop. Les requêtes sont signées via <code>X-Specrails-Signature</code> quand un secret est défini.`,eventJobCompleted:`Job terminé`,eventJobFailed:`Job en échec`,eventDailyBudgetExceeded:`Budget quotidien dépassé`,statusOn:`actif`,statusOff:`inactif`,disable:`Désactiver`,enable:`Activer`,sendTestPing:`Envoyer un ping de test`,addHeading:`Ajouter un webhook`,secretPlaceholder:`Secret de signature (facultatif)`,addButton:`Ajouter le webhook`,urlRequired:`L'URL est requise`,selectEvent:`Sélectionnez au moins un événement`,added:`Webhook ajouté`,addFailed:`Échec de l'ajout du webhook`,updateFailed:`Échec de la mise à jour du webhook`,removed:`Webhook supprimé`,removeFailed:`Échec de la suppression du webhook`,testPingSent:`Ping de test envoyé`,testPingFailed:`Échec de l'envoi du ping de test`},u={title:`Panneau de terminal`,desktopDescription:`Valeurs par défaut de Desktop, appliquées à chaque projet sauf surcharge par projet.`,projectDescription:`Surcharges par projet pour le panneau de terminal. Laissez un champ inchangé pour hériter de la valeur par défaut de Desktop.`,fontFamily:`Police`,fontSize:`Taille de police ({{min}}–{{max}})`,renderMode:`Mode de rendu`,copyOnSelect:`Copier à la sélection`,shellIntegration:`Intégration shell (marques OSC 133)`,notifyLongRunning:`Notifier les commandes de longue durée`,longCommandThreshold:`Seuil de commande longue (ms)`,imageRendering:`Rendu d'images inline (Sixel + iTerm2)`,browserShortcutUrl:`URL du raccourci navigateur`,quickScript:`Script rapide (collé dans le terminal actif — Entrée manuelle)`,reset:`Réinitialiser`,unsavedChanges:`Modifications non enregistrées`,clearOverride:`Effacer la surcharge`,clear:`Effacer`,inheritingDefault:`Hérite de la valeur par défaut de Desktop`,nothingToSave:`Rien à enregistrer`,saved:`Paramètres du terminal enregistrés`},d={heading:`Section Code`,summaryLanguage:`Langue des résumés`,monthlyBudget:`Budget mensuel (USD)`,budgetHelper:"Plafond de dépense `surface=file-summary` par mois calendaire. Les régénérations lancées par l'utilisateur peuvent le dépasser."},f={taglines:{dracula:`L'original — sombre teinté de violet aux accents néon éclatants`,"aurora-light":`Clair premium — indigo inspiré de Linear sur blanc cassé chaleureux`,"obsidian-dark":`Sombre premium — presque noir teinté de bleu aux accents électriques`,specrails:`Thème de la marque — bleu marine-indigo profond aux accents cyan saturés`,"code-rain":`Terminal phosphore — menthe douce sur fond presque noir verdâtre`,galaxy:`Bleu spatial profond avec une traînée de lame lumineuse`},heading:`Apparence`,themeGroupLabel:`Thème`,currentlyActive:`Actuellement actif`,updateFailed:`Échec de la mise à jour du thème`},p={heading:`Compagnon mobile`,description:`Contrôlez Specrails depuis l'application SpecRails Companion sur votre téléphone, 100 % via votre réseau local. Désactivé par défaut.`,accessOn:`Accès mobile activé`,accessOff:`Accès mobile désactivé`,listeningOnPort:`À l'écoute sur le port {{port}}`,notListening:`Pas à l'écoute`,turnOn:`Activer`,turnOff:`Désactiver`,pairWebDevice:`Appairer le compagnon web`,reset:`Réinitialiser`,resetConfirm:`Réinitialiser l'identité mobile ? Tous les appareils appairés seront révoqués et devront s'appairer à nouveau.`,identityReset:`Identité mobile réinitialisée`,enableFailed:`Impossible d'activer l'accès mobile : {{message}}`,disableFailed:`Impossible de désactiver l'accès mobile : {{message}}`,windowsFirewall:`Le Pare-feu Windows demandera d'autoriser le serveur SpecRails à la première activation — choisissez « Autoriser sur les réseaux privés ».`,pairedDevices:`Appareils appairés`,noDevices:`Aucun appareil appairé pour l'instant.`,revokeDevice:`Révoquer {{name}}`},m={title:`Appairer le compagnon web`,description:`Ouvrez specrails.dev/companion-app sur votre téléphone, puis scannez ce code avec.`,startFailed:`Impossible de démarrer l'appairage : {{error}}`,showThenScan:`Une fois que votre téléphone l'a scanné, appuyez sur « Scanner le code du téléphone » et pointez la caméra vers votre téléphone.`,scanAnswer:`Scanner le code du téléphone`,scanning:`Pointez la caméra vers le code sur votre téléphone…`,cameraFailed:`Caméra indisponible : {{message}}`,notAnswer:`Ce QR code n'est pas une réponse d'appairage.`,connecting:`Connexion…`,paired:`✓ Appairé`,pairedToast:`Compagnon web appairé`,answerRejected:`Le bureau a rejeté ce code. Générez-en un nouveau et réessayez.`,copyCode:`Copier le code`,codeCopied:`Code copié`,cancel:`Annuler`},h={heading:`Specrails Core`,installed:`Installé :`,updateAvailable:`Mise à jour disponible : {{version}}`,upToDate:`À jour`,neverChecked:`Non vérifié`,check:`Rechercher des mises à jour`,checking:`Vérification…`,update:`Mettre à jour vers {{version}}`,downloading:`Téléchargement…`,materializing:`Installation…`,affectsAll:`S'applique à tous les projets — aucun redémarrage requis.`,unavailable:`Les mises à jour du core ne sont pas disponibles dans cette version.`,toastDone:`Specrails Core mis à jour vers {{version}}`,toastError:`Échec de la mise à jour du core : {{message}}`,toastUpToDate:`Specrails Core est à jour`,toastCheckFailed:`Échec de la vérification : {{message}}`,loadFailed:`Impossible de charger l’état de Core. Réessayer`,runtime:`Moteur : {{version}}`,bundled:`Inclus dans Desktop : {{version}}`,sources:{override:`Sélection explicite`,managed:`Géré par Desktop`,bundled:`Inclus dans Desktop`,local:`Paquet local`,global:`CLI externe`},repair:`Terminer la mise à jour {{version}}`},g={heading:`Specrails Desktop`,installed:`Installée :`,check:`Rechercher des mises à jour`,checking:`Vérification…`,upToDate:`Vous avez la dernière version`,updateAvailable:`Mise à jour disponible : {{version}}`,autoHint:`Vérification automatique au lancement et toutes les 6 heures.`,unavailable:`Les mises à jour ne sont disponibles que dans l'app de bureau.`,toastUpToDate:`Specrails Desktop est à jour`,toastCheckFailed:`Échec de la recherche de mises à jour : {{message}}`},_={title:`{{name}} — Paramètres`,description:`Configuration du projet : prompts, branche, environnement, budget, télémétrie et terminal.`,nav:{general:`Général`,branch:`Branche`,environment:`Environnement`,budget:`Budget`,telemetry:`Télémétrie`,terminal:`Terminal`,agentRuntime:`Moteur d’agents`}},v={title:`Branche d'intégration`,description:`La branche depuis laquelle les rails parallèles se ramifient et que ciblent leurs PR en brouillon. Laissez vide pour résoudre automatiquement vers la branche par défaut du dépôt.`,placeholder:`automatique (branche par défaut)`,resolved:`Les rails partent de <mono>{{branch}}</mono>`,save:`Enregistrer la branche`,saved:`Branche d'intégration enregistrée`,saveFailed:`Impossible d'enregistrer la branche d'intégration`},y={title:`Environnement des worktrees`,description:`Choisissez les noms de variables d'environnement que ce projet transmet aux jobs de rail et aux worktrees isolés des loops. Seuls les noms sont enregistrés ; les valeurs sont lues au démarrage, avec récupération depuis le login shell si le processus Desktop ne les a pas.`,label:`Variable d'environnement`,placeholder:`NODE_AUTH_TOKEN`,helper:`Appuyez sur Entrée ou Ajouter. Vous pouvez coller plusieurs noms séparés par des virgules ou des espaces.`,add:`Ajouter`,empty:`Aucune variable propre à ce projet n'est encore configurée.`,remove:`Supprimer {{name}}`,save:`Enregistrer l'environnement`,saved:`Environnement des worktrees enregistré`,saveFailed:`Impossible d'enregistrer l'environnement des worktrees`,invalidName:`{{name}} n'est pas un nom de variable d'environnement valide`,noValues:`Ajoutez uniquement des noms de variables, pas de secrets KEY=value.`},b={heading:`Effets`,description:`Touches visuelles de l'app. Chacune peut être désactivée ici.`,thinkingHalo:{label:`Halo de réflexion sur le composeur de l'agent`,description:`Pendant que l'agent réfléchit ou écrit, l'anneau orbital du Constructeur brille autour du composeur : il apparaît en fondu au début du tour et s'estompe quand la réponse se termine.`},reducedMotion:`Respecte le réglage système de réduction des animations : l'anneau reste une lueur statique.`,preview:`Aperçu`,previewThinking:`Réflexion…`},x={language:e,page:t,errors:n,telemetry:r,prePrompt:i,freestylePrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,appUpdate:g,projectDialog:_,integrationBranch:v,worktreeEnv:y,effects:b};export{g as appUpdate,f as appearance,o as budget,d as codeSection,h as coreUpdate,x as default,s as desktop,b as effects,n as errors,a as freestylePrePrompt,v as integrationBranch,e as language,p as mobile,c as notifications,t as page,m as pairWeb,i as prePrompt,_ as projectDialog,r as telemetry,u as terminal,l as webhooks,y as worktreeEnv};
|