specrails-desktop 2.18.2 → 2.19.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 +1 -1
- package/client/dist/assets/{ActivityFeedPage-mGnv5SOe.js → ActivityFeedPage-C0_k6n5T.js} +1 -1
- package/client/dist/assets/AgentBrowserCapture-NHUCEnTh.js +1 -0
- package/client/dist/assets/AgentModeCodePane-jddXrhPY.js +2 -0
- package/client/dist/assets/AgentsPage-BPjf6bId.js +86 -0
- package/client/dist/assets/AnalyticsPage-BaJjj5mO.js +1 -0
- package/client/dist/assets/{BarChart-BqHUOnl9.js → BarChart-HPiao--v.js} +1 -1
- package/client/dist/assets/CodePage-CAD4KfkC.js +2 -0
- package/client/dist/assets/{DesktopAnalyticsPage-CR-m97Ui.js → DesktopAnalyticsPage-B2RBxIvj.js} +1 -1
- package/client/dist/assets/DocsDialog-BJDvUEGj.js +11 -0
- package/client/dist/assets/DocsPage-B6H-DBs8.js +11 -0
- package/client/dist/assets/{ExportDropdown-C-o1Q4ef.js → ExportDropdown-CYMcbLTD.js} +1 -1
- package/client/dist/assets/IntegrationsPage-Dx_UpQVk.js +3 -0
- package/client/dist/assets/JobDetailPage-BlTnsRAN.js +16 -0
- package/client/dist/assets/JobsPage-EB0PbXOk.js +1 -0
- package/client/dist/assets/LoopBuilderPage-DfWfhhJY.js +7 -0
- package/client/dist/assets/LoopsPage-DCVATTv5.js +1 -0
- package/client/dist/assets/{addspec-B9dY_F5T.js → addspec-BXV6sx5l.js} +1 -1
- package/client/dist/assets/{addspec-tbxr3sHa.js → addspec-CS895X6A.js} +1 -1
- package/client/dist/assets/{addspec-W0r16BOC2.js → addspec-CXfEOrD42.js} +1 -1
- package/client/dist/assets/{addspec-D43TlMVp2.js → addspec-D28kw9ow2.js} +1 -1
- package/client/dist/assets/{addspec-B9nhMikb.js → addspec-D39EEg02.js} +1 -1
- package/client/dist/assets/{addspec-DfgIZ5lO.js → addspec-DC1tgsFG.js} +1 -1
- package/client/dist/assets/{addspec-BtNaJHu2.js → addspec-DcHALPEp.js} +1 -1
- package/client/dist/assets/{addspec-BloGn_ey.js → addspec-DxW6oPsk.js} +1 -1
- package/client/dist/assets/{agent-Bm2tPrdr.js → agent-B5Ycau5M.js} +1 -1
- package/client/dist/assets/{agent-DMUrz9ZS2.js → agent-BEz08l4_2.js} +1 -1
- package/client/dist/assets/{agent-C4bO1l_v.js → agent-BIX51CEA.js} +1 -1
- package/client/dist/assets/{agent-9WdSxPU5.js → agent-Bc9Kwf65.js} +1 -1
- package/client/dist/assets/{agent-pO8x4jbR.js → agent-BiM7puyn.js} +1 -1
- package/client/dist/assets/{agent-CgKsh88Z2.js → agent-C0kYSv3m2.js} +1 -1
- package/client/dist/assets/agent-CCzWlfqs.js +1 -0
- package/client/dist/assets/{agent-ASIyVcg0.js → agent-DiCSo31C.js} +1 -1
- package/client/dist/assets/{agents-DfGvYtpq2.js → agents-BFrHy5d-2.js} +1 -1
- package/client/dist/assets/{agents-Dli56gr82.js → agents-BFy2Kq_k2.js} +1 -1
- package/client/dist/assets/{agents-C07al8rI.js → agents-BXDCFJQa.js} +1 -1
- package/client/dist/assets/{agents-BAxAwHy-.js → agents-BySH0Gvw.js} +1 -1
- package/client/dist/assets/{agents-Eqw_AQ6H.js → agents-CTdwacTO.js} +1 -1
- package/client/dist/assets/{agents-BjT_xLjv.js → agents-Cev2oFfX.js} +1 -1
- package/client/dist/assets/{agents-BUYBb825.js → agents-CsDEv4Fj.js} +1 -1
- package/client/dist/assets/{agents-52t8NVpS.js → agents-z0kA-y0Q.js} +1 -1
- package/client/dist/assets/dashboard-Bl2_Yjs6.js +1 -0
- package/client/dist/assets/dashboard-C_vS9RaM2.js +1 -0
- package/client/dist/assets/dashboard-CcEpALV_.js +1 -0
- package/client/dist/assets/dashboard-CfltY66K.js +1 -0
- package/client/dist/assets/dashboard-CoED_41r.js +1 -0
- package/client/dist/assets/dashboard-DLeC5ziO.js +1 -0
- package/client/dist/assets/dashboard-DxEPkALo2.js +1 -0
- package/client/dist/assets/dashboard-MgDVmaYS2.js +1 -0
- package/client/dist/assets/{dist-js-CUegfF6k.js → dist-js-ClEfL6Bo.js} +1 -1
- package/client/dist/assets/{dist-js-BHhtSerX.js → dist-js-b2_z7zAi.js} +1 -1
- package/client/dist/assets/index-9yNUBwEi.css +2 -0
- package/client/dist/assets/{index-B7vB20Jw.js → index-BeujshsU.js} +57 -57
- package/client/dist/assets/{lib-PQoHlR5u.js → lib-CfphudAm.js} +1 -1
- package/client/dist/assets/loops-BEUiCzEI.js +1 -0
- package/client/dist/assets/loops-BlrQiK122.js +1 -0
- package/client/dist/assets/loops-Bs0ectZ32.js +1 -0
- package/client/dist/assets/loops-CLZV8HHY2.js +1 -0
- package/client/dist/assets/loops-CQuuMlyZ.js +1 -0
- package/client/dist/assets/loops-DuuWQWTI.js +1 -0
- package/client/dist/assets/loops-KOTryzk5.js +1 -0
- package/client/dist/assets/loops-t1mUZtf0.js +1 -0
- package/client/dist/assets/nav--1ErXZrS.js +1 -0
- package/client/dist/assets/nav-18nqSJ8h.js +1 -0
- package/client/dist/assets/nav-BuonHb17.js +1 -0
- package/client/dist/assets/nav-C-sCoOLY2.js +1 -0
- package/client/dist/assets/nav-ClXz_3Ic2.js +1 -0
- package/client/dist/assets/nav-CtqgSQeE2.js +1 -0
- package/client/dist/assets/nav-S3YvCaVv.js +1 -0
- package/client/dist/assets/nav-czg8NkN-.js +1 -0
- package/client/dist/assets/settings-BOZBX-Vq.js +1 -0
- package/client/dist/assets/settings-CX29QcQW.js +1 -0
- package/client/dist/assets/settings-CfOWHPzc2.js +1 -0
- package/client/dist/assets/settings-DaXhxNug2.js +1 -0
- package/client/dist/assets/settings-DmyDpuzu.js +1 -0
- package/client/dist/assets/settings-DwPRLcxr2.js +1 -0
- package/client/dist/assets/settings-MjYVJvDE.js +1 -0
- package/client/dist/assets/settings-zJFdTzKE.js +1 -0
- package/client/dist/assets/{setup-BYoDYoPY2.js → setup-BmXfxlzA2.js} +1 -1
- package/client/dist/assets/{setup-faMApo0U2.js → setup-BxVydxbl2.js} +1 -1
- package/client/dist/assets/{setup-C5UbM0RP.js → setup-DIRZ1Lf-.js} +1 -1
- package/client/dist/assets/{setup-Bf9eLKxU.js → setup-DwbKSnKQ.js} +1 -1
- package/client/dist/assets/{setup-JFkWWZnR.js → setup-Dx13pESZ.js} +1 -1
- package/client/dist/assets/{setup-CqGrWb6G.js → setup-G4ZvDKxX.js} +1 -1
- package/client/dist/assets/{setup-tloaTobG2.js → setup-SLAi4xxQ2.js} +1 -1
- package/client/dist/assets/{setup-4us-Bz3H.js → setup-Z01j3st4.js} +1 -1
- package/client/dist/assets/{upload-PnJDPHZH.js → upload-Ox9jUq1X.js} +1 -1
- package/client/dist/assets/{value-BTDefcOV.js → value-BeQVX5gN.js} +1 -1
- package/client/dist/index.html +10 -10
- package/docs/codex.md +5 -5
- package/docs/customizing.md +4 -4
- package/docs/gemini.md +2 -2
- package/docs/getting-started.md +1 -1
- package/docs/guide/de/integrations/1-ai-providers.md +2 -2
- package/docs/guide/de/integrations/5-mcp-server.md +20 -1
- package/docs/guide/de/pipeline/1-rails-and-jobs.md +4 -4
- package/docs/guide/de/pipeline/2-the-job-detail-view.md +1 -1
- package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/de/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/en/integrations/1-ai-providers.md +2 -2
- package/docs/guide/en/integrations/5-mcp-server.md +20 -1
- package/docs/guide/en/pipeline/1-rails-and-jobs.md +4 -4
- package/docs/guide/en/pipeline/2-the-job-detail-view.md +1 -1
- package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/en/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/es/integrations/1-ai-providers.md +2 -2
- package/docs/guide/es/integrations/5-mcp-server.md +20 -1
- package/docs/guide/es/pipeline/1-rails-and-jobs.md +4 -4
- package/docs/guide/es/pipeline/2-the-job-detail-view.md +1 -1
- package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/es/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/fr/integrations/1-ai-providers.md +2 -2
- package/docs/guide/fr/integrations/5-mcp-server.md +20 -1
- package/docs/guide/fr/pipeline/1-rails-and-jobs.md +4 -4
- package/docs/guide/fr/pipeline/2-the-job-detail-view.md +1 -1
- package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/fr/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/it/integrations/1-ai-providers.md +2 -2
- package/docs/guide/it/integrations/5-mcp-server.md +20 -1
- package/docs/guide/it/pipeline/1-rails-and-jobs.md +4 -4
- package/docs/guide/it/pipeline/2-the-job-detail-view.md +1 -1
- package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/it/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/ja/integrations/1-ai-providers.md +2 -2
- package/docs/guide/ja/integrations/5-mcp-server.md +20 -1
- package/docs/guide/ja/pipeline/1-rails-and-jobs.md +4 -4
- package/docs/guide/ja/pipeline/2-the-job-detail-view.md +1 -1
- package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/ja/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/pt/integrations/1-ai-providers.md +2 -2
- package/docs/guide/pt/integrations/5-mcp-server.md +20 -1
- package/docs/guide/pt/pipeline/1-rails-and-jobs.md +4 -4
- package/docs/guide/pt/pipeline/2-the-job-detail-view.md +1 -1
- package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/pt/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/zh/integrations/1-ai-providers.md +2 -2
- package/docs/guide/zh/integrations/5-mcp-server.md +20 -1
- package/docs/guide/zh/pipeline/1-rails-and-jobs.md +4 -4
- package/docs/guide/zh/pipeline/2-the-job-detail-view.md +1 -1
- package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/zh/pipeline/5-the-loop-builder.md +2 -2
- package/docs/internals/switch-to-agent-mode-design.md +301 -0
- package/docs/internals/visual-design-audit.md +184 -0
- package/docs/mcp.md +26 -1
- package/docs/running-pipelines.md +10 -10
- package/docs/tracking-cost.md +1 -1
- package/package.json +1 -1
- package/server/dist/agent-chat-manager.js +107 -33
- package/server/dist/agent-chat-router.js +170 -8
- package/server/dist/agent-cwd-manager.js +2 -47
- package/server/dist/agent-operator-prompt.js +277 -0
- package/server/dist/agent-store.js +27 -5
- package/server/dist/attachment-manager.js +138 -0
- package/server/dist/desktop-db.js +15 -0
- package/server/dist/loop-factory.js +12 -2
- package/server/dist/mcp/guide.js +186 -51
- package/server/dist/mcp/tools/analytics.js +1 -1
- package/server/dist/mcp/tools/app-settings.js +45 -5
- package/server/dist/mcp/tools/chat.js +9 -2
- package/server/dist/mcp/tools/code.js +3 -2
- package/server/dist/mcp/tools/jobs.js +18 -6
- package/server/dist/mcp/tools/loops.js +57 -5
- package/server/dist/mcp/tools/meta.js +43 -3
- package/server/dist/mcp/tools/rails.js +6 -6
- package/server/dist/mcp/tools/setup.js +2 -1
- package/server/dist/mcp/tools/specs.js +60 -38
- package/server/dist/mcp/tools/types.js +17 -8
- package/server/dist/mcp/tools/watch.js +71 -8
- package/server/dist/project-router-helpers.js +1 -1
- package/server/dist/project-router-tickets.js +43 -4
- package/server/dist/providers/claude-adapter.js +6 -0
- package/server/dist/providers/codex-adapter.js +10 -0
- package/server/dist/providers/gemini-adapter.js +3 -0
- package/server/dist/rails-router.js +8 -17
- package/server/dist/spec-models.js +1 -0
- package/client/dist/assets/AgentsPage-BH1isg5j.js +0 -86
- package/client/dist/assets/AnalyticsPage-ByyshYRI.js +0 -1
- package/client/dist/assets/CodePage-CU7T_HYs.js +0 -2
- package/client/dist/assets/DocsDialog-CEmZp_8V.js +0 -11
- package/client/dist/assets/DocsPage-DYbAQ1AT.js +0 -11
- package/client/dist/assets/IntegrationsPage-C6fKdwVH.js +0 -3
- package/client/dist/assets/JobDetailPage-CKfIfBgE.js +0 -16
- package/client/dist/assets/JobsPage-nBng0riZ.js +0 -1
- package/client/dist/assets/LoopBuilderPage-Co_TYqYk.js +0 -7
- package/client/dist/assets/LoopsPage-a2hd37Ya.js +0 -1
- package/client/dist/assets/agent-Dwkz5mPS.js +0 -1
- package/client/dist/assets/dashboard-BTiH361F.js +0 -1
- package/client/dist/assets/dashboard-COSm_14E.js +0 -1
- package/client/dist/assets/dashboard-CfOs70FN2.js +0 -1
- package/client/dist/assets/dashboard-Cyzp4ox9.js +0 -1
- package/client/dist/assets/dashboard-CzHDp14_2.js +0 -1
- package/client/dist/assets/dashboard-D6Woy2B5.js +0 -1
- package/client/dist/assets/dashboard-DwbH4oVH.js +0 -1
- package/client/dist/assets/dashboard-cWhU3krA2.js +0 -1
- package/client/dist/assets/index-B0FxQALR.css +0 -2
- package/client/dist/assets/loops-BDhEfnx82.js +0 -1
- package/client/dist/assets/loops-BM5QggwH.js +0 -1
- package/client/dist/assets/loops-CPjLAAxj.js +0 -1
- package/client/dist/assets/loops-D8Iu6Jss.js +0 -1
- package/client/dist/assets/loops-DKnk79TB2.js +0 -1
- package/client/dist/assets/loops-DLW0aFMm.js +0 -1
- package/client/dist/assets/loops-Dcv3dFy_2.js +0 -1
- package/client/dist/assets/loops-y7wFRx6M.js +0 -1
- package/client/dist/assets/nav-1hj2izqB2.js +0 -1
- package/client/dist/assets/nav-BBUKMAu-2.js +0 -1
- package/client/dist/assets/nav-CLqkP-26.js +0 -1
- package/client/dist/assets/nav-Cv46L837.js +0 -1
- package/client/dist/assets/nav-DE3yWQw6.js +0 -1
- package/client/dist/assets/nav-DgA-rjLk2.js +0 -1
- package/client/dist/assets/nav-EG2pr6vN.js +0 -1
- package/client/dist/assets/nav-r3mIJVfU.js +0 -1
- package/client/dist/assets/settings-BKmORxlB2.js +0 -1
- package/client/dist/assets/settings-BVv2JgQ8.js +0 -1
- package/client/dist/assets/settings-Bghm3pAV.js +0 -1
- package/client/dist/assets/settings-BuC_aplX.js +0 -1
- package/client/dist/assets/settings-Bw_Qk8E32.js +0 -1
- package/client/dist/assets/settings-CAKgJv7p.js +0 -1
- package/client/dist/assets/settings-CEUgk1Ck.js +0 -1
- package/client/dist/assets/settings-C_PDE20s2.js +0 -1
- /package/client/dist/assets/{activity-Uj576ckT.js → activity-BlvN5rhP.js} +0 -0
- /package/client/dist/assets/{activity-w1qMFwxh.js → activity-C5SeKbom.js} +0 -0
- /package/client/dist/assets/{activity-BySXFT2J2.js → activity-DIJexk6v2.js} +0 -0
- /package/client/dist/assets/{activity-B82z3Pna.js → activity-DLdwUYv7.js} +0 -0
- /package/client/dist/assets/{activity-BVpZrs0J.js → activity-DOKV_Wyf.js} +0 -0
- /package/client/dist/assets/{activity-BId0pwuS2.js → activity-DVuiy8TI2.js} +0 -0
- /package/client/dist/assets/{activity-DIWnV0Pl.js → activity-Dsf3J7iW.js} +0 -0
- /package/client/dist/assets/{agentstudio-C7xxqVWn.js → agentstudio-B8H2H4Db2.js} +0 -0
- /package/client/dist/assets/{agentstudio-D-UoNAIA.js → agentstudio-B9zthaTJ.js} +0 -0
- /package/client/dist/assets/{agentstudio-0o3XKrcy.js → agentstudio-BDMpU01s.js} +0 -0
- /package/client/dist/assets/{agentstudio-Bu8m5jDw.js → agentstudio-CSZo7p8K.js} +0 -0
- /package/client/dist/assets/{agentstudio-ObTpVbBP.js → agentstudio-CdD6J23W.js} +0 -0
- /package/client/dist/assets/{agentstudio-PzFB3vfh2.js → agentstudio-D80fZu_M2.js} +0 -0
- /package/client/dist/assets/{agentstudio-OJjjz6Uf2.js → agentstudio-EuKglkaF2.js} +0 -0
- /package/client/dist/assets/{aiedit-DRrNiaB4.js → aiedit-B_VOTUo42.js} +0 -0
- /package/client/dist/assets/{aiedit-sP_iao2j.js → aiedit-Cxoe_0wv.js} +0 -0
- /package/client/dist/assets/{aiedit-DAM_WRAl2.js → aiedit-D59sPapq2.js} +0 -0
- /package/client/dist/assets/{aiedit-BaLZalLa.js → aiedit-DX3BBpXF.js} +0 -0
- /package/client/dist/assets/{aiedit-BIQqv2XM2.js → aiedit-GYOYWCHJ2.js} +0 -0
- /package/client/dist/assets/{aiedit-BjlUzasF.js → aiedit-TON-4N9S.js} +0 -0
- /package/client/dist/assets/{aiedit-BmDufyGU.js → aiedit-ybQmdsST.js} +0 -0
- /package/client/dist/assets/{analytics-MVJRjcY52.js → analytics-B2jjXLCP2.js} +0 -0
- /package/client/dist/assets/{analytics-C4z_NgJZ.js → analytics-BTkXLTfa.js} +0 -0
- /package/client/dist/assets/{analytics-DL2vJCbq.js → analytics-BotqRU_R.js} +0 -0
- /package/client/dist/assets/{analytics-e1mkNTgy2.js → analytics-Ck3vl2Qo2.js} +0 -0
- /package/client/dist/assets/{analytics-Ds_PNxtO2.js → analytics-CqMJQb7N.js} +0 -0
- /package/client/dist/assets/{analytics-B_rxNC9X.js → analytics-DGOoMkaZ.js} +0 -0
- /package/client/dist/assets/{analytics-BDqqCzN9.js → analytics-DL7uwNAI2.js} +0 -0
- /package/client/dist/assets/{attachments-BP0Ac1yt.js → attachments-7w-BR2V2.js} +0 -0
- /package/client/dist/assets/{attachments-CPBVeHX72.js → attachments-B5QX1Xfa2.js} +0 -0
- /package/client/dist/assets/{attachments-Db7JfA8a.js → attachments-BcE7kZG-2.js} +0 -0
- /package/client/dist/assets/{attachments-CJaO1vCH.js → attachments-BsJJXFzT.js} +0 -0
- /package/client/dist/assets/{attachments-8QCKHCEF2.js → attachments-Cbh4AwjP.js} +0 -0
- /package/client/dist/assets/{attachments-CV2uaTGE.js → attachments-D0fGlFve.js} +0 -0
- /package/client/dist/assets/{attachments-CaOjdN332.js → attachments-D3DJpd3e2.js} +0 -0
- /package/client/dist/assets/{browser-C9rUUxo4.js → browser-9GR11iTi.js} +0 -0
- /package/client/dist/assets/{browser-CEqx11iy.js → browser-BOxg0p3n.js} +0 -0
- /package/client/dist/assets/{browser-543jbxE4.js → browser-BSh8xUWV.js} +0 -0
- /package/client/dist/assets/{browser-CLC0etB_2.js → browser-CaV3BJNY2.js} +0 -0
- /package/client/dist/assets/{browser-0xeW8fUa2.js → browser-CmWGMRGf2.js} +0 -0
- /package/client/dist/assets/{browser-ExmELH702.js → browser-D6wbpBOL2.js} +0 -0
- /package/client/dist/assets/{browser-DyG2l9Wa.js → browser-dsgDU1HB.js} +0 -0
- /package/client/dist/assets/{chat-DagUyoVA.js → chat-B90iLDI4.js} +0 -0
- /package/client/dist/assets/{chat-Cu6F3d6g2.js → chat-CAo0jCnj2.js} +0 -0
- /package/client/dist/assets/{chat-CN8BMAMc.js → chat-CW54IP3u.js} +0 -0
- /package/client/dist/assets/{chat-NQPCBQo72.js → chat-CYHUUW0p2.js} +0 -0
- /package/client/dist/assets/{chat-CCytD3P8.js → chat-D1PXX_p2.js} +0 -0
- /package/client/dist/assets/{chat-IjutwlBg.js → chat-DhpcWjOf.js} +0 -0
- /package/client/dist/assets/{chat-vVpwkOp52.js → chat-cFG-UfRA2.js} +0 -0
- /package/client/dist/assets/{code-Dhb6jbAU.js → code--qUk_yn-.js} +0 -0
- /package/client/dist/assets/{code-Ce-nBIwj.js → code-B1aOMCVV.js} +0 -0
- /package/client/dist/assets/{code-BaG05zK62.js → code-B5UrmjaE2.js} +0 -0
- /package/client/dist/assets/{code-Dap54vOb.js → code-CjBHU0nw.js} +0 -0
- /package/client/dist/assets/{code-_NOCo-Ol2.js → code-Cjv4_HkK2.js} +0 -0
- /package/client/dist/assets/{code-32l6Naxu2.js → code-D7GLAjrz2.js} +0 -0
- /package/client/dist/assets/{code-C5cibF2F.js → code-DZKjfzBN.js} +0 -0
- /package/client/dist/assets/{commands-Cc2WpuXa.js → commands-B9XaopQC.js} +0 -0
- /package/client/dist/assets/{commands-k9wbNYoi.js → commands-BCx1uDIE.js} +0 -0
- /package/client/dist/assets/{commands-CM99Upsz2.js → commands-Bhw9Hqsa2.js} +0 -0
- /package/client/dist/assets/{commands-Bc8y9eNo2.js → commands-D0RnooQF2.js} +0 -0
- /package/client/dist/assets/{commands-Bl3-KVfj.js → commands-DuaQT-it.js} +0 -0
- /package/client/dist/assets/{commands-DASXJD-l.js → commands-MqNuGGO4.js} +0 -0
- /package/client/dist/assets/{commands-C5WQ9blx2.js → commands-oB9q2vy_2.js} +0 -0
- /package/client/dist/assets/{common-CHARW6MZ2.js → common-BXzqeuiC2.js} +0 -0
- /package/client/dist/assets/{common-0aY9HQBP.js → common-BaJ6MF7T.js} +0 -0
- /package/client/dist/assets/{common-CQCJzAQq2.js → common-C-jaOdxz2.js} +0 -0
- /package/client/dist/assets/{common-DNhhqjlJ.js → common-CKjy-R8-.js} +0 -0
- /package/client/dist/assets/{common-YdyZtmaI2.js → common-CRd-Ge5u2.js} +0 -0
- /package/client/dist/assets/{common-5jScBJqt.js → common-DPGR3Tfo.js} +0 -0
- /package/client/dist/assets/{common-BdaRciTu.js → common-wEB9RBdf.js} +0 -0
- /package/client/dist/assets/{explore-ChtxIiSM.js → explore-B_79NLR5.js} +0 -0
- /package/client/dist/assets/{explore-BzdMEpuf.js → explore-D-htKul_.js} +0 -0
- /package/client/dist/assets/{explore-B82VMUJ_.js → explore-D5b2jgvR.js} +0 -0
- /package/client/dist/assets/{explore-DfcUfiPw2.js → explore-Dvp-5qOw2.js} +0 -0
- /package/client/dist/assets/{explore-CbW0381i2.js → explore-FaKfWCr72.js} +0 -0
- /package/client/dist/assets/{explore-BGz1rvQE.js → explore-IS8VyaSZ.js} +0 -0
- /package/client/dist/assets/{explore-yRF7wFSp2.js → explore-OZhWV0Eb2.js} +0 -0
- /package/client/dist/assets/{format-command-D96da4fZ.js → format-command-CHImQv6W.js} +0 -0
- /package/client/dist/assets/{integrations-CnrX7vqw2.js → integrations-B97cGWfo2.js} +0 -0
- /package/client/dist/assets/{integrations-BJvrlcc7.js → integrations-Bp3leAh3.js} +0 -0
- /package/client/dist/assets/{integrations-CPKYkG36.js → integrations-C3Ma3GdM.js} +0 -0
- /package/client/dist/assets/{integrations-BA5pM05t.js → integrations-C5MUA-0-.js} +0 -0
- /package/client/dist/assets/{integrations-B0OBPU9_.js → integrations-CiQbCn_W.js} +0 -0
- /package/client/dist/assets/{integrations-DeJFRyXz2.js → integrations-Du_0rDfi2.js} +0 -0
- /package/client/dist/assets/{integrations-DBou159M2.js → integrations-t4X5UVcx2.js} +0 -0
- /package/client/dist/assets/{jira-mi37H4Kt.js → jira-B1XaR6fj.js} +0 -0
- /package/client/dist/assets/{jira-Srx2P5zS.js → jira-BCHx9zUF.js} +0 -0
- /package/client/dist/assets/{jira-DeotPx6P2.js → jira-BqXyykbt2.js} +0 -0
- /package/client/dist/assets/{jira-BwLBgmfI2.js → jira-BzFvFn7t2.js} +0 -0
- /package/client/dist/assets/{jira-BDgxAFTF2.js → jira-D6IDTIsc2.js} +0 -0
- /package/client/dist/assets/{jira-NwlUCcQD.js → jira-DSZ5xFRl.js} +0 -0
- /package/client/dist/assets/{jira-D3GGzXOI.js → jira-DdEKW9Pu.js} +0 -0
- /package/client/dist/assets/{jobs-D8adm2BX.js → jobs-BX9dP3Qn.js} +0 -0
- /package/client/dist/assets/{jobs-B56vQEkh2.js → jobs-BgHEgCWk2.js} +0 -0
- /package/client/dist/assets/{jobs-K_Y8KAZ2.js → jobs-CU-khJTt.js} +0 -0
- /package/client/dist/assets/{jobs-BYIk6Tg_.js → jobs-Ce0SE81t.js} +0 -0
- /package/client/dist/assets/{jobs-C-lM-iax2.js → jobs-CeOcGHd_2.js} +0 -0
- /package/client/dist/assets/{jobs-CYdevGgT.js → jobs-Ct5v2p6T.js} +0 -0
- /package/client/dist/assets/{jobs-OwM0ZWhI2.js → jobs-m7L0K9uC2.js} +0 -0
- /package/client/dist/assets/{mcp-D3E4_Mmk2.js → mcp-4QbfLPa4.js} +0 -0
- /package/client/dist/assets/{mcp-B6nwJJmR.js → mcp-CXy61khH.js} +0 -0
- /package/client/dist/assets/{mcp-CNgFiTEh.js → mcp-CmOBPDjE.js} +0 -0
- /package/client/dist/assets/{mcp-mupPuPDO2.js → mcp-NlLc9T8u2.js} +0 -0
- /package/client/dist/assets/{mcp-B4irfLJ2.js → mcp-_DUUXTHB2.js} +0 -0
- /package/client/dist/assets/{mcp-BP7PpbDr2.js → mcp-dlOyUQQy2.js} +0 -0
- /package/client/dist/assets/{mcp-BOoEGTSQ.js → mcp-zqSVP7nA.js} +0 -0
- /package/client/dist/assets/{specs-D4z5d8uq.js → specs-57pue7UQ.js} +0 -0
- /package/client/dist/assets/{specs-CWNKAScX2.js → specs-BWQ-0EXt2.js} +0 -0
- /package/client/dist/assets/{specs-B8mwScoM2.js → specs-BYSOlQRw2.js} +0 -0
- /package/client/dist/assets/{specs-B5XOoH-02.js → specs-CkP0B28v2.js} +0 -0
- /package/client/dist/assets/{specs-DgvIRZtM.js → specs-RSYuLgF4.js} +0 -0
- /package/client/dist/assets/{specs-DuRzE5wE.js → specs-d-zU7_3Q.js} +0 -0
- /package/client/dist/assets/{specs-Bj_3fDrQ.js → specs-nM5Cpcqe.js} +0 -0
- /package/client/dist/assets/{terminal-DoMTHedv2.js → terminal-Adi3W-GZ2.js} +0 -0
- /package/client/dist/assets/{terminal-DOwfkxqa2.js → terminal-BA6FCZna2.js} +0 -0
- /package/client/dist/assets/{terminal-CH0fdHvP.js → terminal-BCIUSkrg.js} +0 -0
- /package/client/dist/assets/{terminal-B2sExUis.js → terminal-C8KlD61D.js} +0 -0
- /package/client/dist/assets/{terminal-DjSSa5qP.js → terminal-D3RTuBwy.js} +0 -0
- /package/client/dist/assets/{terminal-w0i-OCp32.js → terminal-DCkOEjSj2.js} +0 -0
- /package/client/dist/assets/{terminal-CPMigUX7.js → terminal-DOuNm2BI.js} +0 -0
- /package/client/dist/assets/{tickets-D00mSt832.js → tickets-B2q36GlQ2.js} +0 -0
- /package/client/dist/assets/{tickets-CQTana1u.js → tickets-Bsyv_znj.js} +0 -0
- /package/client/dist/assets/{tickets-D7CSuWjO.js → tickets-C_UPra_1.js} +0 -0
- /package/client/dist/assets/{tickets-heDAaj8C2.js → tickets-D72LbUtU2.js} +0 -0
- /package/client/dist/assets/{tickets-DvbFg_-c2.js → tickets-DDjU7UfE2.js} +0 -0
- /package/client/dist/assets/{tickets-onKZz6Dd.js → tickets-DR4ZrPMf.js} +0 -0
- /package/client/dist/assets/{tickets-Dq7HDy8n.js → tickets-DiUA3rXq.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={title:`Agentes`,subtitle:`Gestiona los perfiles de agentes y el catálogo (upstream + personalizados) de este proyecto.`,tabs:{profiles:`Perfiles`,usage:`Uso`,catalog:`Catálogo`},banner:{title:`El pipeline con perfiles requiere specrails-core {{required}}+`,body:`Este proyecto tiene <code>{{version}}</code>. Ejecuta <code>{{command}}</code> dentro del proyecto para activar el modo perfiles. Los perfiles que crees aquí se guardarán igualmente; simplemente no afectarán al pipeline hasta que actualices core.`,unknownVersion:`desconocida`}},t={loading:`Cargando catálogo…`,aiEditChipLabel:`Edición IA · {{agentId}}`,errors:{loadFailed:`Error al cargar el catálogo: {{status}}`,bodyLoadFailed:`Error al cargar el cuerpo del agente: {{status}}`,generateFailed:`Error al generar: {{status}}`,agentLoadFailed:`Error al cargar: {{status}}`},templates:{title:`Biblioteca de plantillas de agentes`,countOf:`{{shown}} de {{total}}`,description:`Empieza desde una plantilla seleccionada de ingeniería, producto, ciencia, salud, legal y más. Elige una y ábrela en el Studio para revisarla y editarla antes de guardar.`,searchPlaceholder:`Buscar por nombre, descripción, etiqueta o categoría…`,allCategories:`Todas`,tagFilter:`Filtro de etiquetas:`,noMatch:`Ninguna plantilla coincide con tus filtros.`,clearFilters:`Limpiar filtros`,openInStudio:`Abrir en el Studio →`,tip:`Consejo: haz clic en una etiqueta de cualquier tarjeta para filtrar por ella.`},generate:{title:`Generar un agente personalizado`,agentIdLabel:`Id del agente`,agentIdHint:`Debe empezar por <code>custom-</code>.`,descriptionLabel:`Describe qué debe hacer este agente`,descriptionPlaceholder:`p. ej. Revisar cambios de Terraform/IaC y señalar errores de configuración de seguridad, permisos IAM excesivos y buckets S3 públicos antes del merge. Conservador y conciso.`,note:`Claude redactará un cuerpo <code>.md</code> completo. Lo revisarás en el Studio y podrás editarlo antes de guardar. Esto lanza una invocación puntual de claude y puede tardar hasta 90 segundos.`,generating:`Generando…`,generateButton:`Generar`},empty:{title:`No hay agentes instalados`,body:`Ejecuta <code>{{command}}</code> en este proyecto para instalar los agentes upstream, o crea ahora un agente personalizado.`},actions:{template:`Plantilla`,templateTitle:`Empezar desde una plantilla`,generate:`Generar`,generateWithClaude:`Generar con Claude`,blank:`En blanco`,blankTitle:`Empezar desde una plantilla en blanco`},sidebar:{title:`Catálogo`,createLabel:`Crear un agente personalizado:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Incluidos con specrails-core; solo lectura.`,custom:`Personalizados ({{count}})`,customDescription:`Los archivos custom-*.md de tu proyecto. Usa Plantilla / Generar / En blanco arriba para crear uno.`,noCustomAgents:`Aún no hay agentes personalizados.`},detail:{defaultModel:`modelo por defecto: {{model}}`,aiEdit:`Edición IA`,aiEditTitle:`Refina este agente iterativamente con IA`,readOnly:`solo lectura`,editableHint:`editable — usa Editar arriba`},kind:{upstream:`upstream`,custom:`personalizado`}},n={loading:`Cargando perfiles…`,selectPrompt:`Selecciona un perfil para editarlo`,errors:{listFailed:`Error al listar: {{status}}`,loadFailed:`Error al cargar: {{status}}`,migrationFailed:`Error en la migración: {{status}}`,createFailed:`Error al crear: {{status}}`,duplicateFailed:`Error al duplicar: {{status}}`,deleteFailed:`Error al eliminar: {{status}}`,saveFailed:`Error al guardar: {{status}}`},toasts:{migrated:`Perfil migrado`,migratedDescription:`perfil default creado a partir de tus agentes actuales`,migrationFailed:`Error en la migración`,created:`Perfil creado`,createFailed:`No se pudo crear el perfil`,duplicated:`Perfil duplicado`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`No se pudo duplicar el perfil`,deleted:`Perfil eliminado`,deleteFailed:`No se pudo eliminar el perfil`,saved:`Perfil guardado`,saveFailed:`No se pudo guardar el perfil`,savedWithUntargeted:`Perfil guardado con agentes sin asignar`,savedWithUntargetedDescription:`Ninguna regla de enrutado apunta a: {{agents}}. Añade una regla por etiquetas o reorienta la regla por defecto si quieres que se ejecuten.`},createDialog:{title:`Nuevo perfil`,description:`Elige un nombre en minúsculas y kebab-case (letras, dígitos y guiones).`,confirmLabel:`Crear`,invalidHint:`Debe empezar por una letra o un dígito y contener solo letras minúsculas, dígitos y guiones.`},duplicateDialog:{title:`Duplicar «{{name}}»`,description:`Nombre para el nuevo perfil.`,invalidHint:`Solo minúsculas en kebab-case.`},deleteDialog:{title:`¿Eliminar el perfil «{{name}}»?`,description:`Esta acción no se puede deshacer. Los jobs ya lanzados con este perfil conservan su snapshot; los próximos lanzamientos usarán el orden de resolución.`},empty:{title:`Aún no hay perfiles`,body:`Los perfiles te permiten guardar combinaciones de orquestador + agentes + enrutado y elegir una por rail.`,migrateButton:`Migrar desde los agentes actuales`,blankButton:`Perfil en blanco`,migrateExplainer:`«Migrar» lee los modelos del frontmatter de tu <code>.claude/agents/</code> actual y crea un perfil <code>default</code> que replica el comportamiento de hoy — sin pérdidas.`},sidebar:{title:`Perfiles`,teamDefault:`(por defecto del equipo)`},editorFooter:{fixValidationIssues:`Corrige los problemas de validación antes de guardar`,issuesToResolve_one:`{{count}} problema por resolver`,issuesToResolve_other:`{{count}} problemas por resolver`}},r={title:`Uso de perfiles`,windowLabel:`{{days}}d`,subtitleEmpty:`Jobs lanzados por perfil en la ventana seleccionada.`,subtitle:`Jobs lanzados por perfil en los últimos {{count}} días.`,empty:`Aún no hay jobs con perfil.`,jobsTooltip:`jobs`,jobsLabel_one:`job`,jobsLabel_other:`jobs`,successRateTooltip:`tasa de éxito`,okSuffix:`ok`,avgDurationTooltip:`duración media`,avgTokensTooltip:`media de tokens`,tokensSuffix:`tok`},i={addTitle:`Añadir regla de enrutado`,editTitle:`Editar regla de enrutado`,addDescription:`Añade una regla de enrutado por etiquetas usando etiquetas en minúsculas y kebab-case.`,editDescription:`Actualiza las etiquetas o el agente de destino de esta regla.`,tagsLabel:`Etiquetas`,tagsHint:`Separadas por comas. Usa minúsculas en kebab-case, como <code>frontend</code> o <code>api-design</code>.`,invalidTags_one:`Etiqueta no válida: {{tags}}. Las etiquetas solo pueden contener letras minúsculas, dígitos y guiones.`,invalidTags_other:`Etiquetas no válidas: {{tags}}. Las etiquetas solo pueden contener letras minúsculas, dígitos y guiones.`,routeToLabel:`Enrutar a`,routeToHint:`Solo los agentes de la cadena de este perfil pueden ser destinos de enrutado.`,addRule:`Añadir regla`,saveChanges:`Guardar cambios`},a={profileTitle:`Perfil de agentes para este rail`,noProfile:`Sin perfil`,modelTitle:`Modelo para este rail
|
|
1
|
+
var e={title:`Agentes`,subtitle:`Gestiona los perfiles de agentes y el catálogo (upstream + personalizados) de este proyecto.`,tabs:{profiles:`Perfiles`,usage:`Uso`,catalog:`Catálogo`},banner:{title:`El pipeline con perfiles requiere specrails-core {{required}}+`,body:`Este proyecto tiene <code>{{version}}</code>. Ejecuta <code>{{command}}</code> dentro del proyecto para activar el modo perfiles. Los perfiles que crees aquí se guardarán igualmente; simplemente no afectarán al pipeline hasta que actualices core.`,unknownVersion:`desconocida`}},t={loading:`Cargando catálogo…`,aiEditChipLabel:`Edición IA · {{agentId}}`,errors:{loadFailed:`Error al cargar el catálogo: {{status}}`,bodyLoadFailed:`Error al cargar el cuerpo del agente: {{status}}`,generateFailed:`Error al generar: {{status}}`,agentLoadFailed:`Error al cargar: {{status}}`},templates:{title:`Biblioteca de plantillas de agentes`,countOf:`{{shown}} de {{total}}`,description:`Empieza desde una plantilla seleccionada de ingeniería, producto, ciencia, salud, legal y más. Elige una y ábrela en el Studio para revisarla y editarla antes de guardar.`,searchPlaceholder:`Buscar por nombre, descripción, etiqueta o categoría…`,allCategories:`Todas`,tagFilter:`Filtro de etiquetas:`,noMatch:`Ninguna plantilla coincide con tus filtros.`,clearFilters:`Limpiar filtros`,openInStudio:`Abrir en el Studio →`,tip:`Consejo: haz clic en una etiqueta de cualquier tarjeta para filtrar por ella.`},generate:{title:`Generar un agente personalizado`,agentIdLabel:`Id del agente`,agentIdHint:`Debe empezar por <code>custom-</code>.`,descriptionLabel:`Describe qué debe hacer este agente`,descriptionPlaceholder:`p. ej. Revisar cambios de Terraform/IaC y señalar errores de configuración de seguridad, permisos IAM excesivos y buckets S3 públicos antes del merge. Conservador y conciso.`,note:`Claude redactará un cuerpo <code>.md</code> completo. Lo revisarás en el Studio y podrás editarlo antes de guardar. Esto lanza una invocación puntual de claude y puede tardar hasta 90 segundos.`,generating:`Generando…`,generateButton:`Generar`},empty:{title:`No hay agentes instalados`,body:`Ejecuta <code>{{command}}</code> en este proyecto para instalar los agentes upstream, o crea ahora un agente personalizado.`},actions:{template:`Plantilla`,templateTitle:`Empezar desde una plantilla`,generate:`Generar`,generateWithClaude:`Generar con Claude`,blank:`En blanco`,blankTitle:`Empezar desde una plantilla en blanco`},sidebar:{title:`Catálogo`,createLabel:`Crear un agente personalizado:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Incluidos con specrails-core; solo lectura.`,custom:`Personalizados ({{count}})`,customDescription:`Los archivos custom-*.md de tu proyecto. Usa Plantilla / Generar / En blanco arriba para crear uno.`,noCustomAgents:`Aún no hay agentes personalizados.`},detail:{defaultModel:`modelo por defecto: {{model}}`,aiEdit:`Edición IA`,aiEditTitle:`Refina este agente iterativamente con IA`,readOnly:`solo lectura`,editableHint:`editable — usa Editar arriba`},kind:{upstream:`upstream`,custom:`personalizado`}},n={loading:`Cargando perfiles…`,selectPrompt:`Selecciona un perfil para editarlo`,errors:{listFailed:`Error al listar: {{status}}`,loadFailed:`Error al cargar: {{status}}`,migrationFailed:`Error en la migración: {{status}}`,createFailed:`Error al crear: {{status}}`,duplicateFailed:`Error al duplicar: {{status}}`,deleteFailed:`Error al eliminar: {{status}}`,saveFailed:`Error al guardar: {{status}}`},toasts:{migrated:`Perfil migrado`,migratedDescription:`perfil default creado a partir de tus agentes actuales`,migrationFailed:`Error en la migración`,created:`Perfil creado`,createFailed:`No se pudo crear el perfil`,duplicated:`Perfil duplicado`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`No se pudo duplicar el perfil`,deleted:`Perfil eliminado`,deleteFailed:`No se pudo eliminar el perfil`,saved:`Perfil guardado`,saveFailed:`No se pudo guardar el perfil`,savedWithUntargeted:`Perfil guardado con agentes sin asignar`,savedWithUntargetedDescription:`Ninguna regla de enrutado apunta a: {{agents}}. Añade una regla por etiquetas o reorienta la regla por defecto si quieres que se ejecuten.`},createDialog:{title:`Nuevo perfil`,description:`Elige un nombre en minúsculas y kebab-case (letras, dígitos y guiones).`,confirmLabel:`Crear`,invalidHint:`Debe empezar por una letra o un dígito y contener solo letras minúsculas, dígitos y guiones.`},duplicateDialog:{title:`Duplicar «{{name}}»`,description:`Nombre para el nuevo perfil.`,invalidHint:`Solo minúsculas en kebab-case.`},deleteDialog:{title:`¿Eliminar el perfil «{{name}}»?`,description:`Esta acción no se puede deshacer. Los jobs ya lanzados con este perfil conservan su snapshot; los próximos lanzamientos usarán el orden de resolución.`},empty:{title:`Aún no hay perfiles`,body:`Los perfiles te permiten guardar combinaciones de orquestador + agentes + enrutado y elegir una por rail.`,migrateButton:`Migrar desde los agentes actuales`,blankButton:`Perfil en blanco`,migrateExplainer:`«Migrar» lee los modelos del frontmatter de tu <code>.claude/agents/</code> actual y crea un perfil <code>default</code> que replica el comportamiento de hoy — sin pérdidas.`},sidebar:{title:`Perfiles`,teamDefault:`(por defecto del equipo)`},editorFooter:{fixValidationIssues:`Corrige los problemas de validación antes de guardar`,issuesToResolve_one:`{{count}} problema por resolver`,issuesToResolve_other:`{{count}} problemas por resolver`}},r={title:`Uso de perfiles`,windowLabel:`{{days}}d`,subtitleEmpty:`Jobs lanzados por perfil en la ventana seleccionada.`,subtitle:`Jobs lanzados por perfil en los últimos {{count}} días.`,empty:`Aún no hay jobs con perfil.`,jobsTooltip:`jobs`,jobsLabel_one:`job`,jobsLabel_other:`jobs`,successRateTooltip:`tasa de éxito`,okSuffix:`ok`,avgDurationTooltip:`duración media`,avgTokensTooltip:`media de tokens`,tokensSuffix:`tok`},i={addTitle:`Añadir regla de enrutado`,editTitle:`Editar regla de enrutado`,addDescription:`Añade una regla de enrutado por etiquetas usando etiquetas en minúsculas y kebab-case.`,editDescription:`Actualiza las etiquetas o el agente de destino de esta regla.`,tagsLabel:`Etiquetas`,tagsHint:`Separadas por comas. Usa minúsculas en kebab-case, como <code>frontend</code> o <code>api-design</code>.`,invalidTags_one:`Etiqueta no válida: {{tags}}. Las etiquetas solo pueden contener letras minúsculas, dígitos y guiones.`,invalidTags_other:`Etiquetas no válidas: {{tags}}. Las etiquetas solo pueden contener letras minúsculas, dígitos y guiones.`,routeToLabel:`Enrutar a`,routeToHint:`Solo los agentes de la cadena de este perfil pueden ser destinos de enrutado.`,addRule:`Añadir regla`,saveChanges:`Guardar cambios`},a={profileTitle:`Perfil de agentes para este rail`,noProfile:`Sin perfil`,modelTitle:`Modelo para este rail Freestyle`,loopModelTitle:`Modelo para este loop`,engineTitle:`Motor de IA para este rail`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={title:`Agents`,subtitle:`管理此项目的 Agent Profile 和目录(上游 + 自定义)。`,tabs:{profiles:`Profile`,usage:`用量`,catalog:`目录`},banner:{title:`Profile 感知流水线需要 specrails-core {{required}}+`,body:`此项目当前为 <code>{{version}}</code>。在项目内运行 <code>{{command}}</code> 以解锁 Profile 模式。在此创建的 Profile 仍会保存,只是在 core 更新前不会影响流水线。`,unknownVersion:`未知`}},t={loading:`正在加载目录…`,aiEditChipLabel:`AI 编辑 · {{agentId}}`,errors:{loadFailed:`目录加载失败:{{status}}`,bodyLoadFailed:`Agent 正文加载失败:{{status}}`,generateFailed:`生成失败:{{status}}`,agentLoadFailed:`加载失败:{{status}}`},templates:{title:`Agent 模板库`,countOf:`{{shown}} / {{total}}`,description:`从精选模板开始,覆盖工程、产品、科学、健康、法律等领域。挑选一个并在 Studio 中打开,审阅和编辑后再保存。`,searchPlaceholder:`按名称、描述、标签或分类搜索…`,allCategories:`全部`,tagFilter:`标签筛选:`,noMatch:`没有符合筛选条件的模板。`,clearFilters:`清除筛选`,openInStudio:`在 Studio 中打开 →`,tip:`提示:点击任意卡片上的标签即可按该标签筛选。`},generate:{title:`生成自定义 Agent`,agentIdLabel:`Agent ID`,agentIdHint:`必须以 <code>custom-</code> 开头。`,descriptionLabel:`描述此 Agent 的职责`,descriptionPlaceholder:`例如:审查 Terraform/IaC 变更,在合并前标记安全配置错误、过度的 IAM 权限和公开的 S3 存储桶。风格保守、简洁。`,note:`Claude 会起草完整的 <code>.md</code> 正文。你将在 Studio 中审阅,并可在保存前编辑。此操作会启动一次性的 claude 调用,最长可能需要 90 秒。`,generating:`正在生成…`,generateButton:`生成`},empty:{title:`尚未安装任何 Agent`,body:`在此项目中运行 <code>{{command}}</code> 安装上游 Agent,或立即创建一个自定义 Agent。`},actions:{template:`模板`,templateTitle:`从模板开始`,generate:`生成`,generateWithClaude:`用 Claude 生成`,blank:`空白`,blankTitle:`从空白模板开始`},sidebar:{title:`目录`,createLabel:`创建自定义 Agent:`},sections:{upstream:`上游({{count}})`,upstreamDescription:`由 specrails-core 提供;只读。`,custom:`自定义({{count}})`,customDescription:`项目中的 custom-*.md 文件。使用上方的模板 / 生成 / 空白来创建。`,noCustomAgents:`暂无自定义 Agent。`},detail:{defaultModel:`默认模型:{{model}}`,aiEdit:`AI 编辑`,aiEditTitle:`用 AI 迭代优化此 Agent`,readOnly:`只读`,editableHint:`可编辑——使用上方的“编辑”`},kind:{upstream:`上游`,custom:`自定义`}},n={loading:`正在加载 Profile…`,selectPrompt:`选择要编辑的 Profile`,errors:{listFailed:`列表加载失败:{{status}}`,loadFailed:`加载失败:{{status}}`,migrationFailed:`迁移失败:{{status}}`,createFailed:`创建失败:{{status}}`,duplicateFailed:`复制失败:{{status}}`,deleteFailed:`删除失败:{{status}}`,saveFailed:`保存失败:{{status}}`},toasts:{migrated:`Profile 已迁移`,migratedDescription:`已根据当前 Agent 创建 default Profile`,migrationFailed:`迁移失败`,created:`Profile 已创建`,createFailed:`创建 Profile 失败`,duplicated:`Profile 已复制`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`复制 Profile 失败`,deleted:`Profile 已删除`,deleteFailed:`删除 Profile 失败`,saved:`Profile 已保存`,saveFailed:`保存 Profile 失败`,savedWithUntargeted:`Profile 已保存,但存在未被路由的 Agent`,savedWithUntargetedDescription:`没有路由规则指向:{{agents}}。如需让它们运行,请添加标签规则或调整默认规则的目标。`},createDialog:{title:`新建 Profile`,description:`请使用小写 kebab-case 名称(字母、数字和连字符)。`,confirmLabel:`创建`,invalidHint:`必须以字母或数字开头,且只能包含小写字母、数字和连字符。`},duplicateDialog:{title:`复制“{{name}}”`,description:`新 Profile 的名称。`,invalidHint:`仅限小写 kebab-case。`},deleteDialog:{title:`删除 Profile“{{name}}”?`,description:`此操作无法撤销。已使用此 Profile 启动的任务会保留其快照;之后的启动将回退到解析顺序。`},empty:{title:`暂无 Profile`,body:`Profile 可保存编排器 + Agent + 路由的组合,并为每条 rail 单独选用。`,migrateButton:`从当前 Agent 迁移`,blankButton:`空白 Profile`,migrateExplainer:`“迁移”会读取现有 <code>.claude/agents/</code> frontmatter 中的模型,并创建一个 <code>default</code> Profile,完整复刻当前行为——零损失。`},sidebar:{title:`Profile`,teamDefault:`(团队默认)`},editorFooter:{fixValidationIssues:`保存前请先修复校验问题`,issuesToResolve_one:`{{count}} 个待解决问题`,issuesToResolve_other:`{{count}} 个待解决问题`}},r={title:`Profile 用量`,windowLabel:`{{days}}天`,subtitleEmpty:`所选时间窗口内各 Profile 启动的任务数。`,subtitle:`最近 {{count}} 天内各 Profile 启动的任务数。`,empty:`暂无使用 Profile 的任务。`,jobsTooltip:`任务`,jobsLabel_one:`个任务`,jobsLabel_other:`个任务`,successRateTooltip:`成功率`,okSuffix:`成功`,avgDurationTooltip:`平均时长`,avgTokensTooltip:`平均 token 数`,tokensSuffix:`tok`},i={addTitle:`添加路由规则`,editTitle:`编辑路由规则`,addDescription:`添加按标签匹配的路由规则,标签使用小写 kebab-case。`,editDescription:`更新此规则的标签或目标 Agent。`,tagsLabel:`标签`,tagsHint:`以逗号分隔。使用小写 kebab-case,如 <code>frontend</code> 或 <code>api-design</code>。`,invalidTags_one:`无效标签:{{tags}}。标签只能使用小写字母、数字和连字符。`,invalidTags_other:`无效标签:{{tags}}。标签只能使用小写字母、数字和连字符。`,routeToLabel:`路由到`,routeToHint:`只有此 Profile 链中的 Agent 才能作为路由目标。`,addRule:`添加规则`,saveChanges:`保存更改`},a={profileTitle:`此 rail 使用的 Agent Profile`,noProfile:`无 Profile`,modelTitle:`此
|
|
1
|
+
var e={title:`Agents`,subtitle:`管理此项目的 Agent Profile 和目录(上游 + 自定义)。`,tabs:{profiles:`Profile`,usage:`用量`,catalog:`目录`},banner:{title:`Profile 感知流水线需要 specrails-core {{required}}+`,body:`此项目当前为 <code>{{version}}</code>。在项目内运行 <code>{{command}}</code> 以解锁 Profile 模式。在此创建的 Profile 仍会保存,只是在 core 更新前不会影响流水线。`,unknownVersion:`未知`}},t={loading:`正在加载目录…`,aiEditChipLabel:`AI 编辑 · {{agentId}}`,errors:{loadFailed:`目录加载失败:{{status}}`,bodyLoadFailed:`Agent 正文加载失败:{{status}}`,generateFailed:`生成失败:{{status}}`,agentLoadFailed:`加载失败:{{status}}`},templates:{title:`Agent 模板库`,countOf:`{{shown}} / {{total}}`,description:`从精选模板开始,覆盖工程、产品、科学、健康、法律等领域。挑选一个并在 Studio 中打开,审阅和编辑后再保存。`,searchPlaceholder:`按名称、描述、标签或分类搜索…`,allCategories:`全部`,tagFilter:`标签筛选:`,noMatch:`没有符合筛选条件的模板。`,clearFilters:`清除筛选`,openInStudio:`在 Studio 中打开 →`,tip:`提示:点击任意卡片上的标签即可按该标签筛选。`},generate:{title:`生成自定义 Agent`,agentIdLabel:`Agent ID`,agentIdHint:`必须以 <code>custom-</code> 开头。`,descriptionLabel:`描述此 Agent 的职责`,descriptionPlaceholder:`例如:审查 Terraform/IaC 变更,在合并前标记安全配置错误、过度的 IAM 权限和公开的 S3 存储桶。风格保守、简洁。`,note:`Claude 会起草完整的 <code>.md</code> 正文。你将在 Studio 中审阅,并可在保存前编辑。此操作会启动一次性的 claude 调用,最长可能需要 90 秒。`,generating:`正在生成…`,generateButton:`生成`},empty:{title:`尚未安装任何 Agent`,body:`在此项目中运行 <code>{{command}}</code> 安装上游 Agent,或立即创建一个自定义 Agent。`},actions:{template:`模板`,templateTitle:`从模板开始`,generate:`生成`,generateWithClaude:`用 Claude 生成`,blank:`空白`,blankTitle:`从空白模板开始`},sidebar:{title:`目录`,createLabel:`创建自定义 Agent:`},sections:{upstream:`上游({{count}})`,upstreamDescription:`由 specrails-core 提供;只读。`,custom:`自定义({{count}})`,customDescription:`项目中的 custom-*.md 文件。使用上方的模板 / 生成 / 空白来创建。`,noCustomAgents:`暂无自定义 Agent。`},detail:{defaultModel:`默认模型:{{model}}`,aiEdit:`AI 编辑`,aiEditTitle:`用 AI 迭代优化此 Agent`,readOnly:`只读`,editableHint:`可编辑——使用上方的“编辑”`},kind:{upstream:`上游`,custom:`自定义`}},n={loading:`正在加载 Profile…`,selectPrompt:`选择要编辑的 Profile`,errors:{listFailed:`列表加载失败:{{status}}`,loadFailed:`加载失败:{{status}}`,migrationFailed:`迁移失败:{{status}}`,createFailed:`创建失败:{{status}}`,duplicateFailed:`复制失败:{{status}}`,deleteFailed:`删除失败:{{status}}`,saveFailed:`保存失败:{{status}}`},toasts:{migrated:`Profile 已迁移`,migratedDescription:`已根据当前 Agent 创建 default Profile`,migrationFailed:`迁移失败`,created:`Profile 已创建`,createFailed:`创建 Profile 失败`,duplicated:`Profile 已复制`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`复制 Profile 失败`,deleted:`Profile 已删除`,deleteFailed:`删除 Profile 失败`,saved:`Profile 已保存`,saveFailed:`保存 Profile 失败`,savedWithUntargeted:`Profile 已保存,但存在未被路由的 Agent`,savedWithUntargetedDescription:`没有路由规则指向:{{agents}}。如需让它们运行,请添加标签规则或调整默认规则的目标。`},createDialog:{title:`新建 Profile`,description:`请使用小写 kebab-case 名称(字母、数字和连字符)。`,confirmLabel:`创建`,invalidHint:`必须以字母或数字开头,且只能包含小写字母、数字和连字符。`},duplicateDialog:{title:`复制“{{name}}”`,description:`新 Profile 的名称。`,invalidHint:`仅限小写 kebab-case。`},deleteDialog:{title:`删除 Profile“{{name}}”?`,description:`此操作无法撤销。已使用此 Profile 启动的任务会保留其快照;之后的启动将回退到解析顺序。`},empty:{title:`暂无 Profile`,body:`Profile 可保存编排器 + Agent + 路由的组合,并为每条 rail 单独选用。`,migrateButton:`从当前 Agent 迁移`,blankButton:`空白 Profile`,migrateExplainer:`“迁移”会读取现有 <code>.claude/agents/</code> frontmatter 中的模型,并创建一个 <code>default</code> Profile,完整复刻当前行为——零损失。`},sidebar:{title:`Profile`,teamDefault:`(团队默认)`},editorFooter:{fixValidationIssues:`保存前请先修复校验问题`,issuesToResolve_one:`{{count}} 个待解决问题`,issuesToResolve_other:`{{count}} 个待解决问题`}},r={title:`Profile 用量`,windowLabel:`{{days}}天`,subtitleEmpty:`所选时间窗口内各 Profile 启动的任务数。`,subtitle:`最近 {{count}} 天内各 Profile 启动的任务数。`,empty:`暂无使用 Profile 的任务。`,jobsTooltip:`任务`,jobsLabel_one:`个任务`,jobsLabel_other:`个任务`,successRateTooltip:`成功率`,okSuffix:`成功`,avgDurationTooltip:`平均时长`,avgTokensTooltip:`平均 token 数`,tokensSuffix:`tok`},i={addTitle:`添加路由规则`,editTitle:`编辑路由规则`,addDescription:`添加按标签匹配的路由规则,标签使用小写 kebab-case。`,editDescription:`更新此规则的标签或目标 Agent。`,tagsLabel:`标签`,tagsHint:`以逗号分隔。使用小写 kebab-case,如 <code>frontend</code> 或 <code>api-design</code>。`,invalidTags_one:`无效标签:{{tags}}。标签只能使用小写字母、数字和连字符。`,invalidTags_other:`无效标签:{{tags}}。标签只能使用小写字母、数字和连字符。`,routeToLabel:`路由到`,routeToHint:`只有此 Profile 链中的 Agent 才能作为路由目标。`,addRule:`添加规则`,saveChanges:`保存更改`},a={profileTitle:`此 rail 使用的 Agent Profile`,noProfile:`无 Profile`,modelTitle:`此 Freestyle rail 使用的模型`,loopModelTitle:`此 Loop 使用的模型`,engineTitle:`此 rail 使用的 AI 引擎`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./chunk-BNv3lrIs.js";var t=e({catalog:()=>r,default:()=>c,page:()=>n,profiles:()=>i,railSelectors:()=>s,routingRule:()=>o,usage:()=>a}),n={title:`Agents`,subtitle:`Manage agent profiles and the catalog (upstream + custom) for this project.`,tabs:{profiles:`Profiles`,usage:`Usage`,catalog:`Catalog`},banner:{title:`Profile-aware pipeline requires specrails-core {{required}}+`,body:`This project has <code>{{version}}</code>. Run <code>{{command}}</code> inside the project to unlock profile mode. Profiles you create here will still save; they just won't affect the pipeline until core is updated.`,unknownVersion:`unknown`}},r={loading:`Loading catalog…`,aiEditChipLabel:`AI Edit · {{agentId}}`,errors:{loadFailed:`Catalog load failed: {{status}}`,bodyLoadFailed:`Agent body load failed: {{status}}`,generateFailed:`Generate failed: {{status}}`,agentLoadFailed:`Load failed: {{status}}`},templates:{title:`Agent template library`,countOf:`{{shown}} of {{total}}`,description:`Start from a curated template across engineering, product, science, health, legal, and more. Pick one and open it in the Studio for review and editing before saving.`,searchPlaceholder:`Search by name, description, tag, or category…`,allCategories:`All`,tagFilter:`Tag filter:`,noMatch:`No templates match your filters.`,clearFilters:`Clear filters`,openInStudio:`Open in Studio →`,tip:`Tip: click a tag pill on any card to filter by that tag.`},generate:{title:`Generate a custom agent`,agentIdLabel:`Agent id`,agentIdHint:`Must start with <code>custom-</code>.`,descriptionLabel:`Describe what this agent should do`,descriptionPlaceholder:`e.g. Review Terraform/IaC changes and flag security misconfigurations, excessive IAM permissions, and public S3 buckets before merging. Conservative and terse.`,note:`Claude will draft a full <code>.md</code> body. You'll review it in the Studio and can edit before saving. This spawns a one-shot claude invocation and can take up to 90 seconds.`,generating:`Generating…`,generateButton:`Generate`},empty:{title:`No agents installed`,body:`Run <code>{{command}}</code> in this project to install the upstream agents, or create a custom agent now.`},actions:{template:`Template`,templateTitle:`Start from a template`,generate:`Generate`,generateWithClaude:`Generate with Claude`,blank:`Blank`,blankTitle:`Start from a blank template`},sidebar:{title:`Catalog`,createLabel:`Create a custom agent:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Shipped by specrails-core; read-only.`,custom:`Custom ({{count}})`,customDescription:`Your project's custom-*.md files. Use Template / Generate / Blank above to create one.`,noCustomAgents:`No custom agents yet.`},detail:{defaultModel:`default model: {{model}}`,aiEdit:`AI Edit`,aiEditTitle:`Iteratively refine this agent with AI`,readOnly:`read-only`,editableHint:`editable — use Edit above`},kind:{upstream:`upstream`,custom:`custom`}},i={loading:`Loading profiles…`,selectPrompt:`Select a profile to edit`,errors:{listFailed:`List failed: {{status}}`,loadFailed:`Load failed: {{status}}`,migrationFailed:`Migration failed: {{status}}`,createFailed:`Create failed: {{status}}`,duplicateFailed:`Duplicate failed: {{status}}`,deleteFailed:`Delete failed: {{status}}`,saveFailed:`Save failed: {{status}}`},toasts:{migrated:`Profile migrated`,migratedDescription:`default profile created from your current agents`,migrationFailed:`Migration failed`,created:`Profile created`,createFailed:`Failed to create profile`,duplicated:`Profile duplicated`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`Failed to duplicate profile`,deleted:`Profile deleted`,deleteFailed:`Failed to delete profile`,saved:`Profile saved`,saveFailed:`Failed to save profile`,savedWithUntargeted:`Profile saved with untargeted agents`,savedWithUntargetedDescription:`No routing rule points to: {{agents}}. Add a tag rule or retarget the default rule if you want them to run.`},createDialog:{title:`New profile`,description:`Pick a lowercase kebab-case name (letters, digits, and hyphens).`,confirmLabel:`Create`,invalidHint:`Must start with a letter or digit and contain only lowercase letters, digits, and hyphens.`},duplicateDialog:{title:`Duplicate "{{name}}"`,description:`Name for the new profile.`,invalidHint:`Lowercase kebab-case only.`},deleteDialog:{title:`Delete profile "{{name}}"?`,description:`This cannot be undone. Jobs already launched with this profile keep their snapshot; future launches will fall back to the resolution order.`},empty:{title:`No profiles yet`,body:`Profiles let you save orchestrator + agent + routing combinations and pick one per rail.`,migrateButton:`Migrate from current agents`,blankButton:`Blank profile`,migrateExplainer:`"Migrate" reads your existing <code>.claude/agents/</code> frontmatter models and creates a <code>default</code> profile mirroring today's behavior — zero-loss.`},sidebar:{title:`Profiles`,teamDefault:`(team default)`},editorFooter:{fixValidationIssues:`Fix validation issues before saving`,issuesToResolve_one:`{{count}} issue to resolve`,issuesToResolve_other:`{{count}} issues to resolve`}},a={title:`Profile usage`,windowLabel:`{{days}}d`,subtitleEmpty:`Jobs launched per profile in the selected window.`,subtitle:`Jobs launched per profile in the last {{count}} days.`,empty:`No profile-scoped jobs yet.`,jobsTooltip:`jobs`,jobsLabel_one:`job`,jobsLabel_other:`jobs`,successRateTooltip:`success rate`,okSuffix:`ok`,avgDurationTooltip:`avg duration`,avgTokensTooltip:`avg tokens`,tokensSuffix:`tok`},o={addTitle:`Add routing rule`,editTitle:`Edit routing rule`,addDescription:`Add a tag-matched routing rule using lowercase kebab-case tags.`,editDescription:`Update the tags or target agent for this rule.`,tagsLabel:`Tags`,tagsHint:`Comma-separated. Use lowercase kebab-case like <code>frontend</code> or <code>api-design</code>.`,invalidTags_one:`Invalid tag: {{tags}}. Tags must use lowercase letters, digits, and hyphens only.`,invalidTags_other:`Invalid tags: {{tags}}. Tags must use lowercase letters, digits, and hyphens only.`,routeToLabel:`Route to`,routeToHint:`Only agents in this profile's chain can be routing targets.`,addRule:`Add rule`,saveChanges:`Save changes`},s={profileTitle:`Agent profile for this rail`,noProfile:`No profile`,modelTitle:`Model for this
|
|
1
|
+
import{r as e}from"./chunk-BNv3lrIs.js";var t=e({catalog:()=>r,default:()=>c,page:()=>n,profiles:()=>i,railSelectors:()=>s,routingRule:()=>o,usage:()=>a}),n={title:`Agents`,subtitle:`Manage agent profiles and the catalog (upstream + custom) for this project.`,tabs:{profiles:`Profiles`,usage:`Usage`,catalog:`Catalog`},banner:{title:`Profile-aware pipeline requires specrails-core {{required}}+`,body:`This project has <code>{{version}}</code>. Run <code>{{command}}</code> inside the project to unlock profile mode. Profiles you create here will still save; they just won't affect the pipeline until core is updated.`,unknownVersion:`unknown`}},r={loading:`Loading catalog…`,aiEditChipLabel:`AI Edit · {{agentId}}`,errors:{loadFailed:`Catalog load failed: {{status}}`,bodyLoadFailed:`Agent body load failed: {{status}}`,generateFailed:`Generate failed: {{status}}`,agentLoadFailed:`Load failed: {{status}}`},templates:{title:`Agent template library`,countOf:`{{shown}} of {{total}}`,description:`Start from a curated template across engineering, product, science, health, legal, and more. Pick one and open it in the Studio for review and editing before saving.`,searchPlaceholder:`Search by name, description, tag, or category…`,allCategories:`All`,tagFilter:`Tag filter:`,noMatch:`No templates match your filters.`,clearFilters:`Clear filters`,openInStudio:`Open in Studio →`,tip:`Tip: click a tag pill on any card to filter by that tag.`},generate:{title:`Generate a custom agent`,agentIdLabel:`Agent id`,agentIdHint:`Must start with <code>custom-</code>.`,descriptionLabel:`Describe what this agent should do`,descriptionPlaceholder:`e.g. Review Terraform/IaC changes and flag security misconfigurations, excessive IAM permissions, and public S3 buckets before merging. Conservative and terse.`,note:`Claude will draft a full <code>.md</code> body. You'll review it in the Studio and can edit before saving. This spawns a one-shot claude invocation and can take up to 90 seconds.`,generating:`Generating…`,generateButton:`Generate`},empty:{title:`No agents installed`,body:`Run <code>{{command}}</code> in this project to install the upstream agents, or create a custom agent now.`},actions:{template:`Template`,templateTitle:`Start from a template`,generate:`Generate`,generateWithClaude:`Generate with Claude`,blank:`Blank`,blankTitle:`Start from a blank template`},sidebar:{title:`Catalog`,createLabel:`Create a custom agent:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Shipped by specrails-core; read-only.`,custom:`Custom ({{count}})`,customDescription:`Your project's custom-*.md files. Use Template / Generate / Blank above to create one.`,noCustomAgents:`No custom agents yet.`},detail:{defaultModel:`default model: {{model}}`,aiEdit:`AI Edit`,aiEditTitle:`Iteratively refine this agent with AI`,readOnly:`read-only`,editableHint:`editable — use Edit above`},kind:{upstream:`upstream`,custom:`custom`}},i={loading:`Loading profiles…`,selectPrompt:`Select a profile to edit`,errors:{listFailed:`List failed: {{status}}`,loadFailed:`Load failed: {{status}}`,migrationFailed:`Migration failed: {{status}}`,createFailed:`Create failed: {{status}}`,duplicateFailed:`Duplicate failed: {{status}}`,deleteFailed:`Delete failed: {{status}}`,saveFailed:`Save failed: {{status}}`},toasts:{migrated:`Profile migrated`,migratedDescription:`default profile created from your current agents`,migrationFailed:`Migration failed`,created:`Profile created`,createFailed:`Failed to create profile`,duplicated:`Profile duplicated`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`Failed to duplicate profile`,deleted:`Profile deleted`,deleteFailed:`Failed to delete profile`,saved:`Profile saved`,saveFailed:`Failed to save profile`,savedWithUntargeted:`Profile saved with untargeted agents`,savedWithUntargetedDescription:`No routing rule points to: {{agents}}. Add a tag rule or retarget the default rule if you want them to run.`},createDialog:{title:`New profile`,description:`Pick a lowercase kebab-case name (letters, digits, and hyphens).`,confirmLabel:`Create`,invalidHint:`Must start with a letter or digit and contain only lowercase letters, digits, and hyphens.`},duplicateDialog:{title:`Duplicate "{{name}}"`,description:`Name for the new profile.`,invalidHint:`Lowercase kebab-case only.`},deleteDialog:{title:`Delete profile "{{name}}"?`,description:`This cannot be undone. Jobs already launched with this profile keep their snapshot; future launches will fall back to the resolution order.`},empty:{title:`No profiles yet`,body:`Profiles let you save orchestrator + agent + routing combinations and pick one per rail.`,migrateButton:`Migrate from current agents`,blankButton:`Blank profile`,migrateExplainer:`"Migrate" reads your existing <code>.claude/agents/</code> frontmatter models and creates a <code>default</code> profile mirroring today's behavior — zero-loss.`},sidebar:{title:`Profiles`,teamDefault:`(team default)`},editorFooter:{fixValidationIssues:`Fix validation issues before saving`,issuesToResolve_one:`{{count}} issue to resolve`,issuesToResolve_other:`{{count}} issues to resolve`}},a={title:`Profile usage`,windowLabel:`{{days}}d`,subtitleEmpty:`Jobs launched per profile in the selected window.`,subtitle:`Jobs launched per profile in the last {{count}} days.`,empty:`No profile-scoped jobs yet.`,jobsTooltip:`jobs`,jobsLabel_one:`job`,jobsLabel_other:`jobs`,successRateTooltip:`success rate`,okSuffix:`ok`,avgDurationTooltip:`avg duration`,avgTokensTooltip:`avg tokens`,tokensSuffix:`tok`},o={addTitle:`Add routing rule`,editTitle:`Edit routing rule`,addDescription:`Add a tag-matched routing rule using lowercase kebab-case tags.`,editDescription:`Update the tags or target agent for this rule.`,tagsLabel:`Tags`,tagsHint:`Comma-separated. Use lowercase kebab-case like <code>frontend</code> or <code>api-design</code>.`,invalidTags_one:`Invalid tag: {{tags}}. Tags must use lowercase letters, digits, and hyphens only.`,invalidTags_other:`Invalid tags: {{tags}}. Tags must use lowercase letters, digits, and hyphens only.`,routeToLabel:`Route to`,routeToHint:`Only agents in this profile's chain can be routing targets.`,addRule:`Add rule`,saveChanges:`Save changes`},s={profileTitle:`Agent profile for this rail`,noProfile:`No profile`,modelTitle:`Model for this Freestyle rail`,loopModelTitle:`Model for this loop`,engineTitle:`AI engine for this rail`},c={page:n,catalog:r,profiles:i,usage:a,routingRule:o,railSelectors:s};export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={title:`Agentes`,subtitle:`Faça a gestão dos perfis de agentes e do catálogo (upstream + personalizados) deste projeto.`,tabs:{profiles:`Perfis`,usage:`Utilização`,catalog:`Catálogo`},banner:{title:`O pipeline com suporte de perfis requer specrails-core {{required}}+`,body:`Este projeto tem <code>{{version}}</code>. Execute <code>{{command}}</code> dentro do projeto para desbloquear o modo de perfis. Os perfis que criar aqui continuam a ser guardados; simplesmente não afetam o pipeline até o core ser atualizado.`,unknownVersion:`desconhecida`}},t={loading:`A carregar o catálogo…`,aiEditChipLabel:`Edição com IA · {{agentId}}`,errors:{loadFailed:`Falha ao carregar o catálogo: {{status}}`,bodyLoadFailed:`Falha ao carregar o corpo do agente: {{status}}`,generateFailed:`Falha ao gerar: {{status}}`,agentLoadFailed:`Falha ao carregar: {{status}}`},templates:{title:`Biblioteca de templates de agentes`,countOf:`{{shown}} de {{total}}`,description:`Comece a partir de um template selecionado nas áreas de engenharia, produto, ciência, saúde, jurídico e mais. Escolha um e abra-o no Studio para rever e editar antes de guardar.`,searchPlaceholder:`Pesquisar por nome, descrição, tag ou categoria…`,allCategories:`Todas`,tagFilter:`Filtro de tags:`,noMatch:`Nenhum template corresponde aos seus filtros.`,clearFilters:`Limpar filtros`,openInStudio:`Abrir no Studio →`,tip:`Dica: clique numa tag em qualquer cartão para filtrar por essa tag.`},generate:{title:`Gerar um agente personalizado`,agentIdLabel:`ID do agente`,agentIdHint:`Tem de começar por <code>custom-</code>.`,descriptionLabel:`Descreva o que este agente deve fazer`,descriptionPlaceholder:`p. ex. Rever alterações de Terraform/IaC e assinalar configurações de segurança incorretas, permissões IAM excessivas e buckets S3 públicos antes do merge. Conservador e conciso.`,note:`O Claude vai redigir um corpo <code>.md</code> completo. Poderá revê-lo no Studio e editá-lo antes de guardar. Isto lança uma invocação única do claude e pode demorar até 90 segundos.`,generating:`A gerar…`,generateButton:`Gerar`},empty:{title:`Nenhum agente instalado`,body:`Execute <code>{{command}}</code> neste projeto para instalar os agentes upstream, ou crie já um agente personalizado.`},actions:{template:`Template`,templateTitle:`Começar a partir de um template`,generate:`Gerar`,generateWithClaude:`Gerar com o Claude`,blank:`Em branco`,blankTitle:`Começar a partir de um template em branco`},sidebar:{title:`Catálogo`,createLabel:`Criar um agente personalizado:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Distribuídos pelo specrails-core; apenas de leitura.`,custom:`Personalizados ({{count}})`,customDescription:`Os ficheiros custom-*.md do seu projeto. Use Template / Gerar / Em branco acima para criar um.`,noCustomAgents:`Ainda não há agentes personalizados.`},detail:{defaultModel:`modelo predefinido: {{model}}`,aiEdit:`Edição com IA`,aiEditTitle:`Refinar este agente iterativamente com IA`,readOnly:`apenas leitura`,editableHint:`editável — use Editar acima`},kind:{upstream:`upstream`,custom:`personalizado`}},n={loading:`A carregar perfis…`,selectPrompt:`Selecione um perfil para editar`,errors:{listFailed:`Falha ao listar: {{status}}`,loadFailed:`Falha ao carregar: {{status}}`,migrationFailed:`Falha na migração: {{status}}`,createFailed:`Falha ao criar: {{status}}`,duplicateFailed:`Falha ao duplicar: {{status}}`,deleteFailed:`Falha ao eliminar: {{status}}`,saveFailed:`Falha ao guardar: {{status}}`},toasts:{migrated:`Perfil migrado`,migratedDescription:`perfil default criado a partir dos seus agentes atuais`,migrationFailed:`Falha na migração`,created:`Perfil criado`,createFailed:`Falha ao criar o perfil`,duplicated:`Perfil duplicado`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`Falha ao duplicar o perfil`,deleted:`Perfil eliminado`,deleteFailed:`Falha ao eliminar o perfil`,saved:`Perfil guardado`,saveFailed:`Falha ao guardar o perfil`,savedWithUntargeted:`Perfil guardado com agentes sem destino`,savedWithUntargetedDescription:`Nenhuma regra de encaminhamento aponta para: {{agents}}. Adicione uma regra de tags ou redirecione a regra predefinida se quiser que sejam executados.`},createDialog:{title:`Novo perfil`,description:`Escolha um nome em kebab-case minúsculo (letras, dígitos e hífenes).`,confirmLabel:`Criar`,invalidHint:`Tem de começar por uma letra ou dígito e conter apenas letras minúsculas, dígitos e hífenes.`},duplicateDialog:{title:`Duplicar "{{name}}"`,description:`Nome para o novo perfil.`,invalidHint:`Apenas kebab-case minúsculo.`},deleteDialog:{title:`Eliminar o perfil "{{name}}"?`,description:`Esta ação não pode ser anulada. Os jobs já lançados com este perfil mantêm o seu snapshot; os próximos lançamentos recorrem à ordem de resolução.`},empty:{title:`Ainda não há perfis`,body:`Os perfis permitem guardar combinações de orquestrador + agentes + encaminhamento e escolher uma por rail.`,migrateButton:`Migrar a partir dos agentes atuais`,blankButton:`Perfil em branco`,migrateExplainer:`"Migrar" lê os modelos do frontmatter existente em <code>.claude/agents/</code> e cria um perfil <code>default</code> que reflete o comportamento atual — sem perdas.`},sidebar:{title:`Perfis`,teamDefault:`(predefinição da equipa)`},editorFooter:{fixValidationIssues:`Corrija os problemas de validação antes de guardar`,issuesToResolve_one:`{{count}} problema por resolver`,issuesToResolve_other:`{{count}} problemas por resolver`}},r={title:`Utilização de perfis`,windowLabel:`{{days}}d`,subtitleEmpty:`Jobs lançados por perfil na janela selecionada.`,subtitle:`Jobs lançados por perfil nos últimos {{count}} dias.`,empty:`Ainda não há jobs associados a perfis.`,jobsTooltip:`jobs`,jobsLabel_one:`job`,jobsLabel_other:`jobs`,successRateTooltip:`taxa de sucesso`,okSuffix:`ok`,avgDurationTooltip:`duração média`,avgTokensTooltip:`média de tokens`,tokensSuffix:`tok`},i={addTitle:`Adicionar regra de encaminhamento`,editTitle:`Editar regra de encaminhamento`,addDescription:`Adicione uma regra de encaminhamento por tags usando tags em kebab-case minúsculo.`,editDescription:`Atualize as tags ou o agente de destino desta regra.`,tagsLabel:`Tags`,tagsHint:`Separadas por vírgulas. Use kebab-case minúsculo como <code>frontend</code> ou <code>api-design</code>.`,invalidTags_one:`Tag inválida: {{tags}}. As tags só podem usar letras minúsculas, dígitos e hífenes.`,invalidTags_other:`Tags inválidas: {{tags}}. As tags só podem usar letras minúsculas, dígitos e hífenes.`,routeToLabel:`Encaminhar para`,routeToHint:`Apenas os agentes da cadeia deste perfil podem ser destinos de encaminhamento.`,addRule:`Adicionar regra`,saveChanges:`Guardar alterações`},a={profileTitle:`Perfil de agentes para este rail`,noProfile:`Sem perfil`,modelTitle:`Modelo para este rail
|
|
1
|
+
var e={title:`Agentes`,subtitle:`Faça a gestão dos perfis de agentes e do catálogo (upstream + personalizados) deste projeto.`,tabs:{profiles:`Perfis`,usage:`Utilização`,catalog:`Catálogo`},banner:{title:`O pipeline com suporte de perfis requer specrails-core {{required}}+`,body:`Este projeto tem <code>{{version}}</code>. Execute <code>{{command}}</code> dentro do projeto para desbloquear o modo de perfis. Os perfis que criar aqui continuam a ser guardados; simplesmente não afetam o pipeline até o core ser atualizado.`,unknownVersion:`desconhecida`}},t={loading:`A carregar o catálogo…`,aiEditChipLabel:`Edição com IA · {{agentId}}`,errors:{loadFailed:`Falha ao carregar o catálogo: {{status}}`,bodyLoadFailed:`Falha ao carregar o corpo do agente: {{status}}`,generateFailed:`Falha ao gerar: {{status}}`,agentLoadFailed:`Falha ao carregar: {{status}}`},templates:{title:`Biblioteca de templates de agentes`,countOf:`{{shown}} de {{total}}`,description:`Comece a partir de um template selecionado nas áreas de engenharia, produto, ciência, saúde, jurídico e mais. Escolha um e abra-o no Studio para rever e editar antes de guardar.`,searchPlaceholder:`Pesquisar por nome, descrição, tag ou categoria…`,allCategories:`Todas`,tagFilter:`Filtro de tags:`,noMatch:`Nenhum template corresponde aos seus filtros.`,clearFilters:`Limpar filtros`,openInStudio:`Abrir no Studio →`,tip:`Dica: clique numa tag em qualquer cartão para filtrar por essa tag.`},generate:{title:`Gerar um agente personalizado`,agentIdLabel:`ID do agente`,agentIdHint:`Tem de começar por <code>custom-</code>.`,descriptionLabel:`Descreva o que este agente deve fazer`,descriptionPlaceholder:`p. ex. Rever alterações de Terraform/IaC e assinalar configurações de segurança incorretas, permissões IAM excessivas e buckets S3 públicos antes do merge. Conservador e conciso.`,note:`O Claude vai redigir um corpo <code>.md</code> completo. Poderá revê-lo no Studio e editá-lo antes de guardar. Isto lança uma invocação única do claude e pode demorar até 90 segundos.`,generating:`A gerar…`,generateButton:`Gerar`},empty:{title:`Nenhum agente instalado`,body:`Execute <code>{{command}}</code> neste projeto para instalar os agentes upstream, ou crie já um agente personalizado.`},actions:{template:`Template`,templateTitle:`Começar a partir de um template`,generate:`Gerar`,generateWithClaude:`Gerar com o Claude`,blank:`Em branco`,blankTitle:`Começar a partir de um template em branco`},sidebar:{title:`Catálogo`,createLabel:`Criar um agente personalizado:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Distribuídos pelo specrails-core; apenas de leitura.`,custom:`Personalizados ({{count}})`,customDescription:`Os ficheiros custom-*.md do seu projeto. Use Template / Gerar / Em branco acima para criar um.`,noCustomAgents:`Ainda não há agentes personalizados.`},detail:{defaultModel:`modelo predefinido: {{model}}`,aiEdit:`Edição com IA`,aiEditTitle:`Refinar este agente iterativamente com IA`,readOnly:`apenas leitura`,editableHint:`editável — use Editar acima`},kind:{upstream:`upstream`,custom:`personalizado`}},n={loading:`A carregar perfis…`,selectPrompt:`Selecione um perfil para editar`,errors:{listFailed:`Falha ao listar: {{status}}`,loadFailed:`Falha ao carregar: {{status}}`,migrationFailed:`Falha na migração: {{status}}`,createFailed:`Falha ao criar: {{status}}`,duplicateFailed:`Falha ao duplicar: {{status}}`,deleteFailed:`Falha ao eliminar: {{status}}`,saveFailed:`Falha ao guardar: {{status}}`},toasts:{migrated:`Perfil migrado`,migratedDescription:`perfil default criado a partir dos seus agentes atuais`,migrationFailed:`Falha na migração`,created:`Perfil criado`,createFailed:`Falha ao criar o perfil`,duplicated:`Perfil duplicado`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`Falha ao duplicar o perfil`,deleted:`Perfil eliminado`,deleteFailed:`Falha ao eliminar o perfil`,saved:`Perfil guardado`,saveFailed:`Falha ao guardar o perfil`,savedWithUntargeted:`Perfil guardado com agentes sem destino`,savedWithUntargetedDescription:`Nenhuma regra de encaminhamento aponta para: {{agents}}. Adicione uma regra de tags ou redirecione a regra predefinida se quiser que sejam executados.`},createDialog:{title:`Novo perfil`,description:`Escolha um nome em kebab-case minúsculo (letras, dígitos e hífenes).`,confirmLabel:`Criar`,invalidHint:`Tem de começar por uma letra ou dígito e conter apenas letras minúsculas, dígitos e hífenes.`},duplicateDialog:{title:`Duplicar "{{name}}"`,description:`Nome para o novo perfil.`,invalidHint:`Apenas kebab-case minúsculo.`},deleteDialog:{title:`Eliminar o perfil "{{name}}"?`,description:`Esta ação não pode ser anulada. Os jobs já lançados com este perfil mantêm o seu snapshot; os próximos lançamentos recorrem à ordem de resolução.`},empty:{title:`Ainda não há perfis`,body:`Os perfis permitem guardar combinações de orquestrador + agentes + encaminhamento e escolher uma por rail.`,migrateButton:`Migrar a partir dos agentes atuais`,blankButton:`Perfil em branco`,migrateExplainer:`"Migrar" lê os modelos do frontmatter existente em <code>.claude/agents/</code> e cria um perfil <code>default</code> que reflete o comportamento atual — sem perdas.`},sidebar:{title:`Perfis`,teamDefault:`(predefinição da equipa)`},editorFooter:{fixValidationIssues:`Corrija os problemas de validação antes de guardar`,issuesToResolve_one:`{{count}} problema por resolver`,issuesToResolve_other:`{{count}} problemas por resolver`}},r={title:`Utilização de perfis`,windowLabel:`{{days}}d`,subtitleEmpty:`Jobs lançados por perfil na janela selecionada.`,subtitle:`Jobs lançados por perfil nos últimos {{count}} dias.`,empty:`Ainda não há jobs associados a perfis.`,jobsTooltip:`jobs`,jobsLabel_one:`job`,jobsLabel_other:`jobs`,successRateTooltip:`taxa de sucesso`,okSuffix:`ok`,avgDurationTooltip:`duração média`,avgTokensTooltip:`média de tokens`,tokensSuffix:`tok`},i={addTitle:`Adicionar regra de encaminhamento`,editTitle:`Editar regra de encaminhamento`,addDescription:`Adicione uma regra de encaminhamento por tags usando tags em kebab-case minúsculo.`,editDescription:`Atualize as tags ou o agente de destino desta regra.`,tagsLabel:`Tags`,tagsHint:`Separadas por vírgulas. Use kebab-case minúsculo como <code>frontend</code> ou <code>api-design</code>.`,invalidTags_one:`Tag inválida: {{tags}}. As tags só podem usar letras minúsculas, dígitos e hífenes.`,invalidTags_other:`Tags inválidas: {{tags}}. As tags só podem usar letras minúsculas, dígitos e hífenes.`,routeToLabel:`Encaminhar para`,routeToHint:`Apenas os agentes da cadeia deste perfil podem ser destinos de encaminhamento.`,addRule:`Adicionar regra`,saveChanges:`Guardar alterações`},a={profileTitle:`Perfil de agentes para este rail`,noProfile:`Sem perfil`,modelTitle:`Modelo para este rail Freestyle`,loopModelTitle:`Modelo para este loop`,engineTitle:`Motor de IA para este rail`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={title:`Agenti`,subtitle:`Gestisci i profili agente e il catalogo (upstream + custom) di questo progetto.`,tabs:{profiles:`Profili`,usage:`Utilizzo`,catalog:`Catalogo`},banner:{title:`La pipeline con profili richiede specrails-core {{required}}+`,body:`Questo progetto ha <code>{{version}}</code>. Esegui <code>{{command}}</code> nel progetto per sbloccare la modalità profili. I profili creati qui verranno comunque salvati; semplicemente non influiranno sulla pipeline finché core non viene aggiornato.`,unknownVersion:`sconosciuta`}},t={loading:`Caricamento del catalogo…`,aiEditChipLabel:`Modifica AI · {{agentId}}`,errors:{loadFailed:`Caricamento del catalogo non riuscito: {{status}}`,bodyLoadFailed:`Caricamento del corpo dell'agente non riuscito: {{status}}`,generateFailed:`Generazione non riuscita: {{status}}`,agentLoadFailed:`Caricamento non riuscito: {{status}}`},templates:{title:`Libreria di template agente`,countOf:`{{shown}} di {{total}}`,description:`Parti da un template curato tra engineering, prodotto, scienza, salute, legale e altro. Scegline uno e aprilo nello Studio per revisionarlo e modificarlo prima di salvare.`,searchPlaceholder:`Cerca per nome, descrizione, tag o categoria…`,allCategories:`Tutte`,tagFilter:`Filtro tag:`,noMatch:`Nessun template corrisponde ai filtri.`,clearFilters:`Cancella filtri`,openInStudio:`Apri nello Studio →`,tip:`Suggerimento: clicca un tag su una card per filtrare per quel tag.`},generate:{title:`Genera un agente custom`,agentIdLabel:`ID agente`,agentIdHint:`Deve iniziare con <code>custom-</code>.`,descriptionLabel:`Descrivi cosa deve fare questo agente`,descriptionPlaceholder:`es. Revisiona le modifiche Terraform/IaC e segnala configurazioni di sicurezza errate, permessi IAM eccessivi e bucket S3 pubblici prima del merge. Conservativo e conciso.`,note:`Claude redigerà un corpo <code>.md</code> completo. Lo revisionerai nello Studio e potrai modificarlo prima di salvare. Questo avvia un'invocazione claude one-shot e può richiedere fino a 90 secondi.`,generating:`Generazione…`,generateButton:`Genera`},empty:{title:`Nessun agente installato`,body:`Esegui <code>{{command}}</code> in questo progetto per installare gli agenti upstream, oppure crea subito un agente custom.`},actions:{template:`Template`,templateTitle:`Parti da un template`,generate:`Genera`,generateWithClaude:`Genera con Claude`,blank:`Vuoto`,blankTitle:`Parti da un template vuoto`},sidebar:{title:`Catalogo`,createLabel:`Crea un agente custom:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Forniti da specrails-core; sola lettura.`,custom:`Custom ({{count}})`,customDescription:`I file custom-*.md del tuo progetto. Usa Template / Genera / Vuoto qui sopra per crearne uno.`,noCustomAgents:`Ancora nessun agente custom.`},detail:{defaultModel:`modello predefinito: {{model}}`,aiEdit:`Modifica AI`,aiEditTitle:`Raffina iterativamente questo agente con l'AI`,readOnly:`sola lettura`,editableHint:`modificabile — usa Modifica qui sopra`},kind:{upstream:`upstream`,custom:`custom`}},n={loading:`Caricamento dei profili…`,selectPrompt:`Seleziona un profilo da modificare`,errors:{listFailed:`Caricamento dell'elenco non riuscito: {{status}}`,loadFailed:`Caricamento non riuscito: {{status}}`,migrationFailed:`Migrazione non riuscita: {{status}}`,createFailed:`Creazione non riuscita: {{status}}`,duplicateFailed:`Duplicazione non riuscita: {{status}}`,deleteFailed:`Eliminazione non riuscita: {{status}}`,saveFailed:`Salvataggio non riuscito: {{status}}`},toasts:{migrated:`Profilo migrato`,migratedDescription:`profilo default creato dagli agenti attuali`,migrationFailed:`Migrazione non riuscita`,created:`Profilo creato`,createFailed:`Impossibile creare il profilo`,duplicated:`Profilo duplicato`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`Impossibile duplicare il profilo`,deleted:`Profilo eliminato`,deleteFailed:`Impossibile eliminare il profilo`,saved:`Profilo salvato`,saveFailed:`Impossibile salvare il profilo`,savedWithUntargeted:`Profilo salvato con agenti senza routing`,savedWithUntargetedDescription:`Nessuna regola di routing punta a: {{agents}}. Aggiungi una regola per tag o ridefinisci la regola default se vuoi che vengano eseguiti.`},createDialog:{title:`Nuovo profilo`,description:`Scegli un nome in kebab-case minuscolo (lettere, cifre e trattini).`,confirmLabel:`Crea`,invalidHint:`Deve iniziare con una lettera o una cifra e contenere solo lettere minuscole, cifre e trattini.`},duplicateDialog:{title:`Duplica "{{name}}"`,description:`Nome del nuovo profilo.`,invalidHint:`Solo kebab-case minuscolo.`},deleteDialog:{title:`Eliminare il profilo "{{name}}"?`,description:`Questa azione è irreversibile. I job già avviati con questo profilo mantengono il loro snapshot; i prossimi avvii ricadranno sull'ordine di risoluzione.`},empty:{title:`Ancora nessun profilo`,body:`I profili permettono di salvare combinazioni di orchestratore + agenti + routing e sceglierne una per rail.`,migrateButton:`Migra dagli agenti attuali`,blankButton:`Profilo vuoto`,migrateExplainer:`"Migra" legge i modelli dal frontmatter dei tuoi <code>.claude/agents/</code> esistenti e crea un profilo <code>default</code> che rispecchia il comportamento attuale — senza perdite.`},sidebar:{title:`Profili`,teamDefault:`(default del team)`},editorFooter:{fixValidationIssues:`Correggi i problemi di validazione prima di salvare`,issuesToResolve_one:`{{count}} problema da risolvere`,issuesToResolve_other:`{{count}} problemi da risolvere`}},r={title:`Utilizzo dei profili`,windowLabel:`{{days}}d`,subtitleEmpty:`Job avviati per profilo nella finestra selezionata.`,subtitle:`Job avviati per profilo negli ultimi {{count}} giorni.`,empty:`Ancora nessun job con profilo.`,jobsTooltip:`job`,jobsLabel_one:`job`,jobsLabel_other:`job`,successRateTooltip:`tasso di successo`,okSuffix:`ok`,avgDurationTooltip:`durata media`,avgTokensTooltip:`token medi`,tokensSuffix:`tok`},i={addTitle:`Aggiungi regola di routing`,editTitle:`Modifica regola di routing`,addDescription:`Aggiungi una regola di routing per tag usando tag in kebab-case minuscolo.`,editDescription:`Aggiorna i tag o l'agente di destinazione per questa regola.`,tagsLabel:`Tag`,tagsHint:`Separati da virgola. Usa kebab-case minuscolo come <code>frontend</code> o <code>api-design</code>.`,invalidTags_one:`Tag non valido: {{tags}}. I tag possono contenere solo lettere minuscole, cifre e trattini.`,invalidTags_other:`Tag non validi: {{tags}}. I tag possono contenere solo lettere minuscole, cifre e trattini.`,routeToLabel:`Instrada verso`,routeToHint:`Solo gli agenti nella catena di questo profilo possono essere destinazioni di routing.`,addRule:`Aggiungi regola`,saveChanges:`Salva modifiche`},a={profileTitle:`Profilo agente per questo rail`,noProfile:`Nessun profilo`,modelTitle:`Modello per questo rail
|
|
1
|
+
var e={title:`Agenti`,subtitle:`Gestisci i profili agente e il catalogo (upstream + custom) di questo progetto.`,tabs:{profiles:`Profili`,usage:`Utilizzo`,catalog:`Catalogo`},banner:{title:`La pipeline con profili richiede specrails-core {{required}}+`,body:`Questo progetto ha <code>{{version}}</code>. Esegui <code>{{command}}</code> nel progetto per sbloccare la modalità profili. I profili creati qui verranno comunque salvati; semplicemente non influiranno sulla pipeline finché core non viene aggiornato.`,unknownVersion:`sconosciuta`}},t={loading:`Caricamento del catalogo…`,aiEditChipLabel:`Modifica AI · {{agentId}}`,errors:{loadFailed:`Caricamento del catalogo non riuscito: {{status}}`,bodyLoadFailed:`Caricamento del corpo dell'agente non riuscito: {{status}}`,generateFailed:`Generazione non riuscita: {{status}}`,agentLoadFailed:`Caricamento non riuscito: {{status}}`},templates:{title:`Libreria di template agente`,countOf:`{{shown}} di {{total}}`,description:`Parti da un template curato tra engineering, prodotto, scienza, salute, legale e altro. Scegline uno e aprilo nello Studio per revisionarlo e modificarlo prima di salvare.`,searchPlaceholder:`Cerca per nome, descrizione, tag o categoria…`,allCategories:`Tutte`,tagFilter:`Filtro tag:`,noMatch:`Nessun template corrisponde ai filtri.`,clearFilters:`Cancella filtri`,openInStudio:`Apri nello Studio →`,tip:`Suggerimento: clicca un tag su una card per filtrare per quel tag.`},generate:{title:`Genera un agente custom`,agentIdLabel:`ID agente`,agentIdHint:`Deve iniziare con <code>custom-</code>.`,descriptionLabel:`Descrivi cosa deve fare questo agente`,descriptionPlaceholder:`es. Revisiona le modifiche Terraform/IaC e segnala configurazioni di sicurezza errate, permessi IAM eccessivi e bucket S3 pubblici prima del merge. Conservativo e conciso.`,note:`Claude redigerà un corpo <code>.md</code> completo. Lo revisionerai nello Studio e potrai modificarlo prima di salvare. Questo avvia un'invocazione claude one-shot e può richiedere fino a 90 secondi.`,generating:`Generazione…`,generateButton:`Genera`},empty:{title:`Nessun agente installato`,body:`Esegui <code>{{command}}</code> in questo progetto per installare gli agenti upstream, oppure crea subito un agente custom.`},actions:{template:`Template`,templateTitle:`Parti da un template`,generate:`Genera`,generateWithClaude:`Genera con Claude`,blank:`Vuoto`,blankTitle:`Parti da un template vuoto`},sidebar:{title:`Catalogo`,createLabel:`Crea un agente custom:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Forniti da specrails-core; sola lettura.`,custom:`Custom ({{count}})`,customDescription:`I file custom-*.md del tuo progetto. Usa Template / Genera / Vuoto qui sopra per crearne uno.`,noCustomAgents:`Ancora nessun agente custom.`},detail:{defaultModel:`modello predefinito: {{model}}`,aiEdit:`Modifica AI`,aiEditTitle:`Raffina iterativamente questo agente con l'AI`,readOnly:`sola lettura`,editableHint:`modificabile — usa Modifica qui sopra`},kind:{upstream:`upstream`,custom:`custom`}},n={loading:`Caricamento dei profili…`,selectPrompt:`Seleziona un profilo da modificare`,errors:{listFailed:`Caricamento dell'elenco non riuscito: {{status}}`,loadFailed:`Caricamento non riuscito: {{status}}`,migrationFailed:`Migrazione non riuscita: {{status}}`,createFailed:`Creazione non riuscita: {{status}}`,duplicateFailed:`Duplicazione non riuscita: {{status}}`,deleteFailed:`Eliminazione non riuscita: {{status}}`,saveFailed:`Salvataggio non riuscito: {{status}}`},toasts:{migrated:`Profilo migrato`,migratedDescription:`profilo default creato dagli agenti attuali`,migrationFailed:`Migrazione non riuscita`,created:`Profilo creato`,createFailed:`Impossibile creare il profilo`,duplicated:`Profilo duplicato`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`Impossibile duplicare il profilo`,deleted:`Profilo eliminato`,deleteFailed:`Impossibile eliminare il profilo`,saved:`Profilo salvato`,saveFailed:`Impossibile salvare il profilo`,savedWithUntargeted:`Profilo salvato con agenti senza routing`,savedWithUntargetedDescription:`Nessuna regola di routing punta a: {{agents}}. Aggiungi una regola per tag o ridefinisci la regola default se vuoi che vengano eseguiti.`},createDialog:{title:`Nuovo profilo`,description:`Scegli un nome in kebab-case minuscolo (lettere, cifre e trattini).`,confirmLabel:`Crea`,invalidHint:`Deve iniziare con una lettera o una cifra e contenere solo lettere minuscole, cifre e trattini.`},duplicateDialog:{title:`Duplica "{{name}}"`,description:`Nome del nuovo profilo.`,invalidHint:`Solo kebab-case minuscolo.`},deleteDialog:{title:`Eliminare il profilo "{{name}}"?`,description:`Questa azione è irreversibile. I job già avviati con questo profilo mantengono il loro snapshot; i prossimi avvii ricadranno sull'ordine di risoluzione.`},empty:{title:`Ancora nessun profilo`,body:`I profili permettono di salvare combinazioni di orchestratore + agenti + routing e sceglierne una per rail.`,migrateButton:`Migra dagli agenti attuali`,blankButton:`Profilo vuoto`,migrateExplainer:`"Migra" legge i modelli dal frontmatter dei tuoi <code>.claude/agents/</code> esistenti e crea un profilo <code>default</code> che rispecchia il comportamento attuale — senza perdite.`},sidebar:{title:`Profili`,teamDefault:`(default del team)`},editorFooter:{fixValidationIssues:`Correggi i problemi di validazione prima di salvare`,issuesToResolve_one:`{{count}} problema da risolvere`,issuesToResolve_other:`{{count}} problemi da risolvere`}},r={title:`Utilizzo dei profili`,windowLabel:`{{days}}d`,subtitleEmpty:`Job avviati per profilo nella finestra selezionata.`,subtitle:`Job avviati per profilo negli ultimi {{count}} giorni.`,empty:`Ancora nessun job con profilo.`,jobsTooltip:`job`,jobsLabel_one:`job`,jobsLabel_other:`job`,successRateTooltip:`tasso di successo`,okSuffix:`ok`,avgDurationTooltip:`durata media`,avgTokensTooltip:`token medi`,tokensSuffix:`tok`},i={addTitle:`Aggiungi regola di routing`,editTitle:`Modifica regola di routing`,addDescription:`Aggiungi una regola di routing per tag usando tag in kebab-case minuscolo.`,editDescription:`Aggiorna i tag o l'agente di destinazione per questa regola.`,tagsLabel:`Tag`,tagsHint:`Separati da virgola. Usa kebab-case minuscolo come <code>frontend</code> o <code>api-design</code>.`,invalidTags_one:`Tag non valido: {{tags}}. I tag possono contenere solo lettere minuscole, cifre e trattini.`,invalidTags_other:`Tag non validi: {{tags}}. I tag possono contenere solo lettere minuscole, cifre e trattini.`,routeToLabel:`Instrada verso`,routeToHint:`Solo gli agenti nella catena di questo profilo possono essere destinazioni di routing.`,addRule:`Aggiungi regola`,saveChanges:`Salva modifiche`},a={profileTitle:`Profilo agente per questo rail`,noProfile:`Nessun profilo`,modelTitle:`Modello per questo rail Freestyle`,loopModelTitle:`Modello per questo loop`,engineTitle:`Engine AI per questo rail`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={railAdded:`Rail {{n}} hinzugefügt`,railRemoved:`{{rail}} entfernt`,railCompleted:`Rail {{n}} abgeschlossen`,railFailed:`Rail {{n}} fehlgeschlagen – Specs zurück in Specs`,railEnded:`Rail {{n}} {{status}} – Specs zurück in Specs`,alreadyOnRail:`Bereits auf {{rail}}`,movedToRail:`Auf {{rail}} verschoben`,railRunningStopFirst:`{{rail}} läuft – vor dem Entfernen stoppen`,removedFromRail:`Von {{rail}} entfernt`,queuedOnRail:`Auf {{rail}} eingereiht`,queuedOnRailDescription:`Rail läuft gerade`,railStopped:`{{rail}} gestoppt`,stopFailed:`Rail konnte nicht gestoppt werden`,syncTicketsFailed:`Rail-Tickets konnten nicht synchronisiert werden`,launchFailed:`Rail konnte nicht gestartet werden`,launchNetworkError:`Netzwerkfehler beim Starten des Rails`,railLaunched:`{{rail}} gestartet`,launchDescription_one:`{{mode}} mit {{count}} Spec`,launchDescription_other:`{{mode}} mit {{count}} Specs`,railWorktreeNeedsReview:`Rail {{n}}: Spec #{{ticket}} muss nach dem Merge geprüft werden`,railWorktreesNoGit:`Worktree-Isolation nicht verfügbar: Dieses Projekt ist kein Git-Repository — Ausführung im gemeinsamen Modus.`,railWorktreesNoCommits:`Worktree-Isolation nicht verfügbar: Das Repository hat noch keine Commits — erstelle einen ersten Commit und starte neu.`},t={title:`Rails`,runningCount_one:`{{count}} läuft`,runningCount_other:`{{count}} laufen`},n={viewJobLog:`Job-Log anzeigen`,log:`Log`,implement:`Implement`,batch:`Batch`,ultra:`Freestyle`,ultraTitle:`Freestyle – Claude implementiert die Spec autonom, ohne Pipeline`,loop:`Loop`,loopTitle:`Loop – eine veröffentlichte Automatisierungsschleife gegen die Specs des Rails ausführen`,pickLoop:`Schleife auswählen…`,effortTitle:`Denkaufwand`,stop:`Stopp`,play:`Start`,failedRetry:`Job fehlgeschlagen – zum Wiederholen klicken`,addSpecsFirst:`Füge zuerst Specs zu diesem Rail hinzu`,builtInLoops:`Integriert`,customLoops:`Eigene Loops`,worktreesMerged:`{{count}} zusammengeführt`,worktreesNeedsReview:`{{count}} zu prüfen`,execSteps:`{{count}} Schritte`,execLines:`{{count}} Zeilen`,openspec:`OpenSpec`},r={moveToSpecs:`Nach Specs verschieben`,deleteRail:`{{label}} löschen`,dropHere:`Hier ablegen`,dropOnThisRail:`Auf diesem Rail ablegen`,dragSpecsHere:`Specs hierher ziehen`},i={title:`Im Freestyle-Modus starten`,context_one:`{{rail}} · {{count}} Spec`,context_other:`{{rail}} · {{count}} Specs`,noPipelineTitle:`Keine OpenSpec-Pipeline.`,noPipelineBody:`Der strukturierte Flow Architect → Developer → Reviewer wird komplett übersprungen.`,autonomyTitle:`Native Claude-Autonomie.`,autonomyBody:`Claude arbeitet eigenständig mit nativen Agenten und dynamischen Workflows.`,costTitle:`Variable Kosten.`,costBody:`Die Ausgaben hängen davon ab, was Claude entscheidet – sie können höher ausfallen als erwartet.`,continue:`Weiter`},a={fetchFailed:`Rails konnten nicht geladen werden: {{status}}`},o={toasts:e,railsBoard:t,railControls:n,railRow:r,ultracodeDialog:i,useRails:a};export{o as default,n as railControls,r as railRow,t as railsBoard,e as toasts,i as ultracodeDialog,a as useRails};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={railAdded:`已添加 Rail {{n}}`,railRemoved:`已移除 {{rail}}`,railCompleted:`Rail {{n}} 已完成`,railFailed:`Rail {{n}} 失败 — Spec 已退回 Specs`,railEnded:`Rail {{n}} {{status}} — Spec 已退回 Specs`,alreadyOnRail:`已在 {{rail}} 上`,movedToRail:`已移至 {{rail}}`,railRunningStopFirst:`{{rail}} 正在运行 — 请先停止再移除`,removedFromRail:`已从 {{rail}} 移除`,queuedOnRail:`已在 {{rail}} 排队`,queuedOnRailDescription:`Rail 正在运行`,railStopped:`{{rail}} 已停止`,stopFailed:`停止 Rail 失败`,syncTicketsFailed:`同步 Rail 工单失败`,launchFailed:`启动 Rail 失败`,launchNetworkError:`启动 Rail 时网络错误`,railLaunched:`{{rail}} 已启动`,launchDescription_one:`{{mode}},共 {{count}} 个 Spec`,launchDescription_other:`{{mode}},共 {{count}} 个 Spec`,railWorktreeNeedsReview:`Rail {{n}}:合并后 spec #{{ticket}} 需要复查`,railWorktreesNoGit:`worktree 隔离不可用:该项目不是 git 仓库 — 以共享模式运行。`,railWorktreesNoCommits:`worktree 隔离不可用:仓库还没有任何提交 — 先做一次初始提交再重新启动。`},t={title:`Rails`,runningCount_one:`{{count}} 个运行中`,runningCount_other:`{{count}} 个运行中`},n={viewJobLog:`查看任务日志`,log:`日志`,implement:`实现`,batch:`批量`,ultra:`Freestyle`,ultraTitle:`Freestyle — Claude 自主实现该 Spec,不走流水线`,loop:`Loop`,loopTitle:`Loop — 针对该轨道的 Spec 运行已发布的自动化循环`,pickLoop:`选择一个循环…`,effortTitle:`推理强度`,stop:`停止`,play:`运行`,failedRetry:`任务失败 — 点击重试`,addSpecsFirst:`请先向此 Rail 添加 Spec`,builtInLoops:`内置`,customLoops:`自定义循环`,worktreesMerged:`已合并 {{count}}`,worktreesNeedsReview:`{{count}} 需复查`,execSteps:`{{count}} 步`,execLines:`{{count}} 行`,openspec:`OpenSpec`},r={moveToSpecs:`移至 Specs`,deleteRail:`删除 {{label}}`,dropHere:`拖放到此处`,dropOnThisRail:`拖放到此 Rail`,dragSpecsHere:`将 Spec 拖到此处`},i={title:`以 Freestyle 模式启动`,context_one:`{{rail}} · {{count}} 个 Spec`,context_other:`{{rail}} · {{count}} 个 Spec`,noPipelineTitle:`无 OpenSpec 流水线。`,noPipelineBody:`完全跳过架构师 → 开发者 → 审查者的结构化流程。`,autonomyTitle:`Claude 原生自主模式。`,autonomyBody:`Claude 使用原生 Agent 和动态工作流自主工作。`,costTitle:`成本不固定。`,costBody:`花费取决于 Claude 的决策 — 可能高于预期。`,continue:`继续`},a={fetchFailed:`获取 Rails 失败:{{status}}`},o={toasts:e,railsBoard:t,railControls:n,railRow:r,ultracodeDialog:i,useRails:a};export{o as default,n as railControls,r as railRow,t as railsBoard,e as toasts,i as ultracodeDialog,a as useRails};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={railAdded:`Rail {{n}} aggiunto`,railRemoved:`{{rail}} rimosso`,railCompleted:`Rail {{n}} completato`,railFailed:`Rail {{n}} non riuscito — le spec sono tornate in Specs`,railEnded:`Rail {{n}} {{status}} — le spec sono tornate in Specs`,alreadyOnRail:`Già su {{rail}}`,movedToRail:`Spostata su {{rail}}`,railRunningStopFirst:`{{rail}} è in esecuzione — fermalo prima di rimuoverlo`,removedFromRail:`Rimossa da {{rail}}`,queuedOnRail:`In coda su {{rail}}`,queuedOnRailDescription:`Il rail è attualmente in esecuzione`,railStopped:`{{rail}} fermato`,stopFailed:`Impossibile fermare il rail`,syncTicketsFailed:`Impossibile sincronizzare i ticket del rail`,launchFailed:`Impossibile avviare il rail`,launchNetworkError:`Errore di rete durante l'avvio del rail`,railLaunched:`{{rail}} avviato`,launchDescription_one:`{{mode}} con {{count}} spec`,launchDescription_other:`{{mode}} con {{count}} spec`,railWorktreeNeedsReview:`Rail {{n}}: la spec #{{ticket}} richiede revisione dopo il merge`,railWorktreesNoGit:`Isolamento con worktree non disponibile: il progetto non è un repository git — esecuzione in modalità condivisa.`,railWorktreesNoCommits:`Isolamento con worktree non disponibile: il repository non ha ancora commit — crea un commit iniziale e rilancia.`},t={title:`Rails`,runningCount_one:`{{count}} in esecuzione`,runningCount_other:`{{count}} in esecuzione`},n={viewJobLog:`Visualizza log del job`,log:`Log`,implement:`Implementa`,batch:`Batch`,ultra:`Freestyle`,ultraTitle:`Freestyle — Claude implementa la spec in autonomia, senza pipeline`,loop:`Loop`,loopTitle:`Loop — esegui un loop di automazione pubblicato sulle spec del rail`,pickLoop:`Scegli un loop…`,effortTitle:`Sforzo di ragionamento`,stop:`Stop`,play:`Avvia`,failedRetry:`Job non riuscito — clicca per riprovare`,addSpecsFirst:`Aggiungi prima delle spec a questo rail`,builtInLoops:`Integrati`,customLoops:`Loop personalizzati`,worktreesMerged:`{{count}} uniti`,worktreesNeedsReview:`{{count}} da rivedere`,execSteps:`{{count}} passi`,execLines:`{{count}} righe`,openspec:`OpenSpec`},r={moveToSpecs:`Sposta in Specs`,deleteRail:`Elimina {{label}}`,dropHere:`Rilascia qui`,dropOnThisRail:`Rilascia su questo rail`,dragSpecsHere:`Trascina qui le spec`},i={title:`Avvia in modalità Freestyle`,context_one:`{{rail}} · {{count}} spec`,context_other:`{{rail}} · {{count}} spec`,noPipelineTitle:`Nessuna pipeline OpenSpec.`,noPipelineBody:`Il flusso strutturato architect → developer → reviewer viene saltato del tutto.`,autonomyTitle:`Autonomia nativa di Claude.`,autonomyBody:`Claude lavora in autonomia usando agenti nativi e workflow dinamici.`,costTitle:`Costo variabile.`,costBody:`La spesa dipende da cosa Claude decide di fare — può essere più alta del previsto.`,continue:`Continua`},a={fetchFailed:`Impossibile recuperare i rail: {{status}}`},o={toasts:e,railsBoard:t,railControls:n,railRow:r,ultracodeDialog:i,useRails:a};export{o as default,n as railControls,r as railRow,t as railsBoard,e as toasts,i as ultracodeDialog,a as useRails};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={railAdded:`Rail {{n}} adicionado`,railRemoved:`{{rail}} removido`,railCompleted:`Rail {{n}} concluído`,railFailed:`Rail {{n}} falhou — specs devolvidas a Specs`,railEnded:`Rail {{n}} {{status}} — specs devolvidas a Specs`,alreadyOnRail:`Já está em {{rail}}`,movedToRail:`Movido para {{rail}}`,railRunningStopFirst:`{{rail}} está em execução — pare-o antes de remover`,removedFromRail:`Removido de {{rail}}`,queuedOnRail:`Em fila em {{rail}}`,queuedOnRailDescription:`O rail está atualmente em execução`,railStopped:`{{rail}} parado`,stopFailed:`Falha ao parar o rail`,syncTicketsFailed:`Falha ao sincronizar os tickets do rail`,launchFailed:`Falha ao lançar o rail`,launchNetworkError:`Erro de rede ao lançar o rail`,railLaunched:`{{rail}} lançado`,launchDescription_one:`{{mode}} com {{count}} spec`,launchDescription_other:`{{mode}} com {{count}} specs`,railWorktreeNeedsReview:`Rail {{n}}: a spec #{{ticket}} precisa de revisão após o merge`,railWorktreesNoGit:`Isolamento por worktree indisponível: este projeto não é um repositório git — executando em modo compartilhado.`,railWorktreesNoCommits:`Isolamento por worktree indisponível: o repositório ainda não tem commits — faça um commit inicial e relance.`},t={title:`Rails`,runningCount_one:`{{count}} em execução`,runningCount_other:`{{count}} em execução`},n={viewJobLog:`Ver log do job`,log:`Log`,implement:`Implementar`,batch:`Batch`,ultra:`Freestyle`,ultraTitle:`Freestyle — o Claude implementa a spec de forma autónoma, sem pipeline`,loop:`Loop`,loopTitle:`Loop — execute um loop de automação publicado nas specs do rail`,pickLoop:`Escolha um loop…`,effortTitle:`Esforço de raciocínio`,stop:`Parar`,play:`Iniciar`,failedRetry:`O job falhou — clique para repetir`,addSpecsFirst:`Adicione primeiro specs a este rail`,builtInLoops:`Integrados`,customLoops:`Loops personalizados`,worktreesMerged:`{{count}} mesclados`,worktreesNeedsReview:`{{count}} para revisar`,execSteps:`{{count}} passos`,execLines:`{{count}} linhas`,openspec:`OpenSpec`},r={moveToSpecs:`Mover para Specs`,deleteRail:`Eliminar {{label}}`,dropHere:`Largar aqui`,dropOnThisRail:`Largar neste rail`,dragSpecsHere:`Arraste specs para aqui`},i={title:`Lançar em modo Freestyle`,context_one:`{{rail}} · {{count}} spec`,context_other:`{{rail}} · {{count}} specs`,noPipelineTitle:`Sem pipeline OpenSpec.`,noPipelineBody:`O fluxo estruturado architect → developer → reviewer é totalmente ignorado.`,autonomyTitle:`Autonomia nativa do Claude.`,autonomyBody:`O Claude trabalha por conta própria com agentes nativos e workflows dinâmicos.`,costTitle:`Custo variável.`,costBody:`O gasto depende do que o Claude decidir fazer — pode ser superior ao esperado.`,continue:`Continuar`},a={fetchFailed:`Falha ao obter os rails: {{status}}`},o={toasts:e,railsBoard:t,railControls:n,railRow:r,ultracodeDialog:i,useRails:a};export{o as default,n as railControls,r as railRow,t as railsBoard,e as toasts,i as ultracodeDialog,a as useRails};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./chunk-BNv3lrIs.js";var t=e({default:()=>c,railControls:()=>i,railRow:()=>a,railsBoard:()=>r,toasts:()=>n,ultracodeDialog:()=>o,useRails:()=>s}),n={railAdded:`Rail {{n}} added`,railRemoved:`{{rail}} removed`,railCompleted:`Rail {{n}} completed`,railFailed:`Rail {{n}} failed — specs returned to Specs`,railEnded:`Rail {{n}} {{status}} — specs returned to Specs`,alreadyOnRail:`Already on {{rail}}`,movedToRail:`Moved to {{rail}}`,railRunningStopFirst:`{{rail}} is running — stop it before removing`,removedFromRail:`Removed from {{rail}}`,queuedOnRail:`Queued on {{rail}}`,queuedOnRailDescription:`Rail is currently running`,railStopped:`{{rail}} stopped`,stopFailed:`Failed to stop rail`,syncTicketsFailed:`Failed to sync rail tickets`,launchFailed:`Failed to launch rail`,launchNetworkError:`Network error launching rail`,railLaunched:`{{rail}} launched`,launchDescription_one:`{{mode}} with {{count}} spec`,launchDescription_other:`{{mode}} with {{count}} specs`,railWorktreeNeedsReview:`Rail {{n}}: spec #{{ticket}} needs review after merge`,railWorktreesNoGit:`Worktree isolation unavailable: this project isn't a git repository — running in shared mode.`,railWorktreesNoCommits:`Worktree isolation unavailable: the repository has no commits yet — make an initial commit, then relaunch.`},r={title:`Rails`,runningCount_one:`{{count}} running`,runningCount_other:`{{count}} running`},i={viewJobLog:`View job log`,log:`Log`,implement:`Implement`,batch:`Batch`,ultra:`Freestyle`,ultraTitle:`Freestyle — Claude implements the spec autonomously, no pipeline`,loop:`Loop`,loopTitle:`Loop — run a published automation loop against the rail's specs`,pickLoop:`Pick a loop…`,effortTitle:`Reasoning effort`,stop:`Stop`,play:`Play`,failedRetry:`Job failed — click to retry`,addSpecsFirst:`Add specs to this rail first`,builtInLoops:`Built-in`,customLoops:`Custom loops`,worktreesMerged:`{{count}} merged`,worktreesNeedsReview:`{{count}} need review`,execSteps:`{{count}} steps`,execLines:`{{count}} lines`,openspec:`OpenSpec`},a={moveToSpecs:`Move to Specs`,deleteRail:`Delete {{label}}`,dropHere:`Drop here`,dropOnThisRail:`Drop on this rail`,dragSpecsHere:`Drag specs here`},o={title:`Launch in Freestyle mode`,context_one:`{{rail}} · {{count}} spec`,context_other:`{{rail}} · {{count}} specs`,noPipelineTitle:`No OpenSpec pipeline.`,noPipelineBody:`The structured architect → developer → reviewer flow is skipped entirely.`,autonomyTitle:`Native Claude autonomy.`,autonomyBody:`Claude works on its own using native agents and dynamic workflows.`,costTitle:`Variable cost.`,costBody:`Spend depends on what Claude decides to do — it can be higher than expected.`,continue:`Continue`},s={fetchFailed:`Failed to fetch rails: {{status}}`},c={toasts:n,railsBoard:r,railControls:i,railRow:a,ultracodeDialog:o,useRails:s};export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={railAdded:`Rail {{n}} ajouté`,railRemoved:`{{rail}} supprimé`,railCompleted:`Rail {{n}} terminé`,railFailed:`Rail {{n}} en échec — specs renvoyées vers Specs`,railEnded:`Rail {{n}} {{status}} — specs renvoyées vers Specs`,alreadyOnRail:`Déjà sur {{rail}}`,movedToRail:`Déplacé vers {{rail}}`,railRunningStopFirst:`{{rail}} est en cours d'exécution — arrêtez-le avant de le supprimer`,removedFromRail:`Retiré de {{rail}}`,queuedOnRail:`Mis en file sur {{rail}}`,queuedOnRailDescription:`Le rail est en cours d'exécution`,railStopped:`{{rail}} arrêté`,stopFailed:`Échec de l'arrêt du rail`,syncTicketsFailed:`Échec de la synchronisation des tickets du rail`,launchFailed:`Échec du lancement du rail`,launchNetworkError:`Erreur réseau au lancement du rail`,railLaunched:`{{rail}} lancé`,launchDescription_one:`{{mode}} avec {{count}} spec`,launchDescription_other:`{{mode}} avec {{count}} specs`,railWorktreeNeedsReview:`Rail {{n}} : la spec #{{ticket}} nécessite une revue après le merge`,railWorktreesNoGit:`Isolation par worktree indisponible : ce projet n'est pas un dépôt git — exécution en mode partagé.`,railWorktreesNoCommits:`Isolation par worktree indisponible : le dépôt n'a pas encore de commit — faites un commit initial puis relancez.`},t={title:`Rails`,runningCount_one:`{{count}} en cours`,runningCount_other:`{{count}} en cours`},n={viewJobLog:`Voir le log du job`,log:`Log`,implement:`Implémenter`,batch:`Batch`,ultra:`Freestyle`,ultraTitle:`Freestyle — Claude implémente la spec en autonomie, sans pipeline`,loop:`Loop`,loopTitle:`Loop — exécute une boucle d'automatisation publiée sur les specs du rail`,pickLoop:`Choisir une boucle…`,effortTitle:`Effort de raisonnement`,stop:`Arrêter`,play:`Lancer`,failedRetry:`Job en échec — cliquez pour réessayer`,addSpecsFirst:`Ajoutez d'abord des specs à ce rail`,builtInLoops:`Intégrés`,customLoops:`Loops personnalisés`,worktreesMerged:`{{count}} fusionnés`,worktreesNeedsReview:`{{count}} à vérifier`,execSteps:`{{count}} étapes`,execLines:`{{count}} lignes`,openspec:`OpenSpec`},r={moveToSpecs:`Déplacer vers Specs`,deleteRail:`Supprimer {{label}}`,dropHere:`Déposer ici`,dropOnThisRail:`Déposer sur ce rail`,dragSpecsHere:`Glissez des specs ici`},i={title:`Lancer en mode Freestyle`,context_one:`{{rail}} · {{count}} spec`,context_other:`{{rail}} · {{count}} specs`,noPipelineTitle:`Pas de pipeline OpenSpec.`,noPipelineBody:`Le flux structuré architecte → développeur → reviewer est entièrement ignoré.`,autonomyTitle:`Autonomie native de Claude.`,autonomyBody:`Claude travaille seul avec ses agents natifs et des workflows dynamiques.`,costTitle:`Coût variable.`,costBody:`La dépense dépend de ce que Claude décide de faire — elle peut être plus élevée que prévu.`,continue:`Continuer`},a={fetchFailed:`Échec de la récupération des rails : {{status}}`},o={toasts:e,railsBoard:t,railControls:n,railRow:r,ultracodeDialog:i,useRails:a};export{o as default,n as railControls,r as railRow,t as railsBoard,e as toasts,i as ultracodeDialog,a as useRails};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={railAdded:`Rail {{n}} añadido`,railRemoved:`{{rail}} eliminado`,railCompleted:`Rail {{n}} completado`,railFailed:`Rail {{n}} fallido — las specs han vuelto a Specs`,railEnded:`Rail {{n}} {{status}} — las specs han vuelto a Specs`,alreadyOnRail:`Ya está en {{rail}}`,movedToRail:`Movida a {{rail}}`,railRunningStopFirst:`{{rail}} está en ejecución — detenlo antes de eliminarlo`,removedFromRail:`Quitada de {{rail}}`,queuedOnRail:`En cola en {{rail}}`,queuedOnRailDescription:`El rail está en ejecución`,railStopped:`{{rail}} detenido`,stopFailed:`No se pudo detener el rail`,syncTicketsFailed:`No se pudieron sincronizar los tickets del rail`,launchFailed:`No se pudo lanzar el rail`,launchNetworkError:`Error de red al lanzar el rail`,railLaunched:`{{rail}} lanzado`,launchDescription_one:`{{mode}} con {{count}} spec`,launchDescription_other:`{{mode}} con {{count}} specs`,railWorktreeNeedsReview:`Rail {{n}}: la spec #{{ticket}} necesita revisión tras el merge`,railWorktreesNoGit:`Aislamiento por worktrees no disponible: el proyecto no es un repositorio git — ejecutando en modo compartido.`,railWorktreesNoCommits:`Aislamiento por worktrees no disponible: el repositorio aún no tiene commits — haz un commit inicial y relanza.`},t={title:`Rails`,runningCount_one:`{{count}} en ejecución`,runningCount_other:`{{count}} en ejecución`},n={viewJobLog:`Ver log del job`,log:`Log`,implement:`Implement`,batch:`Batch`,ultra:`Freestyle`,ultraTitle:`Freestyle — Claude implementa la spec de forma autónoma, sin pipeline`,loop:`Loop`,loopTitle:`Loop — ejecuta un bucle de automatización publicado sobre las specs del rail`,pickLoop:`Elige un bucle…`,effortTitle:`Esfuerzo de razonamiento`,stop:`Detener`,play:`Iniciar`,failedRetry:`El job ha fallado — haz clic para reintentar`,addSpecsFirst:`Añade primero specs a este rail`,builtInLoops:`Integrados`,customLoops:`Loops personalizados`,worktreesMerged:`{{count}} fusionados`,worktreesNeedsReview:`{{count}} a revisar`,execSteps:`{{count}} pasos`,execLines:`{{count}} líneas`,openspec:`OpenSpec`},r={moveToSpecs:`Mover a Specs`,deleteRail:`Eliminar {{label}}`,dropHere:`Suelta aquí`,dropOnThisRail:`Suelta en este rail`,dragSpecsHere:`Arrastra specs aquí`},i={title:`Lanzar en modo Freestyle`,context_one:`{{rail}} · {{count}} spec`,context_other:`{{rail}} · {{count}} specs`,noPipelineTitle:`Sin pipeline de OpenSpec.`,noPipelineBody:`El flujo estructurado architect → developer → reviewer se omite por completo.`,autonomyTitle:`Autonomía nativa de Claude.`,autonomyBody:`Claude trabaja por su cuenta con agentes nativos y flujos dinámicos.`,costTitle:`Coste variable.`,costBody:`El gasto depende de lo que Claude decida hacer — puede ser mayor de lo esperado.`,continue:`Continuar`},a={fetchFailed:`No se pudieron obtener los rails: {{status}}`},o={toasts:e,railsBoard:t,railControls:n,railRow:r,ultracodeDialog:i,useRails:a};export{o as default,n as railControls,r as railRow,t as railsBoard,e as toasts,i as ultracodeDialog,a as useRails};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={railAdded:`レール {{n}} を追加しました`,railRemoved:`{{rail}} を削除しました`,railCompleted:`レール {{n}} が完了しました`,railFailed:`レール {{n}} が失敗しました — スペックは Specs に戻されました`,railEnded:`レール {{n}}: {{status}} — スペックは Specs に戻されました`,alreadyOnRail:`すでに {{rail}} にあります`,movedToRail:`{{rail}} に移動しました`,railRunningStopFirst:`{{rail}} は実行中です — 削除する前に停止してください`,removedFromRail:`{{rail}} から削除しました`,queuedOnRail:`{{rail}} のキューに追加しました`,queuedOnRailDescription:`レールは現在実行中です`,railStopped:`{{rail}} を停止しました`,stopFailed:`レールの停止に失敗しました`,syncTicketsFailed:`レールのチケット同期に失敗しました`,launchFailed:`レールの起動に失敗しました`,launchNetworkError:`レール起動中にネットワークエラーが発生しました`,railLaunched:`{{rail}} を起動しました`,launchDescription_one:`{{mode}} · スペック {{count}} 件`,launchDescription_other:`{{mode}} · スペック {{count}} 件`,railWorktreeNeedsReview:`Rail {{n}}:マージ後、spec #{{ticket}} は要確認です`,railWorktreesNoGit:`worktree 分離は利用できません:このプロジェクトは git リポジトリではありません — 共有モードで実行します。`,railWorktreesNoCommits:`worktree 分離は利用できません:リポジトリにまだコミットがありません — 初回コミットを作成してから再実行してください。`},t={title:`レール`,runningCount_one:`{{count}} 件実行中`,runningCount_other:`{{count}} 件実行中`},n={viewJobLog:`ジョブログを表示`,log:`ログ`,implement:`実装`,batch:`バッチ`,ultra:`Freestyle`,ultraTitle:`Freestyle — Claude がパイプラインなしでスペックを自律的に実装します`,loop:`Loop`,loopTitle:`Loop — 公開済みの自動化ループをレールのスペックに対して実行します`,pickLoop:`ループを選択…`,effortTitle:`推論の労力`,stop:`停止`,play:`実行`,failedRetry:`ジョブが失敗しました — クリックして再試行`,addSpecsFirst:`先にこのレールにスペックを追加してください`,builtInLoops:`組み込み`,customLoops:`カスタムループ`,worktreesMerged:`{{count}} 件マージ済み`,worktreesNeedsReview:`{{count}} 件要確認`,execSteps:`{{count}} ステップ`,execLines:`{{count}} 行`,openspec:`OpenSpec`},r={moveToSpecs:`Specs に移動`,deleteRail:`{{label}} を削除`,dropHere:`ここにドロップ`,dropOnThisRail:`このレールにドロップ`,dragSpecsHere:`ここにスペックをドラッグ`},i={title:`Freestyle モードで起動`,context_one:`{{rail}} · スペック {{count}} 件`,context_other:`{{rail}} · スペック {{count}} 件`,noPipelineTitle:`OpenSpec パイプラインなし。`,noPipelineBody:`アーキテクト → 開発者 → レビュアーの構造化フローは完全にスキップされます。`,autonomyTitle:`Claude ネイティブの自律性。`,autonomyBody:`Claude はネイティブエージェントと動的ワークフローを使って自律的に作業します。`,costTitle:`コストは変動します。`,costBody:`支出は Claude の判断に依存し、想定より高くなることがあります。`,continue:`続行`},a={fetchFailed:`レールの取得に失敗しました: {{status}}`},o={toasts:e,railsBoard:t,railControls:n,railRow:r,ultracodeDialog:i,useRails:a};export{o as default,n as railControls,r as railRow,t as railsBoard,e as toasts,i as ultracodeDialog,a as useRails};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e,o as t}from"./index-BeujshsU.js";var n=class{constructor(){this.eventListeners=Object.create(null)}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}on(e,t){return e in this.eventListeners?this.eventListeners[e].push(t):this.eventListeners[e]=[t],this}once(e,t){let n=r=>{this.removeListener(e,n),t(r)};return this.addListener(e,n)}off(e,t){return e in this.eventListeners&&(this.eventListeners[e]=this.eventListeners[e].filter(e=>e!==t)),this}removeAllListeners(e){return e?delete this.eventListeners[e]:this.eventListeners=Object.create(null),this}emit(e,t){if(e in this.eventListeners){let n=this.eventListeners[e];for(let e of n)e(t);return!0}return!1}listenerCount(e){return e in this.eventListeners?this.eventListeners[e].length:0}prependListener(e,t){return e in this.eventListeners?this.eventListeners[e].unshift(t):this.eventListeners[e]=[t],this}prependOnceListener(e,t){let n=r=>{this.removeListener(e,n),t(r)};return this.prependListener(e,n)}},r=class{constructor(e){this.pid=e}async write(e){await t(`plugin:shell|stdin_write`,{pid:this.pid,buffer:e})}async kill(){await t(`plugin:shell|kill`,{cmd:`killChild`,pid:this.pid})}},i=class i extends n{constructor(e,t=[],r){super(),this.stdout=new n,this.stderr=new n,this.program=e,this.args=typeof t==`string`?[t]:t,this.options=r??{}}static create(e,t=[],n){return new i(e,t,n)}static sidecar(e,t=[],n){let r=new i(e,t,n);return r.options.sidecar=!0,r}async spawn(){let n=this.program,i=this.args,a=this.options;typeof i==`object`&&Object.freeze(i);let o=new e;return o.onmessage=e=>{switch(e.event){case`Error`:this.emit(`error`,e.payload);break;case`Terminated`:this.emit(`close`,e.payload);break;case`Stdout`:this.stdout.emit(`data`,e.payload);break;case`Stderr`:this.stderr.emit(`data`,e.payload);break}},await t(`plugin:shell|spawn`,{program:n,args:i,options:a,onEvent:o}).then(e=>new r(e))}async execute(){let e=this.program,n=this.args,r=this.options;return typeof n==`object`&&Object.freeze(n),await t(`plugin:shell|execute`,{program:e,args:n,options:r})}};async function a(e,n){await t(`plugin:shell|open`,{path:e,with:n})}export{r as Child,i as Command,n as EventEmitter,a as open};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{o as e}from"./index-BeujshsU.js";function t(e){if(e!==void 0){if(typeof e==`string`)return e;if(`ok`in e&&`cancel`in e)return{OkCancelCustom:[e.ok,e.cancel]};if(`yes`in e&&`no`in e&&`cancel`in e)return{YesNoCancelCustom:[e.yes,e.no,e.cancel]};if(`ok`in e)return{OkCustom:e.ok}}}async function n(t={}){return typeof t==`object`&&Object.freeze(t),await e(`plugin:dialog|open`,{options:t})}async function r(t={}){return typeof t==`object`&&Object.freeze(t),await e(`plugin:dialog|save`,{options:t})}async function i(n,r){return await e(`plugin:dialog|message`,{message:n,title:r?.title,kind:r?.kind,buttons:t(r?.buttons)})}async function a(e,t){let n=typeof t==`string`?{title:t}:t;return n&&!n.buttons&&n.okLabel&&(n.buttons={ok:n.okLabel}),i(e,n)}async function o(e,t){let n=typeof t==`string`?{title:t}:t,r=n?.okLabel||n?.cancelLabel,a=n?.okLabel??`Yes`;return await i(e,{title:n?.title,kind:n?.kind,buttons:r?{ok:a,cancel:n.cancelLabel??`No`}:`YesNo`})===a}async function s(e,t){let n=typeof t==`string`?{title:t}:t,r=n?.okLabel||n?.cancelLabel,a=n?.okLabel??`Ok`;return await i(e,{title:n?.title,kind:n?.kind,buttons:r?{ok:a,cancel:n.cancelLabel??`Cancel`}:`OkCancel`})===a}export{o as ask,s as confirm,a as message,n as open,r as save};
|