specrails-desktop 2.60.0 → 2.62.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-C_pqc281.js +1 -0
- package/client/dist/assets/{AgentBrowserCapture-D4a3wYM1.js → AgentBrowserCapture-vz6rbDtu.js} +1 -1
- package/client/dist/assets/AgentModeAnalyticsPane-BHCcUahS.js +2 -0
- package/client/dist/assets/AgentModeCodePane-DhmxgG3W.js +2 -0
- package/client/dist/assets/{AgentModeJobsPane-25tQlLpF.js → AgentModeJobsPane-99fBBLri.js} +1 -1
- package/client/dist/assets/{AgentsPage-CUDp_sfw.js → AgentsPage-CTwm_6T8.js} +3 -3
- package/client/dist/assets/{AnalyticsPage-DXWMGn8b.js → AnalyticsPage-YD8MLoPa.js} +1 -1
- package/client/dist/assets/CodePage-CLJn2F2e.js +3 -0
- package/client/dist/assets/{DesktopAnalyticsPage-BkFBq0E6.js → DesktopAnalyticsPage-MWGQVbwp.js} +1 -1
- package/client/dist/assets/{DocsDialog-BL7uSbIJ.js → DocsDialog-XUCYKoq0.js} +1 -1
- package/client/dist/assets/{DocsPage-CsDLbmZX.js → DocsPage-dOLC8bXA.js} +1 -1
- package/client/dist/assets/{ExportDropdown-B4Olg1Fk.js → ExportDropdown-BvKQgwM9.js} +1 -1
- package/client/dist/assets/InteractiveJobComposer-DxOvwmBF.js +19 -0
- package/client/dist/assets/{JobDetailModal-DS_Owxs6.js → JobDetailModal-CkiubrkZ.js} +1 -1
- package/client/dist/assets/JobDetailPage-CNe4Wn7l.js +1 -0
- package/client/dist/assets/JobsPage-DSts_L_d.js +1 -0
- package/client/dist/assets/LoopBuilderPage-C9D9eer5.js +1 -0
- package/client/dist/assets/{LoopPreviewModal-CH1r-KhU.js → LoopPreviewModal-Dv3dxHr_.js} +1 -1
- package/client/dist/assets/{LoopWindowSurface-CiZdI6aw.js → LoopWindowSurface-DN2lbSnL.js} +1 -1
- package/client/dist/assets/{LoopsPage-BwFujdGi.js → LoopsPage-DHgIreEW.js} +2 -2
- package/client/dist/assets/MinimizedChatsContext-Ds2-R6qJ.js +1 -0
- package/client/dist/assets/PluginsPage-D1EJ9oja.js +2 -0
- package/client/dist/assets/ProjectSettingsDialog-DKpa1wKk.js +1 -0
- package/client/dist/assets/{RepositoryDeliveries-NNorcGzT.js → RepositoryDeliveries-CW4eKG3x.js} +1 -1
- package/client/dist/assets/{RepositoryScopeSelector-D-jb4bI_.js → RepositoryScopeSelector-DrtPqvc_.js} +1 -1
- package/client/dist/assets/ReviewPacketPage-BtjPI0Cc.js +4 -0
- package/client/dist/assets/{TemplatePreviewModal-5CZdAZ0G.js → TemplatePreviewModal-DcFlhUxy.js} +1 -1
- package/client/dist/assets/TicketDetailModalContext-Dea22CI-.js +16 -0
- package/client/dist/assets/{Trans-wmTUDVyC.js → Trans-CAY2Rd2f.js} +1 -1
- package/client/dist/assets/agent-5bSixVzz.js +1 -0
- package/client/dist/assets/agent-BR4EHfhq.js +1 -0
- package/client/dist/assets/agent-C0IKkJP8.js +1 -0
- package/client/dist/assets/agent-C7li9ayC.js +1 -0
- package/client/dist/assets/agent-D0dRmEen.js +1 -0
- package/client/dist/assets/{agent-BjttZLIl.js → agent-DZVGHm7H.js} +1 -1
- package/client/dist/assets/agent-Dip4h2YE.js +1 -0
- package/client/dist/assets/agent-Pp-P-n1p.js +1 -0
- package/client/dist/assets/agentRuntime-B-myNBUP.js +1 -0
- package/client/dist/assets/agentRuntime-Bjt7Ij6_.js +1 -0
- package/client/dist/assets/agentRuntime-C_yLPKDy.js +1 -0
- package/client/dist/assets/agentRuntime-D2kYQqNO.js +1 -0
- package/client/dist/assets/agentRuntime-DvhEe1um.js +1 -0
- package/client/dist/assets/agentRuntime-DxC6-9rN.js +1 -0
- package/client/dist/assets/agentRuntime-TKQyg137.js +1 -0
- package/client/dist/assets/agentRuntime-WSv8G0pW.js +1 -0
- package/client/dist/assets/ban-E4EaZe3a.js +1 -0
- package/client/dist/assets/chevron-up-CwGUHd6D.js +1 -0
- package/client/dist/assets/dist-Bq10nS2m.js +1 -0
- package/client/dist/assets/{formatDistanceToNow-Dax4zqPF.js → formatDistanceToNow-DlQY1Lm_.js} +1 -1
- package/client/dist/assets/{getTimezoneOffsetInMilliseconds-dpIo42JZ.js → getTimezoneOffsetInMilliseconds-COUeq65G.js} +1 -1
- package/client/dist/assets/index-BacrO_ub.css +2 -0
- package/client/dist/assets/index-CONHvEJw.js +83 -0
- package/client/dist/assets/{jira-api-CLrIvXFm.js → jira-api-C94VNHNY.js} +1 -1
- package/client/dist/assets/layers-eDMjG41I.js +1 -0
- package/client/dist/assets/{loops-Cm55CXJ4.js → loops-B2PhQLKR.js} +1 -1
- package/client/dist/assets/{loops-3IutojWt.js → loops-BqbF46st.js} +1 -1
- package/client/dist/assets/{loops-BAosWtXE.js → loops-CINnHbfI.js} +1 -1
- package/client/dist/assets/{loops-kIJJkaxf.js → loops-D-3XhH04.js} +1 -1
- package/client/dist/assets/{loops-DHQtnfze.js → loops-DKkEEjZ_.js} +1 -1
- package/client/dist/assets/{loops-D7tL_Saw.js → loops-DzWR5-v6.js} +1 -1
- package/client/dist/assets/{loops--KWr0X-w.js → loops-WyWDkhok.js} +1 -1
- package/client/dist/assets/{loops-BISDssL5.js → loops-scD5fIBf.js} +1 -1
- package/client/dist/assets/{narration-DvLQBW9U.js → narration-BEKMVxGm.js} +1 -1
- package/client/dist/assets/{narration-CHI06czm.js → narration-CjLwGKap.js} +1 -1
- package/client/dist/assets/{narration-DjKB3pQZ.js → narration-DANWuGsW.js} +1 -1
- package/client/dist/assets/{narration-eSx3gR0W.js → narration-DGeEDWiT.js} +1 -1
- package/client/dist/assets/{narration-DtCYvRLM.js → narration-DJgpGwIP.js} +1 -1
- package/client/dist/assets/{narration-n3hOA7LY.js → narration-DbHnz0qV.js} +1 -1
- package/client/dist/assets/{narration-thJOeT2-.js → narration-bZSsTZG8.js} +1 -1
- package/client/dist/assets/{narration--hUhjM5v.js → narration-i6aKJKEc.js} +1 -1
- package/client/dist/assets/{project-repositories-BkyT8AjU.js → project-repositories-Cc3oNv8X.js} +1 -1
- package/client/dist/assets/save-B6wGWwBR.js +1 -0
- package/client/dist/assets/{settings-Dn-pXukr.js → settings-BKJZ2KEM.js} +1 -1
- package/client/dist/assets/{settings-BBj_kZaD.js → settings-BV3jocIx.js} +1 -1
- package/client/dist/assets/{settings-COlH_P33.js → settings-BjM2Dw8_.js} +1 -1
- package/client/dist/assets/settings-CKu0LTib.js +1 -0
- package/client/dist/assets/{settings-D77mC_Lb.js → settings-DA77M48m.js} +1 -1
- package/client/dist/assets/{settings-ByVE7jdZ.js → settings-LfFnl1UH.js} +1 -1
- package/client/dist/assets/{settings-DZKy7MqN.js → settings-P1IQvhnL.js} +1 -1
- package/client/dist/assets/{settings-B5Hy_Kol.js → settings-eIMJjyK_.js} +1 -1
- package/client/dist/assets/{spending-Oov7p52A.js → spending-DemeFfrH.js} +1 -1
- package/client/dist/assets/{useDesktop-DpiS8Uov.js → useDesktop-9Lwoel_8.js} +1 -1
- package/client/dist/assets/{useRuntimeRuns-DBm1mul0.js → useRuntimeRuns-DL0xYoZ2.js} +1 -1
- package/client/dist/assets/{useSharedWebSocket-BZxKaVNT.js → useSharedWebSocket-BEHPeU1Y.js} +2 -2
- package/client/dist/assets/zap-CHo3aCD1.js +1 -0
- package/client/dist/index.html +26 -22
- package/docs/guide/de/integrations/6-agent-chat.md +11 -0
- package/docs/guide/en/integrations/6-agent-chat.md +11 -0
- package/docs/guide/es/integrations/6-agent-chat.md +11 -0
- package/docs/guide/fr/integrations/6-agent-chat.md +11 -0
- package/docs/guide/it/integrations/6-agent-chat.md +11 -0
- package/docs/guide/ja/integrations/6-agent-chat.md +11 -0
- package/docs/guide/pt/integrations/6-agent-chat.md +11 -0
- package/docs/guide/zh/integrations/6-agent-chat.md +11 -0
- package/docs/internals/README.md +1 -0
- package/docs/internals/agent-sessions.md +157 -0
- package/docs/internals/api-reference.md +33 -4
- package/docs/internals/configuration.md +36 -0
- package/docs/internals/core-runtime-updates.md +10 -3
- package/docs/internals/operations-runbook.md +11 -0
- package/docs/internals/programmatic-agent-runtime.md +2 -0
- package/docs/internals/source-map.md +40 -1
- package/mcp-bridge/dist/specrails-mcp.js +82 -15
- package/package.json +1 -1
- package/server/dist/agent-mcp-config.js +41 -0
- package/server/dist/core-compat.js +2 -0
- package/server/dist/desktop-db.js +101 -4
- package/server/dist/desktop-router.js +31 -2
- package/server/dist/index.js +58 -0
- package/server/dist/mcp/tools/app-settings.js +11 -0
- package/server/dist/mcp/tools/mission.js +45 -2
- package/server/dist/mcp/tools/specs.js +2 -2
- package/server/dist/modules/accounting/runtime/result-event.js +9 -1
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-bridge.js +12 -0
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-controls.js +25 -0
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-effective-config.js +2 -0
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings-router.js +6 -2
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings.js +18 -6
- package/server/dist/modules/agent-sessions/adapters/host-process.js +73 -0
- package/server/dist/modules/agent-sessions/adapters/http.js +31 -0
- package/server/dist/modules/agent-sessions/adapters/rpc-client.js +147 -0
- package/server/dist/modules/agent-sessions/application/session-event-pump.js +99 -0
- package/server/dist/modules/agent-sessions/domain/availability.js +25 -0
- package/server/dist/modules/agent-sessions/domain/errors.js +23 -0
- package/server/dist/modules/agent-sessions/domain/host-state.js +80 -0
- package/server/dist/modules/agent-sessions/domain/projection.js +147 -0
- package/server/dist/modules/agent-sessions/domain/protocol.js +59 -0
- package/server/dist/modules/agent-sessions/domain/subagent-policy.js +34 -0
- package/server/dist/modules/agent-sessions/index.js +31 -0
- package/server/dist/modules/agent-sessions/ports.js +2 -0
- package/server/dist/modules/agent-sessions/runtime/core-sessions-availability.js +43 -0
- package/server/dist/modules/agent-sessions/runtime/session-host-registry.js +226 -0
- package/server/dist/modules/agents/runtime/agent-store.js +3 -1
- package/server/dist/modules/loops/runtime/loop-core-factory.js +2 -2
- package/server/dist/modules/loops/runtime/loop-definition.js +1 -0
- package/server/dist/modules/loops/runtime/loop-factory.js +1 -1
- package/server/dist/modules/loops/runtime/loop-graph.js +8 -1
- package/server/dist/modules/loops/runtime/loop-implement-recipe.js +41 -11
- package/server/dist/modules/loops/runtime/loop-run-manager.js +4 -0
- package/server/dist/modules/loops/runtime/loop-templates.js +3 -3
- package/server/dist/modules/missions/runtime/agent-chat-manager.js +137 -40
- package/server/dist/modules/missions/runtime/agent-chat-router.js +68 -0
- package/server/dist/modules/missions/runtime/agent-operator-prompt.js +8 -9
- package/server/dist/modules/missions/runtime/agent-session-store.js +133 -0
- package/server/dist/modules/missions/runtime/core-session-runner.js +204 -0
- package/server/dist/modules/missions/runtime/mission-core-sessions.js +286 -0
- package/server/dist/modules/missions/runtime/mission-session-projector.js +168 -0
- package/server/dist/modules/project-settings/adapters/http.js +14 -2
- package/server/dist/modules/project-settings/adapters/sqlite.js +30 -2
- package/server/dist/modules/project-settings/domain.js +24 -0
- package/server/dist/modules/project-settings/index.js +2 -1
- package/server/dist/modules/specs/runtime/spec-models.js +1 -1
- package/server/dist/plugins/codex-spawn.js +15 -7
- package/server/dist/project-registry.js +32 -0
- package/server/dist/project-router-settings.js +7 -1
- package/server/dist/providers/claude-adapter.js +6 -1
- package/server/dist/schemas/agent-runtime.schema.json +9 -7
- package/client/dist/assets/ActivityFeedPage-3J7fR8yB.js +0 -1
- package/client/dist/assets/AgentModeAnalyticsPane-Dps30tk9.js +0 -2
- package/client/dist/assets/AgentModeCodePane-CvLimey8.js +0 -2
- package/client/dist/assets/CodePage-D981zRHy.js +0 -3
- package/client/dist/assets/InteractiveJobComposer-Z6fl4791.js +0 -19
- package/client/dist/assets/JobDetailPage-1TUQ9vlE.js +0 -1
- package/client/dist/assets/JobsPage-BSrl8P7u.js +0 -1
- package/client/dist/assets/LoopBuilderPage-Dh5uk2Qy.js +0 -1
- package/client/dist/assets/MinimizedChatsContext-BD2bsRBe.js +0 -1
- package/client/dist/assets/PluginsPage-B8f49Mvn.js +0 -2
- package/client/dist/assets/ProjectSettingsDialog-D7q-O6h3.js +0 -1
- package/client/dist/assets/ReviewPacketPage-DpZSzF-Q.js +0 -4
- package/client/dist/assets/TicketDetailModalContext-BHmtj1As.js +0 -16
- package/client/dist/assets/agent--8QAfoXL.js +0 -1
- package/client/dist/assets/agent-3HxXkIWX.js +0 -1
- package/client/dist/assets/agent-CpFCz32T.js +0 -1
- package/client/dist/assets/agent-DVnw6ybO.js +0 -1
- package/client/dist/assets/agent-Z5s_GTP0.js +0 -1
- package/client/dist/assets/agent-hv57-zyG.js +0 -1
- package/client/dist/assets/agent-xGrZ_aN1.js +0 -1
- package/client/dist/assets/agentRuntime-7Ydcvr6P.js +0 -1
- package/client/dist/assets/agentRuntime-BHVw9orA.js +0 -1
- package/client/dist/assets/agentRuntime-DCPDaQcV.js +0 -1
- package/client/dist/assets/agentRuntime-DKTw4Ajg.js +0 -1
- package/client/dist/assets/agentRuntime-DVhij_i_.js +0 -1
- package/client/dist/assets/agentRuntime-Doss-T8o.js +0 -1
- package/client/dist/assets/agentRuntime-eZSMUlkM.js +0 -1
- package/client/dist/assets/agentRuntime-qSSU7fQk.js +0 -1
- package/client/dist/assets/index-Bfunvi6w.css +0 -2
- package/client/dist/assets/index-g8S62tpS.js +0 -83
- package/client/dist/assets/save-OsUqVn99.js +0 -1
- package/client/dist/assets/settings-Dbyd6gmj.js +0 -1
- package/client/dist/assets/zap-CUOlvtT1.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-Bjbbp_KS.js";import{a as t}from"./useDesktop-
|
|
1
|
+
import{t as e}from"./createLucideIcon-Bjbbp_KS.js";import{a as t}from"./useDesktop-9Lwoel_8.js";var n=e(`wrench`,[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z`,key:`1ngwbx`}]]);async function r(e){let t=await e.text(),n=t?JSON.parse(t):{};if(!e.ok)throw Error(n.error||`Request failed (${e.status})`);return n}function i(e){return e??t()}var a=e=>({method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),o={getConnection(e){return fetch(`${i(e)}/jira/connection`).then(e=>r(e))},test(e,t){return fetch(`${i(t)}/jira/test`,a(e)).then(e=>r(e))},discoverProjects(e,t){return fetch(`${i(t)}/jira/discover-projects`,a(e)).then(e=>r(e))},discoverStatuses(e,t){return fetch(`${i(t)}/jira/discover-statuses`,a(e)).then(e=>r(e))},connect(e,t){return fetch(`${i(t)}/jira/connect`,a(e)).then(e=>r(e))},setEnabled(e,t){return fetch(`${i(t)}/jira/connection`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({enabled:e})}).then(e=>r(e))},patchConnection(e,t){return fetch(`${i(t)}/jira/connection`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}).then(e=>r(e))},listStatuses(e){return fetch(`${i(e)}/jira/statuses`).then(e=>r(e))},moveSpecToStatus(e,t,n){return fetch(`${i(n)}/jira/specs/${e}/move-to-status`,a({status:t})).then(e=>r(e))},discardSpec(e,t,n){return fetch(`${i(n)}/jira/specs/${e}/discard`,a({comment:t})).then(e=>r(e))},getSpecDetails(e,t){return fetch(`${i(t)}/jira/specs/${e}/details`).then(e=>r(e))},disconnect(e){return fetch(`${i(e)}/jira/connection`,{method:`DELETE`}).then(e=>r(e))},syncNow(e){return fetch(`${i(e)}/jira/sync`,{method:`POST`}).then(e=>r(e))},resume(e){return fetch(`${i(e)}/jira/resume`,{method:`POST`}).then(e=>r(e))},listOutbox(e,t){let n=e?`?state=${e}`:``;return fetch(`${i(t)}/jira/outbox${n}`).then(e=>r(e))},retryOutbox(e,t){return fetch(`${i(t)}/jira/outbox/${e}/retry`,{method:`POST`}).then(e=>r(e))}};export{n,o as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./createLucideIcon-Bjbbp_KS.js";var t=e(`layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]);export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`Loops`,t=`再利用可能な自動化ループ — すべてのプロジェクトで共有されます。`,n=`新しいループ`,r={drafts:`下書き`,published:`公開済み`,templates:`テンプレート`,builtIn:`組み込み`},i={search:`テンプレートを検索…`,noResults:`フィルターに一致するテンプレートがありません。`,clearFilter:`フィルターをクリア`,resultCount_one:`{{count}} 件のテンプレート`,resultCount_other:`{{count}} 件のテンプレート`,needsSpec:`スペックが必要`,standalone:`単独実行`,needsSpecHint:`スペックをドラッグした rail で実行`,standaloneHint:`単独で実行 — プロジェクトを選ぶだけ`},a={API:`API`,Automation:`自動化`,CI:`CI`,Database:`データベース`,Debugging:`デバッグ`,DevOps:`DevOps`,Docs:`ドキュメント`,Git:`Git`,Maintenance:`メンテナンス`,Performance:`パフォーマンス`,Planning:`計画`,Quality:`品質`,Review:`レビュー`,Security:`セキュリティ`,Testing:`テスト`},o={draft:`下書き`,published:`公開済み`,running:`実行中`},s={title:`ループはまだありません`,body:`ゼロから作成するか、テンプレートから始めましょう。`},c={edit:`編集`,delete:`削除`,publish:`公開`,unpublish:`公開を取り消す`,duplicate:`複製`,restoreBuiltin:`元に戻す`,use:`テンプレートを使用`,preview:`プレビュー`,run:`実行`,export:`エクスポート`,import:`インポート`,select:`{{name}} を選択`,exportLegacy:`元のグラフをエクスポート`,originalCopyName:`元のグラフ: {{name}}`,convert:`Coreに変換`},l={nodes_one:`{{count}} 個のノード`,nodes_other:`{{count}} 個のノード`,usedIn:`使用中 · {{project}}`,builtinModified:`編集済み`},u=`このループを削除しますか?すべてのレールのピッカーから表示されなくなります。`,d=`新しいループ`,f={load:`ループの読み込みに失敗しました`,save:`ループの保存に失敗しました`,publishInvalid:`このループはまだ公開できません — ハイライトされた問題を修正してください。`,exportLegacy:`元のグラフをエクスポートできませんでした。`},p={back:`ループに戻る`,save:`保存`,saved:`ループを保存しました`,publish:`公開`,published:`ループを公開しました`,builtin:{note:`組み込みループです。組み込みループ自体を編集しています。公開すると、変更はこのループを使うすべてのレール、エージェントチャットからの起動、Companion に適用されます。編集中もレールは最後に公開されたバージョンを実行し続けます。既定に戻すには「元に戻す」を使います。`,restored:`組み込みループを元のバージョンに戻しました`,confirmTitle:`元の組み込みループに戻しますか?`,confirmBody:`この組み込みループへの変更を破棄し、使用しているすべてのレールに元のバージョンを公開します。自分のバージョンを残したい場合は先に複製してください。`},addNode:`ノードを追加`,deleteNode:`ノードを削除`,config:{maxIterations:`最大反復回数`,timeout:`タイムアウト(分)`,maxIterationsHint:`Loop Decider の反復回数の上限 — 目標が未達でも到達したらループを停止。暴走ループを防ぎます。`,timeoutHint:`実行全体の実時間の上限(分)。超過すると実行は停止し失敗として記録されます — 最大反復回数と並ぶ安全策です。 0 はこの時間制限を無効にします。ほかの予算とキャンセルは引き続き有効です。`,maxCost:`最大コスト ($)`,maxCostHint:`実行全体の任意の USD 予算。ステップ間で確認(各ステップの費用はそのステップ終了時にのみ判明)するため、合計が超えると次のステップ前にループを停止します(1ステップ分超過する可能性あり)。Claude 以外のプロバイダーでは費用は推定値です。空欄 = 上限なし。`},nodes:{start:`開始`,"ai-step":`AI ステップ`,shell:`シェル`,decider:`ループ判定`,condition:`条件`,end:`終了`},inspector:{selectNode:`編集するノードを選択してください。`,prompt:`プロンプト`,provider:`プロバイダー`,model:`モデル`,effort:`推論の労力`,command:`コマンド`,goal:`目標 / 停止条件`,join:`結合`,outcome:`結果`,startNote:`ループのエントリーポイント。最初のステップに接続してください。`,promptHint:`トークンをクリックまたはドラッグしてプロンプトに挿入します。`,tokensSpec:`Spec フィールド`,tokensJira:`Jira`,tokensCommands:`コマンド`,label:`名前`},branch:{continue:`↻ 続行`,stop:`✓ 終了`},edgesHelp:{label:`ステップの接続方法`,body:`矢印は実行の順序を設定するもので、データの流れではありません — ボックスには入力ポートがなく、エッジはパラメータを運びません。各 AI Step は自動的にそのセッションを再開し (これまでの完全なコンテキスト)、加えて前のステップの短い要約を引き継ぎます。手作業での配線は一切ありません。Loop Decider には 2 つの出力があります: ↻ Continue (目標未達 → ループバック) と ✓ Stop (目標達成 → 終了)。`},arrange:{label:`整列`,vertical:`垂直`,horizontal:`水平`,grid:`グリッド`,reset:`リセット`},constants:{label:`定数`,manage:`定数を管理`,title:`ループ定数`,empty:`カスタム定数はまだありません。`,name:`名前`,value:`値`,add:`追加`,builtinBadge:`組み込み`},paste:{done_one:`{{count}} 個のステップを貼り付けました`,done_other:`{{count}} 個のステップを貼り付けました`},problems:{count_one:`{{count}} 件の問題`,count_other:`{{count}} 件の問題`,NO_START:`開始ノードを追加してください。`,MULTIPLE_START:`開始ノードは1つだけ許可されます。`,NO_END:`終了ノードを少なくとも1つ追加してください。`,ORPHAN:`このステップは開始から到達できません。`,DECIDER_BRANCHES:`Loop Decider には継続と停止の分岐が必要です。`,EMPTY_PROMPT:`AI ステップのプロンプトが空です。`,EMPTY_COMMAND:`Shell ステップのコマンドが空です。`,EMPTY_GOAL:`Loop Decider に目標がありません。`,DEAD_END:`このステップには出力接続がありません。`,MIXED_ENGINES:`従来のステップと Core のステップを混在させないでください。`,CORE_OUTCOMES:`異なる有効な結果を接続してください。`,CORE_PIECE:`ステップとパラメーターを選択してください。`},preview:{label:`プレビュー`,title:`ドライラン プレビュー`,sampleNote:`Spec の値はサンプルです。コマンドと定数は実行時と同じように解決されます。`,empty:`プレビューするステップがありません。`,error:`プレビューに失敗しました`},core:{unavailable:`エンジンを利用できません。Core を更新すると、ステップの追加や公開ができます。`,root:`メインワークフロー`,components:`コンポーネント`,componentName:`コンポーネント名`,addComponent:`コンポーネントを追加`,openComponent:`コンポーネントを開く`,breadcrumbs:`ワークフローのナビゲーション`,select:`選択してください`,valueType:`値の種類`,addItem:`項目を追加`,fieldName:`フィールド名`,addField:`{{name}} を追加`,removeField:`{{name}} を削除`,variant:`{{name}} の形式`,tooDeep:`値の階層が深すぎます。`,pieces:{prompt:`プロンプト`,"role-turn":`Agent step`,decider:`判断`,condition:`条件`,verify:`検証`,shell:`シェル`,"openspec-validate":`OpenSpec を検証`,"openspec-archive":`OpenSpec をアーカイブ`,approval:`承認`,question:`質問`,gate:`一時停止`,map:`各項目を実行`,join:`結合`,component:`コンポーネント`,implementation:`実装`,end:`終了`,assign:`変数を設定`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`AI`,verification:`検証`,openspec:`OpenSpec`,control:`フロー制御`},options:`ワークフローの設定`,reviewerStep:`レビュー証拠ノード`,reviewerAutomatic:`自動(実装レビュー)`,reviewerHint:`構造化されたレビューを提供するロールターンを選択します。AIレビューはホストによる検証の代わりにはなりません。`,assignment:{set:`値を設定`,increment:`カウンターを調整`},requiredContinue:`この条件が成立する間は続行`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},m={steps:`ステップ`,limits:`最大 {{iterations}} 回 · {{timeout}} 分タイムアウト`,limitsNoTimeout:`最大 {{iterations}} 回 · タイムアウトなし`,openInBuilder:`ビルダーで開く`,builtin:`ビルトイン`},h=`組み込み`,g={title:`{{name}} を実行`,subtitle:`このループをプロジェクトで実行します(チケット不要)。`,project:`プロジェクト`,provider:`プロバイダー`,model:`モデル`,effort:`推論の強度`,execute:`実行`,noProjects:`利用可能なプロジェクトがありません。`,launched:`{{name}} を実行中`},_={"ship-and-green":{name:`Ship & Green`,description:`完全自律: spec を実装し、検証し、失敗時には修正 (refine) する — すべてがグリーンになるまで 検証 → 修正 → 検証 をループします。人手による介入は不要です。`},"verify-pass":{name:`Verify Pass`,description:`自律的な検証と修正: プロジェクトの build / lint / テストを検出して実行し、失敗時には修正 — グリーンになるまで 検証 → 修正 → 検証 を繰り返します。`},"ci-watch":{name:`CI Watch`,description:`オープンな PR の CI チェックをポーリングし (エージェントがリポジトリの CI ツールを使用)、すべてのチェックがグリーンになるまで続けます。`},"lint-and-fix":{name:`Lint & Fix`,description:`エージェントがプロジェクトの linter を検出して実行し、すべての問題を修正します。コードベースがクリーンになるまで反復します。`},"type-safe":{name:`Type Safe`,description:`エージェントがプロジェクトの型チェッカーを検出して実行し、すべてのエラーを解消します。問題なくパスするまで反復します。`},"coverage-climb":{name:`Coverage Climb`,description:`エージェントがプロジェクトのカバレッジツールを実行し、しきい値をパスするまで的を絞ったテストを追加します。`},"build-fix":{name:`Build Fix`,description:`エージェントがプロジェクトの本番 build を検出して実行し、グリーンになるまでコンパイル / バンドルのエラーを修正します。`},"deploy-check":{name:`Deploy Check`,description:`エージェントがデプロイ / ヘルスステータスをポーリングし (プロジェクトの deploy ツールを使用)、サービスが正常を報告するまで続けます。`},factory_implement:{name:`実装`,description:`レール上のすべての spec を 1 回の実行で実装します。計画、実装、レビュー、検証を行い、チェックが通るまで失敗を修正します。`},factory_freestyle:{name:`Freestyle`,description:`スペックをそのままモデルに渡して完全な自由を与えます — パイプラインなしで通常のコーディングエージェントのように動作し、その後グリーンになるまで検証+改善します。Claude 専用。`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`チケットからアーカイブまでの OpenSpec ライフサイクル: アーティファクト生成 (opsx:ff) → 実装 (opsx:apply) → 検証 (opsx:verify)。FAIL なら同じ change を修正しに戻り、PASS なら無人でアーカイブします。`},factory_revision:{name:`修正`,description:`すでに納品された成果の上に依頼された一点の変更を適用し、レビュアーに再評価させ、通るまで検証します。ゼロからの再計画はしません。`}},v={selectInterrupt:`保留中の質問または承認を選択`,answerQuestion:`質問に回答`,approval:`承認`,approveContinue:`承認して続行`,paused:`一時停止中`,acceptance:`受け入れ`,verified
|
|
1
|
+
var e=`Loops`,t=`再利用可能な自動化ループ — すべてのプロジェクトで共有されます。`,n=`新しいループ`,r={drafts:`下書き`,published:`公開済み`,templates:`テンプレート`,builtIn:`組み込み`},i={search:`テンプレートを検索…`,noResults:`フィルターに一致するテンプレートがありません。`,clearFilter:`フィルターをクリア`,resultCount_one:`{{count}} 件のテンプレート`,resultCount_other:`{{count}} 件のテンプレート`,needsSpec:`スペックが必要`,standalone:`単独実行`,needsSpecHint:`スペックをドラッグした rail で実行`,standaloneHint:`単独で実行 — プロジェクトを選ぶだけ`},a={API:`API`,Automation:`自動化`,CI:`CI`,Database:`データベース`,Debugging:`デバッグ`,DevOps:`DevOps`,Docs:`ドキュメント`,Git:`Git`,Maintenance:`メンテナンス`,Performance:`パフォーマンス`,Planning:`計画`,Quality:`品質`,Review:`レビュー`,Security:`セキュリティ`,Testing:`テスト`},o={draft:`下書き`,published:`公開済み`,running:`実行中`},s={title:`ループはまだありません`,body:`ゼロから作成するか、テンプレートから始めましょう。`},c={edit:`編集`,delete:`削除`,publish:`公開`,unpublish:`公開を取り消す`,duplicate:`複製`,restoreBuiltin:`元に戻す`,use:`テンプレートを使用`,preview:`プレビュー`,run:`実行`,export:`エクスポート`,import:`インポート`,select:`{{name}} を選択`,exportLegacy:`元のグラフをエクスポート`,originalCopyName:`元のグラフ: {{name}}`,convert:`Coreに変換`},l={nodes_one:`{{count}} 個のノード`,nodes_other:`{{count}} 個のノード`,usedIn:`使用中 · {{project}}`,builtinModified:`編集済み`},u=`このループを削除しますか?すべてのレールのピッカーから表示されなくなります。`,d=`新しいループ`,f={load:`ループの読み込みに失敗しました`,save:`ループの保存に失敗しました`,publishInvalid:`このループはまだ公開できません — ハイライトされた問題を修正してください。`,exportLegacy:`元のグラフをエクスポートできませんでした。`},p={back:`ループに戻る`,save:`保存`,saved:`ループを保存しました`,publish:`公開`,published:`ループを公開しました`,builtin:{note:`組み込みループです。組み込みループ自体を編集しています。公開すると、変更はこのループを使うすべてのレール、エージェントチャットからの起動、Companion に適用されます。編集中もレールは最後に公開されたバージョンを実行し続けます。既定に戻すには「元に戻す」を使います。`,restored:`組み込みループを元のバージョンに戻しました`,confirmTitle:`元の組み込みループに戻しますか?`,confirmBody:`この組み込みループへの変更を破棄し、使用しているすべてのレールに元のバージョンを公開します。自分のバージョンを残したい場合は先に複製してください。`},addNode:`ノードを追加`,deleteNode:`ノードを削除`,config:{maxIterations:`最大反復回数`,timeout:`タイムアウト(分)`,maxIterationsHint:`Loop Decider の反復回数の上限 — 目標が未達でも到達したらループを停止。暴走ループを防ぎます。`,timeoutHint:`実行全体の実時間の上限(分)。超過すると実行は停止し失敗として記録されます — 最大反復回数と並ぶ安全策です。 0 はこの時間制限を無効にします。ほかの予算とキャンセルは引き続き有効です。`,maxCost:`最大コスト ($)`,maxCostHint:`実行全体の任意の USD 予算。ステップ間で確認(各ステップの費用はそのステップ終了時にのみ判明)するため、合計が超えると次のステップ前にループを停止します(1ステップ分超過する可能性あり)。Claude 以外のプロバイダーでは費用は推定値です。空欄 = 上限なし。`},nodes:{start:`開始`,"ai-step":`AI ステップ`,shell:`シェル`,decider:`ループ判定`,condition:`条件`,end:`終了`},inspector:{selectNode:`編集するノードを選択してください。`,prompt:`プロンプト`,provider:`プロバイダー`,model:`モデル`,effort:`推論の労力`,command:`コマンド`,goal:`目標 / 停止条件`,join:`結合`,outcome:`結果`,startNote:`ループのエントリーポイント。最初のステップに接続してください。`,promptHint:`トークンをクリックまたはドラッグしてプロンプトに挿入します。`,tokensSpec:`Spec フィールド`,tokensJira:`Jira`,tokensCommands:`コマンド`,label:`名前`},branch:{continue:`↻ 続行`,stop:`✓ 終了`},edgesHelp:{label:`ステップの接続方法`,body:`矢印は実行の順序を設定するもので、データの流れではありません — ボックスには入力ポートがなく、エッジはパラメータを運びません。各 AI Step は自動的にそのセッションを再開し (これまでの完全なコンテキスト)、加えて前のステップの短い要約を引き継ぎます。手作業での配線は一切ありません。Loop Decider には 2 つの出力があります: ↻ Continue (目標未達 → ループバック) と ✓ Stop (目標達成 → 終了)。`},arrange:{label:`整列`,vertical:`垂直`,horizontal:`水平`,grid:`グリッド`,reset:`リセット`},constants:{label:`定数`,manage:`定数を管理`,title:`ループ定数`,empty:`カスタム定数はまだありません。`,name:`名前`,value:`値`,add:`追加`,builtinBadge:`組み込み`},paste:{done_one:`{{count}} 個のステップを貼り付けました`,done_other:`{{count}} 個のステップを貼り付けました`},problems:{count_one:`{{count}} 件の問題`,count_other:`{{count}} 件の問題`,NO_START:`開始ノードを追加してください。`,MULTIPLE_START:`開始ノードは1つだけ許可されます。`,NO_END:`終了ノードを少なくとも1つ追加してください。`,ORPHAN:`このステップは開始から到達できません。`,DECIDER_BRANCHES:`Loop Decider には継続と停止の分岐が必要です。`,EMPTY_PROMPT:`AI ステップのプロンプトが空です。`,EMPTY_COMMAND:`Shell ステップのコマンドが空です。`,EMPTY_GOAL:`Loop Decider に目標がありません。`,DEAD_END:`このステップには出力接続がありません。`,MIXED_ENGINES:`従来のステップと Core のステップを混在させないでください。`,CORE_OUTCOMES:`異なる有効な結果を接続してください。`,CORE_PIECE:`ステップとパラメーターを選択してください。`},preview:{label:`プレビュー`,title:`ドライラン プレビュー`,sampleNote:`Spec の値はサンプルです。コマンドと定数は実行時と同じように解決されます。`,empty:`プレビューするステップがありません。`,error:`プレビューに失敗しました`},core:{unavailable:`エンジンを利用できません。Core を更新すると、ステップの追加や公開ができます。`,root:`メインワークフロー`,components:`コンポーネント`,componentName:`コンポーネント名`,addComponent:`コンポーネントを追加`,openComponent:`コンポーネントを開く`,breadcrumbs:`ワークフローのナビゲーション`,select:`選択してください`,valueType:`値の種類`,addItem:`項目を追加`,fieldName:`フィールド名`,addField:`{{name}} を追加`,removeField:`{{name}} を削除`,variant:`{{name}} の形式`,tooDeep:`値の階層が深すぎます。`,pieces:{prompt:`プロンプト`,"role-turn":`Agent step`,decider:`判断`,condition:`条件`,verify:`検証`,shell:`シェル`,"openspec-validate":`OpenSpec を検証`,"openspec-archive":`OpenSpec をアーカイブ`,approval:`承認`,question:`質問`,gate:`一時停止`,map:`各項目を実行`,join:`結合`,component:`コンポーネント`,implementation:`実装`,end:`終了`,assign:`変数を設定`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`AI`,verification:`検証`,openspec:`OpenSpec`,control:`フロー制御`},options:`ワークフローの設定`,reviewerStep:`レビュー証拠ノード`,reviewerAutomatic:`自動(実装レビュー)`,reviewerHint:`構造化されたレビューを提供するロールターンを選択します。AIレビューはホストによる検証の代わりにはなりません。`,assignment:{set:`値を設定`,increment:`カウンターを調整`},requiredContinue:`この条件が成立する間は続行`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},m={steps:`ステップ`,limits:`最大 {{iterations}} 回 · {{timeout}} 分タイムアウト`,limitsNoTimeout:`最大 {{iterations}} 回 · タイムアウトなし`,openInBuilder:`ビルダーで開く`,builtin:`ビルトイン`},h=`組み込み`,g={title:`{{name}} を実行`,subtitle:`このループをプロジェクトで実行します(チケット不要)。`,project:`プロジェクト`,provider:`プロバイダー`,model:`モデル`,effort:`推論の強度`,execute:`実行`,noProjects:`利用可能なプロジェクトがありません。`,launched:`{{name}} を実行中`},_={"ship-and-green":{name:`Ship & Green`,description:`完全自律: spec を実装し、検証し、失敗時には修正 (refine) する — すべてがグリーンになるまで 検証 → 修正 → 検証 をループします。人手による介入は不要です。`},"verify-pass":{name:`Verify Pass`,description:`自律的な検証と修正: プロジェクトの build / lint / テストを検出して実行し、失敗時には修正 — グリーンになるまで 検証 → 修正 → 検証 を繰り返します。`},"ci-watch":{name:`CI Watch`,description:`オープンな PR の CI チェックをポーリングし (エージェントがリポジトリの CI ツールを使用)、すべてのチェックがグリーンになるまで続けます。`},"lint-and-fix":{name:`Lint & Fix`,description:`エージェントがプロジェクトの linter を検出して実行し、すべての問題を修正します。コードベースがクリーンになるまで反復します。`},"type-safe":{name:`Type Safe`,description:`エージェントがプロジェクトの型チェッカーを検出して実行し、すべてのエラーを解消します。問題なくパスするまで反復します。`},"coverage-climb":{name:`Coverage Climb`,description:`エージェントがプロジェクトのカバレッジツールを実行し、しきい値をパスするまで的を絞ったテストを追加します。`},"build-fix":{name:`Build Fix`,description:`エージェントがプロジェクトの本番 build を検出して実行し、グリーンになるまでコンパイル / バンドルのエラーを修正します。`},"deploy-check":{name:`Deploy Check`,description:`エージェントがデプロイ / ヘルスステータスをポーリングし (プロジェクトの deploy ツールを使用)、サービスが正常を報告するまで続けます。`},factory_implement:{name:`実装`,description:`レール上のすべての spec を 1 回の実行で実装します。計画、実装、レビュー、検証を行い、チェックが通るまで失敗を修正します。`},factory_freestyle:{name:`Freestyle`,description:`スペックをそのままモデルに渡して完全な自由を与えます — パイプラインなしで通常のコーディングエージェントのように動作し、その後グリーンになるまで検証+改善します。Claude 専用。`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`チケットからアーカイブまでの OpenSpec ライフサイクル: アーティファクト生成 (opsx:ff) → 実装 (opsx:apply) → 検証 (opsx:verify)。FAIL なら同じ change を修正しに戻り、PASS なら無人でアーカイブします。`},factory_revision:{name:`修正`,description:`すでに納品された成果の上に依頼された一点の変更を適用し、レビュアーに再評価させ、通るまで検証します。ゼロからの再計画はしません。`}},v={selectInterrupt:`保留中の質問または承認を選択`,answerQuestion:`質問に回答`,approval:`承認`,approveContinue:`承認して続行`,paused:`一時停止中`,acceptance:`受け入れ`,verified:`検証済み`,hostBlocked:`ホスト環境によりブロックされました`,blockerKind:{network:`ネットワーク`,credential:`認証情報`,"environment-variable":`環境変数`,toolchain:`ツールチェーン`,setup:`セットアップコマンド`,environment:`環境`,scope:`スコープ外`},failingCommand:`失敗したコマンド`,inDirectory:`{{cwd}} で実行`,requiredAction:`必要な対応`,copyCommand:`コマンドをコピー`,copiedCommand:`コピーしました`},y={title:`{{name}}をCoreに変換`,description:`Coreは変換したグラフを検証してから下書きとして保存します。元のグラフは引き続きエクスポートできます。公開前に新しいワークフローを確認してください。`,repository:`宛先のないシェルステップのリポジトリ`,selectRepository:`元のリポジトリを選択`,submit:`変換して確認`,pending:`変換中…`,error:`変換に失敗しました`,coreRequired:`このワークフローを変換するにはCoreを更新してください。`},b={title:`Core への移行チェック`,description:`保存済みのすべてのループを、インストール済みの Core で確認します。自動で変換や公開は行いません。`,check:`確認`,checking:`確認中…`,failed:`ループを確認できませんでした。`,empty:`保存済みのループはありません。`,allCurrent:`すべてのループがすでに Core で動作し、有効です。`,states:{current:`最新`,invalid:`インストール済みの Core が拒否`,convertible:`変換可能`,needs_attention:`要対応`,running:`実行中`}},x={open:`Open in window`},S={title:e,subtitle:t,newLoop:n,sections:r,gallery:i,categories:a,status:o,empty:s,actions:c,card:l,confirmDelete:u,newLoopName:d,errors:f,builder:p,preview:m,builtInBadge:h,run:g,catalog:_,import:{done_one:`{{count}} 個のループをインポートしました`,done_other:`{{count}} 個のループをインポートしました`,skipped_one:`{{count}} 件の重複をスキップ:{{names}}`,skipped_other:`{{count}} 件の重複をスキップ:{{names}}`,invalid:`そのファイルは有効なループのエクスポートではありません。`},core:v,conversion:y,migration:b,window:x};export{c as actions,p as builder,h as builtInBadge,l as card,_ as catalog,a as categories,u as confirmDelete,y as conversion,v as core,S as default,s as empty,f as errors,i as gallery,b as migration,n as newLoop,d as newLoopName,m as preview,g as run,r as sections,o as status,t as subtitle,e as title,x as window};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`Loops`,t=`Loop di automazione riutilizzabili — condivisi tra tutti i tuoi progetti.`,n=`Nuovo loop`,r={drafts:`Bozze`,published:`Pubblicati`,templates:`Modelli`,builtIn:`Integrati`},i={search:`Cerca modelli…`,noResults:`Nessun modello corrisponde ai filtri.`,clearFilter:`Cancella filtri`,resultCount_one:`{{count}} modello`,resultCount_other:`{{count}} modelli`,needsSpec:`Richiede spec`,standalone:`Autonoma`,needsSpecHint:`Gira su una rail con una spec trascinata`,standaloneHint:`Gira da sola — basta scegliere un progetto`},a={API:`API`,Automation:`Automazione`,CI:`CI`,Database:`Database`,Debugging:`Debug`,DevOps:`DevOps`,Docs:`Docs`,Git:`Git`,Maintenance:`Manutenzione`,Performance:`Prestazioni`,Planning:`Pianificazione`,Quality:`Qualità`,Review:`Revisione`,Security:`Sicurezza`,Testing:`Test`},o={draft:`Bozza`,published:`Pubblicato`,running:`In esecuzione`},s={title:`Ancora nessun loop`,body:`Creane uno da zero o parti da un modello.`},c={edit:`Modifica`,delete:`Elimina`,publish:`Pubblica`,unpublish:`Annulla pubblicazione`,duplicate:`Duplica`,restoreBuiltin:`Ripristina originale`,use:`Usa modello`,preview:`Anteprima`,run:`Esegui`,export:`Esporta`,import:`Importa`,select:`Seleziona {{name}}`,exportLegacy:`Esporta il grafo originale`,originalCopyName:`Originale: {{name}}`,convert:`Converti in Core`},l={nodes_one:`{{count}} nodo`,nodes_other:`{{count}} nodi`,usedIn:`In uso · {{project}}`,builtinModified:`Modificato`},u=`Eliminare questo loop? Scomparirà da ogni selettore di rail.`,d=`Nuovo loop`,f={load:`Impossibile caricare i loop`,save:`Impossibile salvare il loop`,publishInvalid:`Questo loop non può ancora essere pubblicato — correggi i problemi evidenziati.`,exportLegacy:`Impossibile esportare il grafo originale.`},p={back:`Torna ai loop`,save:`Salva`,saved:`Loop salvato`,publish:`Pubblica`,published:`Loop pubblicato`,builtin:{note:`Loop integrato. Stai modificando il loop integrato stesso: una volta pubblicate, le modifiche si applicano a ogni rail, avvio dalla chat dell'agente e Companion che lo usa. Durante la modifica i rail continuano a eseguire l'ultima versione pubblicata. Usa Ripristina originale per tornare alla versione predefinita.`,restored:`Loop integrato ripristinato alla versione originale`,confirmTitle:`Ripristinare il loop integrato originale?`,confirmBody:`Questo scarta le tue modifiche a questo loop integrato e pubblica la sua versione originale per tutti i rail che lo usano. Duplicalo prima se vuoi conservare la tua versione.`},addNode:`Aggiungi nodo`,deleteNode:`Elimina nodo`,config:{maxIterations:`Iterazioni massime`,timeout:`Timeout (min)`,maxIterationsHint:`Limite massimo di iterazioni del Loop Decider — il loop si ferma al raggiungimento anche se l'obiettivo non è soddisfatto. Evita loop infiniti.`,timeoutHint:`Limite di tempo reale per l'intera esecuzione, in minuti. Se superato, l'esecuzione viene interrotta e segnata come fallita — una rete di sicurezza insieme alle iterazioni massime. 0 disattiva questo limite di tempo; gli altri budget e l’annullamento restano attivi.`,maxCost:`Costo max ($)`,maxCostHint:`Budget USD opzionale per l’intera esecuzione. Controllato TRA i passi (il costo di un passo si conosce solo al termine), il loop si ferma prima del passo successivo quando il totale lo supera — può sforare di un passo. Per i provider non-Claude il costo è stimato. Vuoto = nessun limite.`},nodes:{start:`Inizio`,"ai-step":`Passo IA`,shell:`Shell`,decider:`Decisore del loop`,condition:`Condizione`,end:`Fine`},inspector:{selectNode:`Seleziona un nodo per modificarlo.`,prompt:`Prompt`,provider:`Provider`,model:`Modello`,effort:`Sforzo di ragionamento`,command:`Comando`,goal:`Obiettivo / criteri di arresto`,join:`Unione`,outcome:`Esito`,startNote:`Il punto di ingresso del loop. Collegalo al primo passo.`,promptHint:`Clicca o trascina un token per inserirlo nel prompt.`,tokensSpec:`Campi della spec`,tokensJira:`Jira`,tokensCommands:`Comandi`,label:`Nome`},branch:{continue:`↻ Continua`,stop:`✓ Ferma`},edgesHelp:{label:`Come si collegano i passaggi`,body:`Le frecce definiscono l'ORDINE di esecuzione, non i dati — i box non hanno porte di input e gli archi non trasportano parametri. Ogni AI Step riprende automaticamente la propria sessione (intero contesto precedente) più un breve riepilogo dei passaggi precedenti; nulla viene collegato a mano. Il Loop Decider ha due uscite: ↻ Continua (obiettivo non raggiunto → torna al ciclo) e ✓ Ferma (obiettivo raggiunto → esci).`},arrange:{label:`Disponi`,vertical:`Verticale`,horizontal:`Orizzontale`,grid:`Griglia`,reset:`Reimposta`},constants:{label:`Costanti`,manage:`Gestisci costanti`,title:`Costanti del loop`,empty:`Ancora nessuna costante personalizzata.`,name:`NOME`,value:`valore`,add:`Aggiungi`,builtinBadge:`Integrate`},paste:{done_one:`{{count}} passo incollato`,done_other:`{{count}} passi incollati`},problems:{count_one:`{{count}} problema`,count_other:`{{count}} problemi`,NO_START:`Aggiungi un nodo di Avvio.`,MULTIPLE_START:`È consentito un solo nodo di Avvio.`,NO_END:`Aggiungi almeno un nodo di Fine.`,ORPHAN:`Questo passo non è raggiungibile dall'Avvio.`,DECIDER_BRANCHES:`Il Loop Decider richiede un ramo Continua e uno Ferma.`,EMPTY_PROMPT:`L'AI Step ha il prompt vuoto.`,EMPTY_COMMAND:`Il passo Shell ha il comando vuoto.`,EMPTY_GOAL:`Il Loop Decider non ha un obiettivo.`,DEAD_END:`Questo passo non ha connessioni in uscita.`,MIXED_ENGINES:`Non mescolare passaggi precedenti con passaggi Core.`,CORE_OUTCOMES:`Collega risultati distinti e validi.`,CORE_PIECE:`Seleziona un passaggio e i relativi parametri.`},preview:{label:`Anteprima`,title:`Anteprima (dry-run)`,sampleNote:`I valori dello spec sono di esempio; comandi e costanti si risolvono come a runtime.`,empty:`Nessun passo da visualizzare.`,error:`Anteprima non riuscita`},core:{unavailable:`Motore non disponibile. Aggiorna Core per aggiungere o pubblicare passaggi.`,root:`Workflow principale`,components:`Componenti`,componentName:`Nome del componente`,addComponent:`Aggiungi componente`,openComponent:`Apri componente`,breadcrumbs:`Navigazione del workflow`,select:`Scegli un'opzione`,valueType:`Tipo di valore`,addItem:`Aggiungi elemento`,fieldName:`Nome del campo`,addField:`Aggiungi {{name}}`,removeField:`Rimuovi {{name}}`,variant:`Formato di {{name}}`,tooDeep:`Il valore contiene troppi livelli.`,pieces:{prompt:`Prompt`,"role-turn":`Agent step`,decider:`Decisione`,condition:`Condizione`,verify:`Verifica`,shell:`Shell`,"openspec-validate":`Convalida OpenSpec`,"openspec-archive":`Archivia OpenSpec`,approval:`Approvazione`,question:`Domanda`,gate:`Pausa`,map:`Mappa`,join:`Unisci`,component:`Componente`,implementation:`Implementazione`,end:`Fine`,assign:`Impostare variabili`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`IA`,verification:`Verifica`,openspec:`OpenSpec`,control:`Controllo del flusso`},options:`Opzioni del workflow`,reviewerStep:`Nodo delle evidenze di revisione`,reviewerAutomatic:`Automatico (revisioni di implementazione)`,reviewerHint:`Scegli il turno di ruolo che fornisce la revisione strutturata. La revisione IA non sostituisce la verifica dell’host.`,assignment:{set:`Impostare valori`,increment:`Modificare contatori`},requiredContinue:`Continua finché questa condizione è vera`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},m={steps:`Passi`,limits:`max {{iterations}} iterazioni · {{timeout}} min di timeout`,limitsNoTimeout:`max {{iterations}} iterazioni · nessun timeout`,openInBuilder:`Apri nel builder`,builtin:`Integrato`},h=`Integrato`,g={title:`Esegui {{name}}`,subtitle:`Avvia questo loop su un progetto (senza ticket).`,project:`Progetto`,provider:`Provider`,model:`Modello`,effort:`Sforzo di ragionamento`,execute:`Esegui`,noProjects:`Nessun progetto disponibile.`,launched:`Esecuzione di {{name}}`},_={"ship-and-green":{name:`Ship & Green`,description:`Completamente autonomo: implementa la spec, verifica e affina (corregge) in caso di fallimento — ripetendo il ciclo verifica → correggi → verifica finché tutto è verde. Nessun intervento umano.`},"verify-pass":{name:`Verify Pass`,description:`Verifica e correzione autonome: rileva ed esegue build/lint/test del progetto, poi affina in caso di fallimento — verifica → correggi → verifica finché è verde.`},"ci-watch":{name:`CI Watch`,description:`Controlla i check di CI sulla PR aperta (l'agente usa gli strumenti di CI del repository) finché ogni check non è verde.`},"lint-and-fix":{name:`Lint & Fix`,description:`L'agente rileva ed esegue il linter del progetto e corregge ogni problema, iterando finché il codice non è pulito.`},"type-safe":{name:`Type Safe`,description:`L'agente rileva ed esegue il type checker del progetto e risolve ogni errore, iterando finché non passa senza errori.`},"coverage-climb":{name:`Coverage Climb`,description:`L'agente esegue gli strumenti di copertura del progetto e aggiunge test mirati finché le soglie non vengono superate.`},"build-fix":{name:`Build Fix`,description:`L'agente rileva ed esegue il build di produzione del progetto e corregge gli errori di compilazione/bundle finché non è verde.`},"deploy-check":{name:`Deploy Check`,description:`L'agente controlla lo stato di deploy/salute (usando gli strumenti di deploy del progetto) finché il servizio non risulta integro.`},factory_implement:{name:`Implementa`,description:`Implementa tutte le spec del rail in un'unica esecuzione: pianifica, implementa, rivede e verifica, correggendo gli errori finché i controlli non passano.`},factory_freestyle:{name:`Freestyle`,description:`Consegna la spec direttamente al modello con piena libertà — senza pipeline, lavora come un normale coding agent, poi verifica + rifinisce fino al verde. Solo Claude.`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`Ciclo OpenSpec dal ticket all'archivio: genera artefatti (opsx:ff) → implementa (opsx:apply) → verifica (opsx:verify); con FAIL torna indietro ed emenda lo stesso change, con PASS lo archivia senza intervento.`},factory_revision:{name:`Revisione`,description:`Applica l'unica modifica richiesta sopra il lavoro già consegnato, fa rivalutare dal revisore e verifica fino al verde. Non ripianifica da zero.`}},v={selectInterrupt:`Seleziona la domanda o approvazione in attesa`,answerQuestion:`Rispondi alla domanda`,approval:`Approvazione`,approveContinue:`Approva e continua`,paused:`In pausa`,acceptance:`Accettazione`,verified:`Verificato`},y={title:`Converti {{name}} in Core`,description:`Core convalida il grafo convertito prima di salvarlo come bozza. L’originale resta esportabile. Controlla il nuovo workflow prima di pubblicarlo.`,repository:`Repository per i passaggi shell senza destinazione`,selectRepository:`Scegli il repository originale`,submit:`Converti e controlla`,pending:`Conversione…`,error:`Conversione non riuscita`,coreRequired:`Aggiorna Core per convertire questo workflow.`},b={title:`Verifica della migrazione a Core`,description:`Verifica ogni loop salvato con il Core installato. Nulla viene convertito o pubblicato automaticamente.`,check:`Verifica`,checking:`Verifica in corso…`,failed:`Impossibile verificare i loop.`,empty:`Nessun loop salvato.`,allCurrent:`Tutti i loop usano già Core e sono validi.`,states:{current:`Aggiornato`,invalid:`Rifiutato dal Core installato`,convertible:`Pronto per la conversione`,needs_attention:`Richiede attenzione`,running:`In esecuzione`}},x={open:`Open in window`},S={title:e,subtitle:t,newLoop:n,sections:r,gallery:i,categories:a,status:o,empty:s,actions:c,card:l,confirmDelete:u,newLoopName:d,errors:f,builder:p,preview:m,builtInBadge:h,run:g,catalog:_,import:{done_one:`{{count}} loop importato`,done_other:`{{count}} loop importati`,skipped_one:`{{count}} duplicato saltato: {{names}}`,skipped_other:`{{count}} duplicati saltati: {{names}}`,invalid:`Quel file non è un export di loop valido.`},core:v,conversion:y,migration:b,window:x};export{c as actions,p as builder,h as builtInBadge,l as card,_ as catalog,a as categories,u as confirmDelete,y as conversion,v as core,S as default,s as empty,f as errors,i as gallery,b as migration,n as newLoop,d as newLoopName,m as preview,g as run,r as sections,o as status,t as subtitle,e as title,x as window};
|
|
1
|
+
var e=`Loops`,t=`Loop di automazione riutilizzabili — condivisi tra tutti i tuoi progetti.`,n=`Nuovo loop`,r={drafts:`Bozze`,published:`Pubblicati`,templates:`Modelli`,builtIn:`Integrati`},i={search:`Cerca modelli…`,noResults:`Nessun modello corrisponde ai filtri.`,clearFilter:`Cancella filtri`,resultCount_one:`{{count}} modello`,resultCount_other:`{{count}} modelli`,needsSpec:`Richiede spec`,standalone:`Autonoma`,needsSpecHint:`Gira su una rail con una spec trascinata`,standaloneHint:`Gira da sola — basta scegliere un progetto`},a={API:`API`,Automation:`Automazione`,CI:`CI`,Database:`Database`,Debugging:`Debug`,DevOps:`DevOps`,Docs:`Docs`,Git:`Git`,Maintenance:`Manutenzione`,Performance:`Prestazioni`,Planning:`Pianificazione`,Quality:`Qualità`,Review:`Revisione`,Security:`Sicurezza`,Testing:`Test`},o={draft:`Bozza`,published:`Pubblicato`,running:`In esecuzione`},s={title:`Ancora nessun loop`,body:`Creane uno da zero o parti da un modello.`},c={edit:`Modifica`,delete:`Elimina`,publish:`Pubblica`,unpublish:`Annulla pubblicazione`,duplicate:`Duplica`,restoreBuiltin:`Ripristina originale`,use:`Usa modello`,preview:`Anteprima`,run:`Esegui`,export:`Esporta`,import:`Importa`,select:`Seleziona {{name}}`,exportLegacy:`Esporta il grafo originale`,originalCopyName:`Originale: {{name}}`,convert:`Converti in Core`},l={nodes_one:`{{count}} nodo`,nodes_other:`{{count}} nodi`,usedIn:`In uso · {{project}}`,builtinModified:`Modificato`},u=`Eliminare questo loop? Scomparirà da ogni selettore di rail.`,d=`Nuovo loop`,f={load:`Impossibile caricare i loop`,save:`Impossibile salvare il loop`,publishInvalid:`Questo loop non può ancora essere pubblicato — correggi i problemi evidenziati.`,exportLegacy:`Impossibile esportare il grafo originale.`},p={back:`Torna ai loop`,save:`Salva`,saved:`Loop salvato`,publish:`Pubblica`,published:`Loop pubblicato`,builtin:{note:`Loop integrato. Stai modificando il loop integrato stesso: una volta pubblicate, le modifiche si applicano a ogni rail, avvio dalla chat dell'agente e Companion che lo usa. Durante la modifica i rail continuano a eseguire l'ultima versione pubblicata. Usa Ripristina originale per tornare alla versione predefinita.`,restored:`Loop integrato ripristinato alla versione originale`,confirmTitle:`Ripristinare il loop integrato originale?`,confirmBody:`Questo scarta le tue modifiche a questo loop integrato e pubblica la sua versione originale per tutti i rail che lo usano. Duplicalo prima se vuoi conservare la tua versione.`},addNode:`Aggiungi nodo`,deleteNode:`Elimina nodo`,config:{maxIterations:`Iterazioni massime`,timeout:`Timeout (min)`,maxIterationsHint:`Limite massimo di iterazioni del Loop Decider — il loop si ferma al raggiungimento anche se l'obiettivo non è soddisfatto. Evita loop infiniti.`,timeoutHint:`Limite di tempo reale per l'intera esecuzione, in minuti. Se superato, l'esecuzione viene interrotta e segnata come fallita — una rete di sicurezza insieme alle iterazioni massime. 0 disattiva questo limite di tempo; gli altri budget e l’annullamento restano attivi.`,maxCost:`Costo max ($)`,maxCostHint:`Budget USD opzionale per l’intera esecuzione. Controllato TRA i passi (il costo di un passo si conosce solo al termine), il loop si ferma prima del passo successivo quando il totale lo supera — può sforare di un passo. Per i provider non-Claude il costo è stimato. Vuoto = nessun limite.`},nodes:{start:`Inizio`,"ai-step":`Passo IA`,shell:`Shell`,decider:`Decisore del loop`,condition:`Condizione`,end:`Fine`},inspector:{selectNode:`Seleziona un nodo per modificarlo.`,prompt:`Prompt`,provider:`Provider`,model:`Modello`,effort:`Sforzo di ragionamento`,command:`Comando`,goal:`Obiettivo / criteri di arresto`,join:`Unione`,outcome:`Esito`,startNote:`Il punto di ingresso del loop. Collegalo al primo passo.`,promptHint:`Clicca o trascina un token per inserirlo nel prompt.`,tokensSpec:`Campi della spec`,tokensJira:`Jira`,tokensCommands:`Comandi`,label:`Nome`},branch:{continue:`↻ Continua`,stop:`✓ Ferma`},edgesHelp:{label:`Come si collegano i passaggi`,body:`Le frecce definiscono l'ORDINE di esecuzione, non i dati — i box non hanno porte di input e gli archi non trasportano parametri. Ogni AI Step riprende automaticamente la propria sessione (intero contesto precedente) più un breve riepilogo dei passaggi precedenti; nulla viene collegato a mano. Il Loop Decider ha due uscite: ↻ Continua (obiettivo non raggiunto → torna al ciclo) e ✓ Ferma (obiettivo raggiunto → esci).`},arrange:{label:`Disponi`,vertical:`Verticale`,horizontal:`Orizzontale`,grid:`Griglia`,reset:`Reimposta`},constants:{label:`Costanti`,manage:`Gestisci costanti`,title:`Costanti del loop`,empty:`Ancora nessuna costante personalizzata.`,name:`NOME`,value:`valore`,add:`Aggiungi`,builtinBadge:`Integrate`},paste:{done_one:`{{count}} passo incollato`,done_other:`{{count}} passi incollati`},problems:{count_one:`{{count}} problema`,count_other:`{{count}} problemi`,NO_START:`Aggiungi un nodo di Avvio.`,MULTIPLE_START:`È consentito un solo nodo di Avvio.`,NO_END:`Aggiungi almeno un nodo di Fine.`,ORPHAN:`Questo passo non è raggiungibile dall'Avvio.`,DECIDER_BRANCHES:`Il Loop Decider richiede un ramo Continua e uno Ferma.`,EMPTY_PROMPT:`L'AI Step ha il prompt vuoto.`,EMPTY_COMMAND:`Il passo Shell ha il comando vuoto.`,EMPTY_GOAL:`Il Loop Decider non ha un obiettivo.`,DEAD_END:`Questo passo non ha connessioni in uscita.`,MIXED_ENGINES:`Non mescolare passaggi precedenti con passaggi Core.`,CORE_OUTCOMES:`Collega risultati distinti e validi.`,CORE_PIECE:`Seleziona un passaggio e i relativi parametri.`},preview:{label:`Anteprima`,title:`Anteprima (dry-run)`,sampleNote:`I valori dello spec sono di esempio; comandi e costanti si risolvono come a runtime.`,empty:`Nessun passo da visualizzare.`,error:`Anteprima non riuscita`},core:{unavailable:`Motore non disponibile. Aggiorna Core per aggiungere o pubblicare passaggi.`,root:`Workflow principale`,components:`Componenti`,componentName:`Nome del componente`,addComponent:`Aggiungi componente`,openComponent:`Apri componente`,breadcrumbs:`Navigazione del workflow`,select:`Scegli un'opzione`,valueType:`Tipo di valore`,addItem:`Aggiungi elemento`,fieldName:`Nome del campo`,addField:`Aggiungi {{name}}`,removeField:`Rimuovi {{name}}`,variant:`Formato di {{name}}`,tooDeep:`Il valore contiene troppi livelli.`,pieces:{prompt:`Prompt`,"role-turn":`Agent step`,decider:`Decisione`,condition:`Condizione`,verify:`Verifica`,shell:`Shell`,"openspec-validate":`Convalida OpenSpec`,"openspec-archive":`Archivia OpenSpec`,approval:`Approvazione`,question:`Domanda`,gate:`Pausa`,map:`Mappa`,join:`Unisci`,component:`Componente`,implementation:`Implementazione`,end:`Fine`,assign:`Impostare variabili`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`IA`,verification:`Verifica`,openspec:`OpenSpec`,control:`Controllo del flusso`},options:`Opzioni del workflow`,reviewerStep:`Nodo delle evidenze di revisione`,reviewerAutomatic:`Automatico (revisioni di implementazione)`,reviewerHint:`Scegli il turno di ruolo che fornisce la revisione strutturata. La revisione IA non sostituisce la verifica dell’host.`,assignment:{set:`Impostare valori`,increment:`Modificare contatori`},requiredContinue:`Continua finché questa condizione è vera`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},m={steps:`Passi`,limits:`max {{iterations}} iterazioni · {{timeout}} min di timeout`,limitsNoTimeout:`max {{iterations}} iterazioni · nessun timeout`,openInBuilder:`Apri nel builder`,builtin:`Integrato`},h=`Integrato`,g={title:`Esegui {{name}}`,subtitle:`Avvia questo loop su un progetto (senza ticket).`,project:`Progetto`,provider:`Provider`,model:`Modello`,effort:`Sforzo di ragionamento`,execute:`Esegui`,noProjects:`Nessun progetto disponibile.`,launched:`Esecuzione di {{name}}`},_={"ship-and-green":{name:`Ship & Green`,description:`Completamente autonomo: implementa la spec, verifica e affina (corregge) in caso di fallimento — ripetendo il ciclo verifica → correggi → verifica finché tutto è verde. Nessun intervento umano.`},"verify-pass":{name:`Verify Pass`,description:`Verifica e correzione autonome: rileva ed esegue build/lint/test del progetto, poi affina in caso di fallimento — verifica → correggi → verifica finché è verde.`},"ci-watch":{name:`CI Watch`,description:`Controlla i check di CI sulla PR aperta (l'agente usa gli strumenti di CI del repository) finché ogni check non è verde.`},"lint-and-fix":{name:`Lint & Fix`,description:`L'agente rileva ed esegue il linter del progetto e corregge ogni problema, iterando finché il codice non è pulito.`},"type-safe":{name:`Type Safe`,description:`L'agente rileva ed esegue il type checker del progetto e risolve ogni errore, iterando finché non passa senza errori.`},"coverage-climb":{name:`Coverage Climb`,description:`L'agente esegue gli strumenti di copertura del progetto e aggiunge test mirati finché le soglie non vengono superate.`},"build-fix":{name:`Build Fix`,description:`L'agente rileva ed esegue il build di produzione del progetto e corregge gli errori di compilazione/bundle finché non è verde.`},"deploy-check":{name:`Deploy Check`,description:`L'agente controlla lo stato di deploy/salute (usando gli strumenti di deploy del progetto) finché il servizio non risulta integro.`},factory_implement:{name:`Implementa`,description:`Implementa tutte le spec del rail in un'unica esecuzione: pianifica, implementa, rivede e verifica, correggendo gli errori finché i controlli non passano.`},factory_freestyle:{name:`Freestyle`,description:`Consegna la spec direttamente al modello con piena libertà — senza pipeline, lavora come un normale coding agent, poi verifica + rifinisce fino al verde. Solo Claude.`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`Ciclo OpenSpec dal ticket all'archivio: genera artefatti (opsx:ff) → implementa (opsx:apply) → verifica (opsx:verify); con FAIL torna indietro ed emenda lo stesso change, con PASS lo archivia senza intervento.`},factory_revision:{name:`Revisione`,description:`Applica l'unica modifica richiesta sopra il lavoro già consegnato, fa rivalutare dal revisore e verifica fino al verde. Non ripianifica da zero.`}},v={selectInterrupt:`Seleziona la domanda o approvazione in attesa`,answerQuestion:`Rispondi alla domanda`,approval:`Approvazione`,approveContinue:`Approva e continua`,paused:`In pausa`,acceptance:`Accettazione`,verified:`Verificato`,hostBlocked:`Bloccato dall'ambiente host`,blockerKind:{network:`Rete`,credential:`Credenziali`,"environment-variable":`Variabile d'ambiente`,toolchain:`Toolchain`,setup:`Comando di preparazione`,environment:`Ambiente`,scope:`Fuori ambito`},failingCommand:`Comando fallito`,inDirectory:`in {{cwd}}`,requiredAction:`Azione richiesta`,copyCommand:`Copia comando`,copiedCommand:`Copiato`},y={title:`Converti {{name}} in Core`,description:`Core convalida il grafo convertito prima di salvarlo come bozza. L’originale resta esportabile. Controlla il nuovo workflow prima di pubblicarlo.`,repository:`Repository per i passaggi shell senza destinazione`,selectRepository:`Scegli il repository originale`,submit:`Converti e controlla`,pending:`Conversione…`,error:`Conversione non riuscita`,coreRequired:`Aggiorna Core per convertire questo workflow.`},b={title:`Verifica della migrazione a Core`,description:`Verifica ogni loop salvato con il Core installato. Nulla viene convertito o pubblicato automaticamente.`,check:`Verifica`,checking:`Verifica in corso…`,failed:`Impossibile verificare i loop.`,empty:`Nessun loop salvato.`,allCurrent:`Tutti i loop usano già Core e sono validi.`,states:{current:`Aggiornato`,invalid:`Rifiutato dal Core installato`,convertible:`Pronto per la conversione`,needs_attention:`Richiede attenzione`,running:`In esecuzione`}},x={open:`Open in window`},S={title:e,subtitle:t,newLoop:n,sections:r,gallery:i,categories:a,status:o,empty:s,actions:c,card:l,confirmDelete:u,newLoopName:d,errors:f,builder:p,preview:m,builtInBadge:h,run:g,catalog:_,import:{done_one:`{{count}} loop importato`,done_other:`{{count}} loop importati`,skipped_one:`{{count}} duplicato saltato: {{names}}`,skipped_other:`{{count}} duplicati saltati: {{names}}`,invalid:`Quel file non è un export di loop valido.`},core:v,conversion:y,migration:b,window:x};export{c as actions,p as builder,h as builtInBadge,l as card,_ as catalog,a as categories,u as confirmDelete,y as conversion,v as core,S as default,s as empty,f as errors,i as gallery,b as migration,n as newLoop,d as newLoopName,m as preview,g as run,r as sections,o as status,t as subtitle,e as title,x as window};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`Loops`,t=`Loops de automação reutilizáveis — partilhados entre todos os seus projetos.`,n=`Novo loop`,r={drafts:`Rascunhos`,published:`Publicados`,templates:`Modelos`,builtIn:`Integrados`},i={search:`Buscar modelos…`,noResults:`Nenhum modelo corresponde aos seus filtros.`,clearFilter:`Limpar filtros`,resultCount_one:`{{count}} modelo`,resultCount_other:`{{count}} modelos`,needsSpec:`Requer spec`,standalone:`Autônoma`,needsSpecHint:`Roda em um rail com uma spec arrastada`,standaloneHint:`Roda sozinha — basta escolher um projeto`},a={API:`API`,Automation:`Automação`,CI:`CI`,Database:`Banco de dados`,Debugging:`Depuração`,DevOps:`DevOps`,Docs:`Docs`,Git:`Git`,Maintenance:`Manutenção`,Performance:`Desempenho`,Planning:`Planejamento`,Quality:`Qualidade`,Review:`Revisão`,Security:`Segurança`,Testing:`Testes`},o={draft:`Rascunho`,published:`Publicado`,running:`Em execução`},s={title:`Ainda não há loops`,body:`Crie um do zero ou comece a partir de um modelo.`},c={edit:`Editar`,delete:`Eliminar`,publish:`Publicar`,unpublish:`Despublicar`,duplicate:`Duplicar`,restoreBuiltin:`Restaurar original`,use:`Usar modelo`,preview:`Pré-visualização`,run:`Executar`,export:`Exportar`,import:`Importar`,select:`Selecionar {{name}}`,exportLegacy:`Exportar grafo original`,originalCopyName:`Original: {{name}}`,convert:`Converter para Core`},l={nodes_one:`{{count}} nó`,nodes_other:`{{count}} nós`,usedIn:`Em uso · {{project}}`,builtinModified:`Editado`},u=`Eliminar este loop? Desaparecerá de todos os seletores de rail.`,d=`Novo loop`,f={load:`Falha ao carregar os loops`,save:`Falha ao guardar o loop`,publishInvalid:`Este loop ainda não pode ser publicado — corrija os problemas assinalados.`,exportLegacy:`Não foi possível exportar o grafo original.`},p={back:`Voltar aos Loops`,save:`Guardar`,saved:`Loop guardado`,publish:`Publicar`,published:`Loop publicado`,builtin:{note:`Loop integrado. Está a editar o próprio loop integrado: depois de publicado, as suas alterações aplicam-se a todos os rails, lançamentos a partir do chat do agente e ao Companion que o usam. Os rails continuam a executar a última versão publicada enquanto edita. Use Restaurar original para voltar à versão predefinida.`,restored:`Loop integrado restaurado para a versão original`,confirmTitle:`Restaurar o loop integrado original?`,confirmBody:`Isto descarta as suas alterações a este loop integrado e publica a versão original para todos os rails que o usam. Duplique-o primeiro se quiser manter a sua versão.`},addNode:`Adicionar nó`,deleteNode:`Eliminar nó`,config:{maxIterations:`Iterações máximas`,timeout:`Tempo limite (min)`,maxIterationsHint:`Limite de iterações do Loop Decider — o loop para ao atingi-lo mesmo que o objetivo não seja cumprido. Evita loops infinitos.`,timeoutHint:`Limite de tempo real de toda a execução, em minutos. Se excedido, a execução é interrompida e marcada como falha — uma rede de segurança junto com as iterações máximas. 0 desativa este limite de tempo; os outros orçamentos e o cancelamento continuam ativos.`,maxCost:`Custo máx ($)`,maxCostHint:`Orçamento opcional em USD para toda a execução. Verificado ENTRE passos (o custo de um passo só é conhecido ao terminá-lo), o loop para antes do próximo passo quando o total freestylepassa — pode passar um passo. Em provedores não-Claude o custo é estimado. Vazio = sem limite.`},nodes:{start:`Início`,"ai-step":`Passo de IA`,shell:`Shell`,decider:`Decisor do Loop`,condition:`Condição`,end:`Fim`},inspector:{selectNode:`Selecione um nó para o editar.`,prompt:`Prompt`,provider:`Fornecedor`,model:`Modelo`,effort:`Esforço de raciocínio`,command:`Comando`,goal:`Objetivo / critérios de paragem`,join:`Junção`,outcome:`Resultado`,startNote:`O ponto de entrada do loop. Ligue-o ao primeiro passo.`,promptHint:`Clique ou arraste um token para inseri-lo no prompt.`,tokensSpec:`Campos da spec`,tokensJira:`Jira`,tokensCommands:`Comandos`,label:`Nome`},branch:{continue:`↻ Continuar`,stop:`✓ Parar`},edgesHelp:{label:`Como as etapas se conectam`,body:`As setas definem a ORDEM de execução, não os dados — as caixas não têm portas de entrada e as conexões não carregam parâmetros. Cada AI Step retoma automaticamente sua sessão (todo o contexto anterior) mais um breve resumo das etapas anteriores; nada é ligado manualmente. O Loop Decider tem duas saídas: ↻ Continuar (objetivo não atingido → volta ao loop) e ✓ Parar (objetivo atingido → sai).`},arrange:{label:`Organizar`,vertical:`Vertical`,horizontal:`Horizontal`,grid:`Grade`,reset:`Redefinir`},constants:{label:`Constantes`,manage:`Gerenciar constantes`,title:`Constantes do loop`,empty:`Ainda não há constantes personalizadas.`,name:`NOME`,value:`valor`,add:`Adicionar`,builtinBadge:`Integradas`},paste:{done_one:`{{count}} passo colado`,done_other:`{{count}} passos colados`},problems:{count_one:`{{count}} problema`,count_other:`{{count}} problemas`,NO_START:`Adicione um nó de Início.`,MULTIPLE_START:`Só é permitido um nó de Início.`,NO_END:`Adicione pelo menos um nó de Fim.`,ORPHAN:`Este passo não é acessível a partir do Início.`,DECIDER_BRANCHES:`O Loop Decider precisa de uma ramificação Continuar e uma Parar.`,EMPTY_PROMPT:`O AI Step está com o prompt vazio.`,EMPTY_COMMAND:`O passo Shell está com o comando vazio.`,EMPTY_GOAL:`O Loop Decider não tem objetivo.`,DEAD_END:`Este passo não tem conexão de saída.`,MIXED_ENGINES:`Não misture etapas antigas com etapas Core.`,CORE_OUTCOMES:`Ligue resultados distintos e válidos.`,CORE_PIECE:`Selecione uma etapa e os seus parâmetros.`},preview:{label:`Pré-visualizar`,title:`Pré-visualização (dry-run)`,sampleNote:`Os valores do spec são exemplos; comandos e constantes são resolvidos como em execução.`,empty:`Nenhum passo para pré-visualizar.`,error:`Falha na pré-visualização`},core:{unavailable:`Motor indisponível. Atualize o Core para adicionar ou publicar etapas.`,root:`Workflow principal`,components:`Componentes`,componentName:`Nome do componente`,addComponent:`Adicionar componente`,openComponent:`Abrir componente`,breadcrumbs:`Navegação do workflow`,select:`Escolha uma opção`,valueType:`Tipo de valor`,addItem:`Adicionar item`,fieldName:`Nome do campo`,addField:`Adicionar {{name}}`,removeField:`Remover {{name}}`,variant:`Formato de {{name}}`,tooDeep:`O valor contém demasiados níveis.`,pieces:{prompt:`Prompt`,"role-turn":`Agent step`,decider:`Decisão`,condition:`Condição`,verify:`Verificar`,shell:`Shell`,"openspec-validate":`Validar OpenSpec`,"openspec-archive":`Arquivar OpenSpec`,approval:`Aprovação`,question:`Pergunta`,gate:`Pausa`,map:`Mapear`,join:`Unir`,component:`Componente`,implementation:`Implementação`,end:`Fim`,assign:`Definir variáveis`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`IA`,verification:`Verificação`,openspec:`OpenSpec`,control:`Controlo de fluxo`},options:`Opções do workflow`,reviewerStep:`Nó de evidências de revisão`,reviewerAutomatic:`Automático (revisões de implementação)`,reviewerHint:`Escolha o turno de função que fornece a revisão estruturada. A revisão por IA não substitui a verificação do host.`,assignment:{set:`Definir valores`,increment:`Ajustar contadores`},requiredContinue:`Continuar enquanto esta condição se verificar`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},m={steps:`Passos`,limits:`máx. {{iterations}} iterações · {{timeout}} min de timeout`,limitsNoTimeout:`máx. {{iterations}} iterações · sem timeout`,openInBuilder:`Abrir no builder`,builtin:`Integrado`},h=`Integrado`,g={title:`Executar {{name}}`,subtitle:`Inicia este loop num projeto (sem ticket).`,project:`Projeto`,provider:`Provedor`,model:`Modelo`,effort:`Esforço de raciocínio`,execute:`Executar`,noProjects:`Sem projetos disponíveis.`,launched:`Executando {{name}}`},_={"ship-and-green":{name:`Ship & Green`,description:`Totalmente autônomo: implementa a spec, verifica e refina (corrige) em caso de falha — repetindo verificar → corrigir → verificar até tudo ficar verde. Sem intervenção humana.`},"verify-pass":{name:`Verificação`,description:`Verificação e correção autônomas: detecta e executa o build/lint/testes do projeto e, em caso de falha, refina — verificar → corrigir → verificar até ficar verde.`},"ci-watch":{name:`Monitorar CI`,description:`Consulta as verificações de CI no PR aberto (o agente usa as ferramentas de CI do repositório) até que todas fiquem verdes.`},"lint-and-fix":{name:`Lint & Corrigir`,description:`O agente detecta e executa o lint do projeto e corrige cada problema, iterando até o código ficar limpo.`},"type-safe":{name:`Tipos Seguros`,description:`O agente detecta e executa o verificador de tipos do projeto e resolve cada erro, iterando até passar sem problemas.`},"coverage-climb":{name:`Subir Cobertura`,description:`O agente executa a ferramenta de cobertura do projeto e adiciona testes focados até atingir os limites exigidos.`},"build-fix":{name:`Corrigir Build`,description:`O agente detecta e executa o build de produção do projeto e corrige erros de compilação/empacotamento até ficar verde.`},"deploy-check":{name:`Checar Deploy`,description:`O agente consulta o status de deploy/saúde (usando as ferramentas de deploy do projeto) até o serviço reportar que está saudável.`},factory_implement:{name:`Implementar`,description:`Implementa todas as specs do rail numa única execução: planeia, implementa, revê e verifica, corrigindo falhas até as verificações passarem.`},factory_freestyle:{name:`Freestyle`,description:`Entrega a spec diretamente ao modelo com total liberdade — sem pipeline, ele trabalha como um agente de código normal, depois verifica + refina até ficar verde. Somente Claude.`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`Ciclo OpenSpec do ticket ao arquivo: gera artefatos (opsx:ff) → implementa (opsx:apply) → verifica (opsx:verify); em FAIL volta e emenda o mesmo change, em PASS arquiva sem intervenção.`},factory_revision:{name:`Revisão`,description:`Aplica a única alteração que pediu sobre o trabalho já entregue, faz o revisor pontuar de novo e verifica até ficar verde. Não replaneia do zero.`}},v={selectInterrupt:`Selecionar pergunta ou aprovação pendente`,answerQuestion:`Responder à pergunta`,approval:`Aprovação`,approveContinue:`Aprovar e continuar`,paused:`Em pausa`,acceptance:`Aceitação`,verified:`Verificado`},y={title:`Converter {{name}} para Core`,description:`O Core valida o grafo convertido antes de o guardar como rascunho. O original continua disponível para exportação. Reveja o novo workflow antes de o publicar.`,repository:`Repositório dos passos shell sem destino`,selectRepository:`Escolha o repositório original`,submit:`Converter e rever`,pending:`A converter…`,error:`A conversão falhou`,coreRequired:`Atualize o Core para converter este workflow.`},b={title:`Verificação da migração para o Core`,description:`Verifica cada loop guardado com o Core instalado. Nada é convertido nem publicado automaticamente.`,check:`Verificar`,checking:`A verificar…`,failed:`Não foi possível verificar os loops.`,empty:`Não há loops guardados.`,allCurrent:`Todos os loops já usam o Core e são válidos.`,states:{current:`Atualizado`,invalid:`Rejeitado pelo Core instalado`,convertible:`Pronto a converter`,needs_attention:`Requer atenção`,running:`Em execução`}},x={open:`Open in window`},S={title:e,subtitle:t,newLoop:n,sections:r,gallery:i,categories:a,status:o,empty:s,actions:c,card:l,confirmDelete:u,newLoopName:d,errors:f,builder:p,preview:m,builtInBadge:h,run:g,catalog:_,import:{done_one:`{{count}} loop importado`,done_other:`{{count}} loops importados`,skipped_one:`{{count}} duplicado ignorado: {{names}}`,skipped_other:`{{count}} duplicados ignorados: {{names}}`,invalid:`Esse arquivo não é uma exportação de loops válida.`},core:v,conversion:y,migration:b,window:x};export{c as actions,p as builder,h as builtInBadge,l as card,_ as catalog,a as categories,u as confirmDelete,y as conversion,v as core,S as default,s as empty,f as errors,i as gallery,b as migration,n as newLoop,d as newLoopName,m as preview,g as run,r as sections,o as status,t as subtitle,e as title,x as window};
|
|
1
|
+
var e=`Loops`,t=`Loops de automação reutilizáveis — partilhados entre todos os seus projetos.`,n=`Novo loop`,r={drafts:`Rascunhos`,published:`Publicados`,templates:`Modelos`,builtIn:`Integrados`},i={search:`Buscar modelos…`,noResults:`Nenhum modelo corresponde aos seus filtros.`,clearFilter:`Limpar filtros`,resultCount_one:`{{count}} modelo`,resultCount_other:`{{count}} modelos`,needsSpec:`Requer spec`,standalone:`Autônoma`,needsSpecHint:`Roda em um rail com uma spec arrastada`,standaloneHint:`Roda sozinha — basta escolher um projeto`},a={API:`API`,Automation:`Automação`,CI:`CI`,Database:`Banco de dados`,Debugging:`Depuração`,DevOps:`DevOps`,Docs:`Docs`,Git:`Git`,Maintenance:`Manutenção`,Performance:`Desempenho`,Planning:`Planejamento`,Quality:`Qualidade`,Review:`Revisão`,Security:`Segurança`,Testing:`Testes`},o={draft:`Rascunho`,published:`Publicado`,running:`Em execução`},s={title:`Ainda não há loops`,body:`Crie um do zero ou comece a partir de um modelo.`},c={edit:`Editar`,delete:`Eliminar`,publish:`Publicar`,unpublish:`Despublicar`,duplicate:`Duplicar`,restoreBuiltin:`Restaurar original`,use:`Usar modelo`,preview:`Pré-visualização`,run:`Executar`,export:`Exportar`,import:`Importar`,select:`Selecionar {{name}}`,exportLegacy:`Exportar grafo original`,originalCopyName:`Original: {{name}}`,convert:`Converter para Core`},l={nodes_one:`{{count}} nó`,nodes_other:`{{count}} nós`,usedIn:`Em uso · {{project}}`,builtinModified:`Editado`},u=`Eliminar este loop? Desaparecerá de todos os seletores de rail.`,d=`Novo loop`,f={load:`Falha ao carregar os loops`,save:`Falha ao guardar o loop`,publishInvalid:`Este loop ainda não pode ser publicado — corrija os problemas assinalados.`,exportLegacy:`Não foi possível exportar o grafo original.`},p={back:`Voltar aos Loops`,save:`Guardar`,saved:`Loop guardado`,publish:`Publicar`,published:`Loop publicado`,builtin:{note:`Loop integrado. Está a editar o próprio loop integrado: depois de publicado, as suas alterações aplicam-se a todos os rails, lançamentos a partir do chat do agente e ao Companion que o usam. Os rails continuam a executar a última versão publicada enquanto edita. Use Restaurar original para voltar à versão predefinida.`,restored:`Loop integrado restaurado para a versão original`,confirmTitle:`Restaurar o loop integrado original?`,confirmBody:`Isto descarta as suas alterações a este loop integrado e publica a versão original para todos os rails que o usam. Duplique-o primeiro se quiser manter a sua versão.`},addNode:`Adicionar nó`,deleteNode:`Eliminar nó`,config:{maxIterations:`Iterações máximas`,timeout:`Tempo limite (min)`,maxIterationsHint:`Limite de iterações do Loop Decider — o loop para ao atingi-lo mesmo que o objetivo não seja cumprido. Evita loops infinitos.`,timeoutHint:`Limite de tempo real de toda a execução, em minutos. Se excedido, a execução é interrompida e marcada como falha — uma rede de segurança junto com as iterações máximas. 0 desativa este limite de tempo; os outros orçamentos e o cancelamento continuam ativos.`,maxCost:`Custo máx ($)`,maxCostHint:`Orçamento opcional em USD para toda a execução. Verificado ENTRE passos (o custo de um passo só é conhecido ao terminá-lo), o loop para antes do próximo passo quando o total freestylepassa — pode passar um passo. Em provedores não-Claude o custo é estimado. Vazio = sem limite.`},nodes:{start:`Início`,"ai-step":`Passo de IA`,shell:`Shell`,decider:`Decisor do Loop`,condition:`Condição`,end:`Fim`},inspector:{selectNode:`Selecione um nó para o editar.`,prompt:`Prompt`,provider:`Fornecedor`,model:`Modelo`,effort:`Esforço de raciocínio`,command:`Comando`,goal:`Objetivo / critérios de paragem`,join:`Junção`,outcome:`Resultado`,startNote:`O ponto de entrada do loop. Ligue-o ao primeiro passo.`,promptHint:`Clique ou arraste um token para inseri-lo no prompt.`,tokensSpec:`Campos da spec`,tokensJira:`Jira`,tokensCommands:`Comandos`,label:`Nome`},branch:{continue:`↻ Continuar`,stop:`✓ Parar`},edgesHelp:{label:`Como as etapas se conectam`,body:`As setas definem a ORDEM de execução, não os dados — as caixas não têm portas de entrada e as conexões não carregam parâmetros. Cada AI Step retoma automaticamente sua sessão (todo o contexto anterior) mais um breve resumo das etapas anteriores; nada é ligado manualmente. O Loop Decider tem duas saídas: ↻ Continuar (objetivo não atingido → volta ao loop) e ✓ Parar (objetivo atingido → sai).`},arrange:{label:`Organizar`,vertical:`Vertical`,horizontal:`Horizontal`,grid:`Grade`,reset:`Redefinir`},constants:{label:`Constantes`,manage:`Gerenciar constantes`,title:`Constantes do loop`,empty:`Ainda não há constantes personalizadas.`,name:`NOME`,value:`valor`,add:`Adicionar`,builtinBadge:`Integradas`},paste:{done_one:`{{count}} passo colado`,done_other:`{{count}} passos colados`},problems:{count_one:`{{count}} problema`,count_other:`{{count}} problemas`,NO_START:`Adicione um nó de Início.`,MULTIPLE_START:`Só é permitido um nó de Início.`,NO_END:`Adicione pelo menos um nó de Fim.`,ORPHAN:`Este passo não é acessível a partir do Início.`,DECIDER_BRANCHES:`O Loop Decider precisa de uma ramificação Continuar e uma Parar.`,EMPTY_PROMPT:`O AI Step está com o prompt vazio.`,EMPTY_COMMAND:`O passo Shell está com o comando vazio.`,EMPTY_GOAL:`O Loop Decider não tem objetivo.`,DEAD_END:`Este passo não tem conexão de saída.`,MIXED_ENGINES:`Não misture etapas antigas com etapas Core.`,CORE_OUTCOMES:`Ligue resultados distintos e válidos.`,CORE_PIECE:`Selecione uma etapa e os seus parâmetros.`},preview:{label:`Pré-visualizar`,title:`Pré-visualização (dry-run)`,sampleNote:`Os valores do spec são exemplos; comandos e constantes são resolvidos como em execução.`,empty:`Nenhum passo para pré-visualizar.`,error:`Falha na pré-visualização`},core:{unavailable:`Motor indisponível. Atualize o Core para adicionar ou publicar etapas.`,root:`Workflow principal`,components:`Componentes`,componentName:`Nome do componente`,addComponent:`Adicionar componente`,openComponent:`Abrir componente`,breadcrumbs:`Navegação do workflow`,select:`Escolha uma opção`,valueType:`Tipo de valor`,addItem:`Adicionar item`,fieldName:`Nome do campo`,addField:`Adicionar {{name}}`,removeField:`Remover {{name}}`,variant:`Formato de {{name}}`,tooDeep:`O valor contém demasiados níveis.`,pieces:{prompt:`Prompt`,"role-turn":`Agent step`,decider:`Decisão`,condition:`Condição`,verify:`Verificar`,shell:`Shell`,"openspec-validate":`Validar OpenSpec`,"openspec-archive":`Arquivar OpenSpec`,approval:`Aprovação`,question:`Pergunta`,gate:`Pausa`,map:`Mapear`,join:`Unir`,component:`Componente`,implementation:`Implementação`,end:`Fim`,assign:`Definir variáveis`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`IA`,verification:`Verificação`,openspec:`OpenSpec`,control:`Controlo de fluxo`},options:`Opções do workflow`,reviewerStep:`Nó de evidências de revisão`,reviewerAutomatic:`Automático (revisões de implementação)`,reviewerHint:`Escolha o turno de função que fornece a revisão estruturada. A revisão por IA não substitui a verificação do host.`,assignment:{set:`Definir valores`,increment:`Ajustar contadores`},requiredContinue:`Continuar enquanto esta condição se verificar`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},m={steps:`Passos`,limits:`máx. {{iterations}} iterações · {{timeout}} min de timeout`,limitsNoTimeout:`máx. {{iterations}} iterações · sem timeout`,openInBuilder:`Abrir no builder`,builtin:`Integrado`},h=`Integrado`,g={title:`Executar {{name}}`,subtitle:`Inicia este loop num projeto (sem ticket).`,project:`Projeto`,provider:`Provedor`,model:`Modelo`,effort:`Esforço de raciocínio`,execute:`Executar`,noProjects:`Sem projetos disponíveis.`,launched:`Executando {{name}}`},_={"ship-and-green":{name:`Ship & Green`,description:`Totalmente autônomo: implementa a spec, verifica e refina (corrige) em caso de falha — repetindo verificar → corrigir → verificar até tudo ficar verde. Sem intervenção humana.`},"verify-pass":{name:`Verificação`,description:`Verificação e correção autônomas: detecta e executa o build/lint/testes do projeto e, em caso de falha, refina — verificar → corrigir → verificar até ficar verde.`},"ci-watch":{name:`Monitorar CI`,description:`Consulta as verificações de CI no PR aberto (o agente usa as ferramentas de CI do repositório) até que todas fiquem verdes.`},"lint-and-fix":{name:`Lint & Corrigir`,description:`O agente detecta e executa o lint do projeto e corrige cada problema, iterando até o código ficar limpo.`},"type-safe":{name:`Tipos Seguros`,description:`O agente detecta e executa o verificador de tipos do projeto e resolve cada erro, iterando até passar sem problemas.`},"coverage-climb":{name:`Subir Cobertura`,description:`O agente executa a ferramenta de cobertura do projeto e adiciona testes focados até atingir os limites exigidos.`},"build-fix":{name:`Corrigir Build`,description:`O agente detecta e executa o build de produção do projeto e corrige erros de compilação/empacotamento até ficar verde.`},"deploy-check":{name:`Checar Deploy`,description:`O agente consulta o status de deploy/saúde (usando as ferramentas de deploy do projeto) até o serviço reportar que está saudável.`},factory_implement:{name:`Implementar`,description:`Implementa todas as specs do rail numa única execução: planeia, implementa, revê e verifica, corrigindo falhas até as verificações passarem.`},factory_freestyle:{name:`Freestyle`,description:`Entrega a spec diretamente ao modelo com total liberdade — sem pipeline, ele trabalha como um agente de código normal, depois verifica + refina até ficar verde. Somente Claude.`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`Ciclo OpenSpec do ticket ao arquivo: gera artefatos (opsx:ff) → implementa (opsx:apply) → verifica (opsx:verify); em FAIL volta e emenda o mesmo change, em PASS arquiva sem intervenção.`},factory_revision:{name:`Revisão`,description:`Aplica a única alteração que pediu sobre o trabalho já entregue, faz o revisor pontuar de novo e verifica até ficar verde. Não replaneia do zero.`}},v={selectInterrupt:`Selecionar pergunta ou aprovação pendente`,answerQuestion:`Responder à pergunta`,approval:`Aprovação`,approveContinue:`Aprovar e continuar`,paused:`Em pausa`,acceptance:`Aceitação`,verified:`Verificado`,hostBlocked:`Bloqueado pelo ambiente do host`,blockerKind:{network:`Rede`,credential:`Credenciais`,"environment-variable":`Variável de ambiente`,toolchain:`Ferramentas`,setup:`Comando de preparação`,environment:`Ambiente`,scope:`Fora do escopo`},failingCommand:`Comando com falha`,inDirectory:`em {{cwd}}`,requiredAction:`Ação necessária`,copyCommand:`Copiar comando`,copiedCommand:`Copiado`},y={title:`Converter {{name}} para Core`,description:`O Core valida o grafo convertido antes de o guardar como rascunho. O original continua disponível para exportação. Reveja o novo workflow antes de o publicar.`,repository:`Repositório dos passos shell sem destino`,selectRepository:`Escolha o repositório original`,submit:`Converter e rever`,pending:`A converter…`,error:`A conversão falhou`,coreRequired:`Atualize o Core para converter este workflow.`},b={title:`Verificação da migração para o Core`,description:`Verifica cada loop guardado com o Core instalado. Nada é convertido nem publicado automaticamente.`,check:`Verificar`,checking:`A verificar…`,failed:`Não foi possível verificar os loops.`,empty:`Não há loops guardados.`,allCurrent:`Todos os loops já usam o Core e são válidos.`,states:{current:`Atualizado`,invalid:`Rejeitado pelo Core instalado`,convertible:`Pronto a converter`,needs_attention:`Requer atenção`,running:`Em execução`}},x={open:`Open in window`},S={title:e,subtitle:t,newLoop:n,sections:r,gallery:i,categories:a,status:o,empty:s,actions:c,card:l,confirmDelete:u,newLoopName:d,errors:f,builder:p,preview:m,builtInBadge:h,run:g,catalog:_,import:{done_one:`{{count}} loop importado`,done_other:`{{count}} loops importados`,skipped_one:`{{count}} duplicado ignorado: {{names}}`,skipped_other:`{{count}} duplicados ignorados: {{names}}`,invalid:`Esse arquivo não é uma exportação de loops válida.`},core:v,conversion:y,migration:b,window:x};export{c as actions,p as builder,h as builtInBadge,l as card,_ as catalog,a as categories,u as confirmDelete,y as conversion,v as core,S as default,s as empty,f as errors,i as gallery,b as migration,n as newLoop,d as newLoopName,m as preview,g as run,r as sections,o as status,t as subtitle,e as title,x as window};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`Loops`,t=`Boucles d'automatisation réutilisables — partagées entre tous vos projets.`,n=`Nouvelle boucle`,r={drafts:`Brouillons`,published:`Publiées`,templates:`Modèles`,builtIn:`Intégrés`},i={search:`Rechercher des modèles…`,noResults:`Aucun modèle ne correspond à vos filtres.`,clearFilter:`Effacer les filtres`,resultCount_one:`{{count}} modèle`,resultCount_other:`{{count}} modèles`,needsSpec:`Spec requise`,standalone:`Autonome`,needsSpecHint:`S'exécute sur un rail avec une spec glissée`,standaloneHint:`S'exécute seule — il suffit de choisir un projet`},a={API:`API`,Automation:`Automatisation`,CI:`CI`,Database:`Base de données`,Debugging:`Débogage`,DevOps:`DevOps`,Docs:`Docs`,Git:`Git`,Maintenance:`Maintenance`,Performance:`Performance`,Planning:`Planification`,Quality:`Qualité`,Review:`Revue`,Security:`Sécurité`,Testing:`Tests`},o={draft:`Brouillon`,published:`Publiée`,running:`En cours`},s={title:`Aucune boucle pour l'instant`,body:`Créez-en une de zéro ou partez d'un modèle.`},c={edit:`Modifier`,delete:`Supprimer`,publish:`Publier`,unpublish:`Dépublier`,duplicate:`Dupliquer`,restoreBuiltin:`Restaurer l'original`,use:`Utiliser le modèle`,preview:`Aperçu`,run:`Exécuter`,export:`Exporter`,import:`Importer`,select:`Sélectionner {{name}}`,exportLegacy:`Exporter le graphe d’origine`,originalCopyName:`Original : {{name}}`,convert:`Convertir vers Core`},l={nodes_one:`{{count}} nœud`,nodes_other:`{{count}} nœuds`,usedIn:`En cours d'utilisation · {{project}}`,builtinModified:`Modifié`},u=`Supprimer cette boucle ? Elle disparaîtra de tous les sélecteurs de rail.`,d=`Nouvelle boucle`,f={load:`Échec du chargement des boucles`,save:`Échec de l'enregistrement de la boucle`,publishInvalid:`Cette boucle ne peut pas encore être publiée — corrigez les problèmes signalés.`,exportLegacy:`Impossible d’exporter le graphe d’origine.`},p={back:`Retour aux boucles`,save:`Enregistrer`,saved:`Boucle enregistrée`,publish:`Publier`,published:`Boucle publiée`,builtin:{note:`Loop intégré. Vous modifiez le loop intégré lui-même : une fois publié, vos changements s'appliquent à chaque rail, lancement depuis le chat de l'agent et Companion qui l'utilise. Les rails continuent d'exécuter la dernière version publiée pendant que vous modifiez. Utilisez Restaurer l'original pour revenir à la version par défaut.`,restored:`Loop intégré restauré à sa version d'origine`,confirmTitle:`Restaurer le loop intégré d'origine ?`,confirmBody:`Cela annule vos modifications de ce loop intégré et publie sa version d'origine pour tous les rails qui l'utilisent. Dupliquez-le d'abord si vous voulez conserver votre version.`},addNode:`Ajouter un nœud`,deleteNode:`Supprimer le nœud`,config:{maxIterations:`Itérations max`,timeout:`Délai (min)`,maxIterationsHint:`Plafond d'itérations du Loop Decider — la boucle s'arrête une fois atteint, même si l'objectif n'est pas rempli. Évite les boucles infinies.`,timeoutHint:`Limite de temps réel pour toute l'exécution, en minutes. Si dépassée, l'exécution est arrêtée et marquée échouée — un filet de sécurité avec le nombre max d'itérations. 0 désactive cette limite de temps ; les autres budgets et l’annulation restent actifs.`,maxCost:`Coût max ($)`,maxCostHint:`Budget USD optionnel pour toute l’exécution. Vérifié ENTRE les étapes (le coût d’une étape n’est connu qu’à sa fin), la boucle s’arrête avant l’étape suivante une fois le total dépassé — peut dépasser d’une étape. Pour les fournisseurs non-Claude, le coût est estimé. Vide = aucune limite.`},nodes:{start:`Début`,"ai-step":`Étape IA`,shell:`Shell`,decider:`Décideur de boucle`,condition:`Condition`,end:`Fin`},inspector:{selectNode:`Sélectionnez un nœud pour le modifier.`,prompt:`Invite`,provider:`Fournisseur`,model:`Modèle`,effort:`Effort de raisonnement`,command:`Commande`,goal:`Objectif / critères d'arrêt`,join:`Jointure`,outcome:`Résultat`,startNote:`Le point d'entrée de la boucle. Connectez-le à la première étape.`,promptHint:`Cliquez ou glissez un jeton pour l'insérer dans le prompt.`,tokensSpec:`Champs du spec`,tokensJira:`Jira`,tokensCommands:`Commandes`,label:`Nom`},branch:{continue:`↻ Continuer`,stop:`✓ Arrêter`},edgesHelp:{label:`Comment les étapes se connectent`,body:`Les flèches définissent l'ORDRE d'exécution, pas les données — les boîtes n'ont pas de ports d'entrée et les arêtes ne transportent aucun paramètre. Chaque AI Step reprend automatiquement sa session (tout le contexte précédent) plus un bref résumé des étapes antérieures ; rien n'est câblé à la main. Le Loop Decider a deux sorties : ↻ Continuer (objectif non atteint → retour en boucle) et ✓ Arrêter (objectif atteint → sortie).`},arrange:{label:`Disposer`,vertical:`Vertical`,horizontal:`Horizontal`,grid:`Grille`,reset:`Réinitialiser`},constants:{label:`Constantes`,manage:`Gérer les constantes`,title:`Constantes du loop`,empty:`Aucune constante personnalisée.`,name:`NOM`,value:`valeur`,add:`Ajouter`,builtinBadge:`Intégrées`},paste:{done_one:`{{count}} étape collée`,done_other:`{{count}} étapes collées`},problems:{count_one:`{{count}} problème`,count_other:`{{count}} problèmes`,NO_START:`Ajoutez un nœud de départ.`,MULTIPLE_START:`Un seul nœud de départ est autorisé.`,NO_END:`Ajoutez au moins un nœud de fin.`,ORPHAN:`Cette étape n'est pas accessible depuis le départ.`,DECIDER_BRANCHES:`Le Loop Decider a besoin d'une branche Continuer et d'une branche Arrêter.`,EMPTY_PROMPT:`L'AI Step a un prompt vide.`,EMPTY_COMMAND:`L'étape Shell a une commande vide.`,EMPTY_GOAL:`Le Loop Decider n'a pas d'objectif.`,DEAD_END:`Cette étape n'a aucune connexion sortante.`,MIXED_ENGINES:`Ne mélangez pas les anciennes étapes et les étapes Core.`,CORE_OUTCOMES:`Reliez des résultats distincts et valides.`,CORE_PIECE:`Sélectionnez une étape et ses paramètres.`},preview:{label:`Aperçu`,title:`Aperçu (dry-run)`,sampleNote:`Les valeurs du spec sont des exemples ; commandes et constantes sont résolues telles qu'à l'exécution.`,empty:`Aucune étape à prévisualiser.`,error:`Échec de l'aperçu`},core:{unavailable:`Moteur indisponible. Mettez Core à jour pour ajouter ou publier des étapes.`,root:`Workflow principal`,components:`Composants`,componentName:`Nom du composant`,addComponent:`Ajouter un composant`,openComponent:`Ouvrir le composant`,breadcrumbs:`Navigation du workflow`,select:`Choisir une option`,valueType:`Type de valeur`,addItem:`Ajouter un élément`,fieldName:`Nom du champ`,addField:`Ajouter {{name}}`,removeField:`Supprimer {{name}}`,variant:`Format de {{name}}`,tooDeep:`La valeur contient trop de niveaux.`,pieces:{prompt:`Prompt`,"role-turn":`Agent step`,decider:`Décision`,condition:`Condition`,verify:`Vérifier`,shell:`Shell`,"openspec-validate":`Valider OpenSpec`,"openspec-archive":`Archiver OpenSpec`,approval:`Approbation`,question:`Question`,gate:`Pause`,map:`Parcourir`,join:`Regrouper`,component:`Composant`,implementation:`Implémentation`,end:`Fin`,assign:`Définir des variables`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`IA`,verification:`Vérification`,openspec:`OpenSpec`,control:`Contrôle du flux`},options:`Options du workflow`,reviewerStep:`Nœud de preuves de revue`,reviewerAutomatic:`Automatique (revues d’implémentation)`,reviewerHint:`Choisissez le tour de rôle qui fournit la revue structurée. La revue IA ne remplace pas la vérification par l’hôte.`,assignment:{set:`Définir les valeurs`,increment:`Ajuster les compteurs`},requiredContinue:`Continuer tant que cette condition est remplie`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},m={steps:`Étapes`,limits:`{{iterations}} itérations max · {{timeout}} min de délai`,limitsNoTimeout:`{{iterations}} itérations max · aucun délai`,openInBuilder:`Ouvrir dans le builder`,builtin:`Intégré`},h=`Intégré`,g={title:`Exécuter {{name}}`,subtitle:`Lance ce loop sur un projet (sans ticket).`,project:`Projet`,provider:`Fournisseur`,model:`Modèle`,effort:`Effort de raisonnement`,execute:`Exécuter`,noProjects:`Aucun projet disponible.`,launched:`Exécution de {{name}}`},_={"ship-and-green":{name:`Ship & Green`,description:`Totalement autonome : implémente le spec, vérifie, puis corrige en cas d'échec — en bouclant vérifier → corriger → vérifier jusqu'à ce que tout soit au vert. Aucune intervention humaine.`},"verify-pass":{name:`Passe de vérification`,description:`Vérification et correction autonomes : détecte et lance le build/lint/tests du projet, puis corrige en cas d'échec — vérifier → corriger → vérifier jusqu'au vert.`},"ci-watch":{name:`Surveillance CI`,description:`Interroge les contrôles CI sur la PR ouverte (l'agent utilise l'outillage CI du dépôt) jusqu'à ce que chaque contrôle soit au vert.`},"lint-and-fix":{name:`Lint & correction`,description:`L'agent détecte et lance le linter du projet et corrige chaque problème, en itérant jusqu'à ce que le code soit propre.`},"type-safe":{name:`Types sûrs`,description:`L'agent détecte et lance le vérificateur de types du projet et résout chaque erreur, en itérant jusqu'à ce qu'il passe sans accroc.`},"coverage-climb":{name:`Montée de couverture`,description:`L'agent lance l'outillage de couverture du projet et ajoute des tests ciblés jusqu'à ce que les seuils soient atteints.`},"build-fix":{name:`Correction de build`,description:`L'agent détecte et lance le build de production du projet et corrige les erreurs de compilation/bundle jusqu'à ce qu'il soit au vert.`},"deploy-check":{name:`Contrôle de deploy`,description:`L'agent interroge l'état de deploy/santé (à l'aide de l'outillage de deploy du projet) jusqu'à ce que le service se déclare en bonne santé.`},factory_implement:{name:`Implémenter`,description:`Implémente toutes les specs du rail en une seule exécution : planifie, implémente, relit et vérifie, en corrigeant les échecs jusqu'à ce que les contrôles passent.`},factory_freestyle:{name:`Freestyle`,description:`Confie la spec directement au modèle en toute liberté — sans pipeline, il travaille comme un agent de code classique, puis vérifie + affine jusqu'au vert. Claude uniquement.`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`Cycle OpenSpec du ticket à l'archive : générer les artefacts (opsx:ff) → implémenter (opsx:apply) → vérifier (opsx:verify) ; en cas de FAIL, reboucle et amende le même change ; en cas de PASS, archive sans intervention.`},factory_revision:{name:`Révision`,description:`Applique l'unique changement demandé par-dessus le travail déjà livré, fait re-noter par le relecteur, puis vérifie jusqu'au vert. Aucune replanification.`}},v={selectInterrupt:`Choisir la question ou approbation en attente`,answerQuestion:`Répondre à la question`,approval:`Approbation`,approveContinue:`Approuver et continuer`,paused:`En pause`,acceptance:`Acceptation`,verified:`Vérifié`},y={title:`Convertir {{name}} vers Core`,description:`Core valide le graphe converti avant de l’enregistrer comme brouillon. L’original reste exportable. Vérifiez le nouveau workflow avant de le publier.`,repository:`Dépôt des étapes shell sans destination`,selectRepository:`Choisissez le dépôt d’origine`,submit:`Convertir et vérifier`,pending:`Conversion…`,error:`Échec de la conversion`,coreRequired:`Mettez Core à jour pour convertir ce workflow.`},b={title:`Vérification de la migration vers Core`,description:`Vérifie chaque loop enregistrée avec le Core installé. Rien n’est converti ni publié automatiquement.`,check:`Vérifier`,checking:`Vérification…`,failed:`Impossible de vérifier les loops.`,empty:`Aucune loop enregistrée.`,allCurrent:`Toutes les loops utilisent déjà Core et sont valides.`,states:{current:`À jour`,invalid:`Refusée par le Core installé`,convertible:`Prête à convertir`,needs_attention:`À examiner`,running:`En cours`}},x={open:`Open in window`},S={title:e,subtitle:t,newLoop:n,sections:r,gallery:i,categories:a,status:o,empty:s,actions:c,card:l,confirmDelete:u,newLoopName:d,errors:f,builder:p,preview:m,builtInBadge:h,run:g,catalog:_,import:{done_one:`{{count}} loop importé`,done_other:`{{count}} loops importés`,skipped_one:`{{count}} doublon ignoré : {{names}}`,skipped_other:`{{count}} doublons ignorés : {{names}}`,invalid:`Ce fichier n'est pas un export de loops valide.`},core:v,conversion:y,migration:b,window:x};export{c as actions,p as builder,h as builtInBadge,l as card,_ as catalog,a as categories,u as confirmDelete,y as conversion,v as core,S as default,s as empty,f as errors,i as gallery,b as migration,n as newLoop,d as newLoopName,m as preview,g as run,r as sections,o as status,t as subtitle,e as title,x as window};
|
|
1
|
+
var e=`Loops`,t=`Boucles d'automatisation réutilisables — partagées entre tous vos projets.`,n=`Nouvelle boucle`,r={drafts:`Brouillons`,published:`Publiées`,templates:`Modèles`,builtIn:`Intégrés`},i={search:`Rechercher des modèles…`,noResults:`Aucun modèle ne correspond à vos filtres.`,clearFilter:`Effacer les filtres`,resultCount_one:`{{count}} modèle`,resultCount_other:`{{count}} modèles`,needsSpec:`Spec requise`,standalone:`Autonome`,needsSpecHint:`S'exécute sur un rail avec une spec glissée`,standaloneHint:`S'exécute seule — il suffit de choisir un projet`},a={API:`API`,Automation:`Automatisation`,CI:`CI`,Database:`Base de données`,Debugging:`Débogage`,DevOps:`DevOps`,Docs:`Docs`,Git:`Git`,Maintenance:`Maintenance`,Performance:`Performance`,Planning:`Planification`,Quality:`Qualité`,Review:`Revue`,Security:`Sécurité`,Testing:`Tests`},o={draft:`Brouillon`,published:`Publiée`,running:`En cours`},s={title:`Aucune boucle pour l'instant`,body:`Créez-en une de zéro ou partez d'un modèle.`},c={edit:`Modifier`,delete:`Supprimer`,publish:`Publier`,unpublish:`Dépublier`,duplicate:`Dupliquer`,restoreBuiltin:`Restaurer l'original`,use:`Utiliser le modèle`,preview:`Aperçu`,run:`Exécuter`,export:`Exporter`,import:`Importer`,select:`Sélectionner {{name}}`,exportLegacy:`Exporter le graphe d’origine`,originalCopyName:`Original : {{name}}`,convert:`Convertir vers Core`},l={nodes_one:`{{count}} nœud`,nodes_other:`{{count}} nœuds`,usedIn:`En cours d'utilisation · {{project}}`,builtinModified:`Modifié`},u=`Supprimer cette boucle ? Elle disparaîtra de tous les sélecteurs de rail.`,d=`Nouvelle boucle`,f={load:`Échec du chargement des boucles`,save:`Échec de l'enregistrement de la boucle`,publishInvalid:`Cette boucle ne peut pas encore être publiée — corrigez les problèmes signalés.`,exportLegacy:`Impossible d’exporter le graphe d’origine.`},p={back:`Retour aux boucles`,save:`Enregistrer`,saved:`Boucle enregistrée`,publish:`Publier`,published:`Boucle publiée`,builtin:{note:`Loop intégré. Vous modifiez le loop intégré lui-même : une fois publié, vos changements s'appliquent à chaque rail, lancement depuis le chat de l'agent et Companion qui l'utilise. Les rails continuent d'exécuter la dernière version publiée pendant que vous modifiez. Utilisez Restaurer l'original pour revenir à la version par défaut.`,restored:`Loop intégré restauré à sa version d'origine`,confirmTitle:`Restaurer le loop intégré d'origine ?`,confirmBody:`Cela annule vos modifications de ce loop intégré et publie sa version d'origine pour tous les rails qui l'utilisent. Dupliquez-le d'abord si vous voulez conserver votre version.`},addNode:`Ajouter un nœud`,deleteNode:`Supprimer le nœud`,config:{maxIterations:`Itérations max`,timeout:`Délai (min)`,maxIterationsHint:`Plafond d'itérations du Loop Decider — la boucle s'arrête une fois atteint, même si l'objectif n'est pas rempli. Évite les boucles infinies.`,timeoutHint:`Limite de temps réel pour toute l'exécution, en minutes. Si dépassée, l'exécution est arrêtée et marquée échouée — un filet de sécurité avec le nombre max d'itérations. 0 désactive cette limite de temps ; les autres budgets et l’annulation restent actifs.`,maxCost:`Coût max ($)`,maxCostHint:`Budget USD optionnel pour toute l’exécution. Vérifié ENTRE les étapes (le coût d’une étape n’est connu qu’à sa fin), la boucle s’arrête avant l’étape suivante une fois le total dépassé — peut dépasser d’une étape. Pour les fournisseurs non-Claude, le coût est estimé. Vide = aucune limite.`},nodes:{start:`Début`,"ai-step":`Étape IA`,shell:`Shell`,decider:`Décideur de boucle`,condition:`Condition`,end:`Fin`},inspector:{selectNode:`Sélectionnez un nœud pour le modifier.`,prompt:`Invite`,provider:`Fournisseur`,model:`Modèle`,effort:`Effort de raisonnement`,command:`Commande`,goal:`Objectif / critères d'arrêt`,join:`Jointure`,outcome:`Résultat`,startNote:`Le point d'entrée de la boucle. Connectez-le à la première étape.`,promptHint:`Cliquez ou glissez un jeton pour l'insérer dans le prompt.`,tokensSpec:`Champs du spec`,tokensJira:`Jira`,tokensCommands:`Commandes`,label:`Nom`},branch:{continue:`↻ Continuer`,stop:`✓ Arrêter`},edgesHelp:{label:`Comment les étapes se connectent`,body:`Les flèches définissent l'ORDRE d'exécution, pas les données — les boîtes n'ont pas de ports d'entrée et les arêtes ne transportent aucun paramètre. Chaque AI Step reprend automatiquement sa session (tout le contexte précédent) plus un bref résumé des étapes antérieures ; rien n'est câblé à la main. Le Loop Decider a deux sorties : ↻ Continuer (objectif non atteint → retour en boucle) et ✓ Arrêter (objectif atteint → sortie).`},arrange:{label:`Disposer`,vertical:`Vertical`,horizontal:`Horizontal`,grid:`Grille`,reset:`Réinitialiser`},constants:{label:`Constantes`,manage:`Gérer les constantes`,title:`Constantes du loop`,empty:`Aucune constante personnalisée.`,name:`NOM`,value:`valeur`,add:`Ajouter`,builtinBadge:`Intégrées`},paste:{done_one:`{{count}} étape collée`,done_other:`{{count}} étapes collées`},problems:{count_one:`{{count}} problème`,count_other:`{{count}} problèmes`,NO_START:`Ajoutez un nœud de départ.`,MULTIPLE_START:`Un seul nœud de départ est autorisé.`,NO_END:`Ajoutez au moins un nœud de fin.`,ORPHAN:`Cette étape n'est pas accessible depuis le départ.`,DECIDER_BRANCHES:`Le Loop Decider a besoin d'une branche Continuer et d'une branche Arrêter.`,EMPTY_PROMPT:`L'AI Step a un prompt vide.`,EMPTY_COMMAND:`L'étape Shell a une commande vide.`,EMPTY_GOAL:`Le Loop Decider n'a pas d'objectif.`,DEAD_END:`Cette étape n'a aucune connexion sortante.`,MIXED_ENGINES:`Ne mélangez pas les anciennes étapes et les étapes Core.`,CORE_OUTCOMES:`Reliez des résultats distincts et valides.`,CORE_PIECE:`Sélectionnez une étape et ses paramètres.`},preview:{label:`Aperçu`,title:`Aperçu (dry-run)`,sampleNote:`Les valeurs du spec sont des exemples ; commandes et constantes sont résolues telles qu'à l'exécution.`,empty:`Aucune étape à prévisualiser.`,error:`Échec de l'aperçu`},core:{unavailable:`Moteur indisponible. Mettez Core à jour pour ajouter ou publier des étapes.`,root:`Workflow principal`,components:`Composants`,componentName:`Nom du composant`,addComponent:`Ajouter un composant`,openComponent:`Ouvrir le composant`,breadcrumbs:`Navigation du workflow`,select:`Choisir une option`,valueType:`Type de valeur`,addItem:`Ajouter un élément`,fieldName:`Nom du champ`,addField:`Ajouter {{name}}`,removeField:`Supprimer {{name}}`,variant:`Format de {{name}}`,tooDeep:`La valeur contient trop de niveaux.`,pieces:{prompt:`Prompt`,"role-turn":`Agent step`,decider:`Décision`,condition:`Condition`,verify:`Vérifier`,shell:`Shell`,"openspec-validate":`Valider OpenSpec`,"openspec-archive":`Archiver OpenSpec`,approval:`Approbation`,question:`Question`,gate:`Pause`,map:`Parcourir`,join:`Regrouper`,component:`Composant`,implementation:`Implémentation`,end:`Fin`,assign:`Définir des variables`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`IA`,verification:`Vérification`,openspec:`OpenSpec`,control:`Contrôle du flux`},options:`Options du workflow`,reviewerStep:`Nœud de preuves de revue`,reviewerAutomatic:`Automatique (revues d’implémentation)`,reviewerHint:`Choisissez le tour de rôle qui fournit la revue structurée. La revue IA ne remplace pas la vérification par l’hôte.`,assignment:{set:`Définir les valeurs`,increment:`Ajuster les compteurs`},requiredContinue:`Continuer tant que cette condition est remplie`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},m={steps:`Étapes`,limits:`{{iterations}} itérations max · {{timeout}} min de délai`,limitsNoTimeout:`{{iterations}} itérations max · aucun délai`,openInBuilder:`Ouvrir dans le builder`,builtin:`Intégré`},h=`Intégré`,g={title:`Exécuter {{name}}`,subtitle:`Lance ce loop sur un projet (sans ticket).`,project:`Projet`,provider:`Fournisseur`,model:`Modèle`,effort:`Effort de raisonnement`,execute:`Exécuter`,noProjects:`Aucun projet disponible.`,launched:`Exécution de {{name}}`},_={"ship-and-green":{name:`Ship & Green`,description:`Totalement autonome : implémente le spec, vérifie, puis corrige en cas d'échec — en bouclant vérifier → corriger → vérifier jusqu'à ce que tout soit au vert. Aucune intervention humaine.`},"verify-pass":{name:`Passe de vérification`,description:`Vérification et correction autonomes : détecte et lance le build/lint/tests du projet, puis corrige en cas d'échec — vérifier → corriger → vérifier jusqu'au vert.`},"ci-watch":{name:`Surveillance CI`,description:`Interroge les contrôles CI sur la PR ouverte (l'agent utilise l'outillage CI du dépôt) jusqu'à ce que chaque contrôle soit au vert.`},"lint-and-fix":{name:`Lint & correction`,description:`L'agent détecte et lance le linter du projet et corrige chaque problème, en itérant jusqu'à ce que le code soit propre.`},"type-safe":{name:`Types sûrs`,description:`L'agent détecte et lance le vérificateur de types du projet et résout chaque erreur, en itérant jusqu'à ce qu'il passe sans accroc.`},"coverage-climb":{name:`Montée de couverture`,description:`L'agent lance l'outillage de couverture du projet et ajoute des tests ciblés jusqu'à ce que les seuils soient atteints.`},"build-fix":{name:`Correction de build`,description:`L'agent détecte et lance le build de production du projet et corrige les erreurs de compilation/bundle jusqu'à ce qu'il soit au vert.`},"deploy-check":{name:`Contrôle de deploy`,description:`L'agent interroge l'état de deploy/santé (à l'aide de l'outillage de deploy du projet) jusqu'à ce que le service se déclare en bonne santé.`},factory_implement:{name:`Implémenter`,description:`Implémente toutes les specs du rail en une seule exécution : planifie, implémente, relit et vérifie, en corrigeant les échecs jusqu'à ce que les contrôles passent.`},factory_freestyle:{name:`Freestyle`,description:`Confie la spec directement au modèle en toute liberté — sans pipeline, il travaille comme un agent de code classique, puis vérifie + affine jusqu'au vert. Claude uniquement.`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`Cycle OpenSpec du ticket à l'archive : générer les artefacts (opsx:ff) → implémenter (opsx:apply) → vérifier (opsx:verify) ; en cas de FAIL, reboucle et amende le même change ; en cas de PASS, archive sans intervention.`},factory_revision:{name:`Révision`,description:`Applique l'unique changement demandé par-dessus le travail déjà livré, fait re-noter par le relecteur, puis vérifie jusqu'au vert. Aucune replanification.`}},v={selectInterrupt:`Choisir la question ou approbation en attente`,answerQuestion:`Répondre à la question`,approval:`Approbation`,approveContinue:`Approuver et continuer`,paused:`En pause`,acceptance:`Acceptation`,verified:`Vérifié`,hostBlocked:`Bloqué par l'environnement hôte`,blockerKind:{network:`Réseau`,credential:`Identifiants`,"environment-variable":`Variable d'environnement`,toolchain:`Chaîne d'outils`,setup:`Commande de préparation`,environment:`Environnement`,scope:`Hors périmètre`},failingCommand:`Commande en échec`,inDirectory:`dans {{cwd}}`,requiredAction:`Action requise`,copyCommand:`Copier la commande`,copiedCommand:`Copié`},y={title:`Convertir {{name}} vers Core`,description:`Core valide le graphe converti avant de l’enregistrer comme brouillon. L’original reste exportable. Vérifiez le nouveau workflow avant de le publier.`,repository:`Dépôt des étapes shell sans destination`,selectRepository:`Choisissez le dépôt d’origine`,submit:`Convertir et vérifier`,pending:`Conversion…`,error:`Échec de la conversion`,coreRequired:`Mettez Core à jour pour convertir ce workflow.`},b={title:`Vérification de la migration vers Core`,description:`Vérifie chaque loop enregistrée avec le Core installé. Rien n’est converti ni publié automatiquement.`,check:`Vérifier`,checking:`Vérification…`,failed:`Impossible de vérifier les loops.`,empty:`Aucune loop enregistrée.`,allCurrent:`Toutes les loops utilisent déjà Core et sont valides.`,states:{current:`À jour`,invalid:`Refusée par le Core installé`,convertible:`Prête à convertir`,needs_attention:`À examiner`,running:`En cours`}},x={open:`Open in window`},S={title:e,subtitle:t,newLoop:n,sections:r,gallery:i,categories:a,status:o,empty:s,actions:c,card:l,confirmDelete:u,newLoopName:d,errors:f,builder:p,preview:m,builtInBadge:h,run:g,catalog:_,import:{done_one:`{{count}} loop importé`,done_other:`{{count}} loops importés`,skipped_one:`{{count}} doublon ignoré : {{names}}`,skipped_other:`{{count}} doublons ignorés : {{names}}`,invalid:`Ce fichier n'est pas un export de loops valide.`},core:v,conversion:y,migration:b,window:x};export{c as actions,p as builder,h as builtInBadge,l as card,_ as catalog,a as categories,u as confirmDelete,y as conversion,v as core,S as default,s as empty,f as errors,i as gallery,b as migration,n as newLoop,d as newLoopName,m as preview,g as run,r as sections,o as status,t as subtitle,e as title,x as window};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`Loops`,t=`Wiederverwendbare Automatisierungs-Loops – projektübergreifend geteilt.`,n=`Neuer Loop`,r={drafts:`Entwürfe`,published:`Veröffentlicht`,templates:`Vorlagen`,builtIn:`Integriert`},i={search:`Vorlagen suchen…`,noResults:`Keine Vorlagen entsprechen deinen Filtern.`,clearFilter:`Filter zurücksetzen`,resultCount_one:`{{count}} Vorlage`,resultCount_other:`{{count}} Vorlagen`,needsSpec:`Spec nötig`,standalone:`Eigenständig`,needsSpecHint:`Läuft auf einer Rail mit einer gezogenen Spec`,standaloneHint:`Läuft eigenständig — einfach ein Projekt wählen`},a={API:`API`,Automation:`Automatisierung`,CI:`CI`,Database:`Datenbank`,Debugging:`Debugging`,DevOps:`DevOps`,Docs:`Doku`,Git:`Git`,Maintenance:`Wartung`,Performance:`Performance`,Planning:`Planung`,Quality:`Qualität`,Review:`Review`,Security:`Sicherheit`,Testing:`Tests`},o={draft:`Entwurf`,published:`Veröffentlicht`,running:`Läuft`},s={title:`Noch keine Loops`,body:`Erstelle einen von Grund auf neu oder beginne mit einer Vorlage.`},c={edit:`Bearbeiten`,delete:`Löschen`,publish:`Veröffentlichen`,unpublish:`Zurückziehen`,duplicate:`Duplizieren`,restoreBuiltin:`Original wiederherstellen`,use:`Vorlage verwenden`,preview:`Vorschau`,run:`Ausführen`,export:`Exportieren`,import:`Importieren`,select:`{{name}} auswählen`,exportLegacy:`Ursprünglichen Graphen exportieren`,originalCopyName:`Original: {{name}}`,convert:`In Core umwandeln`},l={nodes_one:`{{count}} Knoten`,nodes_other:`{{count}} Knoten`,usedIn:`In Verwendung · {{project}}`,builtinModified:`Bearbeitet`},u=`Diesen Loop löschen? Er verschwindet aus jeder Rail-Auswahl.`,d=`Neuer Loop`,f={load:`Loops konnten nicht geladen werden`,save:`Loop konnte nicht gespeichert werden`,publishInvalid:`Dieser Loop kann noch nicht veröffentlicht werden – behebe die hervorgehobenen Probleme.`,exportLegacy:`Der ursprüngliche Graph konnte nicht exportiert werden.`},p={back:`Zurück zu Loops`,save:`Speichern`,saved:`Loop gespeichert`,publish:`Veröffentlichen`,published:`Loop veröffentlicht`,builtin:{note:`Integrierter Loop. Du bearbeitest den integrierten Loop selbst: Nach dem Veröffentlichen gelten deine Änderungen für jede Rail, jeden Start aus dem Agenten-Chat und Companion, die ihn verwenden. Rails führen während der Bearbeitung weiter die zuletzt veröffentlichte Version aus. Mit „Original wiederherstellen“ kehrst du zur Standardversion zurück.`,restored:`Integrierter Loop auf die Originalversion zurückgesetzt`,confirmTitle:`Originalen integrierten Loop wiederherstellen?`,confirmBody:`Dadurch werden deine Änderungen an diesem integrierten Loop verworfen und seine Originalversion wird für alle Rails veröffentlicht, die ihn verwenden. Dupliziere ihn vorher, wenn du deine Version behalten möchtest.`},addNode:`Knoten hinzufügen`,deleteNode:`Knoten löschen`,config:{maxIterations:`Maximale Iterationen`,timeout:`Timeout (Min.)`,maxIterationsHint:`Obergrenze für Loop-Decider-Iterationen — der Loop stoppt beim Erreichen, auch wenn das Ziel nicht erfüllt ist. Verhindert Endlosschleifen.`,timeoutHint:`Echtzeit-Limit für den gesamten Lauf, in Minuten. Bei Überschreitung wird der Lauf gestoppt und als fehlgeschlagen markiert — ein Sicherheitsnetz neben den max. Iterationen. 0 deaktiviert dieses Zeitlimit; andere Budgets und der Abbruch bleiben wirksam.`,maxCost:`Max. Kosten ($)`,maxCostHint:`Optionales USD-Budget für den gesamten Lauf. Wird ZWISCHEN Schritten geprüft (die Kosten eines Schritts stehen erst nach dessen Ende fest), der Loop stoppt vor dem nächsten Schritt, sobald die Summe es überschreitet — kann um einen Schritt überschreiten. Bei Nicht-Claude-Anbietern sind die Kosten geschätzt. Leer = kein Limit.`},nodes:{start:`Start`,"ai-step":`KI-Schritt`,shell:`Shell`,decider:`Loop-Entscheider`,condition:`Bedingung`,end:`Ende`},inspector:{selectNode:`Wähle einen Knoten aus, um ihn zu bearbeiten.`,prompt:`Prompt`,provider:`Anbieter`,model:`Modell`,effort:`Denkaufwand`,command:`Befehl`,goal:`Ziel / Abbruchkriterien`,join:`Verknüpfung`,outcome:`Ergebnis`,startNote:`Der Einstiegspunkt des Loops. Verbinde ihn mit dem ersten Schritt.`,promptHint:`Klicke oder ziehe ein Token, um es in den Prompt einzufügen.`,tokensSpec:`Spec-Felder`,tokensJira:`Jira`,tokensCommands:`Befehle`,label:`Name`},branch:{continue:`↻ Fortsetzen`,stop:`✓ Stoppen`},edgesHelp:{label:`Wie Schritte verbunden werden`,body:`Pfeile legen die REIHENFOLGE der Ausführung fest, keine Daten — Boxen haben keine Eingangsports und Kanten übergeben keine Parameter. Jeder AI Step setzt automatisch seine Session fort (vollständiger vorheriger Kontext) plus eine kurze Zusammenfassung der vorherigen Schritte; nichts wird von Hand verdrahtet. Der Loop Decider hat zwei Ausgänge: ↻ Fortsetzen (Ziel nicht erreicht → zurück in die Schleife) und ✓ Stoppen (Ziel erreicht → beenden).`},arrange:{label:`Anordnen`,vertical:`Vertikal`,horizontal:`Horizontal`,grid:`Raster`,reset:`Zurücksetzen`},constants:{label:`Konstanten`,manage:`Konstanten verwalten`,title:`Loop-Konstanten`,empty:`Noch keine eigenen Konstanten.`,name:`NAME`,value:`Wert`,add:`Hinzufügen`,builtinBadge:`Integriert`},paste:{done_one:`{{count}} Schritt eingefügt`,done_other:`{{count}} Schritte eingefügt`},problems:{count_one:`{{count}} Problem`,count_other:`{{count}} Probleme`,NO_START:`Füge einen Start-Knoten hinzu.`,MULTIPLE_START:`Nur ein Start-Knoten ist erlaubt.`,NO_END:`Füge mindestens einen End-Knoten hinzu.`,ORPHAN:`Dieser Schritt ist vom Start nicht erreichbar.`,DECIDER_BRANCHES:`Der Loop Decider braucht einen Fortsetzen- und einen Stopp-Zweig.`,EMPTY_PROMPT:`Der KI-Schritt hat einen leeren Prompt.`,EMPTY_COMMAND:`Der Shell-Schritt hat einen leeren Befehl.`,EMPTY_GOAL:`Der Loop Decider hat kein Ziel.`,DEAD_END:`Dieser Schritt hat keine ausgehende Verbindung.`,MIXED_ENGINES:`Core-Workflows dürfen keine alten Schritte enthalten.`,CORE_OUTCOMES:`Verbinde unterschiedliche gültige Ergebnisse.`,CORE_PIECE:`Wähle einen Schritt und seine Parameter.`},preview:{label:`Vorschau`,title:`Probelauf-Vorschau`,sampleNote:`Spec-Werte sind Beispieldaten; Befehle und Konstanten werden wie zur Laufzeit aufgelöst.`,empty:`Keine Schritte zur Vorschau.`,error:`Vorschau fehlgeschlagen`},core:{unavailable:`Workflow-Engine nicht verfügbar. Core zum Hinzufügen oder Veröffentlichen aktualisieren.`,root:`Hauptworkflow`,components:`Komponenten`,componentName:`Komponentenname`,addComponent:`Komponente hinzufügen`,openComponent:`Komponente öffnen`,breadcrumbs:`Workflow-Navigation`,select:`Option auswählen`,valueType:`Werttyp`,addItem:`Element hinzufügen`,fieldName:`Feldname`,addField:`{{name}} hinzufügen`,removeField:`{{name}} entfernen`,variant:`Format für {{name}}`,tooDeep:`Der Wert ist zu tief verschachtelt.`,pieces:{prompt:`Prompt`,"role-turn":`Agent step`,decider:`Entscheidung`,condition:`Bedingung`,verify:`Prüfen`,shell:`Shell`,"openspec-validate":`OpenSpec validieren`,"openspec-archive":`OpenSpec archivieren`,approval:`Freigabe`,question:`Frage`,gate:`Pause`,map:`Zuordnen`,join:`Zusammenführen`,component:`Komponente`,implementation:`Implementierung`,end:`Ende`,assign:`Variablen setzen`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`KI`,verification:`Prüfung`,openspec:`OpenSpec`,control:`Ablaufsteuerung`},options:`Workflow-Optionen`,reviewerStep:`Knoten für Prüfnachweise`,reviewerAutomatic:`Automatisch (Implementierungsprüfungen)`,reviewerHint:`Wähle den Rollenschritt für strukturierte Prüfnachweise. Eine KI-Prüfung ersetzt nicht die Verifikation durch den Host.`,assignment:{set:`Werte setzen`,increment:`Zähler anpassen`},requiredContinue:`Fortsetzen, solange diese Bedingung erfüllt ist`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},m={steps:`Schritte`,limits:`max. {{iterations}} Iterationen · {{timeout}} Min. Timeout`,limitsNoTimeout:`max. {{iterations}} Iterationen · kein Timeout`,openInBuilder:`Im Builder öffnen`,builtin:`Integriert`},h=`Integriert`,g={title:`{{name}} ausführen`,subtitle:`Diesen Loop auf einem Projekt starten (kein Ticket nötig).`,project:`Projekt`,provider:`Anbieter`,model:`Modell`,effort:`Reasoning-Aufwand`,execute:`Ausführen`,noProjects:`Keine Projekte verfügbar.`,launched:`{{name}} wird ausgeführt`},_={"ship-and-green":{name:`Ship & Green`,description:`Vollständig autonom: spec implementieren, verifizieren und bei Fehlern nachbessern (Fix) — in der Schleife verifizieren → fixen → verifizieren, bis alles grün ist. Kein manuelles Eingreifen.`},"verify-pass":{name:`Verify Pass`,description:`Autonomes Verifizieren-und-Fixen: build/lint/Tests des Projekts erkennen und ausführen, dann bei Fehlern nachbessern — verifizieren → fixen → verifizieren, bis grün.`},"ci-watch":{name:`CI Watch`,description:`Fragt die CI-Checks des offenen PR ab (der Agent nutzt das CI-Tooling des Repos), bis jeder Check grün ist.`},"lint-and-fix":{name:`Lint & Fix`,description:`Der Agent erkennt und führt den lint des Projekts aus und behebt jedes Problem, iterierend, bis die Codebasis sauber ist.`},"type-safe":{name:`Type Safe`,description:`Der Agent erkennt und führt den Typchecker des Projekts aus und behebt jeden Fehler, iterierend, bis er sauber durchläuft.`},"coverage-climb":{name:`Coverage Climb`,description:`Der Agent führt das Coverage-Tooling des Projekts aus und ergänzt gezielte Tests, bis die Schwellenwerte erreicht sind.`},"build-fix":{name:`Build Fix`,description:`Der Agent erkennt und führt den Produktions-build des Projekts aus und behebt Kompilier-/Bundle-Fehler, bis er grün ist.`},"deploy-check":{name:`Deploy Check`,description:`Der Agent fragt den deploy-/Health-Status ab (mit dem deploy-Tooling des Projekts), bis der Dienst als gesund gemeldet wird.`},factory_implement:{name:`Implementieren`,description:`Setzt alle Specs des Rails in einem Lauf um: planen, implementieren, prüfen und verifizieren, Fehler beheben, bis die Checks bestehen.`},factory_freestyle:{name:`Freestyle`,description:`Übergibt die Spec direkt an das Modell mit voller Freiheit — ohne Pipeline, es arbeitet wie ein normaler Coding-Agent, dann verifizieren + verfeinern bis alles grün ist. Nur Claude.`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`OpenSpec-Lebenszyklus vom Ticket bis zum Archiv: Artefakte generieren (opsx:ff) → implementieren (opsx:apply) → verifizieren (opsx:verify); bei FAIL zurück und denselben Change nachbessern, bei PASS unbeaufsichtigt archivieren.`},factory_revision:{name:`Überarbeitung`,description:`Wendet die eine erbetene Änderung auf bereits gelieferte Arbeit an, lässt sie vom Reviewer neu bewerten und prüft bis grün. Keine Neuplanung.`}},v={selectInterrupt:`Offene Frage oder Freigabe auswählen`,answerQuestion:`Frage beantworten`,approval:`Freigabe`,approveContinue:`Freigeben und fortfahren`,paused:`Pausiert`,acceptance:`Abnahme`,verified:`Verifiziert`},y={title:`{{name}} in Core umwandeln`,description:`Core validiert den umgewandelten Graphen vor dem Speichern als Entwurf. Das Original bleibt exportierbar. Prüfe den neuen Workflow vor der Veröffentlichung.`,repository:`Repository für Shell-Schritte ohne Ziel`,selectRepository:`Ursprüngliches Repository auswählen`,submit:`Umwandeln und prüfen`,pending:`Wird umgewandelt…`,error:`Umwandlung fehlgeschlagen`,coreRequired:`Aktualisiere Core, um diesen Workflow umzuwandeln.`},b={title:`Core-Migrationsprüfung`,description:`Prüft jede gespeicherte Loop gegen den installierten Core. Nichts wird automatisch konvertiert oder veröffentlicht.`,check:`Prüfen`,checking:`Wird geprüft…`,failed:`Die Loops konnten nicht geprüft werden.`,empty:`Keine gespeicherten Loops.`,allCurrent:`Alle Loops laufen bereits mit Core und sind gültig.`,states:{current:`Aktuell`,invalid:`Vom installierten Core abgelehnt`,convertible:`Bereit zur Konvertierung`,needs_attention:`Braucht Aufmerksamkeit`,running:`Läuft`}},x={open:`Open in window`},S={title:e,subtitle:t,newLoop:n,sections:r,gallery:i,categories:a,status:o,empty:s,actions:c,card:l,confirmDelete:u,newLoopName:d,errors:f,builder:p,preview:m,builtInBadge:h,run:g,catalog:_,import:{done_one:`{{count}} Loop importiert`,done_other:`{{count}} Loops importiert`,skipped_one:`{{count}} Duplikat übersprungen: {{names}}`,skipped_other:`{{count}} Duplikate übersprungen: {{names}}`,invalid:`Diese Datei ist kein gültiger Loops-Export.`},core:v,conversion:y,migration:b,window:x};export{c as actions,p as builder,h as builtInBadge,l as card,_ as catalog,a as categories,u as confirmDelete,y as conversion,v as core,S as default,s as empty,f as errors,i as gallery,b as migration,n as newLoop,d as newLoopName,m as preview,g as run,r as sections,o as status,t as subtitle,e as title,x as window};
|
|
1
|
+
var e=`Loops`,t=`Wiederverwendbare Automatisierungs-Loops – projektübergreifend geteilt.`,n=`Neuer Loop`,r={drafts:`Entwürfe`,published:`Veröffentlicht`,templates:`Vorlagen`,builtIn:`Integriert`},i={search:`Vorlagen suchen…`,noResults:`Keine Vorlagen entsprechen deinen Filtern.`,clearFilter:`Filter zurücksetzen`,resultCount_one:`{{count}} Vorlage`,resultCount_other:`{{count}} Vorlagen`,needsSpec:`Spec nötig`,standalone:`Eigenständig`,needsSpecHint:`Läuft auf einer Rail mit einer gezogenen Spec`,standaloneHint:`Läuft eigenständig — einfach ein Projekt wählen`},a={API:`API`,Automation:`Automatisierung`,CI:`CI`,Database:`Datenbank`,Debugging:`Debugging`,DevOps:`DevOps`,Docs:`Doku`,Git:`Git`,Maintenance:`Wartung`,Performance:`Performance`,Planning:`Planung`,Quality:`Qualität`,Review:`Review`,Security:`Sicherheit`,Testing:`Tests`},o={draft:`Entwurf`,published:`Veröffentlicht`,running:`Läuft`},s={title:`Noch keine Loops`,body:`Erstelle einen von Grund auf neu oder beginne mit einer Vorlage.`},c={edit:`Bearbeiten`,delete:`Löschen`,publish:`Veröffentlichen`,unpublish:`Zurückziehen`,duplicate:`Duplizieren`,restoreBuiltin:`Original wiederherstellen`,use:`Vorlage verwenden`,preview:`Vorschau`,run:`Ausführen`,export:`Exportieren`,import:`Importieren`,select:`{{name}} auswählen`,exportLegacy:`Ursprünglichen Graphen exportieren`,originalCopyName:`Original: {{name}}`,convert:`In Core umwandeln`},l={nodes_one:`{{count}} Knoten`,nodes_other:`{{count}} Knoten`,usedIn:`In Verwendung · {{project}}`,builtinModified:`Bearbeitet`},u=`Diesen Loop löschen? Er verschwindet aus jeder Rail-Auswahl.`,d=`Neuer Loop`,f={load:`Loops konnten nicht geladen werden`,save:`Loop konnte nicht gespeichert werden`,publishInvalid:`Dieser Loop kann noch nicht veröffentlicht werden – behebe die hervorgehobenen Probleme.`,exportLegacy:`Der ursprüngliche Graph konnte nicht exportiert werden.`},p={back:`Zurück zu Loops`,save:`Speichern`,saved:`Loop gespeichert`,publish:`Veröffentlichen`,published:`Loop veröffentlicht`,builtin:{note:`Integrierter Loop. Du bearbeitest den integrierten Loop selbst: Nach dem Veröffentlichen gelten deine Änderungen für jede Rail, jeden Start aus dem Agenten-Chat und Companion, die ihn verwenden. Rails führen während der Bearbeitung weiter die zuletzt veröffentlichte Version aus. Mit „Original wiederherstellen“ kehrst du zur Standardversion zurück.`,restored:`Integrierter Loop auf die Originalversion zurückgesetzt`,confirmTitle:`Originalen integrierten Loop wiederherstellen?`,confirmBody:`Dadurch werden deine Änderungen an diesem integrierten Loop verworfen und seine Originalversion wird für alle Rails veröffentlicht, die ihn verwenden. Dupliziere ihn vorher, wenn du deine Version behalten möchtest.`},addNode:`Knoten hinzufügen`,deleteNode:`Knoten löschen`,config:{maxIterations:`Maximale Iterationen`,timeout:`Timeout (Min.)`,maxIterationsHint:`Obergrenze für Loop-Decider-Iterationen — der Loop stoppt beim Erreichen, auch wenn das Ziel nicht erfüllt ist. Verhindert Endlosschleifen.`,timeoutHint:`Echtzeit-Limit für den gesamten Lauf, in Minuten. Bei Überschreitung wird der Lauf gestoppt und als fehlgeschlagen markiert — ein Sicherheitsnetz neben den max. Iterationen. 0 deaktiviert dieses Zeitlimit; andere Budgets und der Abbruch bleiben wirksam.`,maxCost:`Max. Kosten ($)`,maxCostHint:`Optionales USD-Budget für den gesamten Lauf. Wird ZWISCHEN Schritten geprüft (die Kosten eines Schritts stehen erst nach dessen Ende fest), der Loop stoppt vor dem nächsten Schritt, sobald die Summe es überschreitet — kann um einen Schritt überschreiten. Bei Nicht-Claude-Anbietern sind die Kosten geschätzt. Leer = kein Limit.`},nodes:{start:`Start`,"ai-step":`KI-Schritt`,shell:`Shell`,decider:`Loop-Entscheider`,condition:`Bedingung`,end:`Ende`},inspector:{selectNode:`Wähle einen Knoten aus, um ihn zu bearbeiten.`,prompt:`Prompt`,provider:`Anbieter`,model:`Modell`,effort:`Denkaufwand`,command:`Befehl`,goal:`Ziel / Abbruchkriterien`,join:`Verknüpfung`,outcome:`Ergebnis`,startNote:`Der Einstiegspunkt des Loops. Verbinde ihn mit dem ersten Schritt.`,promptHint:`Klicke oder ziehe ein Token, um es in den Prompt einzufügen.`,tokensSpec:`Spec-Felder`,tokensJira:`Jira`,tokensCommands:`Befehle`,label:`Name`},branch:{continue:`↻ Fortsetzen`,stop:`✓ Stoppen`},edgesHelp:{label:`Wie Schritte verbunden werden`,body:`Pfeile legen die REIHENFOLGE der Ausführung fest, keine Daten — Boxen haben keine Eingangsports und Kanten übergeben keine Parameter. Jeder AI Step setzt automatisch seine Session fort (vollständiger vorheriger Kontext) plus eine kurze Zusammenfassung der vorherigen Schritte; nichts wird von Hand verdrahtet. Der Loop Decider hat zwei Ausgänge: ↻ Fortsetzen (Ziel nicht erreicht → zurück in die Schleife) und ✓ Stoppen (Ziel erreicht → beenden).`},arrange:{label:`Anordnen`,vertical:`Vertikal`,horizontal:`Horizontal`,grid:`Raster`,reset:`Zurücksetzen`},constants:{label:`Konstanten`,manage:`Konstanten verwalten`,title:`Loop-Konstanten`,empty:`Noch keine eigenen Konstanten.`,name:`NAME`,value:`Wert`,add:`Hinzufügen`,builtinBadge:`Integriert`},paste:{done_one:`{{count}} Schritt eingefügt`,done_other:`{{count}} Schritte eingefügt`},problems:{count_one:`{{count}} Problem`,count_other:`{{count}} Probleme`,NO_START:`Füge einen Start-Knoten hinzu.`,MULTIPLE_START:`Nur ein Start-Knoten ist erlaubt.`,NO_END:`Füge mindestens einen End-Knoten hinzu.`,ORPHAN:`Dieser Schritt ist vom Start nicht erreichbar.`,DECIDER_BRANCHES:`Der Loop Decider braucht einen Fortsetzen- und einen Stopp-Zweig.`,EMPTY_PROMPT:`Der KI-Schritt hat einen leeren Prompt.`,EMPTY_COMMAND:`Der Shell-Schritt hat einen leeren Befehl.`,EMPTY_GOAL:`Der Loop Decider hat kein Ziel.`,DEAD_END:`Dieser Schritt hat keine ausgehende Verbindung.`,MIXED_ENGINES:`Core-Workflows dürfen keine alten Schritte enthalten.`,CORE_OUTCOMES:`Verbinde unterschiedliche gültige Ergebnisse.`,CORE_PIECE:`Wähle einen Schritt und seine Parameter.`},preview:{label:`Vorschau`,title:`Probelauf-Vorschau`,sampleNote:`Spec-Werte sind Beispieldaten; Befehle und Konstanten werden wie zur Laufzeit aufgelöst.`,empty:`Keine Schritte zur Vorschau.`,error:`Vorschau fehlgeschlagen`},core:{unavailable:`Workflow-Engine nicht verfügbar. Core zum Hinzufügen oder Veröffentlichen aktualisieren.`,root:`Hauptworkflow`,components:`Komponenten`,componentName:`Komponentenname`,addComponent:`Komponente hinzufügen`,openComponent:`Komponente öffnen`,breadcrumbs:`Workflow-Navigation`,select:`Option auswählen`,valueType:`Werttyp`,addItem:`Element hinzufügen`,fieldName:`Feldname`,addField:`{{name}} hinzufügen`,removeField:`{{name}} entfernen`,variant:`Format für {{name}}`,tooDeep:`Der Wert ist zu tief verschachtelt.`,pieces:{prompt:`Prompt`,"role-turn":`Agent step`,decider:`Entscheidung`,condition:`Bedingung`,verify:`Prüfen`,shell:`Shell`,"openspec-validate":`OpenSpec validieren`,"openspec-archive":`OpenSpec archivieren`,approval:`Freigabe`,question:`Frage`,gate:`Pause`,map:`Zuordnen`,join:`Zusammenführen`,component:`Komponente`,implementation:`Implementierung`,end:`Ende`,assign:`Variablen setzen`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`KI`,verification:`Prüfung`,openspec:`OpenSpec`,control:`Ablaufsteuerung`},options:`Workflow-Optionen`,reviewerStep:`Knoten für Prüfnachweise`,reviewerAutomatic:`Automatisch (Implementierungsprüfungen)`,reviewerHint:`Wähle den Rollenschritt für strukturierte Prüfnachweise. Eine KI-Prüfung ersetzt nicht die Verifikation durch den Host.`,assignment:{set:`Werte setzen`,increment:`Zähler anpassen`},requiredContinue:`Fortsetzen, solange diese Bedingung erfüllt ist`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},m={steps:`Schritte`,limits:`max. {{iterations}} Iterationen · {{timeout}} Min. Timeout`,limitsNoTimeout:`max. {{iterations}} Iterationen · kein Timeout`,openInBuilder:`Im Builder öffnen`,builtin:`Integriert`},h=`Integriert`,g={title:`{{name}} ausführen`,subtitle:`Diesen Loop auf einem Projekt starten (kein Ticket nötig).`,project:`Projekt`,provider:`Anbieter`,model:`Modell`,effort:`Reasoning-Aufwand`,execute:`Ausführen`,noProjects:`Keine Projekte verfügbar.`,launched:`{{name}} wird ausgeführt`},_={"ship-and-green":{name:`Ship & Green`,description:`Vollständig autonom: spec implementieren, verifizieren und bei Fehlern nachbessern (Fix) — in der Schleife verifizieren → fixen → verifizieren, bis alles grün ist. Kein manuelles Eingreifen.`},"verify-pass":{name:`Verify Pass`,description:`Autonomes Verifizieren-und-Fixen: build/lint/Tests des Projekts erkennen und ausführen, dann bei Fehlern nachbessern — verifizieren → fixen → verifizieren, bis grün.`},"ci-watch":{name:`CI Watch`,description:`Fragt die CI-Checks des offenen PR ab (der Agent nutzt das CI-Tooling des Repos), bis jeder Check grün ist.`},"lint-and-fix":{name:`Lint & Fix`,description:`Der Agent erkennt und führt den lint des Projekts aus und behebt jedes Problem, iterierend, bis die Codebasis sauber ist.`},"type-safe":{name:`Type Safe`,description:`Der Agent erkennt und führt den Typchecker des Projekts aus und behebt jeden Fehler, iterierend, bis er sauber durchläuft.`},"coverage-climb":{name:`Coverage Climb`,description:`Der Agent führt das Coverage-Tooling des Projekts aus und ergänzt gezielte Tests, bis die Schwellenwerte erreicht sind.`},"build-fix":{name:`Build Fix`,description:`Der Agent erkennt und führt den Produktions-build des Projekts aus und behebt Kompilier-/Bundle-Fehler, bis er grün ist.`},"deploy-check":{name:`Deploy Check`,description:`Der Agent fragt den deploy-/Health-Status ab (mit dem deploy-Tooling des Projekts), bis der Dienst als gesund gemeldet wird.`},factory_implement:{name:`Implementieren`,description:`Setzt alle Specs des Rails in einem Lauf um: planen, implementieren, prüfen und verifizieren, Fehler beheben, bis die Checks bestehen.`},factory_freestyle:{name:`Freestyle`,description:`Übergibt die Spec direkt an das Modell mit voller Freiheit — ohne Pipeline, es arbeitet wie ein normaler Coding-Agent, dann verifizieren + verfeinern bis alles grün ist. Nur Claude.`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`OpenSpec-Lebenszyklus vom Ticket bis zum Archiv: Artefakte generieren (opsx:ff) → implementieren (opsx:apply) → verifizieren (opsx:verify); bei FAIL zurück und denselben Change nachbessern, bei PASS unbeaufsichtigt archivieren.`},factory_revision:{name:`Überarbeitung`,description:`Wendet die eine erbetene Änderung auf bereits gelieferte Arbeit an, lässt sie vom Reviewer neu bewerten und prüft bis grün. Keine Neuplanung.`}},v={selectInterrupt:`Offene Frage oder Freigabe auswählen`,answerQuestion:`Frage beantworten`,approval:`Freigabe`,approveContinue:`Freigeben und fortfahren`,paused:`Pausiert`,acceptance:`Abnahme`,verified:`Verifiziert`,hostBlocked:`Durch die Host-Umgebung blockiert`,blockerKind:{network:`Netzwerk`,credential:`Zugangsdaten`,"environment-variable":`Umgebungsvariable`,toolchain:`Toolchain`,setup:`Setup-Befehl`,environment:`Umgebung`,scope:`Außerhalb des Umfangs`},failingCommand:`Fehlgeschlagener Befehl`,inDirectory:`in {{cwd}}`,requiredAction:`Erforderliche Maßnahme`,copyCommand:`Befehl kopieren`,copiedCommand:`Kopiert`},y={title:`{{name}} in Core umwandeln`,description:`Core validiert den umgewandelten Graphen vor dem Speichern als Entwurf. Das Original bleibt exportierbar. Prüfe den neuen Workflow vor der Veröffentlichung.`,repository:`Repository für Shell-Schritte ohne Ziel`,selectRepository:`Ursprüngliches Repository auswählen`,submit:`Umwandeln und prüfen`,pending:`Wird umgewandelt…`,error:`Umwandlung fehlgeschlagen`,coreRequired:`Aktualisiere Core, um diesen Workflow umzuwandeln.`},b={title:`Core-Migrationsprüfung`,description:`Prüft jede gespeicherte Loop gegen den installierten Core. Nichts wird automatisch konvertiert oder veröffentlicht.`,check:`Prüfen`,checking:`Wird geprüft…`,failed:`Die Loops konnten nicht geprüft werden.`,empty:`Keine gespeicherten Loops.`,allCurrent:`Alle Loops laufen bereits mit Core und sind gültig.`,states:{current:`Aktuell`,invalid:`Vom installierten Core abgelehnt`,convertible:`Bereit zur Konvertierung`,needs_attention:`Braucht Aufmerksamkeit`,running:`Läuft`}},x={open:`Open in window`},S={title:e,subtitle:t,newLoop:n,sections:r,gallery:i,categories:a,status:o,empty:s,actions:c,card:l,confirmDelete:u,newLoopName:d,errors:f,builder:p,preview:m,builtInBadge:h,run:g,catalog:_,import:{done_one:`{{count}} Loop importiert`,done_other:`{{count}} Loops importiert`,skipped_one:`{{count}} Duplikat übersprungen: {{names}}`,skipped_other:`{{count}} Duplikate übersprungen: {{names}}`,invalid:`Diese Datei ist kein gültiger Loops-Export.`},core:v,conversion:y,migration:b,window:x};export{c as actions,p as builder,h as builtInBadge,l as card,_ as catalog,a as categories,u as confirmDelete,y as conversion,v as core,S as default,s as empty,f as errors,i as gallery,b as migration,n as newLoop,d as newLoopName,m as preview,g as run,r as sections,o as status,t as subtitle,e as title,x as window};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`Loops`,t=`可复用的自动化循环——在你所有项目间共享。`,n=`新建循环`,r={drafts:`草稿`,published:`已发布`,templates:`模板`,builtIn:`内置`},i={search:`搜索模板…`,noResults:`没有模板符合筛选条件。`,clearFilter:`清除筛选`,resultCount_one:`{{count}} 个模板`,resultCount_other:`{{count}} 个模板`,needsSpec:`需要规格`,standalone:`独立运行`,needsSpecHint:`在 rail 上运行,需拖入一个规格`,standaloneHint:`独立运行——只需选择一个项目`},a={API:`API`,Automation:`自动化`,CI:`CI`,Database:`数据库`,Debugging:`调试`,DevOps:`DevOps`,Docs:`文档`,Git:`Git`,Maintenance:`维护`,Performance:`性能`,Planning:`规划`,Quality:`质量`,Review:`评审`,Security:`安全`,Testing:`测试`},o={draft:`草稿`,published:`已发布`,running:`运行中`},s={title:`暂无循环`,body:`从零创建一个,或从模板开始。`},c={edit:`编辑`,delete:`删除`,publish:`发布`,unpublish:`取消发布`,duplicate:`复制`,restoreBuiltin:`恢复原始版本`,use:`使用模板`,preview:`预览`,run:`运行`,export:`导出`,import:`导入`,select:`选择 {{name}}`,exportLegacy:`导出原始图`,originalCopyName:`原始图:{{name}}`,convert:`转换为Core`},l={nodes_one:`{{count}} 个节点`,nodes_other:`{{count}} 个节点`,usedIn:`使用中 · {{project}}`,builtinModified:`已编辑`},u=`删除此循环?它将从所有 rail 选择器中消失。`,d=`新建循环`,f={load:`加载循环失败`,save:`保存循环失败`,publishInvalid:`此循环暂时无法发布——请修复高亮显示的问题。`,exportLegacy:`无法导出原始图。`},p={back:`返回循环列表`,save:`保存`,saved:`循环已保存`,publish:`发布`,published:`循环已发布`,builtin:{note:`内置循环。你正在编辑内置循环本身:发布后,你的更改将应用于使用它的每个轨道、代理聊天启动以及 Companion。编辑期间,轨道会继续运行最后发布的版本。使用“恢复原始版本”可回到默认版本。`,restored:`内置循环已恢复为原始版本`,confirmTitle:`恢复原始内置循环?`,confirmBody:`这将放弃你对此内置循环的更改,并为所有使用它的轨道发布其原始版本。如果想保留你的版本,请先复制它。`},addNode:`添加节点`,deleteNode:`删除节点`,config:{maxIterations:`最大迭代次数`,timeout:`超时(分钟)`,maxIterationsHint:`Loop Decider 迭代次数上限——达到后即使目标未达成也会停止循环。防止无限循环。`,timeoutHint:`整个运行的实际时间上限(分钟)。超过后运行将停止并标记为失败——与最大迭代次数一起作为安全网。 0 表示禁用此时间限制;其他预算和取消功能仍然有效。`,maxCost:`最大费用 ($)`,maxCostHint:`整个运行的可选美元预算。在步骤之间检查(每步费用只有在该步结束后才知道),因此当总额超过时循环会在下一步之前停止——可能超出一步。非 Claude 提供方的费用为估算。留空 = 不限制。`},nodes:{start:`开始`,"ai-step":`AI 步骤`,shell:`Shell`,decider:`循环决策器`,condition:`条件`,end:`结束`},inspector:{selectNode:`选择一个节点进行编辑。`,prompt:`提示词`,provider:`提供方`,model:`模型`,effort:`推理强度`,command:`命令`,goal:`目标 / 停止条件`,join:`合并`,outcome:`结果`,startNote:`循环的入口点。将其连接到第一个步骤。`,promptHint:`点击或拖动令牌将其插入提示词。`,tokensSpec:`Spec 字段`,tokensJira:`Jira`,tokensCommands:`命令`,label:`名称`},branch:{continue:`↻ 继续`,stop:`✓ 停止`},edgesHelp:{label:`步骤如何连接`,body:`箭头设定的是运行顺序,而非数据——节点没有输入端口,连线也不携带任何参数。每个 AI Step 都会自动恢复其会话(完整的先前上下文),并附带前序步骤的简短摘要;无需手动连线。Loop Decider 有两个输出:↻ 继续(目标未达成 → 循环返回)和 ✓ 停止(目标达成 → 退出)。`},arrange:{label:`排列`,vertical:`垂直`,horizontal:`水平`,grid:`网格`,reset:`重置`},constants:{label:`常量`,manage:`管理常量`,title:`循环常量`,empty:`还没有自定义常量。`,name:`名称`,value:`值`,add:`添加`,builtinBadge:`内置`},paste:{done_one:`已粘贴 {{count}} 个步骤`,done_other:`已粘贴 {{count}} 个步骤`},problems:{count_one:`{{count}} 个问题`,count_other:`{{count}} 个问题`,NO_START:`添加一个开始节点。`,MULTIPLE_START:`只允许一个开始节点。`,NO_END:`至少添加一个结束节点。`,ORPHAN:`该步骤无法从开始到达。`,DECIDER_BRANCHES:`Loop Decider 需要一个继续分支和一个停止分支。`,EMPTY_PROMPT:`AI 步骤的提示词为空。`,EMPTY_COMMAND:`Shell 步骤的命令为空。`,EMPTY_GOAL:`Loop Decider 没有目标。`,DEAD_END:`该步骤没有出向连接。`,MIXED_ENGINES:`不能混合旧版步骤与 Core 步骤。`,CORE_OUTCOMES:`请连接不同的有效结果。`,CORE_PIECE:`请选择步骤及其参数。`},preview:{label:`预览`,title:`试运行预览`,sampleNote:`Spec 值为示例数据;命令和常量按运行时的实际值解析。`,empty:`没有可预览的步骤。`,error:`预览失败`},core:{unavailable:`工作流引擎不可用。请更新 Core 以添加或发布步骤。`,root:`主工作流`,components:`组件`,componentName:`组件名称`,addComponent:`添加组件`,openComponent:`打开组件`,breadcrumbs:`工作流导航`,select:`请选择`,valueType:`值类型`,addItem:`添加项目`,fieldName:`字段名称`,addField:`添加 {{name}}`,removeField:`删除 {{name}}`,variant:`{{name}} 的格式`,tooDeep:`值的嵌套层级过深。`,pieces:{prompt:`提示词`,"role-turn":`Agent step`,decider:`决策`,condition:`条件`,verify:`验证`,shell:`Shell`,"openspec-validate":`验证 OpenSpec`,"openspec-archive":`归档 OpenSpec`,approval:`审批`,question:`提问`,gate:`暂停`,map:`遍历`,join:`合并`,component:`组件`,implementation:`实现`,end:`结束`,assign:`设置变量`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`AI`,verification:`验证`,openspec:`OpenSpec`,control:`流程控制`},options:`工作流选项`,reviewerStep:`审查证据节点`,reviewerAutomatic:`自动(实现审查)`,reviewerHint:`选择提供结构化审查的角色轮次。AI 审查不能替代主机验证。`,assignment:{set:`设置值`,increment:`调整计数器`},requiredContinue:`满足此条件时继续`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},m={steps:`步骤`,limits:`最多 {{iterations}} 次迭代 · {{timeout}} 分钟超时`,limitsNoTimeout:`最多 {{iterations}} 次迭代 · 无超时`,openInBuilder:`在构建器中打开`,builtin:`内置`},h=`内置`,g={title:`运行 {{name}}`,subtitle:`在某个项目上启动此循环(无需工单)。`,project:`项目`,provider:`提供方`,model:`模型`,effort:`推理强度`,execute:`执行`,noProjects:`没有可用的项目。`,launched:`正在运行 {{name}}`},_={"ship-and-green":{name:`交付并通过`,description:`全自动:实现 spec、验证,失败时自动修正(fix)——循环执行 验证 → 修复 → 验证,直到全部通过。无需人工干预。`},"verify-pass":{name:`验证通过`,description:`自动验证并修复:检测并运行项目的 build/lint/测试,失败时自动修正——验证 → 修复 → 验证,直到全部通过。`},"ci-watch":{name:`CI 监视`,description:`轮询当前已打开 PR 的 CI 检查(由 agent 使用仓库的 CI 工具),直到每一项检查都通过。`},"lint-and-fix":{name:`Lint 修复`,description:`agent 检测并运行项目的 linter,修复每一个问题,持续迭代直到代码库干净无误。`},"type-safe":{name:`类型安全`,description:`agent 检测并运行项目的类型检查器,解决每一个错误,持续迭代直到顺利通过。`},"coverage-climb":{name:`覆盖率提升`,description:`agent 运行项目的覆盖率工具并补充针对性测试,直到达到阈值。`},"build-fix":{name:`构建修复`,description:`agent 检测并运行项目的生产 build,修复编译/打包错误,直到顺利通过。`},"deploy-check":{name:`部署检查`,description:`agent 轮询部署/健康状态(使用项目的 deploy 工具),直到服务报告健康。`},factory_implement:{name:`实现`,description:`在一次运行中实现 Rail 上的所有 spec:规划、实现、评审和验证,并修复失败直到检查通过。`},factory_freestyle:{name:`Freestyle`,description:`将 spec 直接交给模型, 给予完全自由 — 无管线, 像普通编码智能体一样工作, 然后验证+改进直到全部通过。仅限 Claude。`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`从 ticket 到归档的 OpenSpec 生命周期: 生成工件 (opsx:ff) → 实现 (opsx:apply) → 验证 (opsx:verify); FAIL 则回环修正同一 change, PASS 则无人值守归档。`},factory_revision:{name:`修订`,description:`在已交付的成果之上应用你要求的那一处修改,让审阅者重新评分,然后验证到通过。不会从头重新规划。`}},v={selectInterrupt:`选择待处理的问题或审批`,answerQuestion:`回答问题`,approval:`审批`,approveContinue:`批准并继续`,paused:`已暂停`,acceptance:`验收`,verified
|
|
1
|
+
var e=`Loops`,t=`可复用的自动化循环——在你所有项目间共享。`,n=`新建循环`,r={drafts:`草稿`,published:`已发布`,templates:`模板`,builtIn:`内置`},i={search:`搜索模板…`,noResults:`没有模板符合筛选条件。`,clearFilter:`清除筛选`,resultCount_one:`{{count}} 个模板`,resultCount_other:`{{count}} 个模板`,needsSpec:`需要规格`,standalone:`独立运行`,needsSpecHint:`在 rail 上运行,需拖入一个规格`,standaloneHint:`独立运行——只需选择一个项目`},a={API:`API`,Automation:`自动化`,CI:`CI`,Database:`数据库`,Debugging:`调试`,DevOps:`DevOps`,Docs:`文档`,Git:`Git`,Maintenance:`维护`,Performance:`性能`,Planning:`规划`,Quality:`质量`,Review:`评审`,Security:`安全`,Testing:`测试`},o={draft:`草稿`,published:`已发布`,running:`运行中`},s={title:`暂无循环`,body:`从零创建一个,或从模板开始。`},c={edit:`编辑`,delete:`删除`,publish:`发布`,unpublish:`取消发布`,duplicate:`复制`,restoreBuiltin:`恢复原始版本`,use:`使用模板`,preview:`预览`,run:`运行`,export:`导出`,import:`导入`,select:`选择 {{name}}`,exportLegacy:`导出原始图`,originalCopyName:`原始图:{{name}}`,convert:`转换为Core`},l={nodes_one:`{{count}} 个节点`,nodes_other:`{{count}} 个节点`,usedIn:`使用中 · {{project}}`,builtinModified:`已编辑`},u=`删除此循环?它将从所有 rail 选择器中消失。`,d=`新建循环`,f={load:`加载循环失败`,save:`保存循环失败`,publishInvalid:`此循环暂时无法发布——请修复高亮显示的问题。`,exportLegacy:`无法导出原始图。`},p={back:`返回循环列表`,save:`保存`,saved:`循环已保存`,publish:`发布`,published:`循环已发布`,builtin:{note:`内置循环。你正在编辑内置循环本身:发布后,你的更改将应用于使用它的每个轨道、代理聊天启动以及 Companion。编辑期间,轨道会继续运行最后发布的版本。使用“恢复原始版本”可回到默认版本。`,restored:`内置循环已恢复为原始版本`,confirmTitle:`恢复原始内置循环?`,confirmBody:`这将放弃你对此内置循环的更改,并为所有使用它的轨道发布其原始版本。如果想保留你的版本,请先复制它。`},addNode:`添加节点`,deleteNode:`删除节点`,config:{maxIterations:`最大迭代次数`,timeout:`超时(分钟)`,maxIterationsHint:`Loop Decider 迭代次数上限——达到后即使目标未达成也会停止循环。防止无限循环。`,timeoutHint:`整个运行的实际时间上限(分钟)。超过后运行将停止并标记为失败——与最大迭代次数一起作为安全网。 0 表示禁用此时间限制;其他预算和取消功能仍然有效。`,maxCost:`最大费用 ($)`,maxCostHint:`整个运行的可选美元预算。在步骤之间检查(每步费用只有在该步结束后才知道),因此当总额超过时循环会在下一步之前停止——可能超出一步。非 Claude 提供方的费用为估算。留空 = 不限制。`},nodes:{start:`开始`,"ai-step":`AI 步骤`,shell:`Shell`,decider:`循环决策器`,condition:`条件`,end:`结束`},inspector:{selectNode:`选择一个节点进行编辑。`,prompt:`提示词`,provider:`提供方`,model:`模型`,effort:`推理强度`,command:`命令`,goal:`目标 / 停止条件`,join:`合并`,outcome:`结果`,startNote:`循环的入口点。将其连接到第一个步骤。`,promptHint:`点击或拖动令牌将其插入提示词。`,tokensSpec:`Spec 字段`,tokensJira:`Jira`,tokensCommands:`命令`,label:`名称`},branch:{continue:`↻ 继续`,stop:`✓ 停止`},edgesHelp:{label:`步骤如何连接`,body:`箭头设定的是运行顺序,而非数据——节点没有输入端口,连线也不携带任何参数。每个 AI Step 都会自动恢复其会话(完整的先前上下文),并附带前序步骤的简短摘要;无需手动连线。Loop Decider 有两个输出:↻ 继续(目标未达成 → 循环返回)和 ✓ 停止(目标达成 → 退出)。`},arrange:{label:`排列`,vertical:`垂直`,horizontal:`水平`,grid:`网格`,reset:`重置`},constants:{label:`常量`,manage:`管理常量`,title:`循环常量`,empty:`还没有自定义常量。`,name:`名称`,value:`值`,add:`添加`,builtinBadge:`内置`},paste:{done_one:`已粘贴 {{count}} 个步骤`,done_other:`已粘贴 {{count}} 个步骤`},problems:{count_one:`{{count}} 个问题`,count_other:`{{count}} 个问题`,NO_START:`添加一个开始节点。`,MULTIPLE_START:`只允许一个开始节点。`,NO_END:`至少添加一个结束节点。`,ORPHAN:`该步骤无法从开始到达。`,DECIDER_BRANCHES:`Loop Decider 需要一个继续分支和一个停止分支。`,EMPTY_PROMPT:`AI 步骤的提示词为空。`,EMPTY_COMMAND:`Shell 步骤的命令为空。`,EMPTY_GOAL:`Loop Decider 没有目标。`,DEAD_END:`该步骤没有出向连接。`,MIXED_ENGINES:`不能混合旧版步骤与 Core 步骤。`,CORE_OUTCOMES:`请连接不同的有效结果。`,CORE_PIECE:`请选择步骤及其参数。`},preview:{label:`预览`,title:`试运行预览`,sampleNote:`Spec 值为示例数据;命令和常量按运行时的实际值解析。`,empty:`没有可预览的步骤。`,error:`预览失败`},core:{unavailable:`工作流引擎不可用。请更新 Core 以添加或发布步骤。`,root:`主工作流`,components:`组件`,componentName:`组件名称`,addComponent:`添加组件`,openComponent:`打开组件`,breadcrumbs:`工作流导航`,select:`请选择`,valueType:`值类型`,addItem:`添加项目`,fieldName:`字段名称`,addField:`添加 {{name}}`,removeField:`删除 {{name}}`,variant:`{{name}} 的格式`,tooDeep:`值的嵌套层级过深。`,pieces:{prompt:`提示词`,"role-turn":`Agent step`,decider:`决策`,condition:`条件`,verify:`验证`,shell:`Shell`,"openspec-validate":`验证 OpenSpec`,"openspec-archive":`归档 OpenSpec`,approval:`审批`,question:`提问`,gate:`暂停`,map:`遍历`,join:`合并`,component:`组件`,implementation:`实现`,end:`结束`,assign:`设置变量`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`AI`,verification:`验证`,openspec:`OpenSpec`,control:`流程控制`},options:`工作流选项`,reviewerStep:`审查证据节点`,reviewerAutomatic:`自动(实现审查)`,reviewerHint:`选择提供结构化审查的角色轮次。AI 审查不能替代主机验证。`,assignment:{set:`设置值`,increment:`调整计数器`},requiredContinue:`满足此条件时继续`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},m={steps:`步骤`,limits:`最多 {{iterations}} 次迭代 · {{timeout}} 分钟超时`,limitsNoTimeout:`最多 {{iterations}} 次迭代 · 无超时`,openInBuilder:`在构建器中打开`,builtin:`内置`},h=`内置`,g={title:`运行 {{name}}`,subtitle:`在某个项目上启动此循环(无需工单)。`,project:`项目`,provider:`提供方`,model:`模型`,effort:`推理强度`,execute:`执行`,noProjects:`没有可用的项目。`,launched:`正在运行 {{name}}`},_={"ship-and-green":{name:`交付并通过`,description:`全自动:实现 spec、验证,失败时自动修正(fix)——循环执行 验证 → 修复 → 验证,直到全部通过。无需人工干预。`},"verify-pass":{name:`验证通过`,description:`自动验证并修复:检测并运行项目的 build/lint/测试,失败时自动修正——验证 → 修复 → 验证,直到全部通过。`},"ci-watch":{name:`CI 监视`,description:`轮询当前已打开 PR 的 CI 检查(由 agent 使用仓库的 CI 工具),直到每一项检查都通过。`},"lint-and-fix":{name:`Lint 修复`,description:`agent 检测并运行项目的 linter,修复每一个问题,持续迭代直到代码库干净无误。`},"type-safe":{name:`类型安全`,description:`agent 检测并运行项目的类型检查器,解决每一个错误,持续迭代直到顺利通过。`},"coverage-climb":{name:`覆盖率提升`,description:`agent 运行项目的覆盖率工具并补充针对性测试,直到达到阈值。`},"build-fix":{name:`构建修复`,description:`agent 检测并运行项目的生产 build,修复编译/打包错误,直到顺利通过。`},"deploy-check":{name:`部署检查`,description:`agent 轮询部署/健康状态(使用项目的 deploy 工具),直到服务报告健康。`},factory_implement:{name:`实现`,description:`在一次运行中实现 Rail 上的所有 spec:规划、实现、评审和验证,并修复失败直到检查通过。`},factory_freestyle:{name:`Freestyle`,description:`将 spec 直接交给模型, 给予完全自由 — 无管线, 像普通编码智能体一样工作, 然后验证+改进直到全部通过。仅限 Claude。`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`从 ticket 到归档的 OpenSpec 生命周期: 生成工件 (opsx:ff) → 实现 (opsx:apply) → 验证 (opsx:verify); FAIL 则回环修正同一 change, PASS 则无人值守归档。`},factory_revision:{name:`修订`,description:`在已交付的成果之上应用你要求的那一处修改,让审阅者重新评分,然后验证到通过。不会从头重新规划。`}},v={selectInterrupt:`选择待处理的问题或审批`,answerQuestion:`回答问题`,approval:`审批`,approveContinue:`批准并继续`,paused:`已暂停`,acceptance:`验收`,verified:`已验证`,hostBlocked:`被主机环境阻止`,blockerKind:{network:`网络`,credential:`凭据`,"environment-variable":`环境变量`,toolchain:`工具链`,setup:`设置命令`,environment:`环境`,scope:`超出范围`},failingCommand:`失败的命令`,inDirectory:`在 {{cwd}} 中`,requiredAction:`需要的操作`,copyCommand:`复制命令`,copiedCommand:`已复制`},y={title:`将{{name}}转换为Core`,description:`Core会先验证转换后的图,再将其保存为草稿。原始图仍可导出。发布前请检查新的工作流。`,repository:`未绑定shell步骤的仓库`,selectRepository:`选择原始仓库`,submit:`转换并检查`,pending:`正在转换…`,error:`转换失败`,coreRequired:`请更新Core以转换此工作流。`},b={title:`Core 迁移检查`,description:`根据已安装的 Core 检查每个已保存的循环。不会自动转换或发布任何内容。`,check:`检查`,checking:`正在检查…`,failed:`无法检查循环。`,empty:`没有已保存的循环。`,allCurrent:`所有循环都已在 Core 上运行并通过验证。`,states:{current:`最新`,invalid:`已安装的 Core 拒绝`,convertible:`可以转换`,needs_attention:`需要处理`,running:`运行中`}},x={open:`Open in window`},S={title:e,subtitle:t,newLoop:n,sections:r,gallery:i,categories:a,status:o,empty:s,actions:c,card:l,confirmDelete:u,newLoopName:d,errors:f,builder:p,preview:m,builtInBadge:h,run:g,catalog:_,import:{done_one:`已导入 {{count}} 个循环`,done_other:`已导入 {{count}} 个循环`,skipped_one:`已跳过 {{count}} 个重复项:{{names}}`,skipped_other:`已跳过 {{count}} 个重复项:{{names}}`,invalid:`该文件不是有效的循环导出。`},core:v,conversion:y,migration:b,window:x};export{c as actions,p as builder,h as builtInBadge,l as card,_ as catalog,a as categories,u as confirmDelete,y as conversion,v as core,S as default,s as empty,f as errors,i as gallery,b as migration,n as newLoop,d as newLoopName,m as preview,g as run,r as sections,o as status,t as subtitle,e as title,x as window};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({actions:()=>u,builder:()=>h,builtInBadge:()=>_,card:()=>d,catalog:()=>y,categories:()=>s,confirmDelete:()=>f,conversion:()=>x,core:()=>b,default:()=>w,empty:()=>l,errors:()=>m,gallery:()=>o,migration:()=>S,newLoop:()=>i,newLoopName:()=>p,preview:()=>g,run:()=>v,sections:()=>a,status:()=>c,subtitle:()=>r,title:()=>n,window:()=>C}),n=`Loops`,r=`Reusable automation loops — shared across all your projects.`,i=`New loop`,a={drafts:`Drafts`,published:`Published`,templates:`Templates`,builtIn:`Built-in`},o={search:`Search templates…`,noResults:`No templates match your filters.`,clearFilter:`Clear filters`,resultCount_one:`{{count}} template`,resultCount_other:`{{count}} templates`,needsSpec:`Needs spec`,standalone:`Standalone`,needsSpecHint:`Runs on a rail with a dragged spec`,standaloneHint:`Runs standalone — just pick a project`},s={API:`API`,Automation:`Automation`,CI:`CI`,Database:`Database`,Debugging:`Debugging`,DevOps:`DevOps`,Docs:`Docs`,Git:`Git`,Maintenance:`Maintenance`,Performance:`Performance`,Planning:`Planning`,Quality:`Quality`,Review:`Review`,Security:`Security`,Testing:`Testing`},c={draft:`Draft`,published:`Published`,running:`Running`},l={title:`No loops yet`,body:`Create one from scratch or start from a template.`},u={edit:`Edit`,delete:`Delete`,publish:`Publish`,unpublish:`Unpublish`,duplicate:`Duplicate`,restoreBuiltin:`Restore original`,use:`Use template`,preview:`Preview`,run:`Run`,export:`Export`,import:`Import`,select:`Select {{name}}`,exportLegacy:`Export original graph`,originalCopyName:`Original: {{name}}`,convert:`Convert to Core`},d={nodes_one:`{{count}} node`,nodes_other:`{{count}} nodes`,usedIn:`In use · {{project}}`,builtinModified:`Edited`},f=`Delete this loop? It will disappear from every rail picker.`,p=`New loop`,m={load:`Failed to load loops`,save:`Failed to save loop`,publishInvalid:`This loop can't be published yet — fix the highlighted issues.`,exportLegacy:`Could not export the original graph.`},h={back:`Back to Loops`,save:`Save`,saved:`Loop saved`,publish:`Publish`,published:`Loop published`,builtin:{note:`Built-in loop. You are editing the built-in itself: once published, your changes apply to every rail, agent-chat launch and companion that uses it. Rails keep running the last published version while you edit. Use Restore original to go back to the default.`,restored:`Built-in loop restored to its original version`,confirmTitle:`Restore the original built-in?`,confirmBody:`This discards your changes to this built-in and publishes its original version for every rail that uses it. Duplicate it first if you want to keep your version.`},addNode:`Add node`,deleteNode:`Delete node`,config:{maxIterations:`Max iterations`,timeout:`Timeout (min)`,maxIterationsHint:`Hard cap on Loop Decider iterations — the loop stops when it's reached even if the goal isn't met. Prevents runaway loops.`,timeoutHint:`Wall-clock limit for the whole run, in minutes. If exceeded, the run is stopped and marked failed — a safety net alongside max iterations. 0 disables this time limit; other budgets and cancellation still apply.`,maxCost:`Max cost ($)`,maxCostHint:`Optional USD budget for the whole run. Checked BETWEEN steps (a step’s cost is only known once it finishes), so the loop stops before the next step once the total crosses it — may overshoot by one step. For non-Claude providers the cost is an estimate. Empty = no cap.`},nodes:{start:`Start`,"ai-step":`AI Step`,shell:`Shell`,decider:`Loop Decider`,condition:`Condition`,end:`End`},inspector:{selectNode:`Select a node to edit it.`,prompt:`Prompt`,provider:`Provider`,model:`Model`,effort:`Reasoning effort`,command:`Command`,goal:`Goal / stop criteria`,join:`Join`,outcome:`Outcome`,startNote:`The entry point of the loop. Connect it to the first step.`,promptHint:`Click or drag a token to insert it into the prompt.`,tokensSpec:`Spec fields`,tokensJira:`Jira`,tokensCommands:`Commands`,label:`Name`},branch:{continue:`↻ Continue`,stop:`✓ Stop`},edgesHelp:{label:`How steps connect`,body:`Arrows set the run ORDER, not data — boxes have no input ports and edges carry no parameters. Each AI Step automatically resumes its session (full prior context) plus a short summary of previous steps; nothing is wired by hand. The Loop Decider has two outputs: ↻ Continue (goal not met → loop back) and ✓ Stop (goal met → exit).`},arrange:{label:`Arrange`,vertical:`Vertical`,horizontal:`Horizontal`,grid:`Grid`,reset:`Reset`},constants:{label:`Constants`,manage:`Manage constants`,title:`Loop constants`,empty:`No custom constants yet.`,name:`NAME`,value:`value`,add:`Add`,builtinBadge:`Built-in`},paste:{done_one:`Pasted {{count}} step`,done_other:`Pasted {{count}} steps`},problems:{count_one:`{{count}} problem`,count_other:`{{count}} problems`,NO_START:`Add a Start node.`,MULTIPLE_START:`Only one Start node is allowed.`,NO_END:`Add at least one End node.`,ORPHAN:`This step isn't reachable from Start.`,DECIDER_BRANCHES:`Loop Decider needs a Continue and a Stop branch.`,EMPTY_PROMPT:`AI Step has an empty prompt.`,EMPTY_COMMAND:`Shell step has an empty command.`,EMPTY_GOAL:`Loop Decider has no goal.`,DEAD_END:`This step has no outgoing connection.`,MIXED_ENGINES:`Core workflows cannot mix legacy steps.`,CORE_OUTCOMES:`Connect distinct valid outcomes.`,CORE_PIECE:`Select a piece and its parameters.`},preview:{label:`Preview`,title:`Dry-run preview`,sampleNote:`Spec values use sample data; commands and constants resolve exactly as they will at run time.`,empty:`No steps to preview.`,error:`Preview failed`},core:{unavailable:`Workflow engine unavailable. Update Core to add or publish pieces.`,root:`Root workflow`,components:`Components`,componentName:`Component name`,addComponent:`Add component`,openComponent:`Open component`,breadcrumbs:`Workflow navigation`,select:`Choose an option`,valueType:`Value type`,addItem:`Add item`,fieldName:`Field name`,addField:`Add {{name}}`,removeField:`Remove {{name}}`,variant:`Format for {{name}}`,tooDeep:`Nested value is too deep.`,pieces:{prompt:`Prompt`,"role-turn":`Agent step`,decider:`Decision`,condition:`Condition`,verify:`Verify`,shell:`Shell`,"openspec-validate":`Validate OpenSpec`,"openspec-archive":`Archive OpenSpec`,approval:`Approval`,question:`Question`,gate:`Gate`,map:`Map`,join:`Join`,component:`Component`,implementation:`Implementation`,end:`End`,assign:`Set variables`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`AI`,verification:`Verification`,openspec:`OpenSpec`,control:`Control flow`},options:`Workflow options`,reviewerStep:`Review evidence node`,reviewerAutomatic:`Automatic (implementation reviews)`,reviewerHint:`Choose the role turn that provides structured review evidence. AI review does not replace host verification.`,assignment:{set:`Set values`,increment:`Adjust counters`},requiredContinue:`Continue while this condition holds`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},g={steps:`Steps`,limits:`{{iterations}} iterations max · {{timeout}} min timeout`,limitsNoTimeout:`{{iterations}} iterations max · no timeout`,openInBuilder:`Open in builder`,builtin:`Built-in`},_=`Built-in`,v={title:`Run {{name}}`,subtitle:`Launch this loop on a project (no ticket needed).`,project:`Project`,provider:`Provider`,model:`Model`,effort:`Reasoning effort`,execute:`Execute`,noProjects:`No projects available.`,launched:`Running {{name}}`},y={"ship-and-green":{name:`Ship & Green`,description:`Fully autonomous: implement the spec, verify, and refine (fix) on failure — looping verify → fix → verify until everything is green. No human intervention.`},"verify-pass":{name:`Verify Pass`,description:`Autonomous verify-and-fix: detect and run the project's build/lint/tests, then refine on failure — verify → fix → verify until green.`},"ci-watch":{name:`CI Watch`,description:`Poll CI checks on the open PR (the agent uses the repo's CI tooling) until every check is green.`},"lint-and-fix":{name:`Lint & Fix`,description:`The agent detects and runs the project's linter and fixes every issue, iterating until the codebase is clean.`},"type-safe":{name:`Type Safe`,description:`The agent detects and runs the project's type checker and resolves every error, iterating until it passes cleanly.`},"coverage-climb":{name:`Coverage Climb`,description:`The agent runs the project's coverage tooling and adds focused tests until the thresholds pass.`},"build-fix":{name:`Build Fix`,description:`The agent detects and runs the project's production build and fixes compile/bundle errors until it is green.`},"deploy-check":{name:`Deploy Check`,description:`The agent polls the deployment/health status (using the project's deploy tooling) until the service reports healthy.`},factory_implement:{name:`Implement`,description:`Implements every spec on the rail in one run: plan, implement, review and verify, fixing failures until the checks pass.`},factory_freestyle:{name:`Freestyle`,description:`Hands the spec straight to the model with full freedom — no pipeline, it works like a regular coding agent, then verify + refine until green. Claude only.`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`Ticket-to-archive OpenSpec lifecycle: generate artifacts (opsx:ff) → implement (opsx:apply) → verify (opsx:verify); on FAIL loop back and amend the same change, on PASS archive it unattended.`},factory_revision:{name:`Revision`,description:`Applies the one change you asked for on top of work already delivered, has the reviewer re-grade it, then verifies until green. It does not re-plan from scratch.`}},b={selectInterrupt:`Select pending question or approval`,answerQuestion:`Answer question`,approval:`Approval`,approveContinue:`Approve and continue`,paused:`Paused`,acceptance:`Acceptance`,verified:`Verified`},x={title:`Convert {{name}} to Core`,description:`Core validates the converted graph before saving it as a draft. The original remains available for export. Review the new workflow before publishing.`,repository:`Repository for unbound shell steps`,selectRepository:`Choose the original repository`,submit:`Convert and review`,pending:`Converting…`,error:`Conversion failed`,coreRequired:`Update Core to convert this workflow.`},S={title:`Core migration check`,description:`Checks every saved loop against the installed Core. Nothing is converted or published automatically.`,check:`Check`,checking:`Checking…`,failed:`Could not check the loops.`,empty:`No saved loops.`,allCurrent:`Every loop already runs on Core and validates.`,states:{current:`Up to date`,invalid:`Rejected by the installed Core`,convertible:`Ready to convert`,needs_attention:`Needs attention`,running:`Running`}},C={open:`Open in window`},w={title:n,subtitle:r,newLoop:i,sections:a,gallery:o,categories:s,status:c,empty:l,actions:u,card:d,confirmDelete:f,newLoopName:p,errors:m,builder:h,preview:g,builtInBadge:_,run:v,catalog:y,import:{done_one:`Imported {{count}} loop`,done_other:`Imported {{count}} loops`,skipped_one:`Skipped {{count}} duplicate: {{names}}`,skipped_other:`Skipped {{count}} duplicates: {{names}}`,invalid:`That file isn't a valid loops export.`},core:b,conversion:x,migration:S,window:C};export{t};
|
|
1
|
+
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({actions:()=>u,builder:()=>h,builtInBadge:()=>_,card:()=>d,catalog:()=>y,categories:()=>s,confirmDelete:()=>f,conversion:()=>x,core:()=>b,default:()=>w,empty:()=>l,errors:()=>m,gallery:()=>o,migration:()=>S,newLoop:()=>i,newLoopName:()=>p,preview:()=>g,run:()=>v,sections:()=>a,status:()=>c,subtitle:()=>r,title:()=>n,window:()=>C}),n=`Loops`,r=`Reusable automation loops — shared across all your projects.`,i=`New loop`,a={drafts:`Drafts`,published:`Published`,templates:`Templates`,builtIn:`Built-in`},o={search:`Search templates…`,noResults:`No templates match your filters.`,clearFilter:`Clear filters`,resultCount_one:`{{count}} template`,resultCount_other:`{{count}} templates`,needsSpec:`Needs spec`,standalone:`Standalone`,needsSpecHint:`Runs on a rail with a dragged spec`,standaloneHint:`Runs standalone — just pick a project`},s={API:`API`,Automation:`Automation`,CI:`CI`,Database:`Database`,Debugging:`Debugging`,DevOps:`DevOps`,Docs:`Docs`,Git:`Git`,Maintenance:`Maintenance`,Performance:`Performance`,Planning:`Planning`,Quality:`Quality`,Review:`Review`,Security:`Security`,Testing:`Testing`},c={draft:`Draft`,published:`Published`,running:`Running`},l={title:`No loops yet`,body:`Create one from scratch or start from a template.`},u={edit:`Edit`,delete:`Delete`,publish:`Publish`,unpublish:`Unpublish`,duplicate:`Duplicate`,restoreBuiltin:`Restore original`,use:`Use template`,preview:`Preview`,run:`Run`,export:`Export`,import:`Import`,select:`Select {{name}}`,exportLegacy:`Export original graph`,originalCopyName:`Original: {{name}}`,convert:`Convert to Core`},d={nodes_one:`{{count}} node`,nodes_other:`{{count}} nodes`,usedIn:`In use · {{project}}`,builtinModified:`Edited`},f=`Delete this loop? It will disappear from every rail picker.`,p=`New loop`,m={load:`Failed to load loops`,save:`Failed to save loop`,publishInvalid:`This loop can't be published yet — fix the highlighted issues.`,exportLegacy:`Could not export the original graph.`},h={back:`Back to Loops`,save:`Save`,saved:`Loop saved`,publish:`Publish`,published:`Loop published`,builtin:{note:`Built-in loop. You are editing the built-in itself: once published, your changes apply to every rail, agent-chat launch and companion that uses it. Rails keep running the last published version while you edit. Use Restore original to go back to the default.`,restored:`Built-in loop restored to its original version`,confirmTitle:`Restore the original built-in?`,confirmBody:`This discards your changes to this built-in and publishes its original version for every rail that uses it. Duplicate it first if you want to keep your version.`},addNode:`Add node`,deleteNode:`Delete node`,config:{maxIterations:`Max iterations`,timeout:`Timeout (min)`,maxIterationsHint:`Hard cap on Loop Decider iterations — the loop stops when it's reached even if the goal isn't met. Prevents runaway loops.`,timeoutHint:`Wall-clock limit for the whole run, in minutes. If exceeded, the run is stopped and marked failed — a safety net alongside max iterations. 0 disables this time limit; other budgets and cancellation still apply.`,maxCost:`Max cost ($)`,maxCostHint:`Optional USD budget for the whole run. Checked BETWEEN steps (a step’s cost is only known once it finishes), so the loop stops before the next step once the total crosses it — may overshoot by one step. For non-Claude providers the cost is an estimate. Empty = no cap.`},nodes:{start:`Start`,"ai-step":`AI Step`,shell:`Shell`,decider:`Loop Decider`,condition:`Condition`,end:`End`},inspector:{selectNode:`Select a node to edit it.`,prompt:`Prompt`,provider:`Provider`,model:`Model`,effort:`Reasoning effort`,command:`Command`,goal:`Goal / stop criteria`,join:`Join`,outcome:`Outcome`,startNote:`The entry point of the loop. Connect it to the first step.`,promptHint:`Click or drag a token to insert it into the prompt.`,tokensSpec:`Spec fields`,tokensJira:`Jira`,tokensCommands:`Commands`,label:`Name`},branch:{continue:`↻ Continue`,stop:`✓ Stop`},edgesHelp:{label:`How steps connect`,body:`Arrows set the run ORDER, not data — boxes have no input ports and edges carry no parameters. Each AI Step automatically resumes its session (full prior context) plus a short summary of previous steps; nothing is wired by hand. The Loop Decider has two outputs: ↻ Continue (goal not met → loop back) and ✓ Stop (goal met → exit).`},arrange:{label:`Arrange`,vertical:`Vertical`,horizontal:`Horizontal`,grid:`Grid`,reset:`Reset`},constants:{label:`Constants`,manage:`Manage constants`,title:`Loop constants`,empty:`No custom constants yet.`,name:`NAME`,value:`value`,add:`Add`,builtinBadge:`Built-in`},paste:{done_one:`Pasted {{count}} step`,done_other:`Pasted {{count}} steps`},problems:{count_one:`{{count}} problem`,count_other:`{{count}} problems`,NO_START:`Add a Start node.`,MULTIPLE_START:`Only one Start node is allowed.`,NO_END:`Add at least one End node.`,ORPHAN:`This step isn't reachable from Start.`,DECIDER_BRANCHES:`Loop Decider needs a Continue and a Stop branch.`,EMPTY_PROMPT:`AI Step has an empty prompt.`,EMPTY_COMMAND:`Shell step has an empty command.`,EMPTY_GOAL:`Loop Decider has no goal.`,DEAD_END:`This step has no outgoing connection.`,MIXED_ENGINES:`Core workflows cannot mix legacy steps.`,CORE_OUTCOMES:`Connect distinct valid outcomes.`,CORE_PIECE:`Select a piece and its parameters.`},preview:{label:`Preview`,title:`Dry-run preview`,sampleNote:`Spec values use sample data; commands and constants resolve exactly as they will at run time.`,empty:`No steps to preview.`,error:`Preview failed`},core:{unavailable:`Workflow engine unavailable. Update Core to add or publish pieces.`,root:`Root workflow`,components:`Components`,componentName:`Component name`,addComponent:`Add component`,openComponent:`Open component`,breadcrumbs:`Workflow navigation`,select:`Choose an option`,valueType:`Value type`,addItem:`Add item`,fieldName:`Field name`,addField:`Add {{name}}`,removeField:`Remove {{name}}`,variant:`Format for {{name}}`,tooDeep:`Nested value is too deep.`,pieces:{prompt:`Prompt`,"role-turn":`Agent step`,decider:`Decision`,condition:`Condition`,verify:`Verify`,shell:`Shell`,"openspec-validate":`Validate OpenSpec`,"openspec-archive":`Archive OpenSpec`,approval:`Approval`,question:`Question`,gate:`Gate`,map:`Map`,join:`Join`,component:`Component`,implementation:`Implementation`,end:`End`,assign:`Set variables`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`AI`,verification:`Verification`,openspec:`OpenSpec`,control:`Control flow`},options:`Workflow options`,reviewerStep:`Review evidence node`,reviewerAutomatic:`Automatic (implementation reviews)`,reviewerHint:`Choose the role turn that provides structured review evidence. AI review does not replace host verification.`,assignment:{set:`Set values`,increment:`Adjust counters`},requiredContinue:`Continue while this condition holds`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},g={steps:`Steps`,limits:`{{iterations}} iterations max · {{timeout}} min timeout`,limitsNoTimeout:`{{iterations}} iterations max · no timeout`,openInBuilder:`Open in builder`,builtin:`Built-in`},_=`Built-in`,v={title:`Run {{name}}`,subtitle:`Launch this loop on a project (no ticket needed).`,project:`Project`,provider:`Provider`,model:`Model`,effort:`Reasoning effort`,execute:`Execute`,noProjects:`No projects available.`,launched:`Running {{name}}`},y={"ship-and-green":{name:`Ship & Green`,description:`Fully autonomous: implement the spec, verify, and refine (fix) on failure — looping verify → fix → verify until everything is green. No human intervention.`},"verify-pass":{name:`Verify Pass`,description:`Autonomous verify-and-fix: detect and run the project's build/lint/tests, then refine on failure — verify → fix → verify until green.`},"ci-watch":{name:`CI Watch`,description:`Poll CI checks on the open PR (the agent uses the repo's CI tooling) until every check is green.`},"lint-and-fix":{name:`Lint & Fix`,description:`The agent detects and runs the project's linter and fixes every issue, iterating until the codebase is clean.`},"type-safe":{name:`Type Safe`,description:`The agent detects and runs the project's type checker and resolves every error, iterating until it passes cleanly.`},"coverage-climb":{name:`Coverage Climb`,description:`The agent runs the project's coverage tooling and adds focused tests until the thresholds pass.`},"build-fix":{name:`Build Fix`,description:`The agent detects and runs the project's production build and fixes compile/bundle errors until it is green.`},"deploy-check":{name:`Deploy Check`,description:`The agent polls the deployment/health status (using the project's deploy tooling) until the service reports healthy.`},factory_implement:{name:`Implement`,description:`Implements every spec on the rail in one run: plan, implement, review and verify, fixing failures until the checks pass.`},factory_freestyle:{name:`Freestyle`,description:`Hands the spec straight to the model with full freedom — no pipeline, it works like a regular coding agent, then verify + refine until green. Claude only.`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`Ticket-to-archive OpenSpec lifecycle: generate artifacts (opsx:ff) → implement (opsx:apply) → verify (opsx:verify); on FAIL loop back and amend the same change, on PASS archive it unattended.`},factory_revision:{name:`Revision`,description:`Applies the one change you asked for on top of work already delivered, has the reviewer re-grade it, then verifies until green. It does not re-plan from scratch.`}},b={selectInterrupt:`Select pending question or approval`,answerQuestion:`Answer question`,approval:`Approval`,approveContinue:`Approve and continue`,paused:`Paused`,acceptance:`Acceptance`,verified:`Verified`,hostBlocked:`Blocked by the host environment`,blockerKind:{network:`Network`,credential:`Credentials`,"environment-variable":`Environment variable`,toolchain:`Toolchain`,setup:`Setup command`,environment:`Environment`,scope:`Out of scope`},failingCommand:`Failing command`,inDirectory:`in {{cwd}}`,requiredAction:`Required action`,copyCommand:`Copy command`,copiedCommand:`Copied`},x={title:`Convert {{name}} to Core`,description:`Core validates the converted graph before saving it as a draft. The original remains available for export. Review the new workflow before publishing.`,repository:`Repository for unbound shell steps`,selectRepository:`Choose the original repository`,submit:`Convert and review`,pending:`Converting…`,error:`Conversion failed`,coreRequired:`Update Core to convert this workflow.`},S={title:`Core migration check`,description:`Checks every saved loop against the installed Core. Nothing is converted or published automatically.`,check:`Check`,checking:`Checking…`,failed:`Could not check the loops.`,empty:`No saved loops.`,allCurrent:`Every loop already runs on Core and validates.`,states:{current:`Up to date`,invalid:`Rejected by the installed Core`,convertible:`Ready to convert`,needs_attention:`Needs attention`,running:`Running`}},C={open:`Open in window`},w={title:n,subtitle:r,newLoop:i,sections:a,gallery:o,categories:s,status:c,empty:l,actions:u,card:d,confirmDelete:f,newLoopName:p,errors:m,builder:h,preview:g,builtInBadge:_,run:v,catalog:y,import:{done_one:`Imported {{count}} loop`,done_other:`Imported {{count}} loops`,skipped_one:`Skipped {{count}} duplicate: {{names}}`,skipped_other:`Skipped {{count}} duplicates: {{names}}`,invalid:`That file isn't a valid loops export.`},core:b,conversion:x,migration:S,window:C};export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`Loops`,t=`Bucles de automatización reutilizables — compartidos entre todos tus proyectos.`,n=`Nuevo loop`,r={drafts:`Borradores`,published:`Publicados`,templates:`Plantillas`,builtIn:`Integrados`},i={search:`Buscar plantillas…`,noResults:`Ninguna plantilla coincide con los filtros.`,clearFilter:`Limpiar filtros`,resultCount_one:`{{count}} plantilla`,resultCount_other:`{{count}} plantillas`,needsSpec:`Requiere spec`,standalone:`Autónoma`,needsSpecHint:`Se ejecuta en un rail con una spec arrastrada`,standaloneHint:`Se ejecuta sola — solo elige un proyecto`},a={API:`API`,Automation:`Automatización`,CI:`CI`,Database:`Base de datos`,Debugging:`Depuración`,DevOps:`DevOps`,Docs:`Docs`,Git:`Git`,Maintenance:`Mantenimiento`,Performance:`Rendimiento`,Planning:`Planificación`,Quality:`Calidad`,Review:`Revisión`,Security:`Seguridad`,Testing:`Pruebas`},o={draft:`Borrador`,published:`Publicado`,running:`En ejecución`},s={title:`Aún no hay loops`,body:`Crea uno desde cero o empieza a partir de una plantilla.`},c={edit:`Editar`,delete:`Eliminar`,publish:`Publicar`,unpublish:`Despublicar`,duplicate:`Duplicar`,restoreBuiltin:`Restaurar original`,use:`Usar plantilla`,preview:`Vista previa`,run:`Ejecutar`,export:`Exportar`,import:`Importar`,select:`Seleccionar {{name}}`,exportLegacy:`Exportar grafo original`,originalCopyName:`Original: {{name}}`,convert:`Convertir a Core`},l={nodes_one:`{{count}} nodo`,nodes_other:`{{count}} nodos`,usedIn:`En uso · {{project}}`,builtinModified:`Editado`},u=`¿Eliminar este loop? Desaparecerá de todos los selectores de rieles.`,d=`Nuevo loop`,f={load:`No se pudieron cargar los loops`,save:`No se pudo guardar el loop`,publishInvalid:`Este loop aún no se puede publicar — corrige los problemas resaltados.`,exportLegacy:`No se pudo exportar el grafo original.`},p={back:`Volver a los loops`,save:`Guardar`,saved:`Loop guardado`,publish:`Publicar`,published:`Loop publicado`,builtin:{note:`Loop integrado. Estás editando el propio loop integrado: al publicarlo, tus cambios se aplican en todos los rails, lanzamientos desde el chat del agente y en Companion donde se use. Los rails siguen ejecutando la última versión publicada mientras editas. Usa Restaurar original para volver a la versión por defecto.`,restored:`Loop integrado restaurado a su versión original`,confirmTitle:`¿Restaurar el loop integrado original?`,confirmBody:`Esto descarta tus cambios en este loop integrado y publica su versión original para todos los rails que lo usan. Duplícalo antes si quieres conservar tu versión.`},addNode:`Añadir nodo`,deleteNode:`Eliminar nodo`,config:{maxIterations:`Iteraciones máximas`,timeout:`Tiempo límite (min)`,maxIterationsHint:`Tope de iteraciones del Loop Decider — el loop se detiene al alcanzarlo aunque no se cumpla el objetivo. Evita bucles infinitos.`,timeoutHint:`Límite de tiempo real de toda la ejecución, en minutos. Si se supera, la ejecución se detiene y se marca como fallida — una red de seguridad junto a las iteraciones máximas. 0 desactiva este límite de tiempo; los demás presupuestos y la cancelación siguen activos.`,maxCost:`Coste máx ($)`,maxCostHint:`Presupuesto opcional en USD para toda la ejecución. Se comprueba ENTRE pasos (el coste de un paso solo se sabe al terminarlo), así que el loop para antes del siguiente paso cuando el total lo supera — puede pasarse un paso. En proveedores no-Claude el coste es estimado. Vacío = sin tope.`},nodes:{start:`Inicio`,"ai-step":`Paso de IA`,shell:`Shell`,decider:`Decisor del loop`,condition:`Condición`,end:`Fin`},inspector:{selectNode:`Selecciona un nodo para editarlo.`,prompt:`Prompt`,provider:`Proveedor`,model:`Modelo`,effort:`Esfuerzo de razonamiento`,command:`Comando`,goal:`Objetivo / criterio de parada`,join:`Unión`,outcome:`Resultado`,startNote:`El punto de entrada del loop. Conéctalo al primer paso.`,promptHint:`Haz clic o arrastra un token para insertarlo en el prompt.`,tokensSpec:`Campos del spec`,tokensJira:`Jira`,tokensCommands:`Comandos`,label:`Nombre`},branch:{continue:`↻ Continuar`,stop:`✓ Detener`},edgesHelp:{label:`Cómo se conectan los pasos`,body:`Las flechas marcan el ORDEN de ejecución, no los datos: las cajas no tienen puertos de entrada y las conexiones no transportan parámetros. Cada AI Step reanuda automáticamente su sesión (con todo el contexto previo) más un resumen breve de los pasos anteriores; nada se conecta a mano. El Loop Decider tiene dos salidas: ↻ Continuar (objetivo no cumplido → volver al bucle) y ✓ Detener (objetivo cumplido → salir).`},arrange:{label:`Ordenar`,vertical:`Vertical`,horizontal:`Horizontal`,grid:`Cuadrícula`,reset:`Restablecer`},constants:{label:`Constantes`,manage:`Gestionar constantes`,title:`Constantes del loop`,empty:`Aún no hay constantes personalizadas.`,name:`NOMBRE`,value:`valor`,add:`Añadir`,builtinBadge:`Integradas`},paste:{done_one:`{{count}} paso pegado`,done_other:`{{count}} pasos pegados`},problems:{count_one:`{{count}} problema`,count_other:`{{count}} problemas`,NO_START:`Añade un nodo de Inicio.`,MULTIPLE_START:`Solo se permite un nodo de Inicio.`,NO_END:`Añade al menos un nodo de Fin.`,ORPHAN:`Este paso no es alcanzable desde Inicio.`,DECIDER_BRANCHES:`El Decisor necesita una rama Continuar y otra Detener.`,EMPTY_PROMPT:`El Paso de IA tiene el prompt vacío.`,EMPTY_COMMAND:`El paso Shell tiene el comando vacío.`,EMPTY_GOAL:`El Decisor no tiene objetivo.`,DEAD_END:`Este paso no tiene conexión de salida.`,MIXED_ENGINES:`No mezcles pasos antiguos con piezas de Core.`,CORE_OUTCOMES:`Conecta resultados distintos y válidos.`,CORE_PIECE:`Selecciona una pieza y sus parámetros.`},preview:{label:`Previsualizar`,title:`Previsualización (dry-run)`,sampleNote:`Los valores del spec son de ejemplo; comandos y constantes se resuelven tal cual en ejecución.`,empty:`No hay pasos que previsualizar.`,error:`Falló la previsualización`},core:{unavailable:`Motor de workflows no disponible. Actualiza Core para añadir o publicar piezas.`,root:`Workflow principal`,components:`Componentes`,componentName:`Nombre del componente`,addComponent:`Añadir componente`,openComponent:`Abrir componente`,breadcrumbs:`Navegación del workflow`,select:`Elige una opción`,valueType:`Tipo de valor`,addItem:`Añadir elemento`,fieldName:`Nombre del campo`,addField:`Añadir {{name}}`,removeField:`Eliminar {{name}}`,variant:`Formato de {{name}}`,tooDeep:`El valor tiene demasiados niveles.`,pieces:{prompt:`Prompt`,"role-turn":`Paso agente`,decider:`Decisión`,condition:`Condición`,verify:`Verificar`,shell:`Shell`,"openspec-validate":`Validar OpenSpec`,"openspec-archive":`Archivar OpenSpec`,approval:`Aprobación`,question:`Pregunta`,gate:`Pausa`,map:`Mapear`,join:`Unir`,component:`Componente`,implementation:`Implementación`,end:`Fin`,assign:`Asignar variables`,"implementation-step":`Paso de implementación`,"artifact-contract":`Comprobar artefactos`},groups:{ai:`IA`,verification:`Verificación`,openspec:`OpenSpec`,control:`Control de flujo`},options:`Opciones del workflow`,reviewerStep:`Nodo de evidencia de revisión`,reviewerAutomatic:`Automático (revisiones de implementación)`,reviewerHint:`Elige el turno de rol que aporta la revisión estructurada. La revisión de IA no sustituye la verificación del host.`,assignment:{set:`Asignar valores`,increment:`Ajustar contadores`},requiredContinue:`Continuar mientras se cumpla esta condición`,agentTaskDefault:`Ejecuta la tarea definida para este paso usando el contexto del workflow.`,legacyImplementation:`Este paso conserva las fases de una versión anterior. Para definir tu propio paso, añade un Paso agente. En los loops integrados, Restaurar original carga el nuevo flujo.`},loopSettings:`Ajustes avanzados`},m={steps:`Pasos`,limits:`máx. {{iterations}} iteraciones · {{timeout}} min de timeout`,limitsNoTimeout:`máx. {{iterations}} iteraciones · sin timeout`,openInBuilder:`Abrir en el builder`,builtin:`Integrado`},h=`Integrado`,g={title:`Ejecutar {{name}}`,subtitle:`Lanza este loop en un proyecto (sin ticket).`,project:`Proyecto`,provider:`Proveedor`,model:`Modelo`,effort:`Esfuerzo de razonamiento`,execute:`Ejecutar`,noProjects:`No hay proyectos disponibles.`,launched:`Ejecutando {{name}}`},_={"ship-and-green":{name:`Ship & Green`,description:`Totalmente autónomo: implementa la spec, verifica y refina (corrige) cuando falla, encadenando verificar → corregir → verificar hasta que todo esté en verde. Sin intervención humana.`},"verify-pass":{name:`Verificación`,description:`Verifica y corrige de forma autónoma: detecta y ejecuta el build, el lint y los tests del proyecto y luego refina cuando falla, encadenando verificar → corregir → verificar hasta que esté en verde.`},"ci-watch":{name:`Vigilar CI`,description:`Consulta los checks de CI del PR abierto (el agente usa las herramientas de CI del repositorio) hasta que todos los checks estén en verde.`},"lint-and-fix":{name:`Lint y corregir`,description:`El agente detecta y ejecuta el linter del proyecto y corrige cada incidencia, iterando hasta que el código esté limpio.`},"type-safe":{name:`Tipado seguro`,description:`El agente detecta y ejecuta el comprobador de tipos del proyecto y resuelve cada error, iterando hasta que pase sin problemas.`},"coverage-climb":{name:`Subir cobertura`,description:`El agente ejecuta las herramientas de cobertura del proyecto y añade tests específicos hasta superar los umbrales.`},"build-fix":{name:`Arreglar build`,description:`El agente detecta y ejecuta el build de producción del proyecto y corrige los errores de compilación o de empaquetado hasta que esté en verde.`},"deploy-check":{name:`Comprobar deploy`,description:`El agente consulta el estado del deploy y de salud (usando las herramientas de deploy del proyecto) hasta que el servicio se reporte saludable.`},factory_implement:{name:`Implementar`,description:`Implementa todas las specs del rail en una sola ejecución: planifica, implementa, revisa y verifica, corrigiendo fallos hasta que pasen las comprobaciones.`},factory_freestyle:{name:`Freestyle`,description:`Entrega la spec directamente al modelo con total libertad — sin pipeline, trabaja como un agente de código normal, y después verifica + refina hasta quedar en verde. Solo Claude.`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`Ciclo OpenSpec de ticket a archivo: genera artefactos (opsx:ff) → implementa (opsx:apply) → verifica (opsx:verify); con FAIL vuelve atrás y enmienda el mismo change, con PASS lo archiva sin intervención.`},factory_revision:{name:`Revisión`,description:`Aplica el único cambio que pediste sobre el trabajo ya entregado, hace que el revisor lo vuelva a puntuar y verifica hasta que esté verde. No replanifica desde cero.`}},v={selectInterrupt:`Selecciona la pregunta o aprobación pendiente`,answerQuestion:`Responder pregunta`,approval:`Aprobación`,approveContinue:`Aprobar y continuar`,paused:`En pausa`,acceptance:`Aceptación`,verified:`Verificado`},y={title:`Convertir {{name}} a Core`,description:`Core valida el grafo convertido antes de guardarlo como borrador. El original sigue disponible para exportar. Revisa el nuevo workflow antes de publicarlo.`,repository:`Repositorio de los pasos shell sin destino`,selectRepository:`Elige el repositorio original`,submit:`Convertir y revisar`,pending:`Convirtiendo…`,error:`No se pudo convertir`,coreRequired:`Actualiza Core para convertir este workflow.`},b={title:`Comprobación de migración a Core`,description:`Comprueba cada loop guardado contra el Core instalado. No se convierte ni se publica nada automáticamente.`,check:`Comprobar`,checking:`Comprobando…`,failed:`No se pudieron comprobar los loops.`,empty:`No hay loops guardados.`,allCurrent:`Todos los loops ya usan Core y son válidos.`,states:{current:`Al día`,invalid:`Rechazado por el Core instalado`,convertible:`Listo para convertir`,needs_attention:`Requiere atención`,running:`En ejecución`}},x={open:`Abrir en ventana`},S={title:e,subtitle:t,newLoop:n,sections:r,gallery:i,categories:a,status:o,empty:s,actions:c,card:l,confirmDelete:u,newLoopName:d,errors:f,builder:p,preview:m,builtInBadge:h,run:g,catalog:_,import:{done_one:`{{count}} loop importado`,done_other:`{{count}} loops importados`,skipped_one:`Omitido {{count}} duplicado: {{names}}`,skipped_other:`Omitidos {{count}} duplicados: {{names}}`,invalid:`Ese archivo no es una exportación de loops válida.`},core:v,conversion:y,migration:b,window:x};export{c as actions,p as builder,h as builtInBadge,l as card,_ as catalog,a as categories,u as confirmDelete,y as conversion,v as core,S as default,s as empty,f as errors,i as gallery,b as migration,n as newLoop,d as newLoopName,m as preview,g as run,r as sections,o as status,t as subtitle,e as title,x as window};
|
|
1
|
+
var e=`Loops`,t=`Bucles de automatización reutilizables — compartidos entre todos tus proyectos.`,n=`Nuevo loop`,r={drafts:`Borradores`,published:`Publicados`,templates:`Plantillas`,builtIn:`Integrados`},i={search:`Buscar plantillas…`,noResults:`Ninguna plantilla coincide con los filtros.`,clearFilter:`Limpiar filtros`,resultCount_one:`{{count}} plantilla`,resultCount_other:`{{count}} plantillas`,needsSpec:`Requiere spec`,standalone:`Autónoma`,needsSpecHint:`Se ejecuta en un rail con una spec arrastrada`,standaloneHint:`Se ejecuta sola — solo elige un proyecto`},a={API:`API`,Automation:`Automatización`,CI:`CI`,Database:`Base de datos`,Debugging:`Depuración`,DevOps:`DevOps`,Docs:`Docs`,Git:`Git`,Maintenance:`Mantenimiento`,Performance:`Rendimiento`,Planning:`Planificación`,Quality:`Calidad`,Review:`Revisión`,Security:`Seguridad`,Testing:`Pruebas`},o={draft:`Borrador`,published:`Publicado`,running:`En ejecución`},s={title:`Aún no hay loops`,body:`Crea uno desde cero o empieza a partir de una plantilla.`},c={edit:`Editar`,delete:`Eliminar`,publish:`Publicar`,unpublish:`Despublicar`,duplicate:`Duplicar`,restoreBuiltin:`Restaurar original`,use:`Usar plantilla`,preview:`Vista previa`,run:`Ejecutar`,export:`Exportar`,import:`Importar`,select:`Seleccionar {{name}}`,exportLegacy:`Exportar grafo original`,originalCopyName:`Original: {{name}}`,convert:`Convertir a Core`},l={nodes_one:`{{count}} nodo`,nodes_other:`{{count}} nodos`,usedIn:`En uso · {{project}}`,builtinModified:`Editado`},u=`¿Eliminar este loop? Desaparecerá de todos los selectores de rieles.`,d=`Nuevo loop`,f={load:`No se pudieron cargar los loops`,save:`No se pudo guardar el loop`,publishInvalid:`Este loop aún no se puede publicar — corrige los problemas resaltados.`,exportLegacy:`No se pudo exportar el grafo original.`},p={back:`Volver a los loops`,save:`Guardar`,saved:`Loop guardado`,publish:`Publicar`,published:`Loop publicado`,builtin:{note:`Loop integrado. Estás editando el propio loop integrado: al publicarlo, tus cambios se aplican en todos los rails, lanzamientos desde el chat del agente y en Companion donde se use. Los rails siguen ejecutando la última versión publicada mientras editas. Usa Restaurar original para volver a la versión por defecto.`,restored:`Loop integrado restaurado a su versión original`,confirmTitle:`¿Restaurar el loop integrado original?`,confirmBody:`Esto descarta tus cambios en este loop integrado y publica su versión original para todos los rails que lo usan. Duplícalo antes si quieres conservar tu versión.`},addNode:`Añadir nodo`,deleteNode:`Eliminar nodo`,config:{maxIterations:`Iteraciones máximas`,timeout:`Tiempo límite (min)`,maxIterationsHint:`Tope de iteraciones del Loop Decider — el loop se detiene al alcanzarlo aunque no se cumpla el objetivo. Evita bucles infinitos.`,timeoutHint:`Límite de tiempo real de toda la ejecución, en minutos. Si se supera, la ejecución se detiene y se marca como fallida — una red de seguridad junto a las iteraciones máximas. 0 desactiva este límite de tiempo; los demás presupuestos y la cancelación siguen activos.`,maxCost:`Coste máx ($)`,maxCostHint:`Presupuesto opcional en USD para toda la ejecución. Se comprueba ENTRE pasos (el coste de un paso solo se sabe al terminarlo), así que el loop para antes del siguiente paso cuando el total lo supera — puede pasarse un paso. En proveedores no-Claude el coste es estimado. Vacío = sin tope.`},nodes:{start:`Inicio`,"ai-step":`Paso de IA`,shell:`Shell`,decider:`Decisor del loop`,condition:`Condición`,end:`Fin`},inspector:{selectNode:`Selecciona un nodo para editarlo.`,prompt:`Prompt`,provider:`Proveedor`,model:`Modelo`,effort:`Esfuerzo de razonamiento`,command:`Comando`,goal:`Objetivo / criterio de parada`,join:`Unión`,outcome:`Resultado`,startNote:`El punto de entrada del loop. Conéctalo al primer paso.`,promptHint:`Haz clic o arrastra un token para insertarlo en el prompt.`,tokensSpec:`Campos del spec`,tokensJira:`Jira`,tokensCommands:`Comandos`,label:`Nombre`},branch:{continue:`↻ Continuar`,stop:`✓ Detener`},edgesHelp:{label:`Cómo se conectan los pasos`,body:`Las flechas marcan el ORDEN de ejecución, no los datos: las cajas no tienen puertos de entrada y las conexiones no transportan parámetros. Cada AI Step reanuda automáticamente su sesión (con todo el contexto previo) más un resumen breve de los pasos anteriores; nada se conecta a mano. El Loop Decider tiene dos salidas: ↻ Continuar (objetivo no cumplido → volver al bucle) y ✓ Detener (objetivo cumplido → salir).`},arrange:{label:`Ordenar`,vertical:`Vertical`,horizontal:`Horizontal`,grid:`Cuadrícula`,reset:`Restablecer`},constants:{label:`Constantes`,manage:`Gestionar constantes`,title:`Constantes del loop`,empty:`Aún no hay constantes personalizadas.`,name:`NOMBRE`,value:`valor`,add:`Añadir`,builtinBadge:`Integradas`},paste:{done_one:`{{count}} paso pegado`,done_other:`{{count}} pasos pegados`},problems:{count_one:`{{count}} problema`,count_other:`{{count}} problemas`,NO_START:`Añade un nodo de Inicio.`,MULTIPLE_START:`Solo se permite un nodo de Inicio.`,NO_END:`Añade al menos un nodo de Fin.`,ORPHAN:`Este paso no es alcanzable desde Inicio.`,DECIDER_BRANCHES:`El Decisor necesita una rama Continuar y otra Detener.`,EMPTY_PROMPT:`El Paso de IA tiene el prompt vacío.`,EMPTY_COMMAND:`El paso Shell tiene el comando vacío.`,EMPTY_GOAL:`El Decisor no tiene objetivo.`,DEAD_END:`Este paso no tiene conexión de salida.`,MIXED_ENGINES:`No mezcles pasos antiguos con piezas de Core.`,CORE_OUTCOMES:`Conecta resultados distintos y válidos.`,CORE_PIECE:`Selecciona una pieza y sus parámetros.`},preview:{label:`Previsualizar`,title:`Previsualización (dry-run)`,sampleNote:`Los valores del spec son de ejemplo; comandos y constantes se resuelven tal cual en ejecución.`,empty:`No hay pasos que previsualizar.`,error:`Falló la previsualización`},core:{unavailable:`Motor de workflows no disponible. Actualiza Core para añadir o publicar piezas.`,root:`Workflow principal`,components:`Componentes`,componentName:`Nombre del componente`,addComponent:`Añadir componente`,openComponent:`Abrir componente`,breadcrumbs:`Navegación del workflow`,select:`Elige una opción`,valueType:`Tipo de valor`,addItem:`Añadir elemento`,fieldName:`Nombre del campo`,addField:`Añadir {{name}}`,removeField:`Eliminar {{name}}`,variant:`Formato de {{name}}`,tooDeep:`El valor tiene demasiados niveles.`,pieces:{prompt:`Prompt`,"role-turn":`Paso agente`,decider:`Decisión`,condition:`Condición`,verify:`Verificar`,shell:`Shell`,"openspec-validate":`Validar OpenSpec`,"openspec-archive":`Archivar OpenSpec`,approval:`Aprobación`,question:`Pregunta`,gate:`Pausa`,map:`Mapear`,join:`Unir`,component:`Componente`,implementation:`Implementación`,end:`Fin`,assign:`Asignar variables`,"implementation-step":`Paso de implementación`,"artifact-contract":`Comprobar artefactos`},groups:{ai:`IA`,verification:`Verificación`,openspec:`OpenSpec`,control:`Control de flujo`},options:`Opciones del workflow`,reviewerStep:`Nodo de evidencia de revisión`,reviewerAutomatic:`Automático (revisiones de implementación)`,reviewerHint:`Elige el turno de rol que aporta la revisión estructurada. La revisión de IA no sustituye la verificación del host.`,assignment:{set:`Asignar valores`,increment:`Ajustar contadores`},requiredContinue:`Continuar mientras se cumpla esta condición`,agentTaskDefault:`Ejecuta la tarea definida para este paso usando el contexto del workflow.`,legacyImplementation:`Este paso conserva las fases de una versión anterior. Para definir tu propio paso, añade un Paso agente. En los loops integrados, Restaurar original carga el nuevo flujo.`},loopSettings:`Ajustes avanzados`},m={steps:`Pasos`,limits:`máx. {{iterations}} iteraciones · {{timeout}} min de timeout`,limitsNoTimeout:`máx. {{iterations}} iteraciones · sin timeout`,openInBuilder:`Abrir en el builder`,builtin:`Integrado`},h=`Integrado`,g={title:`Ejecutar {{name}}`,subtitle:`Lanza este loop en un proyecto (sin ticket).`,project:`Proyecto`,provider:`Proveedor`,model:`Modelo`,effort:`Esfuerzo de razonamiento`,execute:`Ejecutar`,noProjects:`No hay proyectos disponibles.`,launched:`Ejecutando {{name}}`},_={"ship-and-green":{name:`Ship & Green`,description:`Totalmente autónomo: implementa la spec, verifica y refina (corrige) cuando falla, encadenando verificar → corregir → verificar hasta que todo esté en verde. Sin intervención humana.`},"verify-pass":{name:`Verificación`,description:`Verifica y corrige de forma autónoma: detecta y ejecuta el build, el lint y los tests del proyecto y luego refina cuando falla, encadenando verificar → corregir → verificar hasta que esté en verde.`},"ci-watch":{name:`Vigilar CI`,description:`Consulta los checks de CI del PR abierto (el agente usa las herramientas de CI del repositorio) hasta que todos los checks estén en verde.`},"lint-and-fix":{name:`Lint y corregir`,description:`El agente detecta y ejecuta el linter del proyecto y corrige cada incidencia, iterando hasta que el código esté limpio.`},"type-safe":{name:`Tipado seguro`,description:`El agente detecta y ejecuta el comprobador de tipos del proyecto y resuelve cada error, iterando hasta que pase sin problemas.`},"coverage-climb":{name:`Subir cobertura`,description:`El agente ejecuta las herramientas de cobertura del proyecto y añade tests específicos hasta superar los umbrales.`},"build-fix":{name:`Arreglar build`,description:`El agente detecta y ejecuta el build de producción del proyecto y corrige los errores de compilación o de empaquetado hasta que esté en verde.`},"deploy-check":{name:`Comprobar deploy`,description:`El agente consulta el estado del deploy y de salud (usando las herramientas de deploy del proyecto) hasta que el servicio se reporte saludable.`},factory_implement:{name:`Implementar`,description:`Implementa todas las specs del rail en una sola ejecución: planifica, implementa, revisa y verifica, corrigiendo fallos hasta que pasen las comprobaciones.`},factory_freestyle:{name:`Freestyle`,description:`Entrega la spec directamente al modelo con total libertad — sin pipeline, trabaja como un agente de código normal, y después verifica + refina hasta quedar en verde. Solo Claude.`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`Ciclo OpenSpec de ticket a archivo: genera artefactos (opsx:ff) → implementa (opsx:apply) → verifica (opsx:verify); con FAIL vuelve atrás y enmienda el mismo change, con PASS lo archiva sin intervención.`},factory_revision:{name:`Revisión`,description:`Aplica el único cambio que pediste sobre el trabajo ya entregado, hace que el revisor lo vuelva a puntuar y verifica hasta que esté verde. No replanifica desde cero.`}},v={selectInterrupt:`Selecciona la pregunta o aprobación pendiente`,answerQuestion:`Responder pregunta`,approval:`Aprobación`,approveContinue:`Aprobar y continuar`,paused:`En pausa`,acceptance:`Aceptación`,verified:`Verificado`,hostBlocked:`Bloqueado por el entorno del host`,blockerKind:{network:`Red`,credential:`Credenciales`,"environment-variable":`Variable de entorno`,toolchain:`Herramientas`,setup:`Comando de preparación`,environment:`Entorno`,scope:`Fuera de alcance`},failingCommand:`Comando que falla`,inDirectory:`en {{cwd}}`,requiredAction:`Acción requerida`,copyCommand:`Copiar comando`,copiedCommand:`Copiado`},y={title:`Convertir {{name}} a Core`,description:`Core valida el grafo convertido antes de guardarlo como borrador. El original sigue disponible para exportar. Revisa el nuevo workflow antes de publicarlo.`,repository:`Repositorio de los pasos shell sin destino`,selectRepository:`Elige el repositorio original`,submit:`Convertir y revisar`,pending:`Convirtiendo…`,error:`No se pudo convertir`,coreRequired:`Actualiza Core para convertir este workflow.`},b={title:`Comprobación de migración a Core`,description:`Comprueba cada loop guardado contra el Core instalado. No se convierte ni se publica nada automáticamente.`,check:`Comprobar`,checking:`Comprobando…`,failed:`No se pudieron comprobar los loops.`,empty:`No hay loops guardados.`,allCurrent:`Todos los loops ya usan Core y son válidos.`,states:{current:`Al día`,invalid:`Rechazado por el Core instalado`,convertible:`Listo para convertir`,needs_attention:`Requiere atención`,running:`En ejecución`}},x={open:`Abrir en ventana`},S={title:e,subtitle:t,newLoop:n,sections:r,gallery:i,categories:a,status:o,empty:s,actions:c,card:l,confirmDelete:u,newLoopName:d,errors:f,builder:p,preview:m,builtInBadge:h,run:g,catalog:_,import:{done_one:`{{count}} loop importado`,done_other:`{{count}} loops importados`,skipped_one:`Omitido {{count}} duplicado: {{names}}`,skipped_other:`Omitidos {{count}} duplicados: {{names}}`,invalid:`Ese archivo no es una exportación de loops válida.`},core:v,conversion:y,migration:b,window:x};export{c as actions,p as builder,h as builtInBadge,l as card,_ as catalog,a as categories,u as confirmDelete,y as conversion,v as core,S as default,s as empty,f as errors,i as gallery,b as migration,n as newLoop,d as newLoopName,m as preview,g as run,r as sections,o as status,t as subtitle,e as title,x as window};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`Verlauf`,t=`Protokoll`,n=`Bisher ist nichts passiert.`,r=`Für diesen Lauf wurde keine Aktivität erfasst.`,i={range:`Solche Läufe dauerten {{low}}–{{high}} min (letzte {{count}})`,elapsed:`Läuft seit {{minutes}} min`},a=`Aus dem erstellt, was während des Laufs tatsächlich passiert ist.`,o={start:`Schritt {{step}}: {{title}}`,startRetry:`Schritt {{step}}: {{title}} — Versuch {{iteration}}`,done:`Schritt {{step}} abgeschlossen`,doneTimed:`Schritt {{step}} in {{seconds}} s abgeschlossen`,failed:`Schritt {{step}} war nicht erfolgreich`,interrupted:`Schritt {{step}} wurde vor dem Ende abgebrochen`,doneTimedMin:`Schritt {{step}} in {{minutes}} min abgeschlossen`,role:{work:`nimmt die Änderungen vor`,verify:`prüft, ob es funktioniert`,decide:`entscheidet, ob es fertig ist`,fix:`behebt, was fehlschlug`},stalled:`Schritt {{step}} hing – {{idleMinutes}} Min. ohne Aktivität, daher hat die App ihn beendet`,startResume:`Schritt {{step}}: {{title}} – Fortsetzung nach einem Hänger`,providerLimit:`Schritt {{step}} gestoppt — das Nutzungslimit des Anbieters ist erreicht`,recovered:`Schritt {{step}} nach dem Fortsetzen abgeschlossen`},s={another:`Noch nicht fertig — nächste Runde`,satisfied:`Ziel erreicht — weiter`},c={reading:`Liest {{target}}`,readingBare:`Liest den Code`,editing:`Ändert {{target}}`,editingBare:`Ändert den Code`,writing:`Schreibt {{target}}`,writingBare:`Schreibt neuen Code`,searching:`Sucht nach {{target}}`,searchingBare:`Sucht im Code`,running:`Führt {{target}} aus`,runningBare:`Führt einen Befehl aus`,working:`Arbeitet an {{target}}`,workingBare:`Arbeitet`,exploring:`Sieht den Code durch`,exploringBare:`Sieht den Code durch`,testing:`Führt die Tests aus`,building:`Baut das Projekt`,typechecking:`Prüft die Typen`,linting:`Prüft den Codestil`,installing:`Installiert Abhängigkeiten`,savingWork:`Sichert die Arbeit`,checkingSpec:`Prüft die Spec`,bookkeeping:`Notiert eigene Aufzeichnungen`,bookkeepingBare:`Notiert eigene Aufzeichnungen`,writingSpec:`Schreibt den Plan`,writingSpecBare:`Schreibt den Plan`,writingFiles:`Schreibt {{files}} Dateien ({{names}}…)`,readingFiles:`Liest {{files}} Dateien ({{names}}…)`,editingFiles:`Ändert {{files}} Dateien ({{names}}…)`,delegating:`Übergibt an {{target}}`,delegatingBare:`Übergibt an einen Spezialisten`,phase:{architect:`Entwurf der Änderung (Architekt)`,developer:`Umsetzung der Änderung (Entwickler)`,verify:`Ausführen der Verifikationsbefehle`,fixer:`Behebt, was Prüfung oder Review gemeldet haben (Korrektor)`,reviewer:`Prüfung der Umsetzung (Reviewer)`,archive:`Archivierung der geprüften Änderung`,stopped:`Die Laufzeit wurde gestoppt: {{target}}`,corrections:`Setzt die verbleibenden Aufgaben fort (Entwickler)`,resumed:`Gespeicherte Ausführung wird fortgesetzt`},check:{started:`Prüfe {{target}}`,passed:`Prüfung bestanden: {{target}}`,failed:`Prüfung fehlgeschlagen: {{target}}`,reused:`Geprüftes Ergebnis wiederverwenden: {{target}}`,invalidated:`Vorheriges Ergebnis ungültig: {{target}}`}},l=`×{{count}}`,u={modeNarrated:e,modeLog:t,emptyLive:n,emptySettled:r,waiting:i,aiNote:a,step:o,decision:s,activity:c,repeats:l};export{c as activity,a as aiNote,s as decision,u as default,n as emptyLive,r as emptySettled,t as modeLog,e as modeNarrated,l as repeats,o as step,i as waiting};
|
|
1
|
+
var e=`Verlauf`,t=`Protokoll`,n=`Bisher ist nichts passiert.`,r=`Für diesen Lauf wurde keine Aktivität erfasst.`,i={range:`Solche Läufe dauerten {{low}}–{{high}} min (letzte {{count}})`,elapsed:`Läuft seit {{minutes}} min`},a=`Aus dem erstellt, was während des Laufs tatsächlich passiert ist.`,o={start:`Schritt {{step}}: {{title}}`,startRetry:`Schritt {{step}}: {{title}} — Versuch {{iteration}}`,done:`Schritt {{step}} abgeschlossen`,doneTimed:`Schritt {{step}} in {{seconds}} s abgeschlossen`,failed:`Schritt {{step}} war nicht erfolgreich`,interrupted:`Schritt {{step}} wurde vor dem Ende abgebrochen`,doneTimedMin:`Schritt {{step}} in {{minutes}} min abgeschlossen`,role:{work:`nimmt die Änderungen vor`,verify:`prüft, ob es funktioniert`,decide:`entscheidet, ob es fertig ist`,fix:`behebt, was fehlschlug`},stalled:`Schritt {{step}} hing – {{idleMinutes}} Min. ohne Aktivität, daher hat die App ihn beendet`,startResume:`Schritt {{step}}: {{title}} – Fortsetzung nach einem Hänger`,providerLimit:`Schritt {{step}} gestoppt — das Nutzungslimit des Anbieters ist erreicht`,recovered:`Schritt {{step}} nach dem Fortsetzen abgeschlossen`},s={another:`Noch nicht fertig — nächste Runde`,satisfied:`Ziel erreicht — weiter`},c={reading:`Liest {{target}}`,readingBare:`Liest den Code`,editing:`Ändert {{target}}`,editingBare:`Ändert den Code`,writing:`Schreibt {{target}}`,writingBare:`Schreibt neuen Code`,searching:`Sucht nach {{target}}`,searchingBare:`Sucht im Code`,running:`Führt {{target}} aus`,runningBare:`Führt einen Befehl aus`,working:`Arbeitet an {{target}}`,workingBare:`Arbeitet`,exploring:`Sieht den Code durch`,exploringBare:`Sieht den Code durch`,testing:`Führt die Tests aus`,building:`Baut das Projekt`,typechecking:`Prüft die Typen`,linting:`Prüft den Codestil`,installing:`Installiert Abhängigkeiten`,savingWork:`Sichert die Arbeit`,checkingSpec:`Prüft die Spec`,bookkeeping:`Notiert eigene Aufzeichnungen`,bookkeepingBare:`Notiert eigene Aufzeichnungen`,writingSpec:`Schreibt den Plan`,writingSpecBare:`Schreibt den Plan`,writingFiles:`Schreibt {{files}} Dateien ({{names}}…)`,readingFiles:`Liest {{files}} Dateien ({{names}}…)`,editingFiles:`Ändert {{files}} Dateien ({{names}}…)`,delegating:`Übergibt an {{target}}`,delegatingBare:`Übergibt an einen Spezialisten`,phase:{architect:`Entwurf der Änderung (Architekt)`,developer:`Umsetzung der Änderung (Entwickler)`,verify:`Ausführen der Verifikationsbefehle`,fixer:`Behebt, was Prüfung oder Review gemeldet haben (Korrektor)`,reviewer:`Prüfung der Umsetzung (Reviewer)`,archive:`Archivierung der geprüften Änderung`,stopped:`Die Laufzeit wurde gestoppt: {{target}}`,corrections:`Setzt die verbleibenden Aufgaben fort (Entwickler)`,resumed:`Gespeicherte Ausführung wird fortgesetzt`,blocked:`Die Host-Umgebung hat den Lauf blockiert: {{target}}`},check:{started:`Prüfe {{target}}`,passed:`Prüfung bestanden: {{target}}`,failed:`Prüfung fehlgeschlagen: {{target}}`,reused:`Geprüftes Ergebnis wiederverwenden: {{target}}`,invalidated:`Vorheriges Ergebnis ungültig: {{target}}`}},l=`×{{count}}`,u={modeNarrated:e,modeLog:t,emptyLive:n,emptySettled:r,waiting:i,aiNote:a,step:o,decision:s,activity:c,repeats:l};export{c as activity,a as aiNote,s as decision,u as default,n as emptyLive,r as emptySettled,t as modeLog,e as modeNarrated,l as repeats,o as step,i as waiting};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`経過`,t=`ログ`,n=`まだ何も起きていません。`,r=`この実行では活動が記録されませんでした。`,i={range:`同種の実行は {{low}}〜{{high}} 分かかっています(直近 {{count}} 件)`,elapsed:`実行中 {{minutes}} 分`},a=`実行中に実際に起きたことから作成しています。`,o={start:`ステップ {{step}}:{{title}}`,startRetry:`ステップ {{step}}:{{title}} — {{iteration}} 回目`,done:`ステップ {{step}} 完了`,doneTimed:`ステップ {{step}} を {{seconds}} 秒で完了`,failed:`ステップ {{step}} は成功しませんでした`,interrupted:`ステップ {{step}} は完了前に中断されました`,doneTimedMin:`ステップ {{step}} を {{minutes}} 分で完了`,role:{work:`変更を加えています`,verify:`動作を確認しています`,decide:`完了かどうか判断しています`,fix:`失敗した箇所を修正しています`},stalled:`ステップ {{step}} が停止:{{idleMinutes}} 分間活動がなかったため、アプリが停止しました`,startResume:`ステップ {{step}}:{{title}} — 停止後に再開`,providerLimit:`ステップ {{step}} 停止 — プロバイダーの利用上限に達しました`,recovered:`再開後にステップ {{step}} が完了`},s={another:`まだ未達 — もう一周`,satisfied:`目標達成 — 次へ`},c={reading:`{{target}} を読んでいます`,readingBare:`コードを読んでいます`,editing:`{{target}} を変更しています`,editingBare:`コードを変更しています`,writing:`{{target}} を書いています`,writingBare:`新しいコードを書いています`,searching:`{{target}} を検索しています`,searchingBare:`コードを検索しています`,running:`{{target}} を実行しています`,runningBare:`コマンドを実行しています`,working:`{{target}} を進めています`,workingBare:`作業中`,exploring:`コードを見ています`,exploringBare:`コードを見ています`,testing:`テストを実行しています`,building:`プロジェクトをビルドしています`,typechecking:`型を確認しています`,linting:`コードスタイルを確認しています`,installing:`依存関係をインストールしています`,savingWork:`作業を保存しています`,checkingSpec:`仕様を確認しています`,bookkeeping:`自分用のメモを記録しています`,bookkeepingBare:`自分用のメモを記録しています`,writingSpec:`計画を書いています`,writingSpecBare:`計画を書いています`,writingFiles:`{{files}} 個のファイルを書いています({{names}}…)`,readingFiles:`{{files}} 個のファイルを読んでいます({{names}}…)`,editingFiles:`{{files}} 個のファイルを変更しています({{names}}…)`,delegating:`{{target}} に引き継いでいます`,delegatingBare:`担当に引き継いでいます`,phase:{architect:`変更を設計中(アーキテクト)`,developer:`変更を実装中(デベロッパー)`,verify:`検証コマンドを実行中`,fixer:`検証またはレビューで報告された問題を修正中(フィクサー)`,reviewer:`実装をレビュー中(レビュアー)`,archive:`レビュー済みの変更をアーカイブ中`,stopped:`実行エンジンが停止しました: {{target}}`,corrections:`残りのタスクを続行中(開発者)`,resumed
|
|
1
|
+
var e=`経過`,t=`ログ`,n=`まだ何も起きていません。`,r=`この実行では活動が記録されませんでした。`,i={range:`同種の実行は {{low}}〜{{high}} 分かかっています(直近 {{count}} 件)`,elapsed:`実行中 {{minutes}} 分`},a=`実行中に実際に起きたことから作成しています。`,o={start:`ステップ {{step}}:{{title}}`,startRetry:`ステップ {{step}}:{{title}} — {{iteration}} 回目`,done:`ステップ {{step}} 完了`,doneTimed:`ステップ {{step}} を {{seconds}} 秒で完了`,failed:`ステップ {{step}} は成功しませんでした`,interrupted:`ステップ {{step}} は完了前に中断されました`,doneTimedMin:`ステップ {{step}} を {{minutes}} 分で完了`,role:{work:`変更を加えています`,verify:`動作を確認しています`,decide:`完了かどうか判断しています`,fix:`失敗した箇所を修正しています`},stalled:`ステップ {{step}} が停止:{{idleMinutes}} 分間活動がなかったため、アプリが停止しました`,startResume:`ステップ {{step}}:{{title}} — 停止後に再開`,providerLimit:`ステップ {{step}} 停止 — プロバイダーの利用上限に達しました`,recovered:`再開後にステップ {{step}} が完了`},s={another:`まだ未達 — もう一周`,satisfied:`目標達成 — 次へ`},c={reading:`{{target}} を読んでいます`,readingBare:`コードを読んでいます`,editing:`{{target}} を変更しています`,editingBare:`コードを変更しています`,writing:`{{target}} を書いています`,writingBare:`新しいコードを書いています`,searching:`{{target}} を検索しています`,searchingBare:`コードを検索しています`,running:`{{target}} を実行しています`,runningBare:`コマンドを実行しています`,working:`{{target}} を進めています`,workingBare:`作業中`,exploring:`コードを見ています`,exploringBare:`コードを見ています`,testing:`テストを実行しています`,building:`プロジェクトをビルドしています`,typechecking:`型を確認しています`,linting:`コードスタイルを確認しています`,installing:`依存関係をインストールしています`,savingWork:`作業を保存しています`,checkingSpec:`仕様を確認しています`,bookkeeping:`自分用のメモを記録しています`,bookkeepingBare:`自分用のメモを記録しています`,writingSpec:`計画を書いています`,writingSpecBare:`計画を書いています`,writingFiles:`{{files}} 個のファイルを書いています({{names}}…)`,readingFiles:`{{files}} 個のファイルを読んでいます({{names}}…)`,editingFiles:`{{files}} 個のファイルを変更しています({{names}}…)`,delegating:`{{target}} に引き継いでいます`,delegatingBare:`担当に引き継いでいます`,phase:{architect:`変更を設計中(アーキテクト)`,developer:`変更を実装中(デベロッパー)`,verify:`検証コマンドを実行中`,fixer:`検証またはレビューで報告された問題を修正中(フィクサー)`,reviewer:`実装をレビュー中(レビュアー)`,archive:`レビュー済みの変更をアーカイブ中`,stopped:`実行エンジンが停止しました: {{target}}`,corrections:`残りのタスクを続行中(開発者)`,resumed:`保存した実行を再開しています`,blocked:`ホスト環境が実行をブロックしました: {{target}}`},check:{started:`{{target}} を検証中`,passed:`検証成功: {{target}}`,failed:`検証失敗: {{target}}`,reused:`検証済み結果を再利用: {{target}}`,invalidated:`以前の結果は無効: {{target}}`}},l=`×{{count}}`,u={modeNarrated:e,modeLog:t,emptyLive:n,emptySettled:r,waiting:i,aiNote:a,step:o,decision:s,activity:c,repeats:l};export{c as activity,a as aiNote,s as decision,u as default,n as emptyLive,r as emptySettled,t as modeLog,e as modeNarrated,l as repeats,o as step,i as waiting};
|