specrails-desktop 2.17.0 → 2.18.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/client/dist/assets/{ActivityFeedPage-BLDMBgwL.js → ActivityFeedPage-mGnv5SOe.js} +1 -1
- package/client/dist/assets/AgentsPage-BH1isg5j.js +86 -0
- package/client/dist/assets/AnalyticsPage-ByyshYRI.js +1 -0
- package/client/dist/assets/{BarChart-ouivqe5L.js → BarChart-BqHUOnl9.js} +4 -4
- package/client/dist/assets/CodePage-CU7T_HYs.js +2 -0
- package/client/dist/assets/{DesktopAnalyticsPage-DIMhuuv0.js → DesktopAnalyticsPage-CR-m97Ui.js} +1 -1
- package/client/dist/assets/DocsDialog-CEmZp_8V.js +11 -0
- package/client/dist/assets/DocsPage-DYbAQ1AT.js +11 -0
- package/client/dist/assets/{ExportDropdown-2XwQ08sz.js → ExportDropdown-C-o1Q4ef.js} +1 -1
- package/client/dist/assets/IntegrationsPage-C6fKdwVH.js +3 -0
- package/client/dist/assets/JobDetailPage-CKfIfBgE.js +16 -0
- package/client/dist/assets/JobsPage-nBng0riZ.js +1 -0
- package/client/dist/assets/LoopBuilderPage-Co_TYqYk.js +7 -0
- package/client/dist/assets/LoopsPage-a2hd37Ya.js +1 -0
- package/client/dist/assets/{activity-Ca2XoBi-.js → activity-D8vQJrpW.js} +1 -1
- package/client/dist/assets/{addon-image-bPlduuUZ.js → addon-image-Ba-TY3wr.js} +1 -1
- package/client/dist/assets/{addon-ligatures-BexpF7xb.js → addon-ligatures-T4ARLiuu.js} +1 -1
- package/client/dist/assets/{addon-webgl-Zy4IOieH.js → addon-webgl-Cd73n8eh.js} +1 -1
- package/client/dist/assets/{addspec-DE_VfIyP.js → addspec-BloGn_ey.js} +1 -1
- package/client/dist/assets/agent-9WdSxPU5.js +1 -0
- package/client/dist/assets/agent-ASIyVcg0.js +1 -0
- package/client/dist/assets/agent-Bm2tPrdr.js +1 -0
- package/client/dist/assets/agent-C4bO1l_v.js +1 -0
- package/client/dist/assets/agent-CgKsh88Z2.js +1 -0
- package/client/dist/assets/agent-DMUrz9ZS2.js +1 -0
- package/client/dist/assets/agent-Dwkz5mPS.js +1 -0
- package/client/dist/assets/agent-pO8x4jbR.js +1 -0
- package/client/dist/assets/{agents-DzhSlNZd.js → agents-BjT_xLjv.js} +1 -1
- package/client/dist/assets/{agentstudio-DCTpIqOx.js → agentstudio-CZm2rOzt.js} +1 -1
- package/client/dist/assets/{aiedit-Dirqf3Bm.js → aiedit-DYtnZU9H.js} +1 -1
- package/client/dist/assets/{analytics-BE49LbUk.js → analytics-B4FJ_pry.js} +1 -1
- package/client/dist/assets/{attachments-C2JPppoP.js → attachments-Ci6_42Kh.js} +1 -1
- package/client/dist/assets/{browser-Dpo_ug4c.js → browser-ZB1afzjZ.js} +1 -1
- package/client/dist/assets/{chat-mq1x9cxZ.js → chat-VMflhzxn.js} +1 -1
- package/client/dist/assets/chunk-BNv3lrIs.js +1 -0
- package/client/dist/assets/{code-DtIatVES.js → code-wtcs0ivb.js} +1 -1
- package/client/dist/assets/commands-Bc8y9eNo2.js +1 -0
- package/client/dist/assets/commands-Bl3-KVfj.js +1 -0
- package/client/dist/assets/commands-C5WQ9blx2.js +1 -0
- package/client/dist/assets/commands-CM99Upsz2.js +1 -0
- package/client/dist/assets/commands-Cc2WpuXa.js +1 -0
- package/client/dist/assets/commands-CckaBWdV.js +1 -0
- package/client/dist/assets/commands-DASXJD-l.js +1 -0
- package/client/dist/assets/commands-k9wbNYoi.js +1 -0
- package/client/dist/assets/{common-kftoE0Q-.js → common-BPQQkgJZ.js} +1 -1
- package/client/dist/assets/{cssMode-BijCvCxs.js → cssMode-DsArsSCT.js} +1 -1
- package/client/dist/assets/{dashboard-BQ3Oa8CE.js → dashboard-Cyzp4ox9.js} +1 -1
- package/client/dist/assets/{dist-js-D7m9--SN.js → dist-js-BHhtSerX.js} +1 -1
- package/client/dist/assets/{dist-js-nZhsq1qo.js → dist-js-CUegfF6k.js} +1 -1
- package/client/dist/assets/{editor.api2-CrNrMVfe.js → editor.api2-T7u8kQWG.js} +1 -1
- package/client/dist/assets/{editor.main-DMIcqwXb.js → editor.main-G3Sl9C67.js} +2 -2
- package/client/dist/assets/{explore-CBYU76JD.js → explore-BKVV5JSu.js} +1 -1
- package/client/dist/assets/{freemarker2-CP2AizpZ.js → freemarker2-pBzQNgFi.js} +1 -1
- package/client/dist/assets/{handlebars-8ElanPOm.js → handlebars-CtBTCnBI.js} +1 -1
- package/client/dist/assets/{html-Mu3b73tG.js → html-Dx3DYBzY.js} +1 -1
- package/client/dist/assets/{htmlMode-tHprGCEv.js → htmlMode-In7frFOo.js} +1 -1
- package/client/dist/assets/index-B0FxQALR.css +2 -0
- package/client/dist/assets/index-B7vB20Jw.js +152 -0
- package/client/dist/assets/{integrations-jJGaKwff.js → integrations-CuWnMR5L.js} +1 -1
- package/client/dist/assets/{javascript-DlG0apUe.js → javascript-BKcn-YkN.js} +1 -1
- package/client/dist/assets/{jira-BwACz875.js → jira-DXMoAKWD.js} +1 -1
- package/client/dist/assets/{jobs-DRInW0AE.js → jobs---dwa4Nf.js} +1 -1
- package/client/dist/assets/{jsonMode-Cr0T4SXO.js → jsonMode-jNREoQ3C.js} +1 -1
- package/client/dist/assets/{lib-Bu76JzdB.js → lib-PQoHlR5u.js} +1 -1
- package/client/dist/assets/{liquid-QgTgbClC.js → liquid-CtRkGqBu.js} +1 -1
- package/client/dist/assets/{loops-DfGadne0.js → loops-D8Iu6Jss.js} +1 -1
- package/client/dist/assets/{lspLanguageFeatures-D-BxkRza.js → lspLanguageFeatures-Cl3gvD_W.js} +1 -1
- package/client/dist/assets/{mcp-D-zQCO5E.js → mcp-CIH0pH1K.js} +1 -1
- package/client/dist/assets/{mdx-B2QTaeRe.js → mdx-B_nJldHz.js} +1 -1
- package/client/dist/assets/{monaco.contribution-CkdGfXCC.js → monaco.contribution-PUeaZk8T.js} +2 -2
- package/client/dist/assets/{nav-CyHKTZxn.js → nav-DE3yWQw6.js} +1 -1
- package/client/dist/assets/{python-BlF0qnMQ.js → python-DS1Ce-A6.js} +1 -1
- package/client/dist/assets/{razor--3PSy3lb.js → razor-L41Qg9OK.js} +1 -1
- package/client/dist/assets/settings-BKmORxlB2.js +1 -0
- package/client/dist/assets/settings-BVv2JgQ8.js +1 -0
- package/client/dist/assets/settings-Bghm3pAV.js +1 -0
- package/client/dist/assets/settings-BuC_aplX.js +1 -0
- package/client/dist/assets/settings-Bw_Qk8E32.js +1 -0
- package/client/dist/assets/settings-CAKgJv7p.js +1 -0
- package/client/dist/assets/settings-CEUgk1Ck.js +1 -0
- package/client/dist/assets/settings-C_PDE20s2.js +1 -0
- package/client/dist/assets/setup-4us-Bz3H.js +1 -0
- package/client/dist/assets/setup-BYoDYoPY2.js +1 -0
- package/client/dist/assets/setup-Bf9eLKxU.js +1 -0
- package/client/dist/assets/setup-C5UbM0RP.js +1 -0
- package/client/dist/assets/setup-CqGrWb6G.js +1 -0
- package/client/dist/assets/setup-JFkWWZnR.js +1 -0
- package/client/dist/assets/setup-faMApo0U2.js +1 -0
- package/client/dist/assets/setup-tloaTobG2.js +1 -0
- package/client/dist/assets/{specs-Dslng_yW.js → specs-BYeAbIEy.js} +1 -1
- package/client/dist/assets/{terminal-XciDq6VV.js → terminal-DFPNRLKp.js} +1 -1
- package/client/dist/assets/{tickets-DbcMWq5L.js → tickets-CkfbISuK.js} +1 -1
- package/client/dist/assets/{tsMode-CHfsvcOI.js → tsMode-BC1g186U.js} +1 -1
- package/client/dist/assets/{typescript-Bjxf6BOp.js → typescript-BGlRGvJW.js} +1 -1
- package/client/dist/assets/upload-PnJDPHZH.js +1 -0
- package/client/dist/assets/{value-fEDhg5Bd.js → value-BTDefcOV.js} +1 -1
- package/client/dist/assets/{workers-CAAvSda9.js → workers-CXcXtO3b.js} +1 -1
- package/client/dist/assets/{xml-iYCSJ4oL.js → xml-JdZZaIhJ.js} +1 -1
- package/client/dist/assets/{yaml-DtO-_yDY.js → yaml-Cm82BVBt.js} +1 -1
- package/client/dist/index.html +30 -29
- package/docs/guide/de/integrations/6-agent-chat.md +64 -0
- package/docs/guide/en/integrations/6-agent-chat.md +64 -0
- package/docs/guide/es/integrations/6-agent-chat.md +64 -0
- package/docs/guide/fr/integrations/6-agent-chat.md +64 -0
- package/docs/guide/it/integrations/6-agent-chat.md +64 -0
- package/docs/guide/ja/integrations/6-agent-chat.md +64 -0
- package/docs/guide/pt/integrations/6-agent-chat.md +64 -0
- package/docs/guide/zh/integrations/6-agent-chat.md +64 -0
- package/package.json +1 -1
- package/server/dist/agent-chat-manager.js +224 -0
- package/server/dist/agent-chat-router.js +148 -0
- package/server/dist/agent-cwd-manager.js +94 -0
- package/server/dist/agent-mcp-config.js +208 -0
- package/server/dist/agent-store.js +59 -0
- package/server/dist/agent-tier.js +86 -0
- package/server/dist/desktop-db.js +27 -0
- package/server/dist/index.js +8 -0
- package/server/dist/mcp/tools/setup.js +30 -50
- package/server/dist/mcp/tools/types.js +21 -2
- package/server/dist/project-router-setup.js +15 -1
- package/server/dist/providers/codex-adapter.js +19 -3
- package/server/dist/setup-manager.js +28 -0
- package/server/dist/spawn-lifecycle.js +21 -13
- package/server/dist/workspace-manager.js +11 -0
- package/client/dist/assets/AgentsPage-CFaIiyAA.js +0 -86
- package/client/dist/assets/AnalyticsPage-DY8ECq2R.js +0 -1
- package/client/dist/assets/CodePage-DAFtRafz.js +0 -2
- package/client/dist/assets/DocsDialog-DBYhv3SM.js +0 -11
- package/client/dist/assets/DocsPage-DeLRn8W_.js +0 -11
- package/client/dist/assets/IntegrationsPage-DB-a4FDV.js +0 -3
- package/client/dist/assets/JobDetailPage-C3lljMiV.js +0 -16
- package/client/dist/assets/JobsPage-CzquwJ6G.js +0 -1
- package/client/dist/assets/LoopBuilderPage-TkoalfW5.js +0 -7
- package/client/dist/assets/LoopsPage-ypooVAQ5.js +0 -1
- package/client/dist/assets/chunk-CilyBKbf.js +0 -1
- package/client/dist/assets/commands-CwypztRT.js +0 -1
- package/client/dist/assets/commands-CxReviyc.js +0 -1
- package/client/dist/assets/commands-CzP1qQyD.js +0 -1
- package/client/dist/assets/commands-DGP46UxM.js +0 -1
- package/client/dist/assets/commands-DQvoMqa7.js +0 -1
- package/client/dist/assets/commands-DeKaz04Q.js +0 -1
- package/client/dist/assets/commands-DwYhwQsF.js +0 -1
- package/client/dist/assets/commands-lm6Vlght.js +0 -1
- package/client/dist/assets/index-BRMyOS1B.css +0 -2
- package/client/dist/assets/index-CDEQ4aU_.js +0 -144
- package/client/dist/assets/settings-BN4dufu6.js +0 -1
- package/client/dist/assets/settings-Bap_q3rt.js +0 -1
- package/client/dist/assets/settings-BlYjWMy5.js +0 -1
- package/client/dist/assets/settings-C7t_uUz4.js +0 -1
- package/client/dist/assets/settings-CIFrUsKt.js +0 -1
- package/client/dist/assets/settings-Cbj9VWmI.js +0 -1
- package/client/dist/assets/settings-D7saHMU8.js +0 -1
- package/client/dist/assets/settings-DrRjM5e8.js +0 -1
- package/client/dist/assets/setup-BiQ7ut8d.js +0 -1
- package/client/dist/assets/setup-BxvjG5Xp.js +0 -1
- package/client/dist/assets/setup-CQ-F6Ciq.js +0 -1
- package/client/dist/assets/setup-D2JlpJEz.js +0 -1
- package/client/dist/assets/setup-DG1R6J6o.js +0 -1
- package/client/dist/assets/setup-DuFJZJsm.js +0 -1
- package/client/dist/assets/setup-DyJszDqm.js +0 -1
- package/client/dist/assets/setup-Ynw19V8w.js +0 -1
- package/client/dist/assets/upload-x42OZJr2.js +0 -1
- /package/client/dist/assets/{abap-BFJA_Joo.js → abap-CpHUwCVK.js} +0 -0
- /package/client/dist/assets/{activity-oLgwaVyt.js → activity-B82z3Pna.js} +0 -0
- /package/client/dist/assets/{activity-D62CDlQz.js → activity-BId0pwuS2.js} +0 -0
- /package/client/dist/assets/{activity-BXBMi28x.js → activity-BVpZrs0J.js} +0 -0
- /package/client/dist/assets/{activity-DAFuSwnt.js → activity-BySXFT2J2.js} +0 -0
- /package/client/dist/assets/{activity-By6I70Ws.js → activity-DIWnV0Pl.js} +0 -0
- /package/client/dist/assets/{activity-Did0FnrH.js → activity-Uj576ckT.js} +0 -0
- /package/client/dist/assets/{activity-CfedQaof.js → activity-w1qMFwxh.js} +0 -0
- /package/client/dist/assets/{addspec-Cvm06hGe.js → addspec-B9dY_F5T.js} +0 -0
- /package/client/dist/assets/{addspec-gthH-H1g.js → addspec-B9nhMikb.js} +0 -0
- /package/client/dist/assets/{addspec-DwoLTocx.js → addspec-BtNaJHu2.js} +0 -0
- /package/client/dist/assets/{addspec-B2fTENuq.js → addspec-D43TlMVp2.js} +0 -0
- /package/client/dist/assets/{addspec-CFsLeQKV.js → addspec-DfgIZ5lO.js} +0 -0
- /package/client/dist/assets/{addspec-CkHI5c5H.js → addspec-W0r16BOC2.js} +0 -0
- /package/client/dist/assets/{addspec-BmggyuCD.js → addspec-tbxr3sHa.js} +0 -0
- /package/client/dist/assets/{agents-B-rVIhuw.js → agents-52t8NVpS.js} +0 -0
- /package/client/dist/assets/{agents-CZQvKDIb.js → agents-BAxAwHy-.js} +0 -0
- /package/client/dist/assets/{agents-D7nWnLg6.js → agents-BUYBb825.js} +0 -0
- /package/client/dist/assets/{agents-CuRY-Zg_.js → agents-C07al8rI.js} +0 -0
- /package/client/dist/assets/{agents-E-42N3b1.js → agents-DfGvYtpq2.js} +0 -0
- /package/client/dist/assets/{agents-4fnKlwcG.js → agents-Dli56gr82.js} +0 -0
- /package/client/dist/assets/{agents-BRUz6RJs.js → agents-Eqw_AQ6H.js} +0 -0
- /package/client/dist/assets/{agentstudio-Dq-bZrI3.js → agentstudio-0o3XKrcy.js} +0 -0
- /package/client/dist/assets/{agentstudio-CIe9C892.js → agentstudio-Bu8m5jDw.js} +0 -0
- /package/client/dist/assets/{agentstudio-D0bQBWpI.js → agentstudio-C7xxqVWn.js} +0 -0
- /package/client/dist/assets/{agentstudio-n0pmwz2I.js → agentstudio-D-UoNAIA.js} +0 -0
- /package/client/dist/assets/{agentstudio-CYGk-jjo.js → agentstudio-OJjjz6Uf2.js} +0 -0
- /package/client/dist/assets/{agentstudio-BtASTJl7.js → agentstudio-ObTpVbBP.js} +0 -0
- /package/client/dist/assets/{agentstudio-CwiS3BTp.js → agentstudio-PzFB3vfh2.js} +0 -0
- /package/client/dist/assets/{aiedit-s1T1EMK8.js → aiedit-BIQqv2XM2.js} +0 -0
- /package/client/dist/assets/{aiedit-CunYxmW0.js → aiedit-BaLZalLa.js} +0 -0
- /package/client/dist/assets/{aiedit-CZBZAyeK.js → aiedit-BjlUzasF.js} +0 -0
- /package/client/dist/assets/{aiedit-uIDh2tlc.js → aiedit-BmDufyGU.js} +0 -0
- /package/client/dist/assets/{aiedit-1Z-UYKFb.js → aiedit-DAM_WRAl2.js} +0 -0
- /package/client/dist/assets/{aiedit-CYnsp1Iv.js → aiedit-DRrNiaB4.js} +0 -0
- /package/client/dist/assets/{aiedit-BAJM9Cch.js → aiedit-sP_iao2j.js} +0 -0
- /package/client/dist/assets/{analytics-DPIkvuTS.js → analytics-BDqqCzN9.js} +0 -0
- /package/client/dist/assets/{analytics-DVFNjjAv.js → analytics-B_rxNC9X.js} +0 -0
- /package/client/dist/assets/{analytics-DRexho82.js → analytics-C4z_NgJZ.js} +0 -0
- /package/client/dist/assets/{analytics-DPmCEzvJ.js → analytics-DL2vJCbq.js} +0 -0
- /package/client/dist/assets/{analytics-g9ASAR_r.js → analytics-Ds_PNxtO2.js} +0 -0
- /package/client/dist/assets/{analytics-DZKGAUdm.js → analytics-MVJRjcY52.js} +0 -0
- /package/client/dist/assets/{analytics-B95FiMuD.js → analytics-e1mkNTgy2.js} +0 -0
- /package/client/dist/assets/{apex-C1f-z6NO.js → apex-DlD7oJX6.js} +0 -0
- /package/client/dist/assets/{atom-one-dark-CT4DolNR.js → atom-one-dark-BrRN8wBy.js} +0 -0
- /package/client/dist/assets/{attachments-Bj3HHTXV.js → attachments-8QCKHCEF2.js} +0 -0
- /package/client/dist/assets/{attachments-FFb2xHc_.js → attachments-BP0Ac1yt.js} +0 -0
- /package/client/dist/assets/{attachments-CnPS8YWu.js → attachments-CJaO1vCH.js} +0 -0
- /package/client/dist/assets/{attachments-C3skjFyH.js → attachments-CPBVeHX72.js} +0 -0
- /package/client/dist/assets/{attachments--jr2QLGv.js → attachments-CV2uaTGE.js} +0 -0
- /package/client/dist/assets/{attachments-DejzxE0C.js → attachments-CaOjdN332.js} +0 -0
- /package/client/dist/assets/{attachments-BgqfeoOx.js → attachments-Db7JfA8a.js} +0 -0
- /package/client/dist/assets/{azcli-Dr0WBJTP.js → azcli-CmXFAbc-.js} +0 -0
- /package/client/dist/assets/{bat-BKG3k49W.js → bat-DdNJq4hH.js} +0 -0
- /package/client/dist/assets/{bicep-DXs2wTcS.js → bicep-Bppz7WOA.js} +0 -0
- /package/client/dist/assets/{browser-DS6xnywt.js → browser-0xeW8fUa2.js} +0 -0
- /package/client/dist/assets/{browser-Dm_Of27q.js → browser-543jbxE4.js} +0 -0
- /package/client/dist/assets/{browser-Dm6F9bqQ.js → browser-C9rUUxo4.js} +0 -0
- /package/client/dist/assets/{browser-BS9t1qMc.js → browser-CEqx11iy.js} +0 -0
- /package/client/dist/assets/{browser-BpMo-amf.js → browser-CLC0etB_2.js} +0 -0
- /package/client/dist/assets/{browser-CsC3NOZ-.js → browser-DyG2l9Wa.js} +0 -0
- /package/client/dist/assets/{browser-U3iouSXn.js → browser-ExmELH702.js} +0 -0
- /package/client/dist/assets/{cameligo-Detknuxp.js → cameligo-0MRMdSmg.js} +0 -0
- /package/client/dist/assets/{chat-DyTbH-0F.js → chat-CCytD3P8.js} +0 -0
- /package/client/dist/assets/{chat-D78VMi-v.js → chat-CN8BMAMc.js} +0 -0
- /package/client/dist/assets/{chat-De1RgOXU.js → chat-Cu6F3d6g2.js} +0 -0
- /package/client/dist/assets/{chat-Cy78lw1n.js → chat-DagUyoVA.js} +0 -0
- /package/client/dist/assets/{chat-B2tWTbZL.js → chat-IjutwlBg.js} +0 -0
- /package/client/dist/assets/{chat-sqZyn0C4.js → chat-NQPCBQo72.js} +0 -0
- /package/client/dist/assets/{chat-CXOJHDUZ.js → chat-vVpwkOp52.js} +0 -0
- /package/client/dist/assets/{clojure-CCu4UNKg.js → clojure-B5dKj863.js} +0 -0
- /package/client/dist/assets/{clsx-pVRQNNR0.js → clsx-1dnHRn8W.js} +0 -0
- /package/client/dist/assets/{code-CLTuhuvM.js → code-32l6Naxu2.js} +0 -0
- /package/client/dist/assets/{code-CwGlPuwb.js → code-BaG05zK62.js} +0 -0
- /package/client/dist/assets/{code-DFCDV5e1.js → code-C5cibF2F.js} +0 -0
- /package/client/dist/assets/{code-Do27r8WG.js → code-Ce-nBIwj.js} +0 -0
- /package/client/dist/assets/{code-Drc7f197.js → code-Dap54vOb.js} +0 -0
- /package/client/dist/assets/{code-6LokPmIE.js → code-Dhb6jbAU.js} +0 -0
- /package/client/dist/assets/{code-Djq48g0s.js → code-_NOCo-Ol2.js} +0 -0
- /package/client/dist/assets/{coffee-Bam7Y9IR.js → coffee-DSbWjzk7.js} +0 -0
- /package/client/dist/assets/{common-DH9A-wTo.js → common-0aY9HQBP.js} +0 -0
- /package/client/dist/assets/{common-C_-0fZsp.js → common-5jScBJqt.js} +0 -0
- /package/client/dist/assets/{common-SyTaRc_K.js → common-BdaRciTu.js} +0 -0
- /package/client/dist/assets/{common-B0crwfK0.js → common-CHARW6MZ2.js} +0 -0
- /package/client/dist/assets/{common-BlqmiTj4.js → common-CQCJzAQq2.js} +0 -0
- /package/client/dist/assets/{common-DJM41wFl.js → common-DNhhqjlJ.js} +0 -0
- /package/client/dist/assets/{common-CIUPtPdu.js → common-YdyZtmaI2.js} +0 -0
- /package/client/dist/assets/{cpp-BhOkAe-9.js → cpp-SBF8SAh9.js} +0 -0
- /package/client/dist/assets/{csharp-BgHArJNx.js → csharp-Lzuq_1t-.js} +0 -0
- /package/client/dist/assets/{csp-Xzh56_3-.js → csp-BEzxZqi1.js} +0 -0
- /package/client/dist/assets/{css-CD7-RYRS.js → css-C3D3PKln.js} +0 -0
- /package/client/dist/assets/{cypher-l2xAdF3X.js → cypher-CQ3dEPmv.js} +0 -0
- /package/client/dist/assets/{dart-CDOWeyzt.js → dart-DCPmxolI.js} +0 -0
- /package/client/dist/assets/{dashboard-Dxgb47lO.js → dashboard-BTiH361F.js} +0 -0
- /package/client/dist/assets/{dashboard-B1rs1wki.js → dashboard-COSm_14E.js} +0 -0
- /package/client/dist/assets/{dashboard-D9QPCmv3.js → dashboard-CfOs70FN2.js} +0 -0
- /package/client/dist/assets/{dashboard-ajT8usAi.js → dashboard-CzHDp14_2.js} +0 -0
- /package/client/dist/assets/{dashboard-TuElRCZX.js → dashboard-D6Woy2B5.js} +0 -0
- /package/client/dist/assets/{dashboard-zwN2xswo.js → dashboard-DwbH4oVH.js} +0 -0
- /package/client/dist/assets/{dashboard-UWXs9_wy.js → dashboard-cWhU3krA2.js} +0 -0
- /package/client/dist/assets/{dockerfile-Dv8atx7v.js → dockerfile-B_2_aaTO.js} +0 -0
- /package/client/dist/assets/{ecl-DIYTlbD_.js → ecl-rADUeXsV.js} +0 -0
- /package/client/dist/assets/{elixir-CR7PLJja.js → elixir-DOd-TuJO.js} +0 -0
- /package/client/dist/assets/{explore-Jkw93usp.js → explore-B82VMUJ_.js} +0 -0
- /package/client/dist/assets/{explore-CvM08PpD.js → explore-BGz1rvQE.js} +0 -0
- /package/client/dist/assets/{explore-CE0wSNV1.js → explore-BzdMEpuf.js} +0 -0
- /package/client/dist/assets/{explore-mLI5eXks.js → explore-CbW0381i2.js} +0 -0
- /package/client/dist/assets/{explore-BYFCCka4.js → explore-ChtxIiSM.js} +0 -0
- /package/client/dist/assets/{explore-kK239uoZ.js → explore-DfcUfiPw2.js} +0 -0
- /package/client/dist/assets/{explore-CSDcRUNj.js → explore-yRF7wFSp2.js} +0 -0
- /package/client/dist/assets/{flow9-DCK5-6NG.js → flow9-Bf7zg_j0.js} +0 -0
- /package/client/dist/assets/{format-command-rVyGPxWE.js → format-command-D96da4fZ.js} +0 -0
- /package/client/dist/assets/{fsharp-DJ1xiUVU.js → fsharp-BqROZjbA.js} +0 -0
- /package/client/dist/assets/{go-BEvbHcbb.js → go-oQTP5uLe.js} +0 -0
- /package/client/dist/assets/{graphql-DN1ktXnz.js → graphql-CSHfTU3q.js} +0 -0
- /package/client/dist/assets/{hcl-DJaIjIEr.js → hcl-CeG-RoFJ.js} +0 -0
- /package/client/dist/assets/{ini-PlKfLEnb.js → ini-B2Dv4ohc.js} +0 -0
- /package/client/dist/assets/{integrations-TwQV3sLw.js → integrations-B0OBPU9_.js} +0 -0
- /package/client/dist/assets/{integrations-D8M8eJH2.js → integrations-BA5pM05t.js} +0 -0
- /package/client/dist/assets/{integrations-TJuDBl-9.js → integrations-BJvrlcc7.js} +0 -0
- /package/client/dist/assets/{integrations-Bdk5dMyv.js → integrations-CPKYkG36.js} +0 -0
- /package/client/dist/assets/{integrations-B8hT0Qf_.js → integrations-CnrX7vqw2.js} +0 -0
- /package/client/dist/assets/{integrations-Cj_BsXxJ.js → integrations-DBou159M2.js} +0 -0
- /package/client/dist/assets/{integrations-CYqz7YFS.js → integrations-DeJFRyXz2.js} +0 -0
- /package/client/dist/assets/{java-3PUwMlx-.js → java-aUDDeufb.js} +0 -0
- /package/client/dist/assets/{jira-DHFnvEm8.js → jira-BDgxAFTF2.js} +0 -0
- /package/client/dist/assets/{jira-NhkbrDXe.js → jira-BwLBgmfI2.js} +0 -0
- /package/client/dist/assets/{jira-wiIvGma5.js → jira-D3GGzXOI.js} +0 -0
- /package/client/dist/assets/{jira-C95FN3yk.js → jira-DeotPx6P2.js} +0 -0
- /package/client/dist/assets/{jira-CNUUgTs4.js → jira-NwlUCcQD.js} +0 -0
- /package/client/dist/assets/{jira-BoRyckbb.js → jira-Srx2P5zS.js} +0 -0
- /package/client/dist/assets/{jira--rI5PfuE.js → jira-mi37H4Kt.js} +0 -0
- /package/client/dist/assets/{jobs-Bjt5PyVv.js → jobs-B56vQEkh2.js} +0 -0
- /package/client/dist/assets/{jobs-D2QVTPbz.js → jobs-BYIk6Tg_.js} +0 -0
- /package/client/dist/assets/{jobs-LK1ImiDH.js → jobs-C-lM-iax2.js} +0 -0
- /package/client/dist/assets/{jobs-BmTs4Bn3.js → jobs-CYdevGgT.js} +0 -0
- /package/client/dist/assets/{jobs-yPz4Dvi-.js → jobs-D8adm2BX.js} +0 -0
- /package/client/dist/assets/{jobs-Cchy-18B.js → jobs-K_Y8KAZ2.js} +0 -0
- /package/client/dist/assets/{jobs-Bjp7v9aA.js → jobs-OwM0ZWhI2.js} +0 -0
- /package/client/dist/assets/{julia-DC6LnY15.js → julia-C5LbruO5.js} +0 -0
- /package/client/dist/assets/{kotlin-CoGntbZF.js → kotlin-C6mOuSKk.js} +0 -0
- /package/client/dist/assets/{less-DCFflTXL.js → less-D5qC3caW.js} +0 -0
- /package/client/dist/assets/{lexon-BTOivnjP.js → lexon-Dr2La-fj.js} +0 -0
- /package/client/dist/assets/{loops-C3OaXou9.js → loops-BDhEfnx82.js} +0 -0
- /package/client/dist/assets/{loops-Cv6Aeszq.js → loops-BM5QggwH.js} +0 -0
- /package/client/dist/assets/{loops-BU314kSd.js → loops-CPjLAAxj.js} +0 -0
- /package/client/dist/assets/{loops-LqZ4MC6J.js → loops-DKnk79TB2.js} +0 -0
- /package/client/dist/assets/{loops-SbkOdciY.js → loops-DLW0aFMm.js} +0 -0
- /package/client/dist/assets/{loops-BFIcYvpy.js → loops-Dcv3dFy_2.js} +0 -0
- /package/client/dist/assets/{loops-IQe23ef6.js → loops-y7wFRx6M.js} +0 -0
- /package/client/dist/assets/{lua-ClKCZMmP.js → lua-Zy6u5z6Z.js} +0 -0
- /package/client/dist/assets/{m3-25hKFWMb.js → m3-C7XHeDz_.js} +0 -0
- /package/client/dist/assets/{markdown-BGAj9q0K.js → markdown-PiF7r-2h.js} +0 -0
- /package/client/dist/assets/{mcp-DyERgHA2.js → mcp-B4irfLJ2.js} +0 -0
- /package/client/dist/assets/{mcp-BSCAtU6Y.js → mcp-B6nwJJmR.js} +0 -0
- /package/client/dist/assets/{mcp-DFG9OEXM.js → mcp-BOoEGTSQ.js} +0 -0
- /package/client/dist/assets/{mcp-Cb6fUaFJ.js → mcp-BP7PpbDr2.js} +0 -0
- /package/client/dist/assets/{mcp-CyP0quZ7.js → mcp-CNgFiTEh.js} +0 -0
- /package/client/dist/assets/{mcp-DCTNWpfB.js → mcp-D3E4_Mmk2.js} +0 -0
- /package/client/dist/assets/{mcp-DEFGJ1OJ.js → mcp-mupPuPDO2.js} +0 -0
- /package/client/dist/assets/{mips-BrVgY2Pf.js → mips-nn07GiyE.js} +0 -0
- /package/client/dist/assets/{msdax-7EhcRsm8.js → msdax-DaKFVMST.js} +0 -0
- /package/client/dist/assets/{mysql-B5_atCBH.js → mysql-C6d6xrbU.js} +0 -0
- /package/client/dist/assets/{nav-Br2AivTc.js → nav-1hj2izqB2.js} +0 -0
- /package/client/dist/assets/{nav-CFofO7QO.js → nav-BBUKMAu-2.js} +0 -0
- /package/client/dist/assets/{nav-_-siCrRv.js → nav-CLqkP-26.js} +0 -0
- /package/client/dist/assets/{nav-zyBhf29M.js → nav-Cv46L837.js} +0 -0
- /package/client/dist/assets/{nav-rO4Nqnh-.js → nav-DgA-rjLk2.js} +0 -0
- /package/client/dist/assets/{nav-DqyLGJmF.js → nav-EG2pr6vN.js} +0 -0
- /package/client/dist/assets/{nav-B2Cv1vjz.js → nav-r3mIJVfU.js} +0 -0
- /package/client/dist/assets/{objective-c-CLUvUl9T.js → objective-c-B6KMtI-k.js} +0 -0
- /package/client/dist/assets/{pascal-BnU1HU42.js → pascal-DYr8MPE7.js} +0 -0
- /package/client/dist/assets/{pascaligo-dsKvjFzi.js → pascaligo-B3pd-jJ_.js} +0 -0
- /package/client/dist/assets/{perl-CZne1GYG.js → perl-z2xUzoaL.js} +0 -0
- /package/client/dist/assets/{pgsql-CMa5W_iF.js → pgsql-DUvT-09-.js} +0 -0
- /package/client/dist/assets/{php-Cu4mS35J.js → php-CGyOmJfy.js} +0 -0
- /package/client/dist/assets/{pla-B7COwnnm.js → pla-CMqgvyD0.js} +0 -0
- /package/client/dist/assets/{postiats-GLeNtnBQ.js → postiats-Dx5LUn4Z.js} +0 -0
- /package/client/dist/assets/{powerquery-BqPf3R1W.js → powerquery-DazYxvJ6.js} +0 -0
- /package/client/dist/assets/{powershell-D9btb5su.js → powershell-B3nwlDka.js} +0 -0
- /package/client/dist/assets/{protobuf-6GHSuaNm.js → protobuf-BGuu2u2s.js} +0 -0
- /package/client/dist/assets/{pug-ct6rYKQd.js → pug-Dbte1MXA.js} +0 -0
- /package/client/dist/assets/{qsharp-CIrAQNPy.js → qsharp-DJLwBOvG.js} +0 -0
- /package/client/dist/assets/{r-Bk-a0sON.js → r-DmGBRSHj.js} +0 -0
- /package/client/dist/assets/{redis-C9yfaWYh.js → redis-VvUYn0a4.js} +0 -0
- /package/client/dist/assets/{redshift-DaOT1jRU.js → redshift-6GdDrxg3.js} +0 -0
- /package/client/dist/assets/{restructuredtext-C1t9LQfS.js → restructuredtext-CfAB8aRU.js} +0 -0
- /package/client/dist/assets/{ruby-COiPZJjc.js → ruby-CIYK6MXY.js} +0 -0
- /package/client/dist/assets/{rust--gZOJZzj.js → rust-CTHZfjj9.js} +0 -0
- /package/client/dist/assets/{sb-NHf3iazF.js → sb-CkKTdkz_.js} +0 -0
- /package/client/dist/assets/{scala-D1nO1TBd.js → scala-Bx-Wr9TM.js} +0 -0
- /package/client/dist/assets/{scheme-Bref42s5.js → scheme-Dcfi6f83.js} +0 -0
- /package/client/dist/assets/{scss-BS9CCLr3.js → scss-ByL-7PFQ.js} +0 -0
- /package/client/dist/assets/{shell-DT3joMBB.js → shell-Csnb9Yqd.js} +0 -0
- /package/client/dist/assets/{solidity-o2Fm9dvg.js → solidity-Dbw5-0QP.js} +0 -0
- /package/client/dist/assets/{sophia-Dj1N6Xqb.js → sophia-ZQ3saZQx.js} +0 -0
- /package/client/dist/assets/{sparql-D2fjpTWm.js → sparql-BEtOel8u.js} +0 -0
- /package/client/dist/assets/{specs-CYA5Bv7Q.js → specs-B5XOoH-02.js} +0 -0
- /package/client/dist/assets/{specs-DFCFg51O.js → specs-B8mwScoM2.js} +0 -0
- /package/client/dist/assets/{specs-DzlROLy7.js → specs-Bj_3fDrQ.js} +0 -0
- /package/client/dist/assets/{specs-CCXV-eSF.js → specs-CWNKAScX2.js} +0 -0
- /package/client/dist/assets/{specs-C-WXGBqy.js → specs-D4z5d8uq.js} +0 -0
- /package/client/dist/assets/{specs-C57koADY.js → specs-DgvIRZtM.js} +0 -0
- /package/client/dist/assets/{specs-DwRPiJTc.js → specs-DuRzE5wE.js} +0 -0
- /package/client/dist/assets/{sql-BArhsPUz.js → sql-DGPDbzB7.js} +0 -0
- /package/client/dist/assets/{st-Bd2-tALj.js → st-GeW2MOgh.js} +0 -0
- /package/client/dist/assets/{swift-DvEpXBKj.js → swift-BVYTN8jq.js} +0 -0
- /package/client/dist/assets/{systemverilog-mHEbsnVH.js → systemverilog-Deg2a8Lr.js} +0 -0
- /package/client/dist/assets/{tcl-DePutp1e.js → tcl-6DnLmROF.js} +0 -0
- /package/client/dist/assets/{terminal-CnObBCAh.js → terminal-B2sExUis.js} +0 -0
- /package/client/dist/assets/{terminal-BRQMrU74.js → terminal-CH0fdHvP.js} +0 -0
- /package/client/dist/assets/{terminal-BTiemy98.js → terminal-CPMigUX7.js} +0 -0
- /package/client/dist/assets/{terminal-2S-Wsk6L.js → terminal-DOwfkxqa2.js} +0 -0
- /package/client/dist/assets/{terminal-DcPKgKMN.js → terminal-DjSSa5qP.js} +0 -0
- /package/client/dist/assets/{terminal-CmP5riTU.js → terminal-DoMTHedv2.js} +0 -0
- /package/client/dist/assets/{terminal-CjQeWfpp.js → terminal-w0i-OCp32.js} +0 -0
- /package/client/dist/assets/{tickets-D75vyZJj.js → tickets-CQTana1u.js} +0 -0
- /package/client/dist/assets/{tickets-CcTcvwKS.js → tickets-D00mSt832.js} +0 -0
- /package/client/dist/assets/{tickets-BSyaZI8d.js → tickets-D7CSuWjO.js} +0 -0
- /package/client/dist/assets/{tickets-7kl_0jgM.js → tickets-Dq7HDy8n.js} +0 -0
- /package/client/dist/assets/{tickets-D79ZT2SZ.js → tickets-DvbFg_-c2.js} +0 -0
- /package/client/dist/assets/{tickets-mxd23fWX.js → tickets-heDAaj8C2.js} +0 -0
- /package/client/dist/assets/{tickets-ZA_2iPd1.js → tickets-onKZz6Dd.js} +0 -0
- /package/client/dist/assets/{twig-DQ2zIX0b.js → twig-XbbXW9Yz.js} +0 -0
- /package/client/dist/assets/{typespec-DPoaiGTJ.js → typespec-CRlV8GhI.js} +0 -0
- /package/client/dist/assets/{vb-Jo98wdMr.js → vb-BHE2izPH.js} +0 -0
- /package/client/dist/assets/{wgsl-DZc4h_eS.js → wgsl-Bf5vkfmY.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={configureAgents:`{{provider}}-Agenten konfigurieren`,configureSubtitle:`Wählen Sie, welche Agenten installiert und wie sie ausgeführt werden.`,tabs:{agents:`Agenten`,models:`Modelle`},skipForNow:`Vorerst überspringen`,install:`Installieren`,nextProvider:`Weiter: {{provider}}`,installingProvider:`{{provider}} wird installiert…`,installingSpecrails:`specrails wird installiert…`,installingFromTemplates:`Agenten werden aus Vorlagen installiert`,waitingForOutput:`Warten auf Ausgabe…`,checkpoints:{baseInstall:`Basisinstallation`,agentSelection:`Agentenauswahl`,agentGeneration:`Agentengenerierung`},steps:{configure:`Konfigurieren`},summary:{agents:`Agenten`,agentSkills:`Agenten-Skills`,skills:`Skills`,openspecSkills:`OpenSpec-Skills`,legacyRemoved_one:`{{count}} Legacy-Befehl <code>/specrails:*</code> entfernt`,legacyRemoved_other:`{{count}} Legacy-Befehle <code>/specrails:*</code> entfernt`},complete:{welcome:`Willkommen bei <spec>spec</spec><rails>rails</rails>`,configured:`<strong>{{projectName}}</strong> ist jetzt mit KI-gestützten Entwicklungs-Workflows konfiguriert. Ihre spezialisierten Agenten und Befehle sind einsatzbereit.`,installedForEngines_one:`Für {{count}} Engine installiert`,installedForEngines_other:`Für {{count}} Engines installiert`,installed:`Installiert`,installFailed:`Installation fehlgeschlagen`,learnMore:`Erfahren Sie, wie Sie das Beste aus specrails herausholen:`,continueToProject:`Weiter zum Projekt`,jira:{title:`Ein Jira-Board verbinden`,subtitle:`Optional — hinterlege die Specs dieses Projekts mit einem Jira-Board. Du kannst das auch später in den Einstellungen tun.`,configure:`Jira einrichten`,optional:`optional`},mcpHint:`Verbinde externe KI-Tools über einen sicheren lokalen MCP-Server mit Specrails — aktiviere ihn in den Einstellungen.`,agentChatHint:`Steuere Specrails per Chat — der integrierte Agent bedient die gesamte App für dich. Öffne ihn über die Blase oder mit ⌘⇧A.`},error:{title:`Setup fehlgeschlagen`,skipSetup:`Setup überspringen`,prereqMissing:`Das SpecRails-Setup benötigt Node.js, npm, npx und Git im PATH, bevor dieses Projekt installiert werden kann.`,prereqRetryHint:`Installieren Sie die fehlenden Tools, starten Sie Specrails neu und versuchen Sie das Setup erneut.`}},t={title:`Projekt hinzufügen`,description:`Registrieren Sie ein Projektverzeichnis, um es über Specrails zu verwalten.`,noProviderDetected:`Keine KI-CLI gefunden. Installieren Sie zuerst Claude Code oder Codex CLI.`,pathLabel:`Projektpfad`,pathPlaceholder:`/Users/ich/mein-projekt`,pathHint:`Absoluter Pfad zum Projekt-Root`,browseForFolder:`Ordner auswählen`,selectProjectFolder:`Projektordner auswählen`,nameLabel:`Anzeigename`,optional:`(optional)`,namePlaceholder:`Mein Projekt`,nameHint:`Standard ist der Verzeichnisname`,providersLabel:`KI-Anbieter`,notFound:`nicht gefunden`,multiProviderHint:`Beide Engines werden eingerichtet. Die erste ist der Projektstandard. Kann nach dem Erstellen nicht geändert werden.`,singleProviderHint:`Kann nach dem Erstellen des Projekts nicht geändert werden.`,adding:`Wird hinzugefügt…`,submit:`Projekt hinzufügen`,toolsRequired_one:`{{tools}} wird benötigt, um ein Projekt hinzuzufügen`,toolsRequired_other:`{{tools}} werden benötigt, um ein Projekt hinzuzufügen`,errors:{pathRequired:`Projektpfad ist erforderlich`,selectProvider:`Wählen Sie mindestens einen KI-Anbieter aus`,addFailed:`Projekt konnte nicht hinzugefügt werden`},toasts:{registered:`Projekt „{{name}}“ registriert`}},n={corruptedBundle:`Bundle beschädigt – App neu installieren`,notInstalled:`nicht installiert`,failedToExecute:`gefunden, aber Ausführung fehlgeschlagen`,failedToExecuteAt:`unter {{path}} gefunden, aber Ausführung fehlgeschlagen`,failedToExecuteWithError:`gefunden, aber Ausführung fehlgeschlagen ({{error}})`,failedToExecuteAtWithError:`unter {{path}} gefunden, aber Ausführung fehlgeschlagen ({{error}})`,needsMinimum:`{{version}} gefunden – benötigt {{minVersion}}+`,unknownVersion:`unbekannt`,installedLabel:`installiert`,verifyError:`Entwickler-Tools konnten lokal nicht überprüft werden – die Installation validiert sie.`,allDetected:`Alle erforderlichen Tools erkannt`,bundleCorruptedTitle:`App-Bundle beschädigt`,toolsRequired_one:`{{count}} Entwickler-Tool erforderlich`,toolsRequired_other:`{{count}} Entwickler-Tools erforderlich`,reinstallHint:`Installieren Sie die Specrails-App neu, um die mitgelieferten Tools wiederherzustellen.`,installMissingHint:`Installieren Sie die fehlenden Tools, um fortzufahren.`,moreInfo:`Mehr Infos`,bundledBadge:`mitgeliefert`},r={title:`Entwickler-Tools installieren`,description:`SpecRails benötigt Node.js, npm, npx und Git im PATH. Wählen Sie das Snippet für Ihr Betriebssystem, führen Sie es aus und klicken Sie dann auf „Installiert, erneut prüfen“.`,darwin:{intro:`Mit Homebrew bekommen Sie beide Tools in einer Zeile. Ohne brew nutzen Sie die offiziellen Downloads.`,installNodeGit:`Node.js und Git über Homebrew installieren`},win32:{intro:`Winget ist in Windows 11 und aktuellen Windows-10-Versionen enthalten. Öffnen Sie PowerShell oder Terminal und führen Sie aus:`,installNode:`Node.js LTS installieren`,installGit:`Git installieren`,note:`Starten Sie Specrails nach der Installation neu, damit Windows den PATH aktualisiert.`},linux:{intro:`Verwenden Sie den Paketmanager Ihrer Distribution:`,debian:`Debian / Ubuntu`,fedora:`Fedora / RHEL`},links:{nodeOfficial:`Node.js (offiziell)`,gitOfficial:`Git (offiziell)`,gitWindows:`Git für Windows (offiziell)`},showOtherPlatforms:`Andere Plattformen anzeigen`,hideOtherPlatforms:`Andere Plattformen ausblenden`,recheck:`Installiert, erneut prüfen`,diagnostics:{copy:`Diagnose kopieren`,copied:`Diagnose kopiert`,failed:`Kopieren fehlgeschlagen`},corrupted:{title:`App-Bundle beschädigt`,description:`Mindestens ein mitgeliefertes Tool (Node.js, Git) konnte nicht verifiziert werden.`,body:`Dieses Tool ist in der Specrails-App enthalten und kann nicht separat installiert werden. Wenn Sie diese Meldung sehen, ist das App-Bundle möglicherweise beschädigt. Bitte installieren Sie Specrails neu.`}},i={title:`Setup-Fortschritt`,progress:`{{done}} von {{total}} abgeschlossen`,rawLog_one:`Roh-Log ({{count}} Zeile)`,rawLog_other:`Roh-Log ({{count}} Zeilen)`},a={title:`Setup-Assistent`,subtitle:`Beantworten Sie die Prompts, um Ihr Projekt zu konfigurieren`,settingUp:`Ihr Projekt wird eingerichtet…`,placeholder:`Antwort eingeben…`,keyboardHint:`Enter zum Senden, Shift+Enter für neue Zeile`},o={title:`Willkommen bei <spec>spec</spec><rails>rails</rails>`,description:`Specrails verwaltet mehrere Projekte über eine einzige Oberfläche. Fügen Sie Ihr erstes Projekt hinzu, um loszulegen.`,addFirstProject:`Erstes Projekt hinzufügen`,jiraHint:`Verbinde jedes Projekt mit seinem eigenen Jira-Board — Specs bleiben in beide Richtungen synchron.`,mcpHint:`Verbinde externe KI-Tools über einen sicheren lokalen MCP-Server mit Specrails — aktiviere ihn in den Einstellungen.`,agentChatHint:`Steuere Specrails per Chat — ein integrierter Agent verwaltet Specs, Rails und Analysen für dich über den lokalen MCP. Öffne ihn über die Blase oder mit ⌘⇧A.`},s=JSON.parse(`{"productTour":"Produkttour","stepCount":"Schritt {{current}} von {{total}}","goToStep":"Zu Schritt {{step}}: {{label}}","stepLabel":"Schritt {{step}}","dontShowAgain":"Nicht mehr anzeigen","skipTour":"Tour überspringen","getStarted":"Loslegen","flow":{"addSpec":"Spec hinzufügen","dropInRail":"Auf eine Rail ziehen","hitPlay":"Play drücken","ship":"Ship","architect":"Architekt","developer":"Entwickler","reviewer":"Reviewer"},"language":{"nav":"Sprache","title":"Wählen Sie Ihre Sprache","subtitle":"Specrails spricht Ihre Sprache","intro":"Wählen Sie die Sprache für die Oberfläche. Sie gilt sofort – diese Tour eingeschlossen.","note":"Sie können sie jederzeit unter Einstellungen → Sprache ändern."},"theme":{"nav":"Theme","title":"Wählen Sie Ihren Look","subtitle":"Integrierte Themes, sofort angewendet","intro":"Wählen Sie, wie Specrails aussehen soll — das Theme wird sofort beim Klick angewendet.","note":"Sie können es jederzeit unter Einstellungen → Erscheinungsbild ändern."},"welcome":{"nav":"Willkommen","title":"Willkommen bei Specrails","subtitle":"Ihr lokales Cockpit, um Software mit KI-Agenten auszuliefern","intro":"Specrails verwandelt eine Idee in ausgelieferten Code – und lässt Sie jeden Schritt <b>sehen, steuern und nachvollziehen</b>. Entwerfen Sie eine Spec im Gespräch mit einer KI, ziehen Sie sie auf eine Ausführungs-Rail und drücken Sie Play. Die Pipeline übernimmt Architektur, Implementierung, Review und den Pull Request – und streamt ihre Arbeit dabei live.","coreLoopLabel":"Der Kern-Loop","flowCaption":"Jede Spec durchläuft automatisch <b>Architekt → Entwickler → Reviewer → Ship</b>.","localNote":"<b>100 % lokal · Single-User · keine Konten.</b> Alles läuft auf Ihrem Rechner. Ihr Code verlässt den Laptop nur, wenn <i>Sie</i> einen Agent darauf ansetzen.","tourNote":"Diese kurze Tour zeigt alles, was die App kann – dauert etwa eine Minute."},"authorSpecs":{"nav":"Specs verfassen","title":"Aus Ideen werden Specs","subtitle":"Sechs Wege, genau festzuhalten, was gebaut werden soll","intro":"Eine <b>Spec</b> beschreibt Arbeit, die erledigt werden soll. Verfassen Sie sie, wie es gerade passt – vom schnellen Einzeiler bis zum ausführlichen Gespräch mit der KI.","exploreLabel":"Explore – im Dialog","exploreBody":"Beschreiben Sie im Chat, was Sie wollen; ein Live-Entwurf baut sich mit jedem Zug neu auf. Ein Preset-Regler steuert, wie viel Projektkontext die KI sieht – von nur Ihrer Nachricht bis zur kompletten Codebasis samt Ihren MCP-Servern.","quickLabel":"Quick – in einem Schritt","quickBody":"Sie wissen schon, was Sie wollen? Generieren Sie eine vollständige Spec in einem einzigen Zug. Optional mit Contract Layer anreichern: exakte Namen, Datenformen, Invarianten und eine Liste der berührten Dateien, damit die Agenten nichts neu erfinden.","websiteLabel":"Von einer Website","websiteBody":"Öffnet einen eingebetteten Browser. Wählen Sie per Hover ein Element oder ziehen Sie ein Rechteck – Screenshot, DOM und angewendetes CSS werden zu Anhängen. Die Desktop-Version bringt ein eigenes Chromium mit und funktioniert daher offline.","smashLabel":"Ein großes Epic SMASHen","smashBody":"Zerlegen Sie eine große Spec mit einem Klick in eine Familie kleinerer Sub-Specs – jedes Kind trägt eine Kurzzusammenfassung auf seiner Karte.","draftsLabel":"Entwürfe & Weiterbearbeiten","draftsBody":"Parken Sie eine laufende Exploration als Entwurfs-Ticket und nehmen Sie sie später wieder auf; öffnen Sie jede Spec erneut in Explore, um weiter zu verfeinern.","compareLabel":"Seite an Seite vergleichen","compareBody":"Ziehen Sie eine Spec an den Bildschirmrand, und eine Auswahl Ihrer anderen Specs gleitet herein – prüfen Sie zwei davon gemeinsam, wie auf einem Tablet."},"rails":{"nav":"Auf Rails ausführen","title":"Die Pipeline auf Rails laufen lassen","subtitle":"Specs in Bahnen organisieren, dann die Agenten starten","intro":"Die rechte Seite des Dashboards sind Ihre <b>Rails</b> – Ausführungsbahnen. Ziehen Sie eine Spec-Karte auf eine Rail und drücken Sie <play>▶ Play</play>, um einen Implementierungsjob zu starten.","jobLabel":"Was jeder Job ausführt","flowCaption":"Jede Phase streamt ihre Logs live, während sie arbeitet.","modeLabel":"Wähle einen Loop zum Ausführen","modeBody":"Jeder rail führt einen <b>Loop</b> aus. Wähle einen integrierten Loop — <b>Implement</b> (die vollständige strukturierte Pipeline), <b>Batch</b> (mehrere Specs auf einmal) oder <b>Ultracode</b> (Claude arbeitet autonom, ohne feste Pipeline) — oder einen, den du selbst erstellt hast.","profilesLabel":"Agentenprofile","profilesBody":"Ein deklarativer Katalog pro Projekt, der bestimmt, welche Agenten laufen und welches Modell jeder nutzt – pro Rail gewählt und pro Job eingefroren, damit parallele Arbeit isoliert bleibt.","jobDetailLabel":"Live-Jobdetails","jobDetailBody":"Jeder Job zeigt einen Ticket-Identitäts-Header, eine live tickende Laufzeit und laufende Turn-/Token-Zähler; die verbindlichen Kosten werden beim Beenden ermittelt.","isolationLabel":"Viele Projekte, isoliert","isolationBody":"Jedes Projekt hat seine eigene Datenbank und Job-Queue. Lassen Sie verschiedene Projekte gleichzeitig laufen und wechseln Sie über die linke Seitenleiste – Ihre Position wird pro Projekt gemerkt.","loopsLabel":"Erstelle deine eigenen Loops","loopsBody":"<b>Loops</b> ist ein visueller Builder: Verkette KI-Schritte, Shell-Befehle und einen <b>Loop Decider</b>, der so lange wiederholt, bis ein Ziel erreicht ist — z. B. prüfen → beheben → prüfen, bis alles grün ist. Veröffentliche einen Loop und wähle ihn auf jedem rail aus."},"agent":{"nav":"Agent-Chat","title":"Bediene die App per Chat","subtitle":"Ein Copilot, der Specrails für dich steuert","intro":"Der integrierte <b>Agent-Chat</b> lässt dich Specrails per Frage bedienen — Specs erstellen, Rails starten, Analysen prüfen — statt herumzuklicken. Er arbeitet über die eigenen <b>MCP</b>-Tools von Specrails, und da alles live ist, siehst du das Board sich verändern, während er arbeitet.","openLabel":"Immer nur einen Klick entfernt","openBody":"Öffne ihn über die schwebende Blase unten oder drücke ⌘⇧A (Ctrl+Shift+A) von überall. Das Panel lässt sich verschieben, in der Größe ändern, maximieren und merkt sich, wo du es zuletzt hattest.","operateLabel":"Bedient die gesamte App","operateBody":"Wähle ein Projekt (oder Start für alles) und einen Anbieter und frag einfach: “starte die drei Tickets mit der höchsten Priorität”, “wie viel habe ich diese Woche ausgegeben?”.","levelsLabel":"Du hältst die Leine","levelsBody":"Eine Live-Stufe — <b>Beobachten → Bearbeiten → Ausführen → Autonom</b>, mit Shift+Tab durchgeschaltet — bestimmt, wie weit er gehen darf. Er handelt nie über der von dir gesetzten Stufe.","watchLabel":"Sieh ihm zu","watchBody":"Das Panel ist nicht modal, daher erscheinen Rails und Specs in Echtzeit auf dem Dashboard, während der Agent arbeitet. Ein Status-Chip zeigt, was er gerade tut.","mcpLabel":"Läuft über den lokalen MCP","mcpBody":"Der Agent steuert die App über den eingebetteten Specrails-MCP-Server. Ist er aus, bietet das Panel eine Aktivierung mit einem Klick — es wird nichts installiert."},"providers":{"nav":"Ihr Agent","title":"Bringen Sie Ihren eigenen Agent mit","subtitle":"Claude Code und Codex als gleichwertige Engines","intro":"Die App behandelt <b>Claude Code</b> und <b>Codex CLI</b> als austauschbare Engines hinter einem gemeinsamen Vertrag. Ein Projekt kann eine oder beide installieren – die Wahl fällt bei der Installation.","table":{"capability":"Fähigkeit","streamingResume":"Streaming & Sitzungsfortsetzung","native":"Nativ","costReporting":"Kostenberichte","providerBilled":"Anbieterseitig abgerechnet","estimated":"Geschätzt (~)","telemetry":"Telemetrie (OTEL)","synthesized":"Synthetisiert","agentProfiles":"Agentenprofile"},"calloutLabel":"Wenn beide installiert sind","calloutBody":"Wählen Sie die Engine <b>pro Spec, pro Rail oder pro Terminal-Start</b>. Die App merkt sich Ihre letzte Wahl pro Projekt. Codex-Kosten werden anhand einer lokalen Preisliste geschätzt und stets mit <mono>~</mono> markiert."},"cost":{"nav":"Kosten verfolgen","title":"Jeden Cent im Blick","subtitle":"Jeder kostenpflichtige Aufruf, erfasst und visualisiert","intro":"Jeder KI-Aufruf – über Rails, Quick, Explore, AI Edits, SMASH und Dateizusammenfassungen – wird für <b>Claude und Codex</b> erfasst. Schluss mit dem Raten, was die Agenten kosten.","analyticsLabel":"Analytics-Seite","analyticsBody":"Ein Burn-Rate-Hero, Tages-Timeline, Top-Tickets, Modellaufschlüsselung und ein Kosten-vs.-Turns-Scatter. Filtern nach Zeitraum (7d / 30d / 90d / Alle) und nach Bereich.","perTicketLabel":"Ausgaben pro Ticket","perTicketBody":"Die Detailansicht jeder Spec zeigt, was sie gekostet hat und wie viele Turns sie brauchte – mit Deep-Link in die auf dieses Ticket gefilterte Analytics-Ansicht.","honestLabel":"Ehrliche Zahlen","honestBody":"Claude-Kosten sind der vom Anbieter abgerechnete Betrag; Codex wird geschätzt und mit <mono>~</mono> markiert. Token-Summen schließen die Cache-Stufen ein, sodass die Zahlen wirklich aufgehen.","budgetsLabel":"Budgets & Alarme","budgetsBody":"Legen Sie ein Tagesbudget und einen Kostenalarm pro Job fest; die App pausiert die Queue automatisch, wenn die Grenze überschritten wird. Exportieren Sie alles als CSV oder JSON."},"workspace":{"nav":"Arbeitsbereich","title":"Machen Sie es zu Ihrem Arbeitsbereich","subtitle":"Alles Nötige, ohne das Fenster zu verlassen","terminalLabel":"Terminal-Panel","terminalBody":"Ein echtes Terminal im VS-Code-Stil am unteren Rand (<mod>{{mod}}</mod> <j>J</j>) – WebGL-Rendering, Suche, Inline-Bilder, Drag-and-drop-Pfade und Shell-Integration. Bis zu 10 Sessions pro Projekt.","codeLabel":"Code-Explorer","codeBody":"Ein schreibgeschützter Dateibaum und Monaco-Viewer mit verständlichen KI-Zusammenfassungen und „Von KI berührt“-Herkunfts-Chips – so kann jeder nachvollziehen, was sich warum geändert hat.","integrationsLabel":"Integrationen","integrationsBody":"Ein Marketplace für MCP-Integrationen pro Projekt – Serena (semantische Code-Navigation) ist bereits enthalten. Installationen sind additiv: Eine neue stört nie eine bestehende.","themesLabel":"Themes","themesBody":"Fünf integrierte Themes – specrails (Standard), dracula, aurora-light, obsidian-dark und matrix – werden angewendet, bevor die UI zeichnet, also ohne Aufblitzen. Ändern Sie sie unter Einstellungen → Erscheinungsbild.","chatsLabel":"Minimierbare Chats","chatsBody":"Parken Sie eine Explore- oder AI-Edit-Sitzung als Dock-Chip und nehmen Sie sie später wieder auf – sie geht weder beim Neuladen noch beim Projektwechsel verloren.","desktopLabel":"Desktop oder Browser","desktopBody":"Nutzen Sie Specrails im Browser oder holen Sie sich die signierte Desktop-App (macOS & Windows) mit eigenem Server und eigenen Runtimes."},"companion":{"nav":"Mobiler Companion","title":"Nehmen Sie Specrails überallhin mit","subtitle":"Specrails Companion – Ihre Pipelines auf Ihrem Smartphone","intro":"<b>Specrails Companion</b> ist eine Web-App unter specrails.dev/companion-app – öffnen Sie sie auf Ihrem Smartphone (oder fügen Sie sie zu Ihrem Home-Bildschirm hinzu), um das Specs-Board zu durchstöbern, Rails zu starten und zu stoppen, Live-Job-Logs zu verfolgen und einen Blick auf die Analytics zu werfen. Keine Installation, kein App-Store.","localLabel":"100 % lokal, wie alles andere","localBody":"Ihr Smartphone verbindet sich direkt mit diesem Rechner – Peer-to-Peer und verschlüsselt (WebRTC). Kein Cloud-Relay, kein Konto, und Ihr Code verlässt nie Ihre Geräte.","downloadLabel":"Auf Ihrem Smartphone öffnen","downloadHint":"Scannen Sie den Code mit der Kamera Ihres Smartphones oder öffnen Sie specrails.dev/companion-app im Browser.","open":"Specrails Companion öffnen","pairLabel":"Die Kopplung dauert zehn Sekunden","pairBody":"Öffnen Sie auf Ihrem Smartphone specrails.dev/companion-app und gehen Sie dann hier zu Einstellungen → Mobiler Companion → Web-Companion koppeln und folgen Sie den Schritten am Bildschirm."},"moveFast":{"nav":"Schnell arbeiten","title":"In Gedankengeschwindigkeit arbeiten","subtitle":"Keyboard-first, überall","paletteLabel":"Befehlspalette","paletteShortcut":"<f>Drücken Sie</f> <mod>{{mod}}</mod> <m>+</m> <k>K</k> <m>überall</m>","paletteBody":"Projekte wechseln, Spec-Befehle ausführen, zu jeder Seite springen und letzte Jobs finden – alles mit Fuzzy-Suche.","terminalLabel":"Terminal-Panel","terminalBody":"Umschalten mit <mod>{{mod}}</mod> <j>J</j>.","shortcutsLabel":"Alle Shortcuts","shortcutsBody":"Drücken Sie <q>?</q> für die vollständige Übersicht.","chatLabel":"Chat-Seitenleiste","chatBody":"Rechte Seitenleiste umschalten mit <mod>{{mod}}</mod> <bkey>B</bkey>.","projectsLabel":"Projekt-Seitenleiste","projectsBody":"Linke Arc-Seitenleiste umschalten mit <alt>{{alt}}</alt> <mod>{{mod}}</mod> <bkey>B</bkey>.","outro":"<b>Das war die Tour.</b> Fügen Sie über die linke Seitenleiste ein Projekt hinzu und liefern Sie Ihre erste Spec aus. Diese Tour lässt sich jederzeit über die Einstellungen erneut öffnen."},"jira":{"label":"Jira-Integration","body":"Hinterlege jedes Projekt mit einem <b>Jira-Board</b> — jede Spec wird zu einem Jira-Vorgang, in beide Richtungen synchronisiert: Der Status folgt dem Rail und am Ende eines Jobs wird ein Kommentar gepostet. Richte es pro Projekt beim Hinzufügen ein oder jederzeit in den Einstellungen."}}`),c={wizard:e,addProject:t,prerequisites:n,instructions:r,checkpoints:i,setupChat:a,welcome:o,onboarding:s};export{t as addProject,i as checkpoints,c as default,r as instructions,s as onboarding,n as prerequisites,a as setupChat,o as welcome,e as wizard};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./chunk-BNv3lrIs.js";var t=e({addProject:()=>r,checkpoints:()=>o,default:()=>u,instructions:()=>a,onboarding:()=>l,prerequisites:()=>i,setupChat:()=>s,welcome:()=>c,wizard:()=>n}),n={configureAgents:`Configure {{provider}} agents`,configureSubtitle:`Choose which agents to install and how to run them.`,tabs:{agents:`Agents`,models:`Models`},skipForNow:`Skip for now`,install:`Install`,nextProvider:`Next: {{provider}}`,installingProvider:`Installing {{provider}}…`,installingSpecrails:`Installing specrails...`,installingFromTemplates:`Installing agents from templates`,waitingForOutput:`Waiting for output...`,checkpoints:{baseInstall:`Base installation`,agentSelection:`Agent selection`,agentGeneration:`Agent generation`},steps:{configure:`Configure`},summary:{agents:`Agents`,agentSkills:`Agent skills`,skills:`Skills`,openspecSkills:`OpenSpec skills`,legacyRemoved_one:`Removed {{count}} legacy <code>/specrails:*</code> command`,legacyRemoved_other:`Removed {{count}} legacy <code>/specrails:*</code> commands`},complete:{welcome:`Welcome to <spec>spec</spec><rails>rails</rails>`,configured:`<strong>{{projectName}}</strong> is now configured with AI-powered development workflows. Your specialized agents and commands are ready to use.`,installedForEngines_one:`Installed for {{count}} engine`,installedForEngines_other:`Installed for {{count}} engines`,installed:`Installed`,installFailed:`Install failed`,learnMore:`Learn how to get the most out of specrails:`,continueToProject:`Continue to project`,jira:{title:`Connect a Jira board`,subtitle:`Optional — back this project's specs with a Jira board. You can also do it later in Settings.`,configure:`Configure Jira`,optional:`optional`},mcpHint:`Connect external AI tools to Specrails over a secure local MCP server — enable it in Settings.`,agentChatHint:`Operate Specrails by chatting — the built-in agent drives the whole app for you. Open it from the bubble or ⌘⇧A.`},error:{title:`Setup failed`,skipSetup:`Skip setup`,prereqMissing:`SpecRails setup needs Node.js, npm, npx and Git available on PATH before it can install this project.`,prereqRetryHint:`Install the missing tools, restart Specrails, then retry setup.`}},r={title:`Add Project`,description:`Register a project directory to manage it from Specrails.`,noProviderDetected:`No AI CLI detected. Install Claude Code or Codex CLI first.`,pathLabel:`Project path`,pathPlaceholder:`/Users/me/my-project`,pathHint:`Absolute path to the project root`,browseForFolder:`Browse for folder`,selectProjectFolder:`Select project folder`,nameLabel:`Display name`,optional:`(optional)`,namePlaceholder:`My Project`,nameHint:`Defaults to the directory name`,providersLabel:`AI providers`,notFound:`not found`,multiProviderHint:`Both engines will be set up. The first is the project default. Cannot be changed after creation.`,singleProviderHint:`Cannot be changed after the project is created.`,adding:`Adding...`,submit:`Add Project`,toolsRequired_one:`{{tools}} is required to add a project`,toolsRequired_other:`{{tools}} are required to add a project`,errors:{pathRequired:`Project path is required`,selectProvider:`Select at least one AI provider`,addFailed:`Failed to add project`},toasts:{registered:`Project "{{name}}" registered`}},i={corruptedBundle:`bundle corrupted — reinstall app`,notInstalled:`not installed`,failedToExecute:`found but failed to execute`,failedToExecuteAt:`found at {{path}} but failed to execute`,failedToExecuteWithError:`found but failed to execute ({{error}})`,failedToExecuteAtWithError:`found at {{path}} but failed to execute ({{error}})`,needsMinimum:`{{version}} found — needs {{minVersion}}+`,unknownVersion:`unknown`,installedLabel:`installed`,verifyError:`Could not verify developer tools locally — install will validate.`,allDetected:`All required tools detected`,bundleCorruptedTitle:`App bundle corrupted`,toolsRequired_one:`{{count}} developer tool required`,toolsRequired_other:`{{count}} developer tools required`,reinstallHint:`Reinstall the Specrails app to restore bundled tools.`,installMissingHint:`Install the missing tools to continue.`,moreInfo:`More info`,bundledBadge:`bundled`},a={title:`Install developer tools`,description:`SpecRails needs Node.js, npm, npx, and Git on PATH. Pick the snippet for your OS, run it, then click "I installed it, recheck".`,darwin:{intro:`Homebrew gets you both tools in one line. If you do not have brew, use the official downloads.`,installNodeGit:`Install Node.js and Git via Homebrew`},win32:{intro:`Winget ships with Windows 11 and recent Windows 10. Open PowerShell or Terminal and run:`,installNode:`Install Node.js LTS`,installGit:`Install Git`,note:`After install, restart Specrails so Windows refreshes PATH.`},linux:{intro:`Use your distro package manager:`,debian:`Debian / Ubuntu`,fedora:`Fedora / RHEL`},links:{nodeOfficial:`Node.js (official)`,gitOfficial:`Git (official)`,gitWindows:`Git for Windows (official)`},showOtherPlatforms:`Show other platforms`,hideOtherPlatforms:`Hide other platforms`,recheck:`I installed it, recheck`,diagnostics:{copy:`Copy diagnostics`,copied:`Diagnostics copied`,failed:`Copy failed`},corrupted:{title:`App bundle corrupted`,description:`One or more bundled tools (Node.js, Git) could not be verified.`,body:`This tool is bundled with the Specrails app and cannot be installed separately. If you see this message, the app bundle may be corrupted. Please reinstall Specrails.`}},o={title:`Setup progress`,progress:`{{done}} of {{total}} complete`,rawLog_one:`Raw log ({{count}} line)`,rawLog_other:`Raw log ({{count}} lines)`},s={title:`Setup assistant`,subtitle:`Respond to prompts to configure your project`,settingUp:`Setting up your project...`,placeholder:`Type a response...`,keyboardHint:`Enter to send, Shift+Enter for new line`},c={title:`Welcome to <spec>spec</spec><rails>rails</rails>`,description:`Specrails manages multiple projects from a single interface. Add your first project to get started.`,addFirstProject:`Add your first project`,jiraHint:`Connect each project to its own Jira board — specs stay in sync, both ways.`,mcpHint:`Connect external AI tools to Specrails over a secure local MCP server — enable it in Settings.`,agentChatHint:`Operate Specrails by chatting — a built-in agent drives specs, rails and analytics for you through the local MCP. Open it from the bubble or ⌘⇧A.`},l=JSON.parse(`{"productTour":"Product tour","stepCount":"Step {{current}} of {{total}}","goToStep":"Go to step {{step}}: {{label}}","stepLabel":"Step {{step}}","dontShowAgain":"Don't show this again","skipTour":"Skip tour","getStarted":"Get Started","flow":{"addSpec":"Add Spec","dropInRail":"Drop in a Rail","hitPlay":"Hit Play","ship":"Ship","architect":"Architect","developer":"Developer","reviewer":"Reviewer"},"language":{"nav":"Language","title":"Choose your language","subtitle":"Specrails speaks your language","intro":"Pick the language you want the interface in. It applies instantly — this tour included.","note":"You can change it any time in Settings → Language."},"theme":{"nav":"Theme","title":"Pick your look","subtitle":"Built-in themes, applied instantly","intro":"Choose how Specrails should look — the theme applies the moment you click.","note":"You can change it any time in Settings → Appearance."},"welcome":{"nav":"Welcome","title":"Welcome to Specrails","subtitle":"Your local cockpit for shipping software with AI agents","intro":"Specrails turns an idea into shipped code — and lets you <b>see, steer, and trust</b> every step. Draft a spec by talking to an AI, drop it on an execution rail, and hit Play. The pipeline handles architecture, implementation, review and the pull request, streaming its work live the whole way.","coreLoopLabel":"The core loop","flowCaption":"Each spec flows through <b>Architect → Developer → Reviewer → Ship</b> automatically.","localNote":"<b>100% local · single user · no accounts.</b> Everything runs on your machine. Your code never leaves the laptop unless <i>you</i> spawn an agent against it.","tourNote":"This quick tour walks through everything the app can do — about a minute."},"authorSpecs":{"nav":"Author specs","title":"Turn ideas into specs","subtitle":"Six ways to capture exactly what you want built","intro":"A <b>spec</b> is a description of work you want done. Author one however suits the moment — from a quick one-liner to a full conversation with the AI.","exploreLabel":"Explore — converse","exploreBody":"Describe what you want in a chat; a live draft rebuilds itself every turn. A preset slider tunes how much project context the AI sees — from your message only, up to the full codebase plus your MCP servers.","quickLabel":"Quick — one shot","quickBody":"Already know what you want? Generate a complete spec in a single turn. Optionally enrich it with a Contract Layer: exact names, data shapes, invariants and a file-touch list so the agents don't reinvent anything.","websiteLabel":"From a website","websiteBody":"Opens an embedded browser. Hover-select an element or drag a rectangle, and the screenshot, DOM and applied CSS become attachments. The desktop build ships its own Chromium, so it works offline.","smashLabel":"SMASH a big epic","smashBody":"Explode a large spec into a family of smaller sub-specs in one click — each child carries a short summary on its card.","draftsLabel":"Drafts & Continue Editing","draftsBody":"Park an in-progress exploration as a draft ticket and resume it later; reopen any spec back in Explore to keep refining it.","compareLabel":"Compare side by side","compareBody":"Drag a spec to the screen edge and a picker of your other specs slides in — review two of them together, tablet-style."},"rails":{"nav":"Run on rails","title":"Run the pipeline on rails","subtitle":"Organize specs into lanes, then launch the agents","intro":"The right side of the Dashboard is your <b>Rails</b> — execution lanes. Drag a spec card onto a rail and press <play>▶ Play</play> to launch an implementation job.","jobLabel":"What each job runs","flowCaption":"Every phase streams its logs live as it works.","modeLabel":"Pick a Loop to run","modeBody":"Each rail runs a <b>Loop</b>. Pick a built-in one — <b>Implement</b> (the full structured pipeline), <b>Batch</b> (several specs at once) or <b>Ultracode</b> (Claude works autonomously, no fixed pipeline) — or one you built yourself.","profilesLabel":"Agent profiles","profilesBody":"A per-project, declarative catalog that decides which agents run and which model each one uses — picked per rail and snapshotted per job so concurrent work stays isolated.","jobDetailLabel":"Live job detail","jobDetailBody":"Every job shows a ticket-identity header, a live duration ticker and running turn/token counts, with the authoritative cost resolved on exit.","isolationLabel":"Many projects, isolated","isolationBody":"Each project has its own database and job queue. Run different projects at the same time and switch between them from the left sidebar — your place is remembered per project.","loopsLabel":"Build your own loops","loopsBody":"<b>Loops</b> is a visual builder: chain AI steps, shell commands and a <b>Loop Decider</b> that repeats until a goal is met — e.g. verify → fix → verify until everything is green. Publish a loop and pick it on any rail."},"agent":{"nav":"Agent chat","title":"Operate the app by chatting","subtitle":"A copilot that drives Specrails for you","intro":"The built-in <b>agent chat</b> lets you run Specrails by asking — create specs, launch rails, check analytics — instead of clicking around. It works through Specrails' own <b>MCP</b> tools, and because everything is live you watch the board change as it works.","openLabel":"Always a click away","openBody":"Open it from the floating bubble at the bottom, or press ⌘⇧A (Ctrl+Shift+A) from anywhere. The panel moves, resizes, maximizes and remembers where you left it.","operateLabel":"Drives the whole app","operateBody":"Pick a project (or Home for everything) and a provider, then just ask: “launch the three highest-priority tickets”, “how much did I spend this week?”.","levelsLabel":"You hold the leash","levelsBody":"A live level — <b>Observe → Edit → Operate → Autonomous</b>, cycled with Shift+Tab — decides how far it can go. It never acts above the level you set.","watchLabel":"Watch it happen","watchBody":"The panel is non-modal, so rails and specs appear on the dashboard in real time while the agent works. A status chip shows what it's doing right now.","mcpLabel":"Runs on the local MCP","mcpBody":"The agent drives the app through the embedded Specrails MCP server. If it's off, the panel offers a one-click enable — nothing is installed."},"providers":{"nav":"Your agent","title":"Bring your own agent","subtitle":"Claude Code and Codex, as first-class engines","intro":"The app treats <b>Claude Code</b> and <b>Codex CLI</b> as interchangeable engines behind one contract. A project can install one or both — the choice is made at install time.","table":{"capability":"Capability","streamingResume":"Streaming & session resume","native":"Native","costReporting":"Cost reporting","providerBilled":"Provider-billed","estimated":"Estimated (~)","telemetry":"Telemetry (OTEL)","synthesized":"Synthesized","agentProfiles":"Agent profiles"},"calloutLabel":"When both are installed","calloutBody":"Pick the engine <b>per spec, per rail, or per terminal launch</b>. The app remembers your last choice per project. Codex cost is estimated from a local rate-card and always flagged with a <mono>~</mono>."},"cost":{"nav":"Track cost","title":"Track every cent","subtitle":"Every billable invocation, recorded and visualized","intro":"Every AI invocation — across rails, Quick, Explore, AI edits, SMASH and file summaries — is recorded for <b>both Claude and Codex</b>. No more guessing what the agents cost.","analyticsLabel":"Analytics page","analyticsBody":"A burn-rate hero, daily timeline, top tickets, model breakdown and a cost-vs-turns scatter. Filter by period (7d / 30d / 90d / All) and by surface.","perTicketLabel":"Per-ticket spending","perTicketBody":"Each spec's detail shows what it cost and how many turns it took, deep-linking into Analytics filtered to that ticket.","honestLabel":"Honest numbers","honestBody":"Claude cost is the provider-billed figure; Codex is estimated and flagged with <mono>~</mono>. Token totals include the cache tiers, so the figures actually reconcile.","budgetsLabel":"Budgets & alerts","budgetsBody":"Set a daily budget and a per-job cost alert; the app auto-pauses the queue when you cross the line. Export anything to CSV or JSON."},"workspace":{"nav":"Workspace","title":"Make it your workspace","subtitle":"Everything you need without leaving the window","terminalLabel":"Terminal panel","terminalBody":"A real VS-Code-style terminal at the bottom (<mod>{{mod}}</mod> <j>J</j>) — WebGL rendering, search, inline images, drag-drop paths and shell integration. Up to 10 sessions per project.","codeLabel":"Code explorer","codeBody":"A read-only file tree and Monaco viewer with plain-language AI summaries and “touched by AI” provenance chips, so anyone can follow what changed and why.","integrationsLabel":"Integrations","integrationsBody":"A per-project marketplace of MCP integrations — Serena semantic code-navigation is bundled. Installs are additive: adding one never disturbs another.","themesLabel":"Themes","themesBody":"Five built-in themes — specrails (default), dracula, aurora-light, obsidian-dark and matrix — applied before the UI paints, so there's no flash. Change them in Settings → Appearance.","chatsLabel":"Minimizable chats","chatsBody":"Park an Explore or AI-Edit session into a dock chip and pick it back up later — never lost across refreshes or project switches.","desktopLabel":"Desktop or browser","desktopBody":"Run Specrails in your browser, or grab the signed desktop app (macOS & Windows) that bundles its own server and runtimes."},"companion":{"nav":"Mobile companion","title":"Take Specrails with you","subtitle":"Specrails Companion — your pipelines, on your phone","intro":"<b>Specrails Companion</b> is a web app at specrails.dev/companion-app — open it on your phone (or add it to your Home Screen) to browse the specs board, launch and stop rails, follow live job logs and glance at analytics. No install, no app store.","localLabel":"100% local, like everything else","localBody":"Your phone connects straight to this computer — peer-to-peer and encrypted (WebRTC). No cloud relay, no account, and your code never leaves your devices.","downloadLabel":"Open it on your phone","downloadHint":"Scan the code with your phone's camera, or open specrails.dev/companion-app in its browser.","open":"Open Specrails Companion","pairLabel":"Pairing takes ten seconds","pairBody":"On your phone open specrails.dev/companion-app, then here go to Settings → Mobile companion → Pair web companion and follow the on-screen steps."},"moveFast":{"nav":"Move fast","title":"Move at the speed of thought","subtitle":"Keyboard-first, everywhere","paletteLabel":"Command palette","paletteShortcut":"<f>Press</f> <mod>{{mod}}</mod> <m>+</m> <k>K</k> <m>anywhere</m>","paletteBody":"Switch projects, run spec commands, jump to any page and find recent jobs — all with fuzzy search.","terminalLabel":"Terminal panel","terminalBody":"Toggle with <mod>{{mod}}</mod> <j>J</j>.","shortcutsLabel":"All shortcuts","shortcutsBody":"Press <q>?</q> to see the full cheat-sheet.","chatLabel":"Chat sidebar","chatBody":"Toggle the right sidebar with <mod>{{mod}}</mod> <bkey>B</bkey>.","projectsLabel":"Projects sidebar","projectsBody":"Toggle the left Arc sidebar with <alt>{{alt}}</alt> <mod>{{mod}}</mod> <bkey>B</bkey>.","outro":"<b>That's the tour.</b> Add a project from the left sidebar and ship your first spec. You can reopen this walkthrough anytime from Settings."},"jira":{"label":"Jira integration","body":"Back any project with a <b>Jira board</b> — each spec becomes a Jira issue, kept in sync both ways: status follows the rail, and a comment is posted when a job finishes. Configure it per project when you add it, or anytime in Settings."}}`),u={wizard:n,addProject:r,prerequisites:i,instructions:a,checkpoints:o,setupChat:s,welcome:c,onboarding:l};export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={configureAgents:`{{provider}} エージェントを設定`,configureSubtitle:`インストールするエージェントと実行方法を選択してください。`,tabs:{agents:`エージェント`,models:`モデル`},skipForNow:`今はスキップ`,install:`インストール`,nextProvider:`次へ: {{provider}}`,installingProvider:`{{provider}} をインストール中…`,installingSpecrails:`specrails をインストール中…`,installingFromTemplates:`テンプレートからエージェントをインストール中`,waitingForOutput:`出力を待機中…`,checkpoints:{baseInstall:`ベースインストール`,agentSelection:`エージェント選択`,agentGeneration:`エージェント生成`},steps:{configure:`設定`},summary:{agents:`エージェント`,agentSkills:`エージェントスキル`,skills:`スキル`,openspecSkills:`OpenSpec スキル`,legacyRemoved_one:`レガシーの <code>/specrails:*</code> コマンドを {{count}} 件削除しました`,legacyRemoved_other:`レガシーの <code>/specrails:*</code> コマンドを {{count}} 件削除しました`},complete:{welcome:`<spec>spec</spec><rails>rails</rails> へようこそ`,configured:`<strong>{{projectName}}</strong> に AI 駆動の開発ワークフローが設定されました。専用のエージェントとコマンドが利用できます。`,installedForEngines_one:`{{count}} 個のエンジンにインストールしました`,installedForEngines_other:`{{count}} 個のエンジンにインストールしました`,installed:`インストール済み`,installFailed:`インストールに失敗しました`,learnMore:`specrails を最大限に活用する方法:`,continueToProject:`プロジェクトへ進む`,jira:{title:`Jira ボードを接続`,subtitle:`任意 — このプロジェクトのスペックを Jira ボードで裏付けます。後で設定からも行えます。`,configure:`Jira を設定`,optional:`任意`},mcpHint:`安全なローカル MCP サーバーを通じて外部 AI ツールを Specrails に接続 — 設定で有効にできます。`,agentChatHint:`チャットで Specrails を操作 — 内蔵エージェントがアプリ全体をあなたの代わりに動かします。バブルから、または ⌘⇧A で開けます。`},error:{title:`セットアップに失敗しました`,skipSetup:`セットアップをスキップ`,prereqMissing:`SpecRails のセットアップには、PATH 上で利用可能な Node.js、npm、npx、Git が必要です。`,prereqRetryHint:`不足しているツールをインストールし、Specrails を再起動してからセットアップを再試行してください。`}},t={title:`プロジェクトを追加`,description:`プロジェクトディレクトリを登録して Specrails から管理します。`,noProviderDetected:`AI CLI が見つかりません。まず Claude Code または Codex CLI をインストールしてください。`,pathLabel:`プロジェクトパス`,pathPlaceholder:`/Users/me/my-project`,pathHint:`プロジェクトルートへの絶対パス`,browseForFolder:`フォルダを参照`,selectProjectFolder:`プロジェクトフォルダを選択`,nameLabel:`表示名`,optional:`(任意)`,namePlaceholder:`マイプロジェクト`,nameHint:`デフォルトはディレクトリ名`,providersLabel:`AI プロバイダー`,notFound:`見つかりません`,multiProviderHint:`両方のエンジンがセットアップされます。最初のものがプロジェクトのデフォルトです。作成後は変更できません。`,singleProviderHint:`プロジェクト作成後は変更できません。`,adding:`追加中…`,submit:`プロジェクトを追加`,toolsRequired_one:`プロジェクトの追加には {{tools}} が必要です`,toolsRequired_other:`プロジェクトの追加には {{tools}} が必要です`,errors:{pathRequired:`プロジェクトパスは必須です`,selectProvider:`AI プロバイダーを1つ以上選択してください`,addFailed:`プロジェクトの追加に失敗しました`},toasts:{registered:`プロジェクト「{{name}}」を登録しました`}},n={corruptedBundle:`バンドル破損 — アプリを再インストールしてください`,notInstalled:`未インストール`,failedToExecute:`見つかりましたが実行できませんでした`,failedToExecuteAt:`{{path}} に見つかりましたが実行できませんでした`,failedToExecuteWithError:`見つかりましたが実行できませんでした({{error}})`,failedToExecuteAtWithError:`{{path}} に見つかりましたが実行できませんでした({{error}})`,needsMinimum:`{{version}} が見つかりました — {{minVersion}} 以上が必要です`,unknownVersion:`不明`,installedLabel:`インストール済み`,verifyError:`開発者ツールをローカルで検証できませんでした — インストール時に検証されます。`,allDetected:`必要なツールはすべて検出されました`,bundleCorruptedTitle:`アプリバンドルが破損しています`,toolsRequired_one:`{{count}} 個の開発者ツールが必要です`,toolsRequired_other:`{{count}} 個の開発者ツールが必要です`,reinstallHint:`Specrails アプリを再インストールしてバンドルツールを復元してください。`,installMissingHint:`続行するには不足しているツールをインストールしてください。`,moreInfo:`詳細`,bundledBadge:`バンドル`},r={title:`開発者ツールをインストール`,description:`SpecRails には PATH 上の Node.js、npm、npx、Git が必要です。お使いの OS のスニペットを選んで実行し、「インストールしました。再チェック」をクリックしてください。`,darwin:{intro:`Homebrew なら1行で両方のツールをインストールできます。brew がない場合は公式ダウンロードを利用してください。`,installNodeGit:`Homebrew で Node.js と Git をインストール`},win32:{intro:`Winget は Windows 11 および最近の Windows 10 に同梱されています。PowerShell またはターミナルを開いて実行してください:`,installNode:`Node.js LTS をインストール`,installGit:`Git をインストール`,note:`インストール後、Windows が PATH を更新するように Specrails を再起動してください。`},linux:{intro:`ディストリビューションのパッケージマネージャーを使用してください:`,debian:`Debian / Ubuntu`,fedora:`Fedora / RHEL`},links:{nodeOfficial:`Node.js(公式)`,gitOfficial:`Git(公式)`,gitWindows:`Git for Windows(公式)`},showOtherPlatforms:`他のプラットフォームを表示`,hideOtherPlatforms:`他のプラットフォームを非表示`,recheck:`インストールしました。再チェック`,diagnostics:{copy:`診断情報をコピー`,copied:`診断情報をコピーしました`,failed:`コピーに失敗しました`},corrupted:{title:`アプリバンドルが破損しています`,description:`バンドルされたツール(Node.js、Git)の一部を検証できませんでした。`,body:`このツールは Specrails アプリにバンドルされており、個別にインストールできません。このメッセージが表示される場合、アプリバンドルが破損している可能性があります。Specrails を再インストールしてください。`}},i={title:`セットアップの進行状況`,progress:`{{done}} / {{total}} 完了`,rawLog_one:`生ログ({{count}} 行)`,rawLog_other:`生ログ({{count}} 行)`},a={title:`セットアップアシスタント`,subtitle:`プロンプトに応答してプロジェクトを設定します`,settingUp:`プロジェクトをセットアップ中…`,placeholder:`返信を入力…`,keyboardHint:`Enter で送信、Shift+Enter で改行`},o={title:`<spec>spec</spec><rails>rails</rails> へようこそ`,description:`Specrails は複数のプロジェクトを単一のインターフェースで管理します。最初のプロジェクトを追加して始めましょう。`,addFirstProject:`最初のプロジェクトを追加`,jiraHint:`各プロジェクトを専用の Jira ボードに接続 — スペックは双方向で同期され続けます。`,mcpHint:`安全なローカル MCP サーバーを通じて外部 AI ツールを Specrails に接続 — 設定で有効にできます。`,agentChatHint:`チャットで Specrails を操作 — 内蔵エージェントがローカル MCP を通じて specs・rails・分析をあなたの代わりに処理します。バブルから、または ⌘⇧A で開けます。`},s=JSON.parse(`{"productTour":"プロダクトツアー","stepCount":"ステップ {{current}} / {{total}}","goToStep":"ステップ {{step}} へ移動: {{label}}","stepLabel":"ステップ {{step}}","dontShowAgain":"今後表示しない","skipTour":"ツアーをスキップ","getStarted":"始める","flow":{"addSpec":"スペックを追加","dropInRail":"レールにドロップ","hitPlay":"再生を押す","ship":"Ship","architect":"アーキテクト","developer":"デベロッパー","reviewer":"レビュアー"},"language":{"nav":"言語","title":"言語を選ぶ","subtitle":"Specrailsはあなたの言語に対応","intro":"インターフェースで使いたい言語を選んでください。即座に適用されます — このツアーも含めて。","note":"設定 → 言語でいつでも変更できます。"},"theme":{"nav":"テーマ","title":"好みの見た目を選ぶ","subtitle":"内蔵テーマを即座に適用","intro":"Specrailsの見た目を選びましょう — テーマはクリックした瞬間に適用されます。","note":"設定 → 外観でいつでも変更できます。"},"welcome":{"nav":"ようこそ","title":"Specrails へようこそ","subtitle":"AI エージェントでソフトウェアを出荷するためのローカルコックピット","intro":"Specrails はアイデアを出荷済みのコードに変えます — そのすべてのステップを<b>見て、操り、信頼</b>できます。AI と対話してスペックを下書きし、実行レールにドロップして再生を押すだけ。パイプラインがアーキテクチャ、実装、レビュー、プルリクエストまで処理し、その作業をライブでストリーミングします。","coreLoopLabel":"コアループ","flowCaption":"各スペックは <b>アーキテクト → デベロッパー → レビュアー → Ship</b> を自動で流れます。","localNote":"<b>100% ローカル · シングルユーザー · アカウント不要。</b>すべてあなたのマシン上で動作します。<i>あなた</i>がエージェントを起動しない限り、コードがラップトップの外に出ることはありません。","tourNote":"このクイックツアーではアプリの全機能を紹介します — 所要時間は約1分です。"},"authorSpecs":{"nav":"スペック作成","title":"アイデアをスペックに変える","subtitle":"作りたいものを正確に捉える6つの方法","intro":"<b>スペック</b>とは、実行してほしい作業の記述です。短い一文から AI との本格的な対話まで、その時々に合った方法で作成できます。","exploreLabel":"Explore — 対話する","exploreBody":"作りたいものをチャットで説明すると、ライブドラフトがターンごとに再構築されます。プリセットスライダーで AI に見せるプロジェクトコンテキストの量を調整できます — メッセージのみから、コードベース全体 + MCP サーバーまで。","quickLabel":"Quick — 一発生成","quickBody":"作りたいものが明確なら、1ターンで完全なスペックを生成できます。オプションで Contract Layer によるエンリッチも可能: 正確な名前、データ形状、不変条件、変更ファイルリストにより、エージェントが車輪の再発明をしません。","websiteLabel":"ウェブサイトから","websiteBody":"埋め込みブラウザが開きます。要素をホバー選択するか矩形をドラッグすると、スクリーンショット、DOM、適用された CSS が添付ファイルになります。デスクトップ版は独自の Chromium を同梱しているのでオフラインでも動作します。","smashLabel":"大きなエピックを SMASH","smashBody":"大きなスペックをワンクリックで小さなサブスペック群に分解します — 各子スペックのカードには短い要約が付きます。","draftsLabel":"下書きと編集の再開","draftsBody":"進行中の探索を下書きチケットとして保存し、後で再開できます。どのスペックも Explore で開き直して改良を続けられます。","compareLabel":"並べて比較","compareBody":"スペックを画面の端にドラッグすると、他のスペックのピッカーがスライドインします — タブレット風に2つを並べてレビューできます。"},"rails":{"nav":"レールで実行","title":"パイプラインをレールで実行","subtitle":"スペックをレーンに整理してエージェントを起動","intro":"ダッシュボードの右側が<b>レール</b> — 実行レーンです。スペックカードをレールにドラッグして <play>▶ 再生</play> を押すと、実装ジョブが起動します。","jobLabel":"各ジョブの実行内容","flowCaption":"各フェーズは作業中のログをライブでストリーミングします。","modeLabel":"実行する Loop を選択","modeBody":"各 rail は <b>Loop</b> を実行します。組み込みの Loop を選ぶ — <b>Implement</b>(構造化された完全なパイプライン)、<b>Batch</b>(複数の spec を一度に)、<b>Ultracode</b>(Claude が固定パイプラインなしで自律的に作業)— か、自分で作った Loop を選びます。","profilesLabel":"エージェントプロファイル","profilesBody":"どのエージェントを実行し、それぞれどのモデルを使うかを決めるプロジェクトごとの宣言的カタログ — レールごとに選択され、ジョブごとにスナップショットされるため並行作業が分離されます。","jobDetailLabel":"ライブジョブ詳細","jobDetailBody":"各ジョブにはチケット識別ヘッダー、ライブの経過時間ティッカー、進行中のターン/トークン数が表示され、確定コストは終了時に解決されます。","isolationLabel":"複数プロジェクト、完全分離","isolationBody":"各プロジェクトは独自のデータベースとジョブキューを持ちます。複数のプロジェクトを同時に実行し、左サイドバーから切り替えられます — 位置はプロジェクトごとに記憶されます。","loopsLabel":"独自の loop を作る","loopsBody":"<b>Loops</b> はビジュアルビルダーです。AI ステップ、シェルコマンド、そして目標を達成するまで繰り返す <b>Loop Decider</b> を連結できます — 例えば、すべてグリーンになるまで 検証 → 修正 → 検証 を繰り返す。loop を公開すれば、どの rail でも選択できます。"},"agent":{"nav":"エージェントチャット","title":"チャットでアプリを操作","subtitle":"Specrails をあなたの代わりに動かすコパイロット","intro":"内蔵の <b>エージェントチャット</b> を使えば、あちこちクリックする代わりに、頼むだけで Specrails を操作できます — spec の作成、rail の起動、分析の確認まで。Specrails 独自の <b>MCP</b> ツールを介して動作し、すべてがライブなので、動作中にボードが変化する様子を見られます。","openLabel":"いつでもワンクリック","openBody":"下部のフローティングバブルから、またはどこからでも ⌘⇧A(Ctrl+Shift+A)で開けます。パネルは移動・リサイズ・最大化でき、前回の位置を記憶します。","operateLabel":"アプリ全体を動かす","operateBody":"プロジェクト(またはすべてを見るにはホーム)とプロバイダーを選び、あとは頼むだけ:“優先度の高い上位 3 件のチケットを起動して”、“今週いくら使った?”。","levelsLabel":"手綱はあなたが握る","levelsBody":"ライブのレベル — <b>観察 → 編集 → 操作 → 自律</b>、Shift+Tab で切り替え — が、どこまで進めるかを決めます。設定したレベルを超えて動くことは決してありません。","watchLabel":"その様子を見守る","watchBody":"パネルは非モーダルなので、エージェントの作業中も rails や specs がリアルタイムでダッシュボードに表示されます。ステータスチップが今何をしているかを示します。","mcpLabel":"ローカル MCP 上で動作","mcpBody":"エージェントは組み込みの Specrails MCP サーバーを通じてアプリを動かします。オフの場合、パネルがワンクリックで有効化を提案します — 何もインストールされません。"},"providers":{"nav":"あなたのエージェント","title":"自分のエージェントを持ち込む","subtitle":"Claude Code と Codex をファーストクラスのエンジンとして","intro":"アプリは <b>Claude Code</b> と <b>Codex CLI</b> を、単一のコントラクトの背後で交換可能なエンジンとして扱います。プロジェクトには片方または両方をインストールでき、選択はインストール時に行います。","table":{"capability":"機能","streamingResume":"ストリーミングとセッション再開","native":"ネイティブ","costReporting":"コストレポート","providerBilled":"プロバイダー請求額","estimated":"推定(~)","telemetry":"テレメトリ(OTEL)","synthesized":"合成","agentProfiles":"エージェントプロファイル"},"calloutLabel":"両方インストールされている場合","calloutBody":"<b>スペックごと、レールごと、ターミナル起動ごと</b>にエンジンを選べます。アプリはプロジェクトごとに最後の選択を記憶します。Codex のコストはローカルのレートカードからの推定で、常に <mono>~</mono> が付きます。"},"cost":{"nav":"コスト追跡","title":"1セント単位で追跡","subtitle":"課金対象のすべての呼び出しを記録・可視化","intro":"レール、Quick、Explore、AI 編集、SMASH、ファイル要約にわたるすべての AI 呼び出しが <b>Claude と Codex の両方</b>で記録されます。エージェントのコストを推測する必要はもうありません。","analyticsLabel":"分析ページ","analyticsBody":"バーンレートのヒーロー表示、日次タイムライン、トップチケット、モデル別内訳、コスト対ターン数の散布図。期間(7日 / 30日 / 90日 / 全期間)とサーフェスでフィルタできます。","perTicketLabel":"チケット別の支出","perTicketBody":"各スペックの詳細にはコストと所要ターン数が表示され、そのチケットでフィルタした分析ページへディープリンクします。","honestLabel":"正直な数字","honestBody":"Claude のコストはプロバイダー請求額そのもの。Codex は推定で <mono>~</mono> が付きます。トークン合計にはキャッシュ階層が含まれるため、数字がきちんと一致します。","budgetsLabel":"予算とアラート","budgetsBody":"日次予算とジョブ単位のコストアラートを設定でき、上限を超えるとアプリが自動でキューを一時停止します。すべて CSV または JSON にエクスポートできます。"},"workspace":{"nav":"ワークスペース","title":"あなたのワークスペースに","subtitle":"ウィンドウを離れずに必要なすべてを","terminalLabel":"ターミナルパネル","terminalBody":"画面下部の本格的な VS Code スタイルのターミナル(<mod>{{mod}}</mod> <j>J</j>)— WebGL レンダリング、検索、インライン画像、パスのドラッグ&ドロップ、シェル統合。プロジェクトごとに最大10セッション。","codeLabel":"コードエクスプローラー","codeBody":"読み取り専用のファイルツリーと Monaco ビューアに、平易な AI 要約と「AI が変更」の来歴チップが付き、誰でも何がなぜ変わったかを追えます。","integrationsLabel":"インテグレーション","integrationsBody":"プロジェクトごとの MCP インテグレーションのマーケットプレイス — Serena のセマンティックコードナビゲーションを同梱。インストールは加算式で、追加しても他に影響しません。","themesLabel":"テーマ","themesBody":"5つの組み込みテーマ — specrails(デフォルト)、dracula、aurora-light、obsidian-dark、matrix — を UI の描画前に適用するため、フラッシュがありません。設定 → 外観で変更できます。","chatsLabel":"最小化できるチャット","chatsBody":"Explore や AI 編集のセッションをドックのチップに格納して後で再開 — リフレッシュやプロジェクト切り替えで失われることはありません。","desktopLabel":"デスクトップまたはブラウザ","desktopBody":"ブラウザで Specrails を実行するか、サーバーとランタイムを同梱した署名済みデスクトップアプリ(macOS と Windows)を入手できます。"},"companion":{"nav":"モバイルコンパニオン","title":"Specrails を持ち歩く","subtitle":"Specrails Companion — あなたのパイプラインを、スマートフォンで","intro":"<b>Specrails Companion</b> は specrails.dev/companion-app で使える Web アプリです — スマートフォンで開く(またはホーム画面に追加する)だけで、スペックボードの閲覧、レールの起動と停止、ジョブログのライブ追跡、分析のチェックができます。インストール不要、アプリストアも不要。","localLabel":"ほかのすべてと同じく 100% ローカル","localBody":"スマートフォンはこのコンピュータに直接接続します — ピアツーピアで暗号化(WebRTC)。クラウド中継なし、アカウント不要、コードがあなたのデバイスの外に出ることはありません。","downloadLabel":"スマートフォンで開く","downloadHint":"スマートフォンのカメラでコードをスキャンするか、ブラウザで specrails.dev/companion-app を開いてください。","open":"Specrails Companion を開く","pairLabel":"ペアリングは10秒で完了","pairBody":"スマートフォンで specrails.dev/companion-app を開き、こちらで 設定 → モバイルコンパニオン → Web コンパニオンをペアリング と進んで、画面の手順に従ってください。"},"moveFast":{"nav":"高速操作","title":"思考のスピードで動く","subtitle":"どこでもキーボードファースト","paletteLabel":"コマンドパレット","paletteShortcut":"<f>どこでも</f> <mod>{{mod}}</mod> <m>+</m> <k>K</k> <m>を押す</m>","paletteBody":"プロジェクトの切り替え、スペックコマンドの実行、任意のページへのジャンプ、最近のジョブの検索 — すべてあいまい検索で。","terminalLabel":"ターミナルパネル","terminalBody":"<mod>{{mod}}</mod> <j>J</j> で切り替え。","shortcutsLabel":"全ショートカット","shortcutsBody":"<q>?</q> を押すと完全なチートシートが表示されます。","chatLabel":"チャットサイドバー","chatBody":"<mod>{{mod}}</mod> <bkey>B</bkey> で右サイドバーを切り替え。","projectsLabel":"プロジェクトサイドバー","projectsBody":"<alt>{{alt}}</alt> <mod>{{mod}}</mod> <bkey>B</bkey> で左の Arc サイドバーを切り替え。","outro":"<b>ツアーは以上です。</b>左サイドバーからプロジェクトを追加して、最初のスペックを出荷しましょう。このウォークスルーは設定からいつでも再表示できます。"},"jira":{"label":"Jira 連携","body":"任意のプロジェクトを <b>Jira ボード</b> で裏付けます — 各スペックは Jira の課題になり、双方向で同期されます。ステータスは rail に追従し、job 完了時にコメントが投稿されます。追加時にプロジェクトごとに設定するか、いつでも設定から構成できます。"}}`),c={wizard:e,addProject:t,prerequisites:n,instructions:r,checkpoints:i,setupChat:a,welcome:o,onboarding:s};export{t as addProject,i as checkpoints,c as default,r as instructions,s as onboarding,n as prerequisites,a as setupChat,o as welcome,e as wizard};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={configureAgents:`配置 {{provider}} Agent`,configureSubtitle:`选择要安装的 Agent 及其运行方式。`,tabs:{agents:`Agent`,models:`模型`},skipForNow:`暂时跳过`,install:`安装`,nextProvider:`下一个:{{provider}}`,installingProvider:`正在安装 {{provider}}…`,installingSpecrails:`正在安装 specrails…`,installingFromTemplates:`正在从模板安装 Agent`,waitingForOutput:`等待输出…`,checkpoints:{baseInstall:`基础安装`,agentSelection:`Agent 选择`,agentGeneration:`Agent 生成`},steps:{configure:`配置`},summary:{agents:`Agent`,agentSkills:`Agent 技能`,skills:`技能`,openspecSkills:`OpenSpec 技能`,legacyRemoved_one:`已移除 {{count}} 个旧版 <code>/specrails:*</code> 命令`,legacyRemoved_other:`已移除 {{count}} 个旧版 <code>/specrails:*</code> 命令`},complete:{welcome:`欢迎使用 <spec>spec</spec><rails>rails</rails>`,configured:`<strong>{{projectName}}</strong> 现已配置好 AI 驱动的开发工作流。你的专属 Agent 和命令已就绪。`,installedForEngines_one:`已为 {{count}} 个引擎安装`,installedForEngines_other:`已为 {{count}} 个引擎安装`,installed:`已安装`,installFailed:`安装失败`,learnMore:`了解如何充分利用 specrails:`,continueToProject:`进入项目`,jira:{title:`连接 Jira 看板`,subtitle:`可选——用 Jira 看板支撑此项目的规格。你也可以稍后在设置中完成。`,configure:`配置 Jira`,optional:`可选`},mcpHint:`通过安全的本地 MCP 服务器将外部 AI 工具连接到 Specrails——在设置中开启。`,agentChatHint:`通过聊天操作 Specrails——内置 agent 为你驱动整个应用。可从气泡或按 ⌘⇧A 打开。`},error:{title:`设置失败`,skipSetup:`跳过设置`,prereqMissing:`SpecRails 设置需要 Node.js、npm、npx 和 Git 在 PATH 上可用后才能安装此项目。`,prereqRetryHint:`安装缺失的工具,重启 Specrails,然后重试设置。`}},t={title:`添加项目`,description:`注册一个项目目录,以便在 Specrails 中管理。`,noProviderDetected:`未检测到 AI CLI。请先安装 Claude Code 或 Codex CLI。`,pathLabel:`项目路径`,pathPlaceholder:`/Users/me/my-project`,pathHint:`项目根目录的绝对路径`,browseForFolder:`浏览文件夹`,selectProjectFolder:`选择项目文件夹`,nameLabel:`显示名称`,optional:`(可选)`,namePlaceholder:`我的项目`,nameHint:`默认为目录名`,providersLabel:`AI 提供商`,notFound:`未找到`,multiProviderHint:`两个引擎都将被安装。第一个为项目默认引擎。创建后不可更改。`,singleProviderHint:`项目创建后不可更改。`,adding:`添加中…`,submit:`添加项目`,toolsRequired_one:`添加项目需要 {{tools}}`,toolsRequired_other:`添加项目需要 {{tools}}`,errors:{pathRequired:`请输入项目路径`,selectProvider:`请至少选择一个 AI 提供商`,addFailed:`添加项目失败`},toasts:{registered:`项目“{{name}}”已注册`}},n={corruptedBundle:`应用包已损坏——请重新安装应用`,notInstalled:`未安装`,failedToExecute:`已找到但无法执行`,failedToExecuteAt:`在 {{path}} 找到但无法执行`,failedToExecuteWithError:`已找到但无法执行({{error}})`,failedToExecuteAtWithError:`在 {{path}} 找到但无法执行({{error}})`,needsMinimum:`已找到 {{version}}——需要 {{minVersion}}+`,unknownVersion:`未知`,installedLabel:`已安装`,verifyError:`无法在本地验证开发工具——安装时将再次校验。`,allDetected:`已检测到全部所需工具`,bundleCorruptedTitle:`应用包已损坏`,toolsRequired_one:`需要 {{count}} 个开发工具`,toolsRequired_other:`需要 {{count}} 个开发工具`,reinstallHint:`请重新安装 Specrails 应用以恢复内置工具。`,installMissingHint:`请安装缺失的工具以继续。`,moreInfo:`更多信息`,bundledBadge:`内置`},r={title:`安装开发工具`,description:`SpecRails 需要 PATH 上的 Node.js、npm、npx 和 Git。选择适合你操作系统的命令片段并运行,然后点击“我已安装,重新检测”。`,darwin:{intro:`用 Homebrew 一行命令即可装好两个工具。如果没有 brew,请使用官方下载。`,installNodeGit:`通过 Homebrew 安装 Node.js 和 Git`},win32:{intro:`Winget 随 Windows 11 及较新的 Windows 10 提供。打开 PowerShell 或终端并运行:`,installNode:`安装 Node.js LTS`,installGit:`安装 Git`,note:`安装后请重启 Specrails,以便 Windows 刷新 PATH。`},linux:{intro:`使用你发行版的包管理器:`,debian:`Debian / Ubuntu`,fedora:`Fedora / RHEL`},links:{nodeOfficial:`Node.js(官方)`,gitOfficial:`Git(官方)`,gitWindows:`Git for Windows(官方)`},showOtherPlatforms:`显示其他平台`,hideOtherPlatforms:`隐藏其他平台`,recheck:`我已安装,重新检测`,diagnostics:{copy:`复制诊断信息`,copied:`诊断信息已复制`,failed:`复制失败`},corrupted:{title:`应用包已损坏`,description:`一个或多个内置工具(Node.js、Git)无法通过验证。`,body:`此工具随 Specrails 应用内置,无法单独安装。如果你看到此消息,说明应用包可能已损坏,请重新安装 Specrails。`}},i={title:`设置进度`,progress:`已完成 {{done}} / {{total}}`,rawLog_one:`原始日志({{count}} 行)`,rawLog_other:`原始日志({{count}} 行)`},a={title:`设置助手`,subtitle:`回应提示以完成项目配置`,settingUp:`正在设置你的项目…`,placeholder:`输入回复…`,keyboardHint:`Enter 发送,Shift+Enter 换行`},o={title:`欢迎使用 <spec>spec</spec><rails>rails</rails>`,description:`Specrails 让你在一个界面中管理多个项目。添加第一个项目即可开始。`,addFirstProject:`添加你的第一个项目`,jiraHint:`将每个项目连接到各自的 Jira 看板——规格在两个方向保持同步。`,mcpHint:`通过安全的本地 MCP 服务器将外部 AI 工具连接到 Specrails——在设置中开启。`,agentChatHint:`通过聊天操作 Specrails——内置 agent 通过本地 MCP 为你处理 specs、rails 和分析。可从气泡或按 ⌘⇧A 打开。`},s=JSON.parse(`{"productTour":"产品导览","stepCount":"第 {{current}} 步,共 {{total}} 步","goToStep":"前往第 {{step}} 步:{{label}}","stepLabel":"第 {{step}} 步","dontShowAgain":"不再显示","skipTour":"跳过导览","getStarted":"开始使用","flow":{"addSpec":"添加 Spec","dropInRail":"放入 Rail","hitPlay":"点击播放","ship":"交付","architect":"架构师","developer":"开发者","reviewer":"评审员"},"language":{"nav":"语言","title":"选择你的语言","subtitle":"Specrails 支持你的语言","intro":"选择界面使用的语言,即刻生效——包括这个导览。","note":"你随时可以在设置 → 语言中更改。"},"theme":{"nav":"主题","title":"挑选你的外观","subtitle":"内置主题,即点即用","intro":"选择 Specrails 的外观 — 主题在你点击的瞬间生效。","note":"你随时可以在设置 → 外观中更改。"},"welcome":{"nav":"欢迎","title":"欢迎使用 Specrails","subtitle":"用 AI Agent 交付软件的本地驾驶舱","intro":"Specrails 把想法变成已交付的代码——并让你<b>看见、掌控、信任</b>每一步。与 AI 对话起草 spec,把它放到执行 rail 上,点击播放。流水线会自动处理架构、实现、评审与 pull request,全程实时直播它的工作。","coreLoopLabel":"核心循环","flowCaption":"每个 spec 都会自动流经<b>架构师 → 开发者 → 评审员 → 交付</b>。","localNote":"<b>100% 本地 · 单用户 · 无需账号。</b>一切都在你的机器上运行。除非<i>你</i>主动对代码启动 Agent,否则代码绝不离开你的电脑。","tourNote":"这个快速导览会带你了解应用的全部能力——大约一分钟。"},"authorSpecs":{"nav":"撰写 spec","title":"把想法变成 spec","subtitle":"六种方式,精准描述你想构建的内容","intro":"<b>spec</b> 是对你想完成的工作的描述。怎么顺手怎么写——从一句话速记到与 AI 的完整对话。","exploreLabel":"Explore——对话式","exploreBody":"在聊天中描述你的需求;实时草稿每轮自动重建。预设滑块控制 AI 能看到多少项目上下文——从仅你的消息,到完整代码库加上你的 MCP 服务器。","quickLabel":"Quick——一步到位","quickBody":"已经想清楚了?一轮即可生成完整 spec。可选启用 Contract Layer 增强:精确的命名、数据结构、不变量和文件改动清单,让 Agent 不再重复造轮子。","websiteLabel":"从网站创建","websiteBody":"打开内嵌浏览器。悬停选中元素或拖出矩形框,截图、DOM 和应用的 CSS 都会成为附件。桌面版自带 Chromium,可离线使用。","smashLabel":"SMASH 拆解大型 epic","smashBody":"一键把大型 spec 拆解为一组更小的子 spec——每个子项的卡片上都带有简短摘要。","draftsLabel":"草稿与继续编辑","draftsBody":"把进行中的探索保存为草稿工单,稍后继续;任何 spec 都可以在 Explore 中重新打开,继续打磨。","compareLabel":"并排对比","compareBody":"把一个 spec 拖到屏幕边缘,其余 spec 的选择器会滑入——像平板一样并排查看两个 spec。"},"rails":{"nav":"在 rail 上运行","title":"让流水线在 rail 上运行","subtitle":"把 spec 整理进泳道,然后启动 Agent","intro":"Dashboard 右侧是你的 <b>Rails</b>——执行泳道。把 spec 卡片拖到 rail 上,按 <play>▶ 播放</play> 启动一次实现任务。","jobLabel":"每个任务运行什么","flowCaption":"每个阶段的日志都会实时流式展示。","modeLabel":"选择要运行的 Loop","modeBody":"每个 rail 都运行一个 <b>Loop</b>。可以选择内置的 Loop —— <b>Implement</b>(完整的结构化流水线)、<b>Batch</b>(一次处理多个 spec)或 <b>Ultracode</b>(Claude 自主工作,无固定流水线)—— 也可以选择你自己构建的 Loop。","profilesLabel":"Agent Profile","profilesBody":"项目级的声明式目录,决定运行哪些 Agent 以及各自使用的模型——按 rail 选择、按任务快照,并发工作互不干扰。","jobDetailLabel":"实时任务详情","jobDetailBody":"每个任务都显示工单标识头、实时计时器和持续累计的轮次 / token 数,最终成本在任务结束时确定。","isolationLabel":"多项目,相互隔离","isolationBody":"每个项目都有独立的数据库和任务队列。可以同时运行多个项目,并从左侧边栏切换——每个项目的位置都会被记住。","loopsLabel":"构建你自己的 loop","loopsBody":"<b>Loops</b> 是一个可视化构建器:串联 AI 步骤、shell 命令以及一个 <b>Loop Decider</b>,它会不断重复直到达成目标 —— 例如 验证 → 修复 → 验证,直到全部通过。发布一个 loop,即可在任意 rail 上选用它。"},"agent":{"nav":"Agent 聊天","title":"通过聊天操作应用","subtitle":"为你驱动 Specrails 的副驾","intro":"内置的 <b>agent 聊天</b> 让你通过提问来操作 Specrails——创建 specs、启动 rails、查看分析——而无需到处点击。它通过 Specrails 自带的 <b>MCP</b> 工具运行,而且因为一切都是实时的,你可以看着看板随它的操作而变化。","openLabel":"始终触手可及","openBody":"从底部的悬浮气泡打开,或在任意位置按 ⌘⇧A(Ctrl+Shift+A)。面板可移动、可调整大小、可最大化,并会记住你上次离开的位置。","operateLabel":"驱动整个应用","operateBody":"选择一个项目(或选择主页查看全部)和一个提供方,然后直接提问:“启动优先级最高的三个工单”“我这周花了多少钱?”。","levelsLabel":"缰绳在你手中","levelsBody":"一个实时级别——<b>观察 → 编辑 → 操作 → 自主</b>,用 Shift+Tab 循环切换——决定它能走多远。它永远不会超出你设定的级别行事。","watchLabel":"亲眼见证","watchBody":"面板为非模态,因此在 agent 工作时,rails 和 specs 会实时出现在仪表盘上。状态标记会显示它此刻正在做什么。","mcpLabel":"运行于本地 MCP","mcpBody":"agent 通过内嵌的 Specrails MCP 服务器驱动应用。如果它已关闭,面板会提供一键启用——不会安装任何东西。"},"providers":{"nav":"你的 Agent","title":"自带 Agent","subtitle":"Claude Code 和 Codex,均为一等公民引擎","intro":"应用将 <b>Claude Code</b> 和 <b>Codex CLI</b> 视为同一契约下可互换的引擎。项目可以安装其中之一或两者——在安装时选择。","table":{"capability":"能力","streamingResume":"流式输出与会话恢复","native":"原生","costReporting":"成本报告","providerBilled":"提供商实际计费","estimated":"估算(~)","telemetry":"遥测(OTEL)","synthesized":"合成","agentProfiles":"Agent Profile"},"calloutLabel":"两者都安装时","calloutBody":"可<b>按 spec、按 rail 或按终端启动</b>选择引擎。应用会记住每个项目的上次选择。Codex 成本基于本地费率表估算,并始终以 <mono>~</mono> 标注。"},"cost":{"nav":"成本追踪","title":"每一分钱都有迹可循","subtitle":"每次计费调用都被记录并可视化","intro":"每次 AI 调用——包括 rail、Quick、Explore、AI 编辑、SMASH 和文件摘要——<b>Claude 和 Codex</b> 都会被记录。再也不用猜 Agent 花了多少钱。","analyticsLabel":"分析页面","analyticsBody":"消耗速率概览、每日时间线、热门工单、模型分布,以及成本-轮次散点图。可按周期(7 天 / 30 天 / 90 天 / 全部)和来源筛选。","perTicketLabel":"按工单统计支出","perTicketBody":"每个 spec 的详情会显示其成本和轮次,并可深链到按该工单筛选的分析页面。","honestLabel":"诚实的数字","honestBody":"Claude 成本为提供商实际计费;Codex 为估算值并以 <mono>~</mono> 标注。Token 总数包含各缓存层级,数字真正对得上账。","budgetsLabel":"预算与告警","budgetsBody":"设置每日预算和单任务成本告警;超限时应用会自动暂停队列。任何数据都可导出为 CSV 或 JSON。"},"workspace":{"nav":"工作区","title":"打造你的工作区","subtitle":"无需离开窗口即可完成一切","terminalLabel":"终端面板","terminalBody":"底部一个真正的 VS Code 风格终端(<mod>{{mod}}</mod> <j>J</j>)——WebGL 渲染、搜索、内联图片、拖放路径和 shell 集成。每个项目最多 10 个会话。","codeLabel":"代码浏览器","codeBody":"只读文件树和 Monaco 查看器,配有通俗易懂的 AI 摘要和“由 AI 修改”的溯源标签,任何人都能看懂改了什么、为什么改。","integrationsLabel":"集成","integrationsBody":"每个项目独立的 MCP 集成市场——内置 Serena 语义代码导航。安装是增量式的:装一个绝不影响另一个。","themesLabel":"主题","themesBody":"五个内置主题——specrails(默认)、dracula、aurora-light、obsidian-dark 和 matrix——在 UI 绘制前应用,不会闪屏。可在设置 → 外观中切换。","chatsLabel":"可最小化的聊天","chatsBody":"把 Explore 或 AI 编辑会话停靠为底部芯片,稍后继续——刷新或切换项目都不会丢失。","desktopLabel":"桌面或浏览器","desktopBody":"在浏览器中运行 Specrails,或下载已签名的桌面应用(macOS 和 Windows),它自带服务器与运行时。"},"companion":{"nav":"移动伴侣","title":"随身携带 Specrails","subtitle":"Specrails Companion——你的流水线,尽在掌上","intro":"<b>Specrails Companion</b> 是一款网页应用,地址为 specrails.dev/companion-app——在手机上打开它(或将其添加到主屏幕),即可浏览 Spec 看板、启动或停止 rail、实时跟踪任务日志、随手查看分析数据。无需安装,无需应用商店。","localLabel":"100% 本地,一如这里的一切","localBody":"你的手机直接连接到这台电脑——点对点且加密(WebRTC)。没有云端中转、无需账号,你的代码绝不离开你的设备。","downloadLabel":"在手机上打开","downloadHint":"用手机相机扫码,或在浏览器中打开 specrails.dev/companion-app。","open":"打开 Specrails Companion","pairLabel":"配对只需十秒","pairBody":"在手机上打开 specrails.dev/companion-app,然后在这里前往设置 → 移动伴侣 → 配对网页伴侣,按照屏幕提示操作。"},"moveFast":{"nav":"高效操作","title":"以思维的速度移动","subtitle":"键盘优先,无处不在","paletteLabel":"命令面板","paletteShortcut":"<f>按下</f> <mod>{{mod}}</mod> <m>+</m> <k>K</k> <m>随时随地</m>","paletteBody":"切换项目、运行 spec 命令、跳转任意页面、查找最近任务——全部支持模糊搜索。","terminalLabel":"终端面板","terminalBody":"用 <mod>{{mod}}</mod> <j>J</j> 切换。","shortcutsLabel":"全部快捷键","shortcutsBody":"按 <q>?</q> 查看完整速查表。","chatLabel":"聊天侧边栏","chatBody":"用 <mod>{{mod}}</mod> <bkey>B</bkey> 切换右侧边栏。","projectsLabel":"项目侧边栏","projectsBody":"用 <alt>{{alt}}</alt> <mod>{{mod}}</mod> <bkey>B</bkey> 切换左侧 Arc 侧边栏。","outro":"<b>导览到此结束。</b>从左侧边栏添加一个项目,交付你的第一个 spec。你随时可以在设置中重新打开本导览。"},"jira":{"label":"Jira 集成","body":"用 <b>Jira 看板</b> 支撑任意项目——每条规格都会成为一个 Jira 事务,双向同步:状态跟随 rail,job 结束时会发布一条评论。在添加项目时按项目配置,或随时在设置中配置。"}}`),c={wizard:e,addProject:t,prerequisites:n,instructions:r,checkpoints:i,setupChat:a,welcome:o,onboarding:s};export{t as addProject,i as checkpoints,c as default,r as instructions,s as onboarding,n as prerequisites,a as setupChat,o as welcome,e as wizard};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={configureAgents:`Configura gli agenti {{provider}}`,configureSubtitle:`Scegli quali agenti installare e come eseguirli.`,tabs:{agents:`Agenti`,models:`Modelli`},skipForNow:`Salta per ora`,install:`Installa`,nextProvider:`Avanti: {{provider}}`,installingProvider:`Installazione di {{provider}}…`,installingSpecrails:`Installazione di specrails...`,installingFromTemplates:`Installazione degli agenti dai template`,waitingForOutput:`In attesa dell'output...`,checkpoints:{baseInstall:`Installazione di base`,agentSelection:`Selezione degli agenti`,agentGeneration:`Generazione degli agenti`},steps:{configure:`Configura`},summary:{agents:`Agenti`,agentSkills:`Skill degli agenti`,skills:`Skill`,openspecSkills:`Skill OpenSpec`,legacyRemoved_one:`Rimosso {{count}} comando legacy <code>/specrails:*</code>`,legacyRemoved_other:`Rimossi {{count}} comandi legacy <code>/specrails:*</code>`},complete:{welcome:`Benvenuto in <spec>spec</spec><rails>rails</rails>`,configured:`<strong>{{projectName}}</strong> è ora configurato con workflow di sviluppo basati sull'IA. I tuoi agenti specializzati e i comandi sono pronti all'uso.`,installedForEngines_one:`Installato per {{count}} engine`,installedForEngines_other:`Installato per {{count}} engine`,installed:`Installato`,installFailed:`Installazione non riuscita`,learnMore:`Scopri come ottenere il massimo da specrails:`,continueToProject:`Continua al progetto`,jira:{title:`Collega una board Jira`,subtitle:`Facoltativo — appoggia le spec di questo progetto a una board Jira. Puoi farlo anche più tardi nelle Impostazioni.`,configure:`Configura Jira`,optional:`facoltativo`},mcpHint:`Collega strumenti di IA esterni a Specrails tramite un server MCP locale sicuro — attivalo nelle Impostazioni.`,agentChatHint:`Gestisci Specrails chattando — l'agente integrato guida l'intera app per te. Aprilo dalla bolla o con ⌘⇧A.`},error:{title:`Setup non riuscito`,skipSetup:`Salta il setup`,prereqMissing:`Il setup di SpecRails richiede Node.js, npm, npx e Git disponibili sul PATH prima di poter installare questo progetto.`,prereqRetryHint:`Installa gli strumenti mancanti, riavvia Specrails e poi riprova il setup.`}},t={title:`Aggiungi progetto`,description:`Registra una directory di progetto per gestirla da Specrails.`,noProviderDetected:`Nessuna CLI IA rilevata. Installa prima Claude Code o Codex CLI.`,pathLabel:`Percorso del progetto`,pathPlaceholder:`/Users/me/my-project`,pathHint:`Percorso assoluto alla root del progetto`,browseForFolder:`Sfoglia cartelle`,selectProjectFolder:`Seleziona la cartella del progetto`,nameLabel:`Nome visualizzato`,optional:`(facoltativo)`,namePlaceholder:`Il mio progetto`,nameHint:`Per impostazione predefinita usa il nome della directory`,providersLabel:`Provider IA`,notFound:`non trovato`,multiProviderHint:`Verranno configurati entrambi gli engine. Il primo è il predefinito del progetto. Non modificabile dopo la creazione.`,singleProviderHint:`Non modificabile dopo la creazione del progetto.`,adding:`Aggiunta in corso...`,submit:`Aggiungi progetto`,toolsRequired_one:`{{tools}} è richiesto per aggiungere un progetto`,toolsRequired_other:`{{tools}} sono richiesti per aggiungere un progetto`,errors:{pathRequired:`Il percorso del progetto è obbligatorio`,selectProvider:`Seleziona almeno un provider IA`,addFailed:`Aggiunta del progetto non riuscita`},toasts:{registered:`Progetto "{{name}}" registrato`}},n={corruptedBundle:`bundle corrotto — reinstalla l'app`,notInstalled:`non installato`,failedToExecute:`trovato ma esecuzione non riuscita`,failedToExecuteAt:`trovato in {{path}} ma esecuzione non riuscita`,failedToExecuteWithError:`trovato ma esecuzione non riuscita ({{error}})`,failedToExecuteAtWithError:`trovato in {{path}} ma esecuzione non riuscita ({{error}})`,needsMinimum:`{{version}} trovata — serve {{minVersion}}+`,unknownVersion:`sconosciuta`,installedLabel:`installato`,verifyError:`Impossibile verificare localmente gli strumenti di sviluppo — l'installazione li convaliderà.`,allDetected:`Tutti gli strumenti richiesti rilevati`,bundleCorruptedTitle:`Bundle dell'app corrotto`,toolsRequired_one:`{{count}} strumento di sviluppo richiesto`,toolsRequired_other:`{{count}} strumenti di sviluppo richiesti`,reinstallHint:`Reinstalla l'app Specrails per ripristinare gli strumenti inclusi.`,installMissingHint:`Installa gli strumenti mancanti per continuare.`,moreInfo:`Maggiori informazioni`,bundledBadge:`incluso`},r={title:`Installa gli strumenti di sviluppo`,description:`SpecRails richiede Node.js, npm, npx e Git sul PATH. Scegli lo snippet per il tuo sistema operativo, eseguilo e poi clicca "L'ho installato, ricontrolla".`,darwin:{intro:`Con Homebrew ottieni entrambi gli strumenti in una riga. Se non hai brew, usa i download ufficiali.`,installNodeGit:`Installa Node.js e Git con Homebrew`},win32:{intro:`Winget è incluso in Windows 11 e nelle versioni recenti di Windows 10. Apri PowerShell o il Terminale ed esegui:`,installNode:`Installa Node.js LTS`,installGit:`Installa Git`,note:`Dopo l'installazione, riavvia Specrails così Windows aggiorna il PATH.`},linux:{intro:`Usa il package manager della tua distro:`,debian:`Debian / Ubuntu`,fedora:`Fedora / RHEL`},links:{nodeOfficial:`Node.js (ufficiale)`,gitOfficial:`Git (ufficiale)`,gitWindows:`Git per Windows (ufficiale)`},showOtherPlatforms:`Mostra altre piattaforme`,hideOtherPlatforms:`Nascondi altre piattaforme`,recheck:`L'ho installato, ricontrolla`,diagnostics:{copy:`Copia diagnostica`,copied:`Diagnostica copiata`,failed:`Copia non riuscita`},corrupted:{title:`Bundle dell'app corrotto`,description:`Non è stato possibile verificare uno o più strumenti inclusi (Node.js, Git).`,body:`Questo strumento è incluso nell'app Specrails e non può essere installato separatamente. Se vedi questo messaggio, il bundle dell'app potrebbe essere corrotto. Reinstalla Specrails.`}},i={title:`Avanzamento del setup`,progress:`{{done}} di {{total}} completati`,rawLog_one:`Log grezzo ({{count}} riga)`,rawLog_other:`Log grezzo ({{count}} righe)`},a={title:`Assistente di setup`,subtitle:`Rispondi ai prompt per configurare il progetto`,settingUp:`Configurazione del progetto in corso...`,placeholder:`Scrivi una risposta...`,keyboardHint:`Invio per inviare, Shift+Invio per andare a capo`},o={title:`Benvenuto in <spec>spec</spec><rails>rails</rails>`,description:`Specrails gestisce più progetti da un'unica interfaccia. Aggiungi il tuo primo progetto per iniziare.`,addFirstProject:`Aggiungi il tuo primo progetto`,jiraHint:`Collega ogni progetto alla sua board Jira — le spec restano sincronizzate in entrambe le direzioni.`,mcpHint:`Collega strumenti di IA esterni a Specrails tramite un server MCP locale sicuro — attivalo nelle Impostazioni.`,agentChatHint:`Gestisci Specrails chattando — un agente integrato gestisce spec, rail e analisi per te tramite l'MCP locale. Aprilo dalla bolla o con ⌘⇧A.`},s=JSON.parse(`{"productTour":"Tour del prodotto","stepCount":"Passo {{current}} di {{total}}","goToStep":"Vai al passo {{step}}: {{label}}","stepLabel":"Passo {{step}}","dontShowAgain":"Non mostrare più","skipTour":"Salta il tour","getStarted":"Inizia","flow":{"addSpec":"Aggiungi Spec","dropInRail":"Trascina su un Rail","hitPlay":"Premi Play","ship":"Ship","architect":"Architetto","developer":"Developer","reviewer":"Reviewer"},"language":{"nav":"Lingua","title":"Scegli la tua lingua","subtitle":"Specrails parla la tua lingua","intro":"Seleziona la lingua in cui vuoi usare l'interfaccia. Si applica all'istante — questo tour incluso.","note":"Puoi cambiarla in qualsiasi momento da Impostazioni → Lingua."},"theme":{"nav":"Tema","title":"Scegli il tuo stile","subtitle":"Temi integrati, applicati all'istante","intro":"Scegli l'aspetto di Specrails — il tema si applica appena fai clic.","note":"Puoi cambiarlo in qualsiasi momento da Impostazioni → Aspetto."},"welcome":{"nav":"Benvenuto","title":"Benvenuto in Specrails","subtitle":"La tua cabina di pilotaggio locale per rilasciare software con agenti IA","intro":"Specrails trasforma un'idea in codice rilasciato — e ti permette di <b>vedere, guidare e verificare</b> ogni passo. Abbozza una spec parlando con un'IA, trascinala su un rail di esecuzione e premi Play. La pipeline gestisce architettura, implementazione, review e la pull request, trasmettendo il proprio lavoro in diretta per tutto il tempo.","coreLoopLabel":"Il ciclo fondamentale","flowCaption":"Ogni spec passa automaticamente per <b>Architect → Developer → Reviewer → Ship</b>.","localNote":"<b>100% locale · utente singolo · nessun account.</b> Tutto gira sulla tua macchina. Il tuo codice non lascia mai il laptop a meno che non sia <i>tu</i> a lanciarci sopra un agente.","tourNote":"Questo breve tour mostra tutto ciò che l'app sa fare — circa un minuto."},"authorSpecs":{"nav":"Scrivi le spec","title":"Trasforma le idee in spec","subtitle":"Sei modi per catturare esattamente cosa vuoi costruire","intro":"Una <b>spec</b> è una descrizione del lavoro che vuoi far svolgere. Scrivila come preferisci sul momento — da una riga veloce a una conversazione completa con l'IA.","exploreLabel":"Explore — conversa","exploreBody":"Descrivi cosa vuoi in una chat; una bozza live si ricostruisce a ogni turno. Uno slider di preset regola quanto contesto del progetto vede l'IA — dal solo tuo messaggio fino all'intero codebase più i tuoi server MCP.","quickLabel":"Quick — in un colpo solo","quickBody":"Sai già cosa vuoi? Genera una spec completa in un solo turno. Facoltativamente arricchiscila con un Contract Layer: nomi esatti, forme dei dati, invarianti e un elenco dei file da toccare, così gli agenti non reinventano nulla.","websiteLabel":"Da un sito web","websiteBody":"Apre un browser integrato. Seleziona un elemento al passaggio del mouse o trascina un rettangolo: screenshot, DOM e CSS applicato diventano allegati. La build desktop include il proprio Chromium, quindi funziona offline.","smashLabel":"SMASH su una grande epic","smashBody":"Esplodi una spec grande in una famiglia di sotto-spec più piccole con un clic — ogni figlia porta un breve riassunto sulla sua card.","draftsLabel":"Bozze e ripresa della modifica","draftsBody":"Parcheggia un'esplorazione in corso come ticket in bozza e riprendila più tardi; riapri qualsiasi spec in Explore per continuare a rifinirla.","compareLabel":"Confronta fianco a fianco","compareBody":"Trascina una spec verso il bordo dello schermo e scivola dentro un selettore delle altre spec — esaminane due insieme, in stile tablet."},"rails":{"nav":"Esegui sui rail","title":"Esegui la pipeline sui rail","subtitle":"Organizza le spec in corsie, poi lancia gli agenti","intro":"Il lato destro della Dashboard sono i tuoi <b>Rail</b> — corsie di esecuzione. Trascina una card spec su un rail e premi <play>▶ Play</play> per lanciare un job di implementazione.","jobLabel":"Cosa esegue ogni job","flowCaption":"Ogni fase trasmette i propri log in diretta mentre lavora.","modeLabel":"Scegli un Loop da eseguire","modeBody":"Ogni rail esegue un <b>Loop</b>. Scegline uno integrato — <b>Implement</b> (la pipeline strutturata completa), <b>Batch</b> (più spec contemporaneamente) o <b>Ultracode</b> (Claude lavora in autonomia, senza pipeline fissa) — oppure uno creato da te.","profilesLabel":"Profili agente","profilesBody":"Un catalogo dichiarativo per progetto che decide quali agenti girano e quale modello usa ciascuno — scelto per rail e congelato per job, così il lavoro concorrente resta isolato.","jobDetailLabel":"Dettaglio job in diretta","jobDetailBody":"Ogni job mostra un header con l'identità del ticket, un contatore di durata in tempo reale e conteggi correnti di turni e token, con il costo definitivo risolto alla chiusura.","isolationLabel":"Tanti progetti, isolati","isolationBody":"Ogni progetto ha il proprio database e la propria coda di job. Esegui progetti diversi contemporaneamente e passa dall'uno all'altro dalla sidebar sinistra — la tua posizione viene ricordata per progetto.","loopsLabel":"Crea i tuoi loop","loopsBody":"<b>Loops</b> è un costruttore visuale: concatena passaggi AI, comandi shell e un <b>Loop Decider</b> che ripete finché un obiettivo non è raggiunto — ad esempio verifica → correggi → verifica finché è tutto verde. Pubblica un loop e sceglilo su qualsiasi rail."},"agent":{"nav":"Chat dell'agente","title":"Gestisci l'app chattando","subtitle":"Un copilota che guida Specrails per te","intro":"La <b>chat dell'agente</b> integrata ti permette di usare Specrails chiedendo — creare spec, avviare rail, controllare le analisi — invece di cliccare qua e là. Funziona tramite gli strumenti <b>MCP</b> di Specrails e, poiché tutto è in tempo reale, vedi la board cambiare mentre lavora.","openLabel":"Sempre a portata di clic","openBody":"Aprila dalla bolla flottante in basso, oppure premi ⌘⇧A (Ctrl+Shift+A) da qualsiasi punto. Il pannello si sposta, si ridimensiona, si massimizza e ricorda dove l'hai lasciato.","operateLabel":"Guida l'intera app","operateBody":"Scegli un progetto (o Home per tutto) e un provider, poi chiedi semplicemente: “avvia i tre ticket a priorità più alta”, “quanto ho speso questa settimana?”.","levelsLabel":"Le redini sono tue","levelsBody":"Un livello in tempo reale — <b>Osserva → Modifica → Opera → Autonomo</b>, che scorri con Shift+Tab — decide fin dove può spingersi. Non agisce mai oltre il livello che imposti.","watchLabel":"Guardalo all'opera","watchBody":"Il pannello non è modale, quindi rail e spec compaiono sulla dashboard in tempo reale mentre l'agente lavora. Un chip di stato mostra cosa sta facendo in questo momento.","mcpLabel":"Funziona sull'MCP locale","mcpBody":"L'agente guida l'app tramite il server MCP integrato di Specrails. Se è spento, il pannello propone di attivarlo con un clic — non viene installato nulla."},"providers":{"nav":"Il tuo agente","title":"Porta il tuo agente","subtitle":"Claude Code e Codex come engine di prima classe","intro":"L'app tratta <b>Claude Code</b> e <b>Codex CLI</b> come engine intercambiabili dietro un unico contratto. Un progetto può installarne uno o entrambi — la scelta avviene al momento dell'installazione.","table":{"capability":"Capacità","streamingResume":"Streaming e ripresa della sessione","native":"Nativo","costReporting":"Report dei costi","providerBilled":"Fatturato dal provider","estimated":"Stimato (~)","telemetry":"Telemetria (OTEL)","synthesized":"Sintetizzata","agentProfiles":"Profili agente"},"calloutLabel":"Quando sono installati entrambi","calloutBody":"Scegli l'engine <b>per spec, per rail o per avvio del terminale</b>. L'app ricorda la tua ultima scelta per progetto. Il costo di Codex è stimato da un tariffario locale e sempre contrassegnato con <mono>~</mono>."},"cost":{"nav":"Monitora i costi","title":"Traccia ogni centesimo","subtitle":"Ogni invocazione fatturabile, registrata e visualizzata","intro":"Ogni invocazione IA — su rail, Quick, Explore, modifiche AI, SMASH e riassunti dei file — viene registrata per <b>Claude e Codex</b>. Mai più tirare a indovinare quanto costano gli agenti.","analyticsLabel":"Pagina Analytics","analyticsBody":"Un hero con il burn-rate, timeline giornaliera, ticket principali, ripartizione per modello e uno scatter costo-vs-turni. Filtra per periodo (7d / 30d / 90d / Tutto) e per superficie.","perTicketLabel":"Spesa per ticket","perTicketBody":"Il dettaglio di ogni spec mostra quanto è costata e quanti turni ha richiesto, con un link diretto ad Analytics filtrato su quel ticket.","honestLabel":"Numeri onesti","honestBody":"Il costo di Claude è la cifra fatturata dal provider; quello di Codex è stimato e contrassegnato con <mono>~</mono>. I totali dei token includono i livelli di cache, quindi i conti tornano davvero.","budgetsLabel":"Budget e avvisi","budgetsBody":"Imposta un budget giornaliero e un avviso di costo per job; l'app mette in pausa automaticamente la coda quando superi la soglia. Esporta tutto in CSV o JSON."},"workspace":{"nav":"Workspace","title":"Rendilo il tuo workspace","subtitle":"Tutto ciò che ti serve senza lasciare la finestra","terminalLabel":"Pannello terminale","terminalBody":"Un vero terminale in stile VS Code in basso (<mod>{{mod}}</mod> <j>J</j>) — rendering WebGL, ricerca, immagini inline, trascinamento di percorsi e integrazione con la shell. Fino a 10 sessioni per progetto.","codeLabel":"Esploratore di codice","codeBody":"Un albero dei file in sola lettura e un visualizzatore Monaco con riassunti IA in linguaggio semplice e chip di provenienza “toccato dall'IA”, così chiunque può seguire cosa è cambiato e perché.","integrationsLabel":"Integrazioni","integrationsBody":"Un marketplace per progetto di integrazioni MCP — la navigazione semantica del codice di Serena è inclusa. Le installazioni sono additive: aggiungerne una non disturba mai le altre.","themesLabel":"Temi","themesBody":"Cinque temi integrati — specrails (predefinito), dracula, aurora-light, obsidian-dark e matrix — applicati prima che la UI venga disegnata, quindi nessun flash. Cambiali in Impostazioni → Aspetto.","chatsLabel":"Chat minimizzabili","chatsBody":"Parcheggia una sessione Explore o AI Edit in una chip del dock e riprendila più tardi — mai persa tra refresh o cambi di progetto.","desktopLabel":"Desktop o browser","desktopBody":"Esegui Specrails nel browser, oppure scarica l'app desktop firmata (macOS e Windows) che include il proprio server e i runtime."},"companion":{"nav":"Companion mobile","title":"Porta Specrails con te","subtitle":"Specrails Companion — le tue pipeline, sul tuo telefono","intro":"<b>Specrails Companion</b> è una web app su specrails.dev/companion-app — aprila sul tuo telefono (o aggiungila alla schermata Home) per sfogliare la board delle spec, lanciare e fermare i rail, seguire i log dei job in diretta e dare un'occhiata alle Analytics. Nessuna installazione, nessuno app store.","localLabel":"100% locale, come tutto il resto","localBody":"Il tuo telefono si connette direttamente a questo computer — peer-to-peer e cifrato (WebRTC). Nessun relay cloud, nessun account, e il tuo codice non lascia mai i tuoi dispositivi.","downloadLabel":"Aprila sul tuo telefono","downloadHint":"Scansiona il codice con la fotocamera del telefono, oppure apri specrails.dev/companion-app nel suo browser.","open":"Apri Specrails Companion","pairLabel":"L'associazione richiede dieci secondi","pairBody":"Sul tuo telefono apri specrails.dev/companion-app, poi qui vai su Impostazioni → Companion mobile → Associa companion web e segui i passaggi a schermo."},"moveFast":{"nav":"Vai veloce","title":"Muoviti alla velocità del pensiero","subtitle":"Keyboard-first, ovunque","paletteLabel":"Palette dei comandi","paletteShortcut":"<f>Premi</f> <mod>{{mod}}</mod> <m>+</m> <k>K</k> <m>ovunque</m>","paletteBody":"Cambia progetto, esegui comandi spec, salta a qualsiasi pagina e trova i job recenti — tutto con ricerca fuzzy.","terminalLabel":"Pannello terminale","terminalBody":"Attiva/disattiva con <mod>{{mod}}</mod> <j>J</j>.","shortcutsLabel":"Tutte le scorciatoie","shortcutsBody":"Premi <q>?</q> per vedere il cheat-sheet completo.","chatLabel":"Sidebar della chat","chatBody":"Attiva/disattiva la sidebar destra con <mod>{{mod}}</mod> <bkey>B</bkey>.","projectsLabel":"Sidebar dei progetti","projectsBody":"Attiva/disattiva la sidebar Arc sinistra con <alt>{{alt}}</alt> <mod>{{mod}}</mod> <bkey>B</bkey>.","outro":"<b>Il tour finisce qui.</b> Aggiungi un progetto dalla sidebar sinistra e rilascia la tua prima spec. Puoi riaprire questa guida in qualsiasi momento dalle Impostazioni."},"jira":{"label":"Integrazione Jira","body":"Appoggia qualsiasi progetto a una <b>board Jira</b> — ogni spec diventa un ticket Jira, sincronizzato in entrambe le direzioni: lo stato segue il rail e viene pubblicato un commento al termine di un job. Configuralo per progetto quando lo aggiungi, o in qualsiasi momento nelle Impostazioni."}}`),c={wizard:e,addProject:t,prerequisites:n,instructions:r,checkpoints:i,setupChat:a,welcome:o,onboarding:s};export{t as addProject,i as checkpoints,c as default,r as instructions,s as onboarding,n as prerequisites,a as setupChat,o as welcome,e as wizard};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{r as e}from"./chunk-BNv3lrIs.js";var t=e({badges:()=>a,board:()=>n,card:()=>o,default:()=>_,emptyState:()=>s,epicFilter:()=>h,errors:()=>c,gridView:()=>u,labelFilter:()=>m,listView:()=>l,priority:()=>i,sortControl:()=>f,sprintFilter:()=>g,status:()=>r,statusFilter:()=>d,viewTier:()=>p}),n={title:`Spec`,dropHere:`Drop here`,emptyNoSpecs:`No specs yet`,emptyNoLabelMatch:`No specs match the active labels`,emptyNoActiveSpecs:`No active specs`,emptyHint:`Click "+ Add" to get started`,dropToMarkDone:`Drop to mark as done`,emptyNoDoneLabelMatch:`No done specs match the active labels`,emptyNoCompleted:`No completed specs yet`,untitledSpec:`Untitled spec`},r={todo:`Todo`,inProgress:`In Progress`,done:`Done`,cancelled:`Cancelled`},i={critical:`critical`,high:`high`,medium:`medium`,low:`low`},a={epic:`Epic`,epicWithCount:`Epic · {{count}}`,subSpec:`↑ Sub-Spec`,review:`Review`,needsReviewTitle:`This spec was marked done but its job ended in failure — review it`,raw:`Raw`,rawTitle:`Raw spec — no AI generation at intake`,contract:`Contract`,openParentEpicTitle:`Open parent Epic #{{id}} · {{title}}`},o={deleteSpec:`Delete spec #{{id}}`,deleteTicket:`Delete ticket #{{id}}`,ticketFallbackLabel:`Ticket #{{id}}`,dependsOn:`Depends on {{count}}`,continueEditing:`Continue Editing`,continueEditingTitle:`Continue editing this spec`,moveToRail:`Move to Rail`},s={noTickets:`No tickets yet`,noTicketsHint:`Create your first ticket or run a product backlog command to populate tickets`,createFirst:`Create your first ticket`},c={loadFailed:`Failed to load tickets`},l={status:{draft:`draft`,todo:`todo`,inProgress:`in progress`,done:`done`,cancelled:`cancelled`},filterAll:`All ({{count}})`,statusWithCount:`{{status}} ({{count}})`,allLabels:`All labels`,searchPlaceholder:`Search...`,columns:{status:`Status`,title:`Title`,priority:`Priority`,labels:`Labels`,updated:`Updated`},noMatch:`No tickets match your filters`,clearFilters:`Clear filters`,loadMore:`Load more ({{count}} remaining)`},u={emptyTodo:`No tickets to do`,emptyInProgress:`Nothing in progress`,emptyDone:`No completed tickets`,cancelledSection:`Cancelled ({{count}})`},d={ariaLabel:`Filter by status`,all:`All`,todo:`ToDo`,done:`Done`},f={modeAriaLabel:`Sort mode`,tooltip:`Sort: {{mode}}`,toggleDirAriaLabel:`Toggle sort direction`,ascending:`Ascending`,descending:`Descending`,modes:{default:`Default`,ticketId:`Ticket #`,priority:`Priority`,jiraKey:`Jira Ticket #`}},p={ariaLabel:`Specs view`,listView:`List view`,postitView:`Post-it view`},m={ariaLabel:`Filter by labels`,all:`All`,empty:`No labels in this project.`,selected_one:`{{count}} label`,selected_other:`{{count}} labels`,clear:`clear`},h={all:`All epics`,ariaLabel:`Filter by epic`},g={current:`Current`,all:`All sprints`,ariaLabel:`Filter by sprint`},_={board:n,status:r,priority:i,badges:a,card:o,emptyState:s,errors:c,listView:l,gridView:u,statusFilter:d,sortControl:f,viewTier:p,labelFilter:m,epicFilter:h,sprintFilter:g};export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{r as e}from"./chunk-BNv3lrIs.js";var t=e({cliMenu:()=>l,contextMenu:()=>c,default:()=>h,dragHandle:()=>i,duration:()=>m,emptyState:()=>o,errors:()=>d,notifications:()=>p,panelChevron:()=>r,search:()=>s,session:()=>f,shortcutMenu:()=>u,sidebar:()=>a,topBar:()=>n}),n={title:`Terminal`,openCliMulti:`Open AI CLI in new terminal`,openCli:`Open {{cli}} in new terminal`,maxTerminals:`Max {{max}} terminals per project`,openInBrowser:`Open in browser`,pasteScript:`Paste quick script into active terminal`,pasteScriptNoActive:`No active terminal to paste into`,newTerminal:`New terminal`,killActive:`Kill active terminal`,restorePanel:`Restore panel`,maximizePanel:`Maximize panel`},r={collapse:`Collapse terminal panel`,expand:`Expand terminal panel`},i={resize:`Resize terminal panel`},a={rename:`Rename {{name}}`,close:`Close {{name}}`},o={noTerminals:`No terminals yet for this project.`,newTerminal:`New terminal`},s={placeholder:`Find`,previous:`Previous (Shift+Enter)`,next:`Next (Enter)`,matchCase:`Match case`,regex:`Regex`,wholeWord:`Whole word`,close:`Close (Esc)`},c={paste:`Paste`,selectAll:`Select All`,clear:`Clear`,search:`Search…`,saveScrollback:`Save scrollback to file…`,openPath:`Open {{path}}`},l={open:`Open {{name}}`},u={configureBrowserUrl:`Configure browser URL in settings…`,editQuickScript:`Edit quick script in settings…`},d={limitReached:`Terminal limit reached (max {{max}}).`,spawnFailed:`The shell failed to start — the app may be low on file descriptors. Try restarting the app.`,invalidName:`Invalid terminal name.`,openFailed:`Failed to open terminal.`,serverUnreachable:`Could not reach the server to open a terminal.`,exitedImmediately:`Terminal exited immediately — the shell may have failed to start. If this keeps happening, restart the app.`},f={processExited:`[process exited]`,processExitedWithCode:`[process exited (code {{code}})]`},p={commandFinished:`Command finished`,commandFinishedNamed:`{{command}} finished`,finishedBody:`exit {{code}} in {{elapsed}}`},m={seconds:`{{seconds}}s`,minutesSeconds:`{{minutes}}m {{seconds}}s`},h={topBar:n,panelChevron:r,dragHandle:i,sidebar:a,emptyState:o,search:s,contextMenu:c,cliMenu:l,shortcutMenu:u,errors:d,session:f,notifications:p,duration:m};export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{r as e}from"./chunk-BNv3lrIs.js";var t=e({comparePicker:()=>h,contextMenu:()=>f,contractLayer:()=>u,createModal:()=>m,default:()=>v,deleteDialog:()=>c,detailModal:()=>l,fields:()=>a,meta:()=>o,priority:()=>n,rail:()=>d,source:()=>i,spendingLine:()=>g,ticketStatus:()=>r,toasts:()=>_,untitled:()=>s,viewMode:()=>p}),n={critical:`Critical`,high:`High`,medium:`Medium`,low:`Low`},r={todo:`Todo`,inProgress:`In Progress`,done:`Done`,cancelled:`Cancelled`},i={manual:`Created manually`,productBacklog:`From product backlog`,proposeSpec:`From spec proposal`,getBacklogSpecs:`From backlog specs`,freePrompt:`From Raw prompt`},a={title:`Title`,description:`Description`,status:`Status`,priority:`Priority`,labels:`Labels`,markdownPlaceholder:`Markdown description...`,supportsMarkdown:`Supports markdown`},o={createdAgo:`Created {{time}}`,updatedAgo:`Updated {{time}}`},s=`Untitled`,c={title:`Delete ticket`,body:`Are you sure you want to delete <strong>#{{id}} {{title}}</strong>? This action cannot be undone.`},l={toast:{updated:`Ticket updated`,updateFailed:`Failed to update ticket`},compare:`Compare`,compareTooltip:`Compare with another spec`,doneEditing:`Done editing`,addDescription:`Add a description...`,prerequisites:`Prerequisites`,addLabel:`Add label`,addLabelPlaceholder:`Add label...`,effort:`Effort`,assignee:`Assignee`,continueEditing:`Continue Editing`,ticketFallbackLabel:`Ticket #{{id}}`},u={title:`Contract Layer`,populated:`{{n}}/5 populated`},d={moveToRail:`Move to Rail`,removeFromRail:`Remove from Rail`,currentlyOn:`Currently on {{rail}}`,popoverTitle:`Move to rail`,noRails:`No rails available.`},f={ariaLabel:`Ticket actions`,deleteTicket:`Delete ticket`,changeStatus:`Change status`,statusOptions:`Status options`,setPriority:`Set priority`,priorityOptions:`Priority options`},p={list:`List view`,grid:`Grid view (Kanban)`,postit:`Post-it view`},m={title:`Create Ticket`,titlePlaceholder:`Ticket title...`,labelsPlaceholder:`Type to add labels...`,create:`Create`,creating:`Creating...`,toast:{created:`Ticket created`,createFailed:`Failed to create ticket`}},h={title:`Compare with…`,count:`({{n}} specs)`,searchPlaceholder:`Search specs…`,noMatches:`No matching specs`,empty:`No other specs to compare`},g={ariaLabel:`View ticket spending in Analytics`,turns_one:`{{count}} turn`,turns_other:`{{count}} turns`,active:`{{duration}} active`,breakdownItem:`{{n}} {{label}}`,estimatedTooltip:`Estimated from the local pricing table — this provider does not report cost natively.`},_={newTicket:`New ticket: {{title}}`,newTicketsAdded_one:`{{count}} new ticket added from product discovery`,newTicketsAdded_other:`{{count}} new tickets added from product discovery`},v={priority:n,ticketStatus:r,source:i,fields:a,meta:o,untitled:s,deleteDialog:c,detailModal:l,contractLayer:u,rail:d,contextMenu:f,viewMode:p,createModal:m,comparePicker:h,spendingLine:g,toasts:_};export{t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,c as t,f as n,h as r,o as i,p as a}from"./editor.api2-
|
|
1
|
+
import{a as e,c as t,f as n,h as r,o as i,p as a}from"./editor.api2-T7u8kQWG.js";import{n as o}from"./monaco.contribution-PUeaZk8T.js";import{t as s}from"./workers-CXcXtO3b.js";var c=class{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker()),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(()=>this._updateExtraLibs())}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;let e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||=(async()=>(this._worker=s({moduleId:`vs/language/typescript/tsWorker`,createWorker:()=>new Worker(new URL(`/assets/ts.worker-METxwbDZ.js`,``+import.meta.url),{type:`module`}),label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(a.getModels().filter(e=>e.getLanguageId()===this._modeId).map(e=>e.uri)):await this._worker.getProxy()))(),this._client}async getLanguageServiceWorker(...e){let t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}},l={};l[`lib.d.ts`]=!0,l[`lib.decorators.d.ts`]=!0,l[`lib.decorators.legacy.d.ts`]=!0,l[`lib.dom.asynciterable.d.ts`]=!0,l[`lib.dom.d.ts`]=!0,l[`lib.dom.iterable.d.ts`]=!0,l[`lib.es2015.collection.d.ts`]=!0,l[`lib.es2015.core.d.ts`]=!0,l[`lib.es2015.d.ts`]=!0,l[`lib.es2015.generator.d.ts`]=!0,l[`lib.es2015.iterable.d.ts`]=!0,l[`lib.es2015.promise.d.ts`]=!0,l[`lib.es2015.proxy.d.ts`]=!0,l[`lib.es2015.reflect.d.ts`]=!0,l[`lib.es2015.symbol.d.ts`]=!0,l[`lib.es2015.symbol.wellknown.d.ts`]=!0,l[`lib.es2016.array.include.d.ts`]=!0,l[`lib.es2016.d.ts`]=!0,l[`lib.es2016.full.d.ts`]=!0,l[`lib.es2016.intl.d.ts`]=!0,l[`lib.es2017.arraybuffer.d.ts`]=!0,l[`lib.es2017.d.ts`]=!0,l[`lib.es2017.date.d.ts`]=!0,l[`lib.es2017.full.d.ts`]=!0,l[`lib.es2017.intl.d.ts`]=!0,l[`lib.es2017.object.d.ts`]=!0,l[`lib.es2017.sharedmemory.d.ts`]=!0,l[`lib.es2017.string.d.ts`]=!0,l[`lib.es2017.typedarrays.d.ts`]=!0,l[`lib.es2018.asyncgenerator.d.ts`]=!0,l[`lib.es2018.asynciterable.d.ts`]=!0,l[`lib.es2018.d.ts`]=!0,l[`lib.es2018.full.d.ts`]=!0,l[`lib.es2018.intl.d.ts`]=!0,l[`lib.es2018.promise.d.ts`]=!0,l[`lib.es2018.regexp.d.ts`]=!0,l[`lib.es2019.array.d.ts`]=!0,l[`lib.es2019.d.ts`]=!0,l[`lib.es2019.full.d.ts`]=!0,l[`lib.es2019.intl.d.ts`]=!0,l[`lib.es2019.object.d.ts`]=!0,l[`lib.es2019.string.d.ts`]=!0,l[`lib.es2019.symbol.d.ts`]=!0,l[`lib.es2020.bigint.d.ts`]=!0,l[`lib.es2020.d.ts`]=!0,l[`lib.es2020.date.d.ts`]=!0,l[`lib.es2020.full.d.ts`]=!0,l[`lib.es2020.intl.d.ts`]=!0,l[`lib.es2020.number.d.ts`]=!0,l[`lib.es2020.promise.d.ts`]=!0,l[`lib.es2020.sharedmemory.d.ts`]=!0,l[`lib.es2020.string.d.ts`]=!0,l[`lib.es2020.symbol.wellknown.d.ts`]=!0,l[`lib.es2021.d.ts`]=!0,l[`lib.es2021.full.d.ts`]=!0,l[`lib.es2021.intl.d.ts`]=!0,l[`lib.es2021.promise.d.ts`]=!0,l[`lib.es2021.string.d.ts`]=!0,l[`lib.es2021.weakref.d.ts`]=!0,l[`lib.es2022.array.d.ts`]=!0,l[`lib.es2022.d.ts`]=!0,l[`lib.es2022.error.d.ts`]=!0,l[`lib.es2022.full.d.ts`]=!0,l[`lib.es2022.intl.d.ts`]=!0,l[`lib.es2022.object.d.ts`]=!0,l[`lib.es2022.regexp.d.ts`]=!0,l[`lib.es2022.string.d.ts`]=!0,l[`lib.es2023.array.d.ts`]=!0,l[`lib.es2023.collection.d.ts`]=!0,l[`lib.es2023.d.ts`]=!0,l[`lib.es2023.full.d.ts`]=!0,l[`lib.es2023.intl.d.ts`]=!0,l[`lib.es2024.arraybuffer.d.ts`]=!0,l[`lib.es2024.collection.d.ts`]=!0,l[`lib.es2024.d.ts`]=!0,l[`lib.es2024.full.d.ts`]=!0,l[`lib.es2024.object.d.ts`]=!0,l[`lib.es2024.promise.d.ts`]=!0,l[`lib.es2024.regexp.d.ts`]=!0,l[`lib.es2024.sharedmemory.d.ts`]=!0,l[`lib.es2024.string.d.ts`]=!0,l[`lib.es5.d.ts`]=!0,l[`lib.es6.d.ts`]=!0,l[`lib.esnext.array.d.ts`]=!0,l[`lib.esnext.collection.d.ts`]=!0,l[`lib.esnext.d.ts`]=!0,l[`lib.esnext.decorators.d.ts`]=!0,l[`lib.esnext.disposable.d.ts`]=!0,l[`lib.esnext.error.d.ts`]=!0,l[`lib.esnext.float16.d.ts`]=!0,l[`lib.esnext.full.d.ts`]=!0,l[`lib.esnext.intl.d.ts`]=!0,l[`lib.esnext.iterator.d.ts`]=!0,l[`lib.esnext.promise.d.ts`]=!0,l[`lib.esnext.sharedmemory.d.ts`]=!0,l[`lib.scripthost.d.ts`]=!0,l[`lib.webworker.asynciterable.d.ts`]=!0,l[`lib.webworker.d.ts`]=!0,l[`lib.webworker.importscripts.d.ts`]=!0,l[`lib.webworker.iterable.d.ts`]=!0;function u(e,t,n=0){if(typeof e==`string`)return e;if(e===void 0)return``;let r=``;if(n){r+=t;for(let e=0;e<n;e++)r+=` `}if(r+=e.messageText,n++,e.next)for(let i of e.next)r+=u(i,t,n);return r}function d(e){return e?e.map(e=>e.text).join(``):``}var f=class{constructor(e){this._worker=e}_textSpanToRange(e,t){let n=e.getPositionAt(t.start),r=e.getPositionAt(t.start+t.length),{lineNumber:i,column:a}=n,{lineNumber:o,column:s}=r;return{startLineNumber:i,startColumn:a,endLineNumber:o,endColumn:s}}},p=class{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return e&&e.path.indexOf(`/lib.`)===0?!!l[e.path.slice(1)]:!1}getOrCreateModel(e){let t=n.parse(e),r=a.getModel(t);if(r)return r;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return a.createModel(this._libFiles[t.path.slice(1)],`typescript`,t);let i=o.getExtraLibs()[e];return i?a.createModel(i.content,`typescript`,t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||=this._worker().then(e=>e.getLibFiles()).then(e=>{this._hasFetchedLibFiles=!0,this._libFiles=e}),this._fetchLibFilesPromise}},m=class extends f{constructor(e,t,n,r){super(r),this._libFiles=e,this._defaults=t,this._selector=n,this._disposables=[],this._listener=Object.create(null);let i=e=>{if(e.getLanguageId()!==n)return;let t=()=>{let{onlyVisible:t}=this._defaults.getDiagnosticsOptions();t?e.isAttachedToEditor()&&this._doValidate(e):this._doValidate(e)},r,i=e.onDidChangeContent(()=>{clearTimeout(r),r=window.setTimeout(t,500)}),o=e.onDidChangeAttached(()=>{let{onlyVisible:n}=this._defaults.getDiagnosticsOptions();n&&(e.isAttachedToEditor()?t():a.setModelMarkers(e,this._selector,[]))});this._listener[e.uri.toString()]={dispose(){i.dispose(),o.dispose(),clearTimeout(r)}},t()},o=e=>{a.setModelMarkers(e,this._selector,[]);let t=e.uri.toString();this._listener[t]&&(this._listener[t].dispose(),delete this._listener[t])};this._disposables.push(a.onDidCreateModel(e=>i(e))),this._disposables.push(a.onWillDisposeModel(o)),this._disposables.push(a.onDidChangeModelLanguage(e=>{o(e.model),i(e.model)})),this._disposables.push({dispose(){for(let e of a.getModels())o(e)}});let s=()=>{for(let e of a.getModels())o(e),i(e)};this._disposables.push(this._defaults.onDidChange(s)),this._disposables.push(this._defaults.onDidExtraLibsChange(s)),a.getModels().forEach(e=>i(e))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}async _doValidate(e){let t=await this._worker(e.uri);if(e.isDisposed())return;let r=[],{noSyntaxValidation:i,noSemanticValidation:o,noSuggestionDiagnostics:s}=this._defaults.getDiagnosticsOptions();i||r.push(t.getSyntacticDiagnostics(e.uri.toString())),o||r.push(t.getSemanticDiagnostics(e.uri.toString())),s||r.push(t.getSuggestionDiagnostics(e.uri.toString()));let c=await Promise.all(r);if(!c||e.isDisposed())return;let l=c.reduce((e,t)=>t.concat(e),[]).filter(e=>(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(e.code)===-1),u=l.map(e=>e.relatedInformation||[]).reduce((e,t)=>t.concat(e),[]).map(e=>e.file?n.parse(e.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(u),!e.isDisposed()&&a.setModelMarkers(e,this._selector,l.map(t=>this._convertDiagnostics(e,t)))}_convertDiagnostics(e,t){let n=t.start||0,r=t.length||1,{lineNumber:a,column:o}=e.getPositionAt(n),{lineNumber:s,column:c}=e.getPositionAt(n+r),l=[];return t.reportsUnnecessary&&l.push(i.Unnecessary),t.reportsDeprecated&&l.push(i.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:a,startColumn:o,endLineNumber:s,endColumn:c,message:u(t.messageText,`
|
|
2
2
|
`),code:t.code.toString(),tags:l,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}}_convertRelatedInformation(e,t){if(!t)return[];let n=[];return t.forEach(t=>{let r=e;if(t.file&&(r=this._libFiles.getOrCreateModel(t.file.fileName)),!r)return;let i=t.start||0,a=t.length||1,{lineNumber:o,column:s}=r.getPositionAt(i),{lineNumber:c,column:l}=r.getPositionAt(i+a);n.push({resource:r.uri,startLineNumber:o,startColumn:s,endLineNumber:c,endColumn:l,message:u(t.messageText,`
|
|
3
3
|
`)})}),n}_tsDiagnosticCategoryToMarkerSeverity(t){switch(t){case 1:return e.Error;case 3:return e.Info;case 0:return e.Warning;case 2:return e.Hint}return e.Info}},h=class e extends f{get triggerCharacters(){return[`.`]}async provideCompletionItems(n,i,a,o){let s=n.getWordUntilPosition(i),c=new t(i.lineNumber,s.startColumn,i.lineNumber,s.endColumn),l=n.uri,u=n.getOffsetAt(i),d=await this._worker(l);if(n.isDisposed())return;let f=await d.getCompletionsAtPosition(l.toString(),u);if(!(!f||n.isDisposed()))return{suggestions:f.entries.map(a=>{let o=c;if(a.replacementSpan){let e=n.getPositionAt(a.replacementSpan.start),r=n.getPositionAt(a.replacementSpan.start+a.replacementSpan.length);o=new t(e.lineNumber,e.column,r.lineNumber,r.column)}let s=[];return a.kindModifiers!==void 0&&a.kindModifiers.indexOf(`deprecated`)!==-1&&s.push(r.CompletionItemTag.Deprecated),{uri:l,position:i,offset:u,range:o,label:a.name,insertText:a.name,sortText:a.sortText,kind:e.convertKind(a.kind),tags:s}})}}async resolveCompletionItem(t,n){let r=t,i=r.uri,a=r.position,o=r.offset,s=await(await this._worker(i)).getCompletionEntryDetails(i.toString(),o,r.label);return s?{uri:i,position:a,label:s.name,kind:e.convertKind(s.kind),detail:d(s.displayParts),documentation:{value:e.createDocumentationString(s)}}:r}static convertKind(e){switch(e){case C.primitiveType:case C.keyword:return r.CompletionItemKind.Keyword;case C.variable:case C.localVariable:return r.CompletionItemKind.Variable;case C.memberVariable:case C.memberGetAccessor:case C.memberSetAccessor:return r.CompletionItemKind.Field;case C.function:case C.memberFunction:case C.constructSignature:case C.callSignature:case C.indexSignature:return r.CompletionItemKind.Function;case C.enum:return r.CompletionItemKind.Enum;case C.module:return r.CompletionItemKind.Module;case C.class:return r.CompletionItemKind.Class;case C.interface:return r.CompletionItemKind.Interface;case C.warning:return r.CompletionItemKind.File}return r.CompletionItemKind.Property}static createDocumentationString(e){let t=d(e.documentation);if(e.tags)for(let n of e.tags)t+=`
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as e}from"./editor.api2-
|
|
1
|
+
import{h as e}from"./editor.api2-T7u8kQWG.js";var t={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:e.IndentAction.IndentOutdent,appendText:` * `}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:e.IndentAction.None,appendText:` * `}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:e.IndentAction.None,appendText:`* `}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:e.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`,notIn:[`string`]},{open:`'`,close:`'`,notIn:[`string`,`comment`]},{open:"`",close:"`",notIn:[`string`,`comment`]},{open:`/**`,close:` */`,notIn:[`string`]}],folding:{markers:{start:RegExp(`^\\s*//\\s*#?region\\b`),end:RegExp(`^\\s*//\\s*#?endregion\\b`)}}},n={defaultToken:`invalid`,tokenPostfix:`.ts`,keywords:`abstract.any.as.asserts.bigint.boolean.break.case.catch.class.continue.const.constructor.debugger.declare.default.delete.do.else.enum.export.extends.false.finally.for.from.function.get.if.implements.import.in.infer.instanceof.interface.is.keyof.let.module.namespace.never.new.null.number.object.out.package.private.protected.public.override.readonly.require.global.return.satisfies.set.static.string.super.switch.symbol.this.throw.true.try.type.typeof.undefined.unique.unknown.var.void.while.with.yield.async.await.of`.split(`.`),operators:`<=.>=.==.!=.===.!==.=>.+.-.**.*./.%.++.--.<<.</.>>.>>>.&.|.^.!.~.&&.||.??.?.:.=.+=.-=.*=.**=./=.%=.<<=.>>=.>>>=.&=.|=.^=.@`.split(`.`),symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,`delimiter.bracket`],{include:`common`}],common:[[/#?[a-z_$][\w$]*/,{cases:{"@keywords":`keyword`,"@default":`identifier`}}],[/[A-Z][\w\$]*/,`type.identifier`],{include:`@whitespace`},[/\/(?=([^\\\/]|\\.)+\/([dgimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:`regexp`,bracket:`@open`,next:`@regexp`}],[/[()\[\]]/,`@brackets`],[/[<>](?!@symbols)/,`@brackets`],[/!(?=([^=]|$))/,`delimiter`],[/@symbols/,{cases:{"@operators":`delimiter`,"@default":``}}],[/(@digits)[eE]([\-+]?(@digits))?/,`number.float`],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,`number.float`],[/0[xX](@hexdigits)n?/,`number.hex`],[/0[oO]?(@octaldigits)n?/,`number.octal`],[/0[bB](@binarydigits)n?/,`number.binary`],[/(@digits)n?/,`number`],[/[;,.]/,`delimiter`],[/"([^"\\]|\\.)*$/,`string.invalid`],[/'([^'\\]|\\.)*$/,`string.invalid`],[/"/,`string`,`@string_double`],[/'/,`string`,`@string_single`],[/`/,`string`,`@string_backtick`]],whitespace:[[/[ \t\r\n]+/,``],[/\/\*\*(?!\/)/,`comment.doc`,`@jsdoc`],[/\/\*/,`comment`,`@comment`],[/\/\/.*$/,`comment`]],comment:[[/[^\/*]+/,`comment`],[/\*\//,`comment`,`@pop`],[/[\/*]/,`comment`]],jsdoc:[[/[^\/*]+/,`comment.doc`],[/\*\//,`comment.doc`,`@pop`],[/[\/*]/,`comment.doc`]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,[`regexp.escape.control`,`regexp.escape.control`,`regexp.escape.control`]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,[`regexp.escape.control`,{token:`regexp.escape.control`,next:`@regexrange`}]],[/(\()(\?:|\?=|\?!)/,[`regexp.escape.control`,`regexp.escape.control`]],[/[()]/,`regexp.escape.control`],[/@regexpctl/,`regexp.escape.control`],[/[^\\\/]/,`regexp`],[/@regexpesc/,`regexp.escape`],[/\\\./,`regexp.invalid`],[/(\/)([dgimsuy]*)/,[{token:`regexp`,bracket:`@close`,next:`@pop`},`keyword.other`]]],regexrange:[[/-/,`regexp.escape.control`],[/\^/,`regexp.invalid`],[/@regexpesc/,`regexp.escape`],[/[^\]]/,`regexp`],[/\]/,{token:`regexp.escape.control`,next:`@pop`,bracket:`@close`}]],string_double:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],string_single:[[/[^\\']+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/'/,`string`,`@pop`]],string_backtick:[[/\$\{/,{token:`delimiter.bracket`,next:`@bracketCounting`}],[/[^\\`$]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/`/,`string`,`@pop`]],bracketCounting:[[/\{/,`delimiter.bracket`,`@bracketCounting`],[/\}/,`delimiter.bracket`,`@pop`],{include:`common`}]}};export{t as conf,n as language};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{qt as e}from"./index-B7vB20Jw.js";var t=e(`brain`,[[`path`,{d:`M12 18V5`,key:`adv99a`}],[`path`,{d:`M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4`,key:`1e3is1`}],[`path`,{d:`M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5`,key:`1gqd8o`}],[`path`,{d:`M17.997 5.125a4 4 0 0 1 2.526 5.77`,key:`iwvgf7`}],[`path`,{d:`M18 18a4 4 0 0 0 2-7.464`,key:`efp6ie`}],[`path`,{d:`M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517`,key:`1gq6am`}],[`path`,{d:`M6 18a4 4 0 0 1-2-7.464`,key:`k1g0md`}],[`path`,{d:`M6.003 5.125a4 4 0 0 0-2.526 5.77`,key:`q97ue3`}]]),n=e(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]);export{t as n,n as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./chunk-CilyBKbf.js";import{En as t,yn as n}from"./index-CDEQ4aU_.js";var r=e((e=>{var r=t(),i=n();function a(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var o=typeof Object.is==`function`?Object.is:a,s=i.useSyncExternalStore,c=r.useRef,l=r.useEffect,u=r.useMemo,d=r.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var a=c(null);if(a.current===null){var f={hasValue:!1,value:null};a.current=f}else f=a.current;a=u(function(){function e(e){if(!a){if(a=!0,s=e,e=r(e),i!==void 0&&f.hasValue){var t=f.value;if(i(t,e))return c=t}return c=e}if(t=c,o(s,e))return t;var n=r(e);return i!==void 0&&i(t,n)?(s=e,t):(s=e,c=n)}var a=!1,s,c,l=n===void 0?null:n;return[function(){return e(t())},l===null?void 0:function(){return e(l())}]},[t,n,r,i]);var p=s(e,a[0],a[1]);return l(function(){f.hasValue=!0,f.value=p},[p]),d(p),p}})),i=e(((e,t)=>{t.exports=r()}));function a(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function o(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function s(){}var c=.7,l=1/c,u=`\\s*([+-]?\\d+)\\s*`,d=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,f=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,p=/^#([0-9a-f]{3,8})$/,m=RegExp(`^rgb\\(${u},${u},${u}\\)$`),h=RegExp(`^rgb\\(${f},${f},${f}\\)$`),ee=RegExp(`^rgba\\(${u},${u},${u},${d}\\)$`),g=RegExp(`^rgba\\(${f},${f},${f},${d}\\)$`),_=RegExp(`^hsl\\(${d},${f},${f}\\)$`),v=RegExp(`^hsla\\(${d},${f},${f},${d}\\)$`),y={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};a(s,C,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:b,formatHex:b,formatHex8:x,formatHsl:te,formatRgb:S,toString:S});function b(){return this.rgb().formatHex()}function x(){return this.rgb().formatHex8()}function te(){return I(this).formatHsl()}function S(){return this.rgb().formatRgb()}function C(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=p.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?w(t):n===3?new O(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?T(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?T(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=m.exec(e))?new O(t[1],t[2],t[3],1):(t=h.exec(e))?new O(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=ee.exec(e))?T(t[1],t[2],t[3],t[4]):(t=g.exec(e))?T(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=_.exec(e))?F(t[1],t[2]/100,t[3]/100,1):(t=v.exec(e))?F(t[1],t[2]/100,t[3]/100,t[4]):y.hasOwnProperty(e)?w(y[e]):e===`transparent`?new O(NaN,NaN,NaN,0):null}function w(e){return new O(e>>16&255,e>>8&255,e&255,1)}function T(e,t,n,r){return r<=0&&(e=t=n=NaN),new O(e,t,n,r)}function E(e){return e instanceof s||(e=C(e)),e?(e=e.rgb(),new O(e.r,e.g,e.b,e.opacity)):new O}function D(e,t,n,r){return arguments.length===1?E(e):new O(e,t,n,r??1)}function O(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}a(O,D,o(s,{brighter(e){return e=e==null?l:l**+e,new O(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?c:c**+e,new O(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new O(N(this.r),N(this.g),N(this.b),M(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:k,formatHex:k,formatHex8:A,formatRgb:j,toString:j}));function k(){return`#${P(this.r)}${P(this.g)}${P(this.b)}`}function A(){return`#${P(this.r)}${P(this.g)}${P(this.b)}${P((isNaN(this.opacity)?1:this.opacity)*255)}`}function j(){let e=M(this.opacity);return`${e===1?`rgb(`:`rgba(`}${N(this.r)}, ${N(this.g)}, ${N(this.b)}${e===1?`)`:`, ${e})`}`}function M(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function N(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function P(e){return e=N(e),(e<16?`0`:``)+e.toString(16)}function F(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new R(e,t,n,r)}function I(e){if(e instanceof R)return new R(e.h,e.s,e.l,e.opacity);if(e instanceof s||(e=C(e)),!e)return new R;if(e instanceof R)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,c=a-i,l=(a+i)/2;return c?(o=t===a?(n-r)/c+(n<r)*6:n===a?(r-t)/c+2:(t-n)/c+4,c/=l<.5?a+i:2-a-i,o*=60):c=l>0&&l<1?0:o,new R(o,c,l,e.opacity)}function L(e,t,n,r){return arguments.length===1?I(e):new R(e,t,n,r??1)}function R(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}a(R,L,o(s,{brighter(e){return e=e==null?l:l**+e,new R(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?c:c**+e,new R(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new O(V(e>=240?e-240:e+120,i,r),V(e,i,r),V(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new R(z(this.h),B(this.s),B(this.l),M(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=M(this.opacity);return`${e===1?`hsl(`:`hsla(`}${z(this.h)}, ${B(this.s)*100}%, ${B(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function z(e){return e=(e||0)%360,e<0?e+360:e}function B(e){return Math.max(0,Math.min(1,e||0))}function V(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var H=e=>()=>e;function U(e,t){return function(n){return e+n*t}}function W(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function G(e){return(e=+e)==1?K:function(t,n){return n-t?W(t,n,e):H(isNaN(t)?n:t)}}function K(e,t){var n=t-e;return n?U(e,n):H(isNaN(e)?t:e)}var q=(function e(t){var n=G(t);function r(e,t){var r=n((e=D(e)).r,(t=D(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=K(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function J(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function ne(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function re(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o;for(o=0;o<r;++o)i[o]=$(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function ie(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Y(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function ae(e,t){var n={},r={},i;for(i in(typeof e!=`object`||!e)&&(e={}),(typeof t!=`object`||!t)&&(t={}),t)i in e?n[i]=$(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var X=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Z=new RegExp(X.source,`g`);function oe(e){return function(){return e}}function se(e){return function(t){return e(t)+``}}function Q(e,t){var n=X.lastIndex=Z.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=X.exec(e))&&(i=Z.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:Y(r,i)})),n=Z.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?se(c[0].x):oe(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function $(e,t){var n=typeof t,r;return t==null||n===`boolean`?H(t):(n===`number`?Y:n===`string`?(r=C(t))?(t=r,q):Q:t instanceof C?q:t instanceof Date?ie:ne(t)?J:Array.isArray(t)?re:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?ae:Y)(e,t)}export{C as a,q as i,Q as n,i as o,Y as r,$ as t};
|
|
1
|
+
import{t as e}from"./chunk-BNv3lrIs.js";import{jn as t,wn as n}from"./index-B7vB20Jw.js";var r=e((e=>{var r=t(),i=n();function a(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var o=typeof Object.is==`function`?Object.is:a,s=i.useSyncExternalStore,c=r.useRef,l=r.useEffect,u=r.useMemo,d=r.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var a=c(null);if(a.current===null){var f={hasValue:!1,value:null};a.current=f}else f=a.current;a=u(function(){function e(e){if(!a){if(a=!0,s=e,e=r(e),i!==void 0&&f.hasValue){var t=f.value;if(i(t,e))return c=t}return c=e}if(t=c,o(s,e))return t;var n=r(e);return i!==void 0&&i(t,n)?(s=e,t):(s=e,c=n)}var a=!1,s,c,l=n===void 0?null:n;return[function(){return e(t())},l===null?void 0:function(){return e(l())}]},[t,n,r,i]);var p=s(e,a[0],a[1]);return l(function(){f.hasValue=!0,f.value=p},[p]),d(p),p}})),i=e(((e,t)=>{t.exports=r()}));function a(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function o(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function s(){}var c=.7,l=1/c,u=`\\s*([+-]?\\d+)\\s*`,d=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,f=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,p=/^#([0-9a-f]{3,8})$/,m=RegExp(`^rgb\\(${u},${u},${u}\\)$`),h=RegExp(`^rgb\\(${f},${f},${f}\\)$`),ee=RegExp(`^rgba\\(${u},${u},${u},${d}\\)$`),g=RegExp(`^rgba\\(${f},${f},${f},${d}\\)$`),_=RegExp(`^hsl\\(${d},${f},${f}\\)$`),v=RegExp(`^hsla\\(${d},${f},${f},${d}\\)$`),y={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};a(s,C,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:b,formatHex:b,formatHex8:x,formatHsl:te,formatRgb:S,toString:S});function b(){return this.rgb().formatHex()}function x(){return this.rgb().formatHex8()}function te(){return I(this).formatHsl()}function S(){return this.rgb().formatRgb()}function C(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=p.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?w(t):n===3?new O(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?T(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?T(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=m.exec(e))?new O(t[1],t[2],t[3],1):(t=h.exec(e))?new O(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=ee.exec(e))?T(t[1],t[2],t[3],t[4]):(t=g.exec(e))?T(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=_.exec(e))?F(t[1],t[2]/100,t[3]/100,1):(t=v.exec(e))?F(t[1],t[2]/100,t[3]/100,t[4]):y.hasOwnProperty(e)?w(y[e]):e===`transparent`?new O(NaN,NaN,NaN,0):null}function w(e){return new O(e>>16&255,e>>8&255,e&255,1)}function T(e,t,n,r){return r<=0&&(e=t=n=NaN),new O(e,t,n,r)}function E(e){return e instanceof s||(e=C(e)),e?(e=e.rgb(),new O(e.r,e.g,e.b,e.opacity)):new O}function D(e,t,n,r){return arguments.length===1?E(e):new O(e,t,n,r??1)}function O(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}a(O,D,o(s,{brighter(e){return e=e==null?l:l**+e,new O(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?c:c**+e,new O(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new O(N(this.r),N(this.g),N(this.b),M(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:k,formatHex:k,formatHex8:A,formatRgb:j,toString:j}));function k(){return`#${P(this.r)}${P(this.g)}${P(this.b)}`}function A(){return`#${P(this.r)}${P(this.g)}${P(this.b)}${P((isNaN(this.opacity)?1:this.opacity)*255)}`}function j(){let e=M(this.opacity);return`${e===1?`rgb(`:`rgba(`}${N(this.r)}, ${N(this.g)}, ${N(this.b)}${e===1?`)`:`, ${e})`}`}function M(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function N(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function P(e){return e=N(e),(e<16?`0`:``)+e.toString(16)}function F(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new R(e,t,n,r)}function I(e){if(e instanceof R)return new R(e.h,e.s,e.l,e.opacity);if(e instanceof s||(e=C(e)),!e)return new R;if(e instanceof R)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,c=a-i,l=(a+i)/2;return c?(o=t===a?(n-r)/c+(n<r)*6:n===a?(r-t)/c+2:(t-n)/c+4,c/=l<.5?a+i:2-a-i,o*=60):c=l>0&&l<1?0:o,new R(o,c,l,e.opacity)}function L(e,t,n,r){return arguments.length===1?I(e):new R(e,t,n,r??1)}function R(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}a(R,L,o(s,{brighter(e){return e=e==null?l:l**+e,new R(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?c:c**+e,new R(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new O(V(e>=240?e-240:e+120,i,r),V(e,i,r),V(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new R(z(this.h),B(this.s),B(this.l),M(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=M(this.opacity);return`${e===1?`hsl(`:`hsla(`}${z(this.h)}, ${B(this.s)*100}%, ${B(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function z(e){return e=(e||0)%360,e<0?e+360:e}function B(e){return Math.max(0,Math.min(1,e||0))}function V(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var H=e=>()=>e;function U(e,t){return function(n){return e+n*t}}function W(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function G(e){return(e=+e)==1?K:function(t,n){return n-t?W(t,n,e):H(isNaN(t)?n:t)}}function K(e,t){var n=t-e;return n?U(e,n):H(isNaN(e)?t:e)}var q=(function e(t){var n=G(t);function r(e,t){var r=n((e=D(e)).r,(t=D(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=K(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function J(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function ne(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function re(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o;for(o=0;o<r;++o)i[o]=$(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function ie(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Y(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function ae(e,t){var n={},r={},i;for(i in(typeof e!=`object`||!e)&&(e={}),(typeof t!=`object`||!t)&&(t={}),t)i in e?n[i]=$(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var X=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Z=new RegExp(X.source,`g`);function oe(e){return function(){return e}}function se(e){return function(t){return e(t)+``}}function Q(e,t){var n=X.lastIndex=Z.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=X.exec(e))&&(i=Z.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:Y(r,i)})),n=Z.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?se(c[0].x):oe(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function $(e,t){var n=typeof t,r;return t==null||n===`boolean`?H(t):(n===`number`?Y:n===`string`?(r=C(t))?(t=r,q):Q:t instanceof C?q:t instanceof Date?ie:ne(t)?J:Array.isArray(t)?re:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?ae:Y)(e,t)}export{C as a,q as i,Q as n,i as o,Y as r,$ as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e}from"./editor.api2-
|
|
1
|
+
import{p as e}from"./editor.api2-T7u8kQWG.js";function t(e,t){let n=globalThis.MonacoEnvironment;if(n?.createTrustedTypesPolicy)try{return n.createTrustedTypesPolicy(e,t)}catch(e){console.error(e);return}try{return globalThis.trustedTypes?.createPolicy(e,t)}catch(e){console.error(e);return}}var n=typeof self==`object`&&self.constructor&&self.constructor.name===`DedicatedWorkerGlobalScope`&&globalThis.workerttPolicy!==void 0?globalThis.workerttPolicy:t(`defaultWorkerFactory`,{createScriptURL:e=>e});function r(e){let t=e.label,r=globalThis.MonacoEnvironment;if(r){if(typeof r.getWorker==`function`)return r.getWorker(`workerMain.js`,t);if(typeof r.getWorkerUrl==`function`){let e=r.getWorkerUrl(`workerMain.js`,t);return new Worker(n?n.createScriptURL(e):e,{name:t,type:`module`})}}if(e.createWorker)return e.createWorker();throw Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`)}function i(t){let n=Promise.resolve(r({label:t.label??`monaco-editor-worker`,moduleId:t.moduleId,createWorker:t.createWorker})).then(e=>(e.postMessage(`ignore`),e.postMessage(t.createData),e));return e.createWebWorker({worker:n,host:t.host,keepIdleModels:t.keepIdleModels})}export{i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as e}from"./editor.api2-
|
|
1
|
+
import{h as e}from"./editor.api2-T7u8kQWG.js";var t={comments:{blockComment:[`<!--`,`-->`]},brackets:[[`<`,`>`]],autoClosingPairs:[{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],surroundingPairs:[{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],onEnterRules:[{beforeText:RegExp(`<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}]},n={defaultToken:``,tokenPostfix:`.xml`,ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,``],{include:`@whitespace`},[/(<)(@qualifiedName)/,[{token:`delimiter`},{token:`tag`,next:`@tag`}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:`delimiter`},{token:`tag`},``,{token:`delimiter`}]],[/(<\?)(@qualifiedName)/,[{token:`delimiter`},{token:`metatag`,next:`@tag`}]],[/(<\!)(@qualifiedName)/,[{token:`delimiter`},{token:`metatag`,next:`@tag`}]],[/<\!\[CDATA\[/,{token:`delimiter.cdata`,next:`@cdata`}],[/&\w+;/,`string.escape`]],cdata:[[/[^\]]+/,``],[/\]\]>/,{token:`delimiter.cdata`,next:`@pop`}],[/\]/,``]],tag:[[/[ \t\r\n]+/,``],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,[`attribute.name`,``,`attribute.value`]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,[`attribute.name`,``,`attribute.value`]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,[`attribute.name`,``,`attribute.value`]],[/@qualifiedName/,`attribute.name`],[/\?>/,{token:`delimiter`,next:`@pop`}],[/(\/)(>)/,[{token:`tag`},{token:`delimiter`,next:`@pop`}]],[/>/,{token:`delimiter`,next:`@pop`}]],whitespace:[[/[ \t\r\n]+/,``],[/<!--/,{token:`comment`,next:`@comment`}]],comment:[[/[^<\-]+/,`comment.content`],[/-->/,{token:`comment`,next:`@pop`}],[/<!--/,`comment.content.invalid`],[/[<\-]/,`comment.content`]]}};export{t as conf,n as language};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as e}from"./editor.api2-
|
|
1
|
+
import{h as e}from"./editor.api2-T7u8kQWG.js";var t={comments:{lineComment:`#`},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:e.IndentAction.Indent}}]},n={tokenPostfix:`.yaml`,brackets:[{token:`delimiter.bracket`,open:`{`,close:`}`},{token:`delimiter.square`,open:`[`,close:`]`}],keywords:[`true`,`True`,`TRUE`,`false`,`False`,`FALSE`,`null`,`Null`,`Null`,`~`],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:`@whitespace`},{include:`@comment`},[/%[^ ]+.*$/,`meta.directive`],[/---/,`operators.directivesEnd`],[/\.{3}/,`operators.documentEnd`],[/[-?:](?= )/,`operators`],{include:`@anchor`},{include:`@tagHandle`},{include:`@flowCollections`},{include:`@blockStyle`},[/@numberInteger(?![ \t]*\S+)/,`number`],[/@numberFloat(?![ \t]*\S+)/,`number.float`],[/@numberOctal(?![ \t]*\S+)/,`number.octal`],[/@numberHex(?![ \t]*\S+)/,`number.hex`],[/@numberInfinity(?![ \t]*\S+)/,`number.infinity`],[/@numberNaN(?![ \t]*\S+)/,`number.nan`],[/@numberDate(?![ \t]*\S+)/,`number.date`],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,[`type`,`white`,`operators`,`white`]],{include:`@flowScalars`},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],object:[{include:`@whitespace`},{include:`@comment`},[/\}/,`@brackets`,`@pop`],[/,/,`delimiter.comma`],[/:(?= )/,`operators`],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,`type`],{include:`@flowCollections`},{include:`@flowScalars`},{include:`@tagHandle`},{include:`@anchor`},{include:`@flowNumber`},[/[^\},]+/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],array:[{include:`@whitespace`},{include:`@comment`},[/\]/,`@brackets`,`@pop`],[/,/,`delimiter.comma`],{include:`@flowCollections`},{include:`@flowScalars`},{include:`@tagHandle`},{include:`@anchor`},{include:`@flowNumber`},[/[^\],]+/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],multiString:[[/^( +).+$/,`string`,`@multiStringContinued.$1`]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":`string`,"@default":{token:`@rematch`,next:`@popall`}}}]],whitespace:[[/[ \t\r\n]+/,`white`]],comment:[[/#.*$/,`comment`]],flowCollections:[[/\[/,`@brackets`,`@array`],[/\{/,`@brackets`,`@object`]],flowScalars:[[/"([^"\\]|\\.)*$/,`string.invalid`],[/'([^'\\]|\\.)*$/,`string.invalid`],[/'[^']*'/,`string`],[/"/,`string`,`@doubleQuotedString`]],doubleQuotedString:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],blockStyle:[[/[>|][0-9]*[+-]?$/,`operators`,`@multiString`]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,`number`],[/@numberFloat(?=[ \t]*[,\]\}])/,`number.float`],[/@numberOctal(?=[ \t]*[,\]\}])/,`number.octal`],[/@numberHex(?=[ \t]*[,\]\}])/,`number.hex`],[/@numberInfinity(?=[ \t]*[,\]\}])/,`number.infinity`],[/@numberNaN(?=[ \t]*[,\]\}])/,`number.nan`],[/@numberDate(?=[ \t]*[,\]\}])/,`number.date`]],tagHandle:[[/\![^ ]*/,`tag`]],anchor:[[/[&*][^ ]+/,`namespace`]]}};export{t as conf,n as language};
|