specrails-desktop 2.46.0 → 2.47.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-CsHQPpvl.js → ActivityFeedPage-DSCpSOGV.js} +1 -1
- package/client/dist/assets/{AgentBrowserCapture-BVcCK7x0.js → AgentBrowserCapture-mc1c5pgS.js} +1 -1
- package/client/dist/assets/{AgentModeAnalyticsPane-C5F3m29G.js → AgentModeAnalyticsPane--UkamBTm.js} +2 -2
- package/client/dist/assets/{AgentModeCodePane-C5QuKsu0.js → AgentModeCodePane-DJCswsvU.js} +2 -2
- package/client/dist/assets/{AgentModeJobsPane-rnD-EPMd.js → AgentModeJobsPane-Dw3DNFkh.js} +1 -1
- package/client/dist/assets/{AgentsPage-DiyJWZcU.js → AgentsPage-ChElPUL9.js} +1 -1
- package/client/dist/assets/{AnalyticsPage-Dkmb0dnd.js → AnalyticsPage-BGtkFHBp.js} +1 -1
- package/client/dist/assets/{CodePage-C0dH99-t.js → CodePage-BBnw3VGn.js} +1 -1
- package/client/dist/assets/{DesktopAnalyticsPage-DuTjr2n8.js → DesktopAnalyticsPage-B85tNScc.js} +1 -1
- package/client/dist/assets/{DocsDialog-BVZJZHVR.js → DocsDialog-D4cXrOMl.js} +1 -1
- package/client/dist/assets/{DocsPage-D6KHTv8V.js → DocsPage-BCAbC6qy.js} +1 -1
- package/client/dist/assets/{ExportDropdown-pWZGYCv3.js → ExportDropdown-BwuvqS2Y.js} +1 -1
- package/client/dist/assets/{InteractiveJobComposer-Ck3PQxjN.js → InteractiveJobComposer-Coq-Zhk0.js} +2 -2
- package/client/dist/assets/{JobDetailModal-DkoMH3ie.js → JobDetailModal--Mjam0Nc.js} +1 -1
- package/client/dist/assets/{JobDetailPage-CBVivcl2.js → JobDetailPage-B6ShWSBh.js} +1 -1
- package/client/dist/assets/{JobsPage-CzxEeca9.js → JobsPage-DHU_ep_B.js} +1 -1
- package/client/dist/assets/{LoopBuilderPage-CtmOE4-b.js → LoopBuilderPage-Byvq8Oqx.js} +1 -1
- package/client/dist/assets/{LoopPreviewModal-BYeLjQbr.js → LoopPreviewModal-BMC9Mgj1.js} +1 -1
- package/client/dist/assets/{LoopsPage-6iW7g25k.js → LoopsPage-CFGl-Nw8.js} +1 -1
- package/client/dist/assets/{MinimizedChatsContext-B6wVevPq.js → MinimizedChatsContext-DHjHBYqa.js} +1 -1
- package/client/dist/assets/{PluginsPage-Bf1z3WPF.js → PluginsPage-BHygRnW6.js} +1 -1
- package/client/dist/assets/{ProjectSettingsDialog-DsCRIc4v.js → ProjectSettingsDialog-nspqxH-M.js} +1 -1
- package/client/dist/assets/{RepositoryDeliveries-BQm_3TO8.js → RepositoryDeliveries-Dq9NJOWi.js} +1 -1
- package/client/dist/assets/{RepositoryScopeSelector-DnAFtjTz.js → RepositoryScopeSelector-C3jKG2z0.js} +1 -1
- package/client/dist/assets/{ReviewPacketPage-CaXAwtR7.js → ReviewPacketPage-C9mqhi65.js} +1 -1
- package/client/dist/assets/{TemplatePreviewModal-9aRFpJ_J.js → TemplatePreviewModal-BmwoAjOr.js} +1 -1
- package/client/dist/assets/{TicketDetailModalContext-B1X5glzV.js → TicketDetailModalContext-lYmoONrd.js} +1 -1
- package/client/dist/assets/{Trans-BwLgX6n7.js → Trans-C0KyPo2O.js} +1 -1
- package/client/dist/assets/agentRuntime-62GWdc26.js +1 -0
- package/client/dist/assets/agentRuntime-BN1mKAuY.js +1 -0
- package/client/dist/assets/agentRuntime-BNBCzQLM.js +1 -0
- package/client/dist/assets/agentRuntime-BQE_K1GG.js +1 -0
- package/client/dist/assets/agentRuntime-CCU3HCtS.js +1 -0
- package/client/dist/assets/agentRuntime-DT72Bpdv.js +1 -0
- package/client/dist/assets/agentRuntime-ZfMPeeiP.js +1 -0
- package/client/dist/assets/agentRuntime-g3W8Ry4d.js +1 -0
- package/client/dist/assets/{agents-IUOgqT5t.js → agents-BIT1UdTy.js} +1 -1
- package/client/dist/assets/{agents-DaYcxAr1.js → agents-C7fKfvm8.js} +1 -1
- package/client/dist/assets/{agents-ms7TwG16.js → agents-CST-lpYX.js} +1 -1
- package/client/dist/assets/{agents-Bvyi3y6R.js → agents-Cm2JYrAa.js} +1 -1
- package/client/dist/assets/{agents-BHp0_FQt.js → agents-DsgGMGwU.js} +1 -1
- package/client/dist/assets/{agents-45GbINfh.js → agents-DyI4rbHa.js} +1 -1
- package/client/dist/assets/{agents-rzPnqoBR.js → agents-H6tVQUNP.js} +1 -1
- package/client/dist/assets/{agents-DMKFStHL.js → agents-_5mJMkAE.js} +1 -1
- package/client/dist/assets/{formatDistanceToNow-CeZv93iR.js → formatDistanceToNow-D44phX1J.js} +1 -1
- package/client/dist/assets/{getTimezoneOffsetInMilliseconds-DxAkjvJb.js → getTimezoneOffsetInMilliseconds-EAh9LFSx.js} +1 -1
- package/client/dist/assets/{index-DYoyDWim.js → index-DgMBighL.js} +9 -9
- package/client/dist/assets/{jira-api-ChjVGJx_.js → jira-api-BQR6G0YY.js} +1 -1
- package/client/dist/assets/{narration-D-e9ssxA.js → narration-B1uGfofH.js} +1 -1
- package/client/dist/assets/{narration-DnrKC3mF.js → narration-BKcL4Srl.js} +1 -1
- package/client/dist/assets/{narration-CvQdWdR5.js → narration-BtjKyHVM.js} +1 -1
- package/client/dist/assets/{narration-BPMOQPFe.js → narration-CqNvgRi9.js} +1 -1
- package/client/dist/assets/{narration-DKLjXIFI.js → narration-DiPyj06T.js} +1 -1
- package/client/dist/assets/{narration-4OSg0b5-.js → narration-DrBAf8uv.js} +1 -1
- package/client/dist/assets/{narration-Dypjxeel.js → narration-OyujFouL.js} +1 -1
- package/client/dist/assets/{narration-BSldQfjd.js → narration-UWi_xIZ-.js} +1 -1
- package/client/dist/assets/{project-repositories-BvBj9XH9.js → project-repositories-GRYdjlKB.js} +1 -1
- package/client/dist/assets/{spending-DNM6NAoA.js → spending-CN9PHM65.js} +1 -1
- package/client/dist/assets/{useDesktop-mxHVQOdx.js → useDesktop-iius_s5d.js} +1 -1
- package/client/dist/assets/{useSharedWebSocket-DnxHj8jP.js → useSharedWebSocket-D7hkZ3Ka.js} +2 -2
- package/client/dist/index.html +16 -16
- package/docs/plans/implementation-efficiency-artifact.json +18 -0
- package/docs/plans/implementation-efficiency-evaluation.json +1817 -0
- package/docs/plans/implementation-efficiency-evaluation.md +41 -0
- package/docs/plans/implementation-efficiency-progress.md +48 -0
- package/docs/plans/implementation-efficiency-release.md +41 -0
- package/docs/plans/implementation-efficiency.md +124 -0
- package/package.json +1 -1
- package/server/dist/agent-runtime-bridge.js +29 -25
- package/server/dist/agent-runtime-controls-router.js +8 -0
- package/server/dist/agent-runtime-controls.js +57 -10
- package/server/dist/agent-runtime-effective-config.js +32 -0
- package/server/dist/agent-runtime-events.js +46 -0
- package/server/dist/agent-runtime-history.js +47 -0
- package/server/dist/agent-runtime-loader.js +84 -5
- package/server/dist/agent-runtime-metrics.js +76 -0
- package/server/dist/agent-runtime-package.js +205 -0
- package/server/dist/agent-runtime-settings-router.js +25 -4
- package/server/dist/agent-runtime-settings.js +26 -0
- package/server/dist/loop-executors.js +2 -2
- package/server/dist/loop-run-manager.js +10 -2
- package/server/dist/mcp/tools/rails.js +1 -0
- package/server/dist/rail-isolated-launch.js +1 -0
- package/server/dist/rails-router.js +26 -0
- package/server/dist/schemas/agent-runtime.schema.json +18 -1
- package/server/dist/schemas/fixtures/runtime-efficiency-summary.v1.json +790 -0
- package/client/dist/assets/agentRuntime-BUagD2I_.js +0 -1
- package/client/dist/assets/agentRuntime-BkL70WtX.js +0 -1
- package/client/dist/assets/agentRuntime-CWXVqgqE.js +0 -1
- package/client/dist/assets/agentRuntime-CvNBdUAe.js +0 -1
- package/client/dist/assets/agentRuntime-D4RmeuNY.js +0 -1
- package/client/dist/assets/agentRuntime-DTidBWKg.js +0 -1
- package/client/dist/assets/agentRuntime-DhKYfyaU.js +0 -1
- package/client/dist/assets/agentRuntime-LL8_GLx9.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`エージェント実行エンジン`,t=`アーキテクト、デベロッパー、レビュアーが別々のフェーズとして実行され、その間に決定的な検証が入ります。役割ごとにプロバイダーを選ぶだけで、他はそのまま動く既定値です。`,n=`実行設定を読み込み中…`,r=`実行設定を読み込めませんでした。変更する前に再試行してください。`,i=`再試行`,a=`この Core にはエージェント実行エンジンが含まれていません。有効にする前に Core を更新してください。無効な状態で設定を準備できます。`,o=`実行設定を保存`,s=`保存中…`,c=`実行設定を保存しました`,l=`実行設定を保存できませんでした。`,u=`ワークフロー完了前に承認を待つ`,d={title:`プロバイダー`,hint:`CLI は既存のログインを使用します。API には環境変数名のみを指定し、キー自体は入力しないでください。ローカルの場合は空欄にできます。削除前に役割を別のプロバイダーに割り当ててください。`,entry:`プロバイダー {{index}}`,id:`プロバイダー ID`,kind:`接続方式`,cli:`インストール済みの開発 CLI`,compatible:`OpenAI 互換エンドポイント`,command:`開発 CLI`,baseUrl:`API ベース URL`,apiKeyEnv:`API キーの環境変数(任意)`,remove:`プロバイダーを削除`,addCli:`CLI プロバイダーを追加`,addLocal:`ローカル / API プロバイダーを追加`,show:`プロバイダー接続を表示`,hide:`プロバイダー接続を隠す`,globalTitle:`プロバイダー接続`,globalHint:`接続はすべてのプロジェクトで利用できます。プロジェクト設定で各ロールにプロバイダーとモデルを割り当てます。変更は新しい実行に適用されます。`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`設計担当`,developer:`開発担当`,reviewer:`レビュー担当`,verify:`検証`,archive:`完了`},m={title:`役割の割り当て`,hint:`各ロールで異なるプロバイダーとモデルを使用できます。接続は一般設定 → Specrails Agentsで管理します。既定の上限はエージェントごとに{{turns}}ターンです。`,provider:`プロバイダー`,model:`モデル`,modelPlaceholder:`モデル ID または CLI の既定値`,maxTurns:`最大ターン数(既定 {{turns}})`,defaultModel:`既定({{model}})`},h={title:`ワークフローの制限`,hint:`空欄は Core の既定値を使います: デベロッパーの試行 {{attempts}} 回、ワークフローあたり {{minutes}} 分。トークンと USD の上限は任意で、USD 上限にはすべての AI 役割で Claude が必要です。`,maxAttempts:`デベロッパーの最大試行回数(既定 {{attempts}})`,timeoutMinutes:`タイムアウト(分、既定 {{minutes}})`,maxTokens:`最大トークン数`,maxCostUsd:`最大コスト(USD)`,unlimited:`制限なし`},g={title:`検証コマンド`,hint:`任意。デベロッパー完了後に実行され、失敗はデベロッパーに戻されます。空のままなら、毎回アーキテクトがプロジェクト自身のチェックを提案します。自動チェックのないリポジトリもレビューされます。`,detect:`プロジェクトのチェックを検出`,detecting:`検出中…`,detected:`このプロジェクトが定義済みのチェックで埋めました。`,nothingDetected:`テスト・型チェック・ビルドのコマンドは見つかりませんでした。問題ありません。可能な場合はアーキテクトが実行時にチェックを提案します。`,detectFailed:`プロジェクトのリポジトリを調べられませんでした。`,repository:`リポジトリ`,command:`コマンド`,reason:`{{reason}} から検出`,remove:`削除`,add:`コマンドを追加`,invalidLine:`検証コマンドが空か、引用符が閉じていません: {{line}}`,label:`チェック名(任意)`,moveUp:`上へ`,moveDown:`下へ`},_={title:`保存された実行`,refresh:`更新`,hint:`元のワークツリーで保存された範囲と設定を使って続行し、進行状況はそのジョブのログに表示されます。公開や Desktop の配信再開は行いません。実行中のレールはジョブの操作から停止してください。`,empty:`保存された実行はありません。`,loadFailed:`保存された実行を読み込めませんでした。`,actionFailed:`この実行を更新できませんでした。`,phase:`次のフェーズ: {{phase}}`,approve:`完了を承認`,recover:`中断したフェーズを復旧`,resume:`再開`,cancel:`続行をキャンセル`,status:{running:`続行中…`,succeeded:`成功`,failed:`失敗`,blocked:`ブロック中`,paused:`一時停止`,cancelled:`キャンセル済み`,interrupted:`中断`,unavailable:`利用不可`},question:`アーキテクトからの質問:`,answerLabel:`あなたの回答`,answerPlaceholder:`質問に回答すると、アーキテクトはそれをもとに続行します。`,answer:`回答して再開`,viewLog:`ジョブログを表示`,implementation:`実装`,preserveProgress:`表示されたフェーズから、既存の作業と保存済み設定を保持して続行します。`,reviewDelivery:`実装が完了しました。引き渡しの前にジョブログで結果を確認してください。この続行では公開していません。`,prepareDelivery:`引き渡しを準備`},v={architect:`コードを読み、提案・設計・タスク・仕様を書きます。読み取り専用。`,developer:`タスクをテスト付きで実装します。CLI のサンドボックス内でファイル編集とコマンド実行ができます。`,reviewer:`仕様と検証結果に照らして成果を確認します。読み取り専用。`},y={title:`レビュー基準`,hint:`空欄は Core の基準を使います。値は基準を厳しくする方向にのみ設定できます: 総合スコア {{score}} 以上、セキュリティ {{security}} 以上、その他の観点 {{aspect}} 以上。`,minScore:`最低総合スコア(既定 {{score}})`,aspects:{type_correctness:`型の正確さ(既定 {{score}})`,pattern_adherence:`パターン準拠(既定 {{score}})`,test_coverage:`テストカバレッジ(既定 {{score}})`,security:`セキュリティ(既定 {{score}})`,architectural_alignment:`アーキテクチャ整合性(既定 {{score}})`}},b={title:`アーキテクトの確信度`,hint:`自律的な調査を1回行っても確信度が低い設計は、アーキテクトの質問で一時停止するか、明示した前提のもとで続行します。`,onLowConfidence:`確信度が低いとき`,ask:`質問する(質問で一時停止)`,proceed:`明示した前提で続行`},x={title:`使用量と時間`,hint:`修正と失敗した呼び出しを含みます。エージェント時間にはツールの実行時間を含みます。キャッシュトークンは入力トークンの一部です。`,unknown:`取得不可`,duration:`実行時間`,agentTime:`エージェント時間`,cost:`報告された費用`,providerCalls:`エージェント呼び出し`,toolCalls:`ツール呼び出し`,input:`入力トークン`,output:`出力トークン`,uncached:`キャッシュなしの入力`,cacheRead:`キャッシュ読み取り`,cacheWrite:`キャッシュ書き込み`,partial:`一部の試行には詳細な計測値がありません。`,phases:`フェーズ別使用量`,phase:`フェーズ`,attempts:`試行回数`},S={title:`エージェントのロール別プロンプト`,description:`各ロールの指示を表示・編集します。すべてのプロジェクトとプロバイダーで共有され、変更は新しいジョブに適用されます。再開したジョブは元のプロンプトを使用します。`,definition:`{{role}}の定義`,default:`初期設定`,custom:`カスタマイズ済み`,restore:`初期設定に戻す`,contracts:`Spec のコンテキスト、OpenSpec ワークフロー、必須の応答形式は自動的に追加されるため、ここでは編集できません。`,invalid:`各定義は 1~20,000 文字で、空白以外のテキストを含み、ヌルバイトを含まない必要があります。`,saved:`ロール別プロンプトを保存しました`,unsaved:`未保存の変更`,discard:`変更を破棄`,save:`プロンプトを保存`},C={title:`実装の効率`,scope:`新しい実行に適用されます。保存済みの実行は元の設定とランタイムを維持します。`,effort:`推論の強度`,providerDefault:`プロバイダーの既定値`,unconfirmed:`未確認`,unknownSupport:`このモデルと通信方式の対応状況は未確認です。`,escalation:`同じプロバイダーの上位モデルを1段階許可`,baseRequired:`まず基本モデルを明示的に選択してください。`,escalationModel:`上位モデル`,triggers:{architect:`既存の追加調査のみがこの段階を選択できます。`,developer:`候補が2回失敗した後、次の許可された試行で選択できます。`,reviewer:`不正な形式の応答の修復のみ。コードの却下では昇格しません。`},contextMode:`リポジトリのコンテキスト`,reviewMode:`修正のレビュー`,planning:`計画の深さ`,adaptive:`適応型`,full:`完全`,developerChecks:`開発者が提案する追加チェックを許可`,concurrency:`同時チェック数の上限`,concurrencyHint:`既定値は1。ホストが独立と宣言した異なるリポジトリのチェックのみ並行実行できます。既定では再利用しません。`,checkCapabilities:`モデルの互換性を確認`,capabilitiesFailed:`互換性を確認できません。対応するCoreを更新するか、既定値を維持してください。`},w={title:`検証の証拠`,acceptance:`技術的な受け入れ`,acceptanceStatus:{pending:`保留中`,validated:`検証済み`,"with-exceptions":`例外あり`,blocked:`ブロック済み`},calls:`エージェント呼び出し`,executed:`実行したチェック`,reused:`再利用したチェック`,unknown:`利用不可`,unavailable:`証拠は利用できません。記録された結果は現在の有効性を保証しません。`,current:`現在の候補と計画`,historical:`過去の結果`,moreChecks:`その他のチェック`,output:`検証出力`,empty:`出力なし`,truncated:`制限されたページまたは切り詰められた記録です。`,nextPage:`次の出力ページ`,status:{passed:`成功`,failed:`失敗`,cancelled:`キャンセル`,interrupted:`中断`},disposition:{executed:`実行済み`,reused:`再利用`,"not-run":`未実行`},origin:`出所`,origins:{host:`ホスト`,architect:`アーキテクト`,developer:`開発者`,"frozen-runtime-config":`保存済み設定`,"project-role":`プロジェクトの役割`,default:`既定`,"explicit-launch-override":`この実行で選択したプロバイダー`},reuseDisabled:`このチェックの再利用は無効です。`,reuseConfirmed:`入力とツールの一致を確認して再利用しました。`,inputsChanged:`検証中に入力が変化したため、結果は無効です。`,reuseUnproven:`入力の一致を証明できる有効な結果がないため、再実行しました。`,original:`元の実行`,requested:`要求値`,reported:`報告値`},T={title:e,description:t,loading:n,loadFailed:r,retry:i,unavailable:a,save:o,saving:s,saved:c,saveFailed:l,approvalBeforeArchive:u,providers:d,cliNames:f,roles:p,agents:m,limits:h,verification:g,runs:_,roleHints:v,review:y,architect:b,metrics:x,prompts:S,efficiency:C,evidence:w};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,T as default,t as description,C as efficiency,w as evidence,h as limits,r as loadFailed,n as loading,x as metrics,S as prompts,d as providers,i as retry,y as review,v as roleHints,p as roles,_ as runs,o as save,l as saveFailed,c as saved,s as saving,e as title,a as unavailable,g as verification};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`Moteur d’agents`,t=`Architecte, développeur et relecteur s’exécutent en phases séparées avec une vérification déterministe entre elles. Choisissez un fournisseur par rôle ; tout le reste a une valeur par défaut qui fonctionne.`,n=`Chargement des paramètres…`,r=`Impossible de charger les paramètres. Réessayez avant de les modifier.`,i=`Réessayer`,a=`Cette installation de Core ne contient pas le moteur d’agents. Mettez Core à jour avant de l’activer ; vous pouvez préparer les paramètres en attendant.`,o=`Enregistrer les paramètres`,s=`Enregistrement…`,c=`Paramètres enregistrés`,l=`Impossible d’enregistrer les paramètres.`,u=`Demander une approbation avant de terminer le workflow`,d={title:`Fournisseurs`,hint:`Les CLI utilisent leur connexion existante. Pour les API, indiquez uniquement un nom de variable d’environnement, jamais une clé. Il peut rester vide en local. Réaffectez les rôles avant de supprimer leur fournisseur.`,entry:`Fournisseur {{index}}`,id:`ID du fournisseur`,kind:`Type de connexion`,cli:`CLI de programmation installé`,compatible:`API compatible OpenAI`,command:`CLI de programmation`,baseUrl:`URL de base de l’API`,apiKeyEnv:`Variable d’environnement de la clé (facultative)`,remove:`Supprimer le fournisseur`,addCli:`Ajouter un fournisseur CLI`,addLocal:`Ajouter un fournisseur local / API`,show:`Afficher les connexions aux fournisseurs`,hide:`Masquer les connexions aux fournisseurs`,globalTitle:`Connexions des fournisseurs`,globalHint:`Ces connexions sont disponibles pour tous les projets. Attribuez les fournisseurs et modèles aux rôles dans les paramètres du projet. Les changements s’appliquent aux nouvelles exécutions.`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`Architecte`,developer:`Développeur`,reviewer:`Réviseur`,verify:`Vérification`,archive:`Finalisation`},m={title:`Attribution des rôles`,hint:`Chaque rôle peut utiliser un fournisseur et un modèle différents. Connexions : Paramètres généraux → Specrails Agents. Limite par défaut : {{turns}} tours par agent.`,provider:`Fournisseur`,model:`Modèle`,modelPlaceholder:`ID du modèle ou modèle par défaut du CLI`,maxTurns:`Nombre maximal de tours (par défaut {{turns}})`,defaultModel:`Par défaut ({{model}})`},h={title:`Limites du workflow`,hint:`Les champs vides utilisent les valeurs de Core : {{attempts}} tentatives du développeur et {{minutes}} minutes par workflow. Les plafonds de jetons et USD sont facultatifs ; un plafond USD exige Claude pour chaque rôle IA.`,maxAttempts:`Tentatives maximales du développeur (par défaut {{attempts}})`,timeoutMinutes:`Délai en minutes (par défaut {{minutes}})`,maxTokens:`Jetons maximum`,maxCostUsd:`Coût maximum (USD)`,unlimited:`Sans limite`},g={title:`Commandes de vérification`,hint:`Facultatif. Elles s’exécutent quand le développeur a terminé et leurs échecs lui reviennent. Liste vide : l’architecte propose les vérifications propres au projet à chaque exécution ; les dépôts sans vérification automatique sont quand même relus.`,detect:`Détecter les vérifications du projet`,detecting:`Détection…`,detected:`Rempli avec les vérifications que ce projet définit déjà.`,nothingDetected:`Aucune commande de test, de vérification de types ou de build trouvée. Ce n’est pas grave : l’architecte propose des vérifications à chaque exécution quand c’est possible.`,detectFailed:`Impossible d’inspecter les dépôts du projet.`,repository:`Dépôt`,command:`Commande`,reason:`Détecté depuis {{reason}}`,remove:`Retirer`,add:`Ajouter une commande`,invalidLine:`Commande de vérification vide ou guillemet non fermé : {{line}}`,label:`Libellé du contrôle (facultatif)`,moveUp:`Monter`,moveDown:`Descendre`},_={title:`Exécutions enregistrées`,refresh:`Actualiser`,hint:`Continue dans le worktree d’origine avec le périmètre et les paramètres enregistrés ; la progression apparaît dans le journal de ce job. Ne publie pas et ne relance pas la livraison Desktop. Les exécutions actives s’arrêtent depuis les contrôles du job.`,empty:`Aucune exécution enregistrée.`,loadFailed:`Impossible de charger les exécutions.`,actionFailed:`Impossible de mettre à jour cette exécution.`,phase:`Phase suivante : {{phase}}`,approve:`Approuver la fin`,recover:`Récupérer la phase interrompue`,resume:`Reprendre`,cancel:`Annuler la reprise`,status:{running:`Reprise en cours…`,succeeded:`Réussi`,failed:`Échec`,blocked:`Bloqué`,paused:`En pause`,cancelled:`Annulé`,interrupted:`Interrompu`,unavailable:`Indisponible`},question:`L'architecte demande :`,answerLabel:`Votre réponse`,answerPlaceholder:`Répondez à la question ; l'architecte poursuit avec elle.`,answer:`Répondre et reprendre`,viewLog:`Voir le journal du job`,implementation:`Implémentation`,preserveProgress:`Reprendre à la phase indiquée en conservant le travail et les paramètres enregistrés.`,reviewDelivery:`Implémentation terminée. Vérifiez le résultat dans le journal avant la livraison ; cette reprise ne l’a pas publié.`,prepareDelivery:`Préparer la livraison`},v={architect:`Lit le code et rédige la proposition, la conception, les tâches et la spec. Lecture seule.`,developer:`Implémente les tâches avec des tests. Peut modifier des fichiers et exécuter des commandes dans le bac à sable du CLI.`,reviewer:`Vérifie le résultat par rapport à la spec et aux preuves de vérification. Lecture seule.`},y={title:`Seuil de revue`,hint:`Les champs vides utilisent le seuil de Core. Les valeurs ne peuvent que le relever : score global d'au moins {{score}}, sécurité d'au moins {{security}}, autres aspects d'au moins {{aspect}}.`,minScore:`Score global minimal (par défaut {{score}})`,aspects:{type_correctness:`Exactitude des types (par défaut {{score}})`,pattern_adherence:`Respect des patrons (par défaut {{score}})`,test_coverage:`Couverture de tests (par défaut {{score}})`,security:`Sécurité (par défaut {{score}})`,architectural_alignment:`Alignement architectural (par défaut {{score}})`}},b={title:`Confiance de l'architecte`,hint:`Après une passe d'investigation autonome, une conception encore peu sûre se met en pause avec la question de l'architecte ou continue sur des hypothèses explicites.`,onLowConfidence:`En cas de faible confiance`,ask:`Demander (pause avec la question)`,proceed:`Continuer sur des hypothèses explicites`},x={title:`Consommation et durée`,hint:`Inclut les corrections et les appels échoués. La durée des agents inclut les outils. Les tokens en cache font partie des tokens en entrée.`,unknown:`Indisponible`,duration:`Durée d’exécution`,agentTime:`Durée des agents`,cost:`Coût déclaré`,providerCalls:`Appels aux agents`,toolCalls:`Appels aux outils`,input:`Tokens en entrée`,output:`Tokens en sortie`,uncached:`Entrée sans cache`,cacheRead:`Lectures du cache`,cacheWrite:`Écritures du cache`,partial:`Certains essais ne disposent pas de mesures détaillées.`,phases:`Consommation par phase`,phase:`Phase`,attempts:`Essais`},S={title:`Prompts des rôles des agents`,description:`Consultez et modifiez les instructions de chaque rôle. Elles sont partagées par tous les projets et fournisseurs ; les modifications s’appliquent aux nouveaux travaux. Les travaux repris conservent leurs prompts d’origine.`,definition:`Définition de {{role}}`,default:`Valeur par défaut`,custom:`Personnalisé`,restore:`Rétablir la valeur par défaut`,contracts:`Le contexte de la spec, le workflow OpenSpec et le format de réponse requis sont ajoutés automatiquement et ne sont pas modifiables ici.`,invalid:`Chaque définition doit contenir entre 1 et 20 000 caractères, du texte non vide et aucun octet nul.`,saved:`Prompts des rôles enregistrés`,unsaved:`Modifications non enregistrées`,discard:`Annuler les modifications`,save:`Enregistrer les prompts`},C={title:`Efficacité de l’implémentation`,scope:`S’applique aux nouvelles exécutions. Les exécutions enregistrées conservent leur configuration et leur moteur.`,effort:`Effort de raisonnement`,providerDefault:`Valeur du fournisseur`,unconfirmed:`Non confirmé`,unknownSupport:`La prise en charge de ce modèle et de ce transport reste à confirmer.`,escalation:`Autoriser un niveau supérieur avec le même fournisseur`,baseRequired:`Sélectionnez d’abord un modèle de base explicite.`,escalationModel:`Modèle supérieur`,triggers:{architect:`Seule l’investigation approfondie existante peut sélectionner ce niveau.`,developer:`Après deux candidats en échec, la prochaine tentative autorisée peut sélectionner ce niveau.`,reviewer:`Uniquement pour réparer une réponse mal formée, jamais pour un refus du code.`},contextMode:`Contexte du dépôt`,reviewMode:`Revue des corrections`,planning:`Profondeur de planification`,adaptive:`Adaptatif`,full:`Complet`,developerChecks:`Accepter les contrôles supplémentaires proposés par le développeur`,concurrency:`Contrôles simultanés maximum`,concurrencyHint:`Par défaut : 1. Seuls les contrôles indépendants déclarés par l’hôte dans différents dépôts peuvent s’exécuter ensemble. Aucune réutilisation par défaut.`,checkCapabilities:`Vérifier la compatibilité des modèles`,capabilitiesFailed:`Compatibilité non confirmée. Mettez à jour Core ou conservez les valeurs du fournisseur.`},w={title:`Preuves de vérification`,acceptance:`Acceptation technique`,acceptanceStatus:{pending:`En attente`,validated:`Validé`,"with-exceptions":`Avec exceptions`,blocked:`Bloqué`},calls:`Appels aux agents`,executed:`Contrôles exécutés`,reused:`Contrôles réutilisés`,unknown:`Indisponible`,unavailable:`Preuves indisponibles. Le résultat enregistré ne prouve pas la validité actuelle.`,current:`Candidat et plan actuels`,historical:`Résultat historique`,moreChecks:`Plus de contrôles`,output:`Sortie de vérification`,empty:`Aucune sortie`,truncated:`Page limitée ou capture tronquée.`,nextPage:`Page de sortie suivante`,status:{passed:`Réussi`,failed:`Échec`,cancelled:`Annulé`,interrupted:`Interrompu`},disposition:{executed:`Exécuté`,reused:`Réutilisé`,"not-run":`Non exécuté`},origin:`Origine`,origins:{host:`Hôte`,architect:`Architecte`,developer:`Développeur`,"frozen-runtime-config":`Configuration enregistrée`,"project-role":`Rôle du projet`,default:`Par défaut`,"explicit-launch-override":`Fournisseur choisi pour le lancement`},reuseDisabled:`Réutilisation désactivée pour ce contrôle.`,reuseConfirmed:`Réutilisé après confirmation des entrées et outils identiques.`,inputsChanged:`Entrées modifiées pendant la vérification ; résultat invalidé.`,reuseUnproven:`Aucun résultat actuel avec des entrées identiques prouvées ; contrôle relancé.`,original:`Exécution originale`,requested:`Demandé`,reported:`Rapporté`},T={title:e,description:t,loading:n,loadFailed:r,retry:i,unavailable:a,save:o,saving:s,saved:c,saveFailed:l,approvalBeforeArchive:u,providers:d,cliNames:f,roles:p,agents:m,limits:h,verification:g,runs:_,roleHints:v,review:y,architect:b,metrics:x,prompts:S,efficiency:C,evidence:w};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,T as default,t as description,C as efficiency,w as evidence,h as limits,r as loadFailed,n as loading,x as metrics,S as prompts,d as providers,i as retry,y as review,v as roleHints,p as roles,_ as runs,o as save,l as saveFailed,c as saved,s as saving,e as title,a as unavailable,g as verification};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({agents:()=>g,approvalBeforeArchive:()=>f,architect:()=>S,cliNames:()=>m,default:()=>D,description:()=>r,efficiency:()=>T,evidence:()=>E,limits:()=>_,loadFailed:()=>a,loading:()=>i,metrics:()=>C,prompts:()=>w,providers:()=>p,retry:()=>o,review:()=>x,roleHints:()=>b,roles:()=>h,runs:()=>y,save:()=>c,saveFailed:()=>d,saved:()=>u,saving:()=>l,title:()=>n,unavailable:()=>s,verification:()=>v}),n=`Agent runtime`,r=`Architect, developer and reviewer run as separate phases with deterministic verification in between. Pick a provider per role; everything else has a working default.`,i=`Loading runtime settings…`,a=`Could not load runtime settings. Retry before making changes.`,o=`Retry`,s=`This Core installation does not include the agent runtime. Update Core before enabling it; you can prepare settings while disabled.`,c=`Save runtime settings`,l=`Saving…`,u=`Runtime settings saved`,d=`Could not save runtime settings.`,f=`Pause for approval before completing the workflow`,p={title:`Providers`,hint:`CLI providers use their existing login. API providers accept an environment variable name only, never an API key. Local endpoints can leave it blank. Assign another provider to a role before removing its current provider.`,entry:`Provider {{index}}`,id:`Provider ID`,kind:`Connection type`,cli:`Installed coding CLI`,compatible:`OpenAI-compatible endpoint`,command:`Coding CLI`,baseUrl:`API base URL`,apiKeyEnv:`API key environment variable (optional)`,remove:`Remove provider`,addCli:`Add CLI provider`,addLocal:`Add local / API provider`,show:`Show provider connections`,hide:`Hide provider connections`,globalTitle:`Provider connections`,globalHint:`These connections are available to every project. Assign providers and models to roles in project settings. Changes apply to new executions.`},m={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},h={architect:`Architect`,developer:`Developer`,reviewer:`Reviewer`,verify:`Verification`,archive:`Completion`},g={title:`Role assignments`,hint:`Each role can use a different provider and model. Manage connections in General settings → Specrails Agents. Default limit: {{turns}} turns per agent.`,provider:`Provider`,model:`Model`,modelPlaceholder:`Model ID or CLI default`,maxTurns:`Maximum turns (default {{turns}})`,defaultModel:`Default ({{model}})`},_={title:`Workflow limits`,hint:`Empty fields use Core defaults: {{attempts}} developer attempts and {{minutes}} minutes per workflow. Token and USD caps are optional; USD caps require Claude for every AI role.`,maxAttempts:`Maximum developer attempts (default {{attempts}})`,timeoutMinutes:`Timeout in minutes (default {{minutes}})`,maxTokens:`Maximum tokens`,maxCostUsd:`Maximum cost (USD)`,unlimited:`No limit`},v={title:`Verification commands`,hint:`Optional. These run after the developer finishes and their failures go back to the developer. Leave the list empty and the architect proposes the project's own checks on each run; repositories without any automated check are still reviewed.`,detect:`Detect project checks`,detecting:`Detecting…`,detected:`Filled in from the checks this project already defines.`,nothingDetected:`No test, type-check or build command was found. That is fine: the architect proposes checks at run time when possible.`,detectFailed:`Could not inspect the project repositories.`,repository:`Repository`,command:`Command`,reason:`Detected from {{reason}}`,remove:`Remove`,add:`Add command`,invalidLine:`Verification command is empty or has an unterminated quote: {{line}}`,label:`Check label (optional)`,moveUp:`Move up`,moveDown:`Move down`},y={title:`Saved executions`,refresh:`Refresh`,hint:`Continue in the original worktree with the frozen scope and settings; progress appears in that job's log. This does not publish or restart Desktop delivery. Active rail executions are stopped from their job controls.`,empty:`No saved runtime executions.`,loadFailed:`Could not load saved executions.`,actionFailed:`Could not update this execution.`,phase:`Next phase: {{phase}}`,approve:`Approve completion`,recover:`Recover interrupted phase`,resume:`Resume`,cancel:`Cancel continuation`,status:{running:`Continuing…`,succeeded:`Succeeded`,failed:`Failed`,blocked:`Blocked`,paused:`Paused`,cancelled:`Cancelled`,interrupted:`Interrupted`,unavailable:`Unavailable`},question:`The architect asks:`,answerLabel:`Your answer`,answerPlaceholder:`Answer the question; the architect continues with it.`,answer:`Answer and resume`,viewLog:`View job log`,implementation:`Implementation`,preserveProgress:`Continue from the indicated phase, preserving your existing work and saved settings.`,reviewDelivery:`Implementation completed. Review the result in this job log before arranging delivery; this continuation has not published it.`,prepareDelivery:`Prepare delivery`},b={architect:`Reads the code and writes the proposal, design, tasks and spec. Read-only.`,developer:`Implements the tasks with tests. Can edit files and run commands inside the CLI sandbox.`,reviewer:`Checks the result against the spec and the verification evidence. Read-only.`},x={title:`Review gate`,hint:`Empty fields use Core's gate. Values can only raise it: overall score at least {{score}}, security at least {{security}}, other aspects at least {{aspect}}.`,minScore:`Minimum overall score (default {{score}})`,aspects:{type_correctness:`Type correctness (default {{score}})`,pattern_adherence:`Pattern adherence (default {{score}})`,test_coverage:`Test coverage (default {{score}})`,security:`Security (default {{score}})`,architectural_alignment:`Architectural alignment (default {{score}})`}},S={title:`Architect confidence`,hint:`After one autonomous investigation pass, a design that is still low in confidence either pauses with the architect's question or proceeds on stated assumptions.`,onLowConfidence:`On low confidence`,ask:`Ask (pause with the question)`,proceed:`Proceed on stated assumptions`},C={title:`Usage and time`,hint:`Includes corrections and failed calls. Agent time includes tool work. Cached tokens are part of input tokens.`,unknown:`Unavailable`,duration:`Execution time`,agentTime:`Agent time`,cost:`Reported cost`,providerCalls:`Agent calls`,toolCalls:`Tool calls`,input:`Input tokens`,output:`Output tokens`,uncached:`Uncached input`,cacheRead:`Cache reads`,cacheWrite:`Cache writes`,partial:`Some attempts have no detailed measurements.`,phases:`Usage by phase`,phase:`Phase`,attempts:`Attempts`},w={title:`Agent role prompts`,description:`View and edit the instructions for each role. Shared by all projects and providers; changes apply to new jobs. Resumed jobs keep their original prompts.`,definition:`{{role}} definition`,default:`Factory default`,custom:`Customized`,restore:`Restore default`,contracts:`Spec context, OpenSpec workflow and required response format are added automatically and are not edited here.`,invalid:`Each definition must contain 1–20,000 characters, with nonblank text and no null bytes.`,saved:`Role prompts saved`,unsaved:`Unsaved changes`,discard:`Discard changes`,save:`Save prompts`},T={title:`Implementation efficiency`,scope:`Applies to new runs. Saved runs retain their original configuration and runtime.`,effort:`Reasoning effort`,providerDefault:`Provider default`,unconfirmed:`Unconfirmed`,unknownSupport:`Support is not confirmed for this model and transport. Provider default remains available.`,escalation:`Allow one higher tier with the same provider`,baseRequired:`Select an explicit base model first.`,escalationModel:`Higher-tier model`,triggers:{architect:`Only the existing deeper investigation pass can select this tier.`,developer:`After two failed candidates, the next permitted attempt can select this tier.`,reviewer:`Only a malformed-response repair can select this tier; rejecting code does not trigger it.`},contextMode:`Repository context`,reviewMode:`Correction review`,planning:`Planning depth`,adaptive:`Adaptive`,full:`Full`,developerChecks:`Accept additional checks proposed by the developer`,concurrency:`Maximum concurrent checks`,concurrencyHint:`Default 1. Only host-declared independent checks across different repositories may run together. Checks are never reused by default.`,checkCapabilities:`Check model compatibility`,capabilitiesFailed:`Could not confirm model capabilities. Update the paired Core runtime or keep provider defaults.`},E={title:`Verification evidence`,acceptance:`Technical acceptance`,acceptanceStatus:{pending:`Pending`,validated:`Validated`,"with-exceptions":`With exceptions`,blocked:`Blocked`},calls:`Agent calls`,executed:`Executed checks`,reused:`Reused checks`,unknown:`Unavailable`,unavailable:`Evidence is unavailable for this execution. Its recorded outcome is not proof of current validity.`,current:`Current candidate and plan`,historical:`Historical result`,moreChecks:`More checks`,output:`Verification output`,empty:`No output`,truncated:`This is a bounded page or a truncated capture.`,nextPage:`Next output page`,status:{passed:`Passed`,failed:`Failed`,cancelled:`Cancelled`,interrupted:`Interrupted`},disposition:{executed:`Executed`,reused:`Reused`,"not-run":`Not run`},origin:`Origin`,origins:{host:`Host`,architect:`Architect`,developer:`Developer`,"frozen-runtime-config":`Frozen configuration`,"project-role":`Project role`,default:`Default`,"explicit-launch-override":`Selected launch provider`},reuseDisabled:`Reuse disabled for this check.`,reuseConfirmed:`Reused after verifying matching inputs and toolchain.`,inputsChanged:`Inputs changed during verification; result invalidated.`,reuseUnproven:`No current result with proven matching inputs; the check ran again.`,original:`Original execution`,requested:`Requested`,reported:`Reported`},D={title:n,description:r,loading:i,loadFailed:a,retry:o,unavailable:s,save:c,saving:l,saved:u,saveFailed:d,approvalBeforeArchive:f,providers:p,cliNames:m,roles:h,agents:g,limits:_,verification:v,runs:y,roleHints:b,review:x,architect:S,metrics:C,prompts:w,efficiency:T,evidence:E};export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`代理运行引擎`,t=`架构师、开发者和审阅者作为独立阶段运行,中间进行确定性验证。为每个角色选择提供商即可,其余都有可用的默认值。`,n=`正在加载运行设置…`,r=`无法加载运行设置。请先重试再修改。`,i=`重试`,a=`当前 Core 安装不包含代理运行引擎。启用前请更新 Core;停用时仍可提前配置。`,o=`保存运行设置`,s=`正在保存…`,c=`运行设置已保存`,l=`无法保存运行设置。`,u=`完成工作流前暂停并等待批准`,d={title:`提供商`,hint:`CLI 提供商使用现有登录。API 仅接受环境变量名称,请勿输入密钥。本地端点可留空。删除提供商前,请先重新分配使用它的角色。`,entry:`提供商 {{index}}`,id:`提供商 ID`,kind:`连接类型`,cli:`已安装的编程 CLI`,compatible:`兼容 OpenAI 的端点`,command:`编程 CLI`,baseUrl:`API 基础 URL`,apiKeyEnv:`API 密钥环境变量(可选)`,remove:`移除提供商`,addCli:`添加 CLI 提供商`,addLocal:`添加本地 / API 提供商`,show:`显示提供商连接`,hide:`隐藏提供商连接`,globalTitle:`提供商连接`,globalHint:`这些连接可供所有项目使用。在项目设置中为角色分配提供商和模型。更改适用于新的执行。`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`架构师`,developer:`开发者`,reviewer:`审查者`,verify:`验证`,archive:`完成`},m={title:`角色分配`,hint:`每个角色可以使用不同的提供商和模型。在常规设置 → Specrails Agents中管理连接。默认每个代理最多{{turns}}轮。`,provider:`提供商`,model:`模型`,modelPlaceholder:`模型 ID 或 CLI 默认值`,maxTurns:`最大轮数(默认 {{turns}})`,defaultModel:`默认({{model}})`},h={title:`工作流限制`,hint:`空字段使用 Core 默认值:开发者尝试 {{attempts}} 次,每个工作流 {{minutes}} 分钟。令牌和 USD 上限可选;USD 上限要求所有 AI 角色使用 Claude。`,maxAttempts:`开发者最大尝试次数(默认 {{attempts}})`,timeoutMinutes:`超时(分钟,默认 {{minutes}})`,maxTokens:`最大令牌数`,maxCostUsd:`最大成本(USD)`,unlimited:`无限制`},g={title:`验证命令`,hint:`可选。在开发者完成后运行,失败会返回给开发者。留空时,架构师会在每次运行时提出项目自身的检查;没有自动检查的仓库仍会被审阅。`,detect:`检测项目检查`,detecting:`检测中…`,detected:`已根据此项目已定义的检查填写。`,nothingDetected:`未找到测试、类型检查或构建命令。没关系:架构师会在可能时于运行时提出检查。`,detectFailed:`无法检查项目仓库。`,repository:`仓库`,command:`命令`,reason:`检测自 {{reason}}`,remove:`移除`,add:`添加命令`,invalidLine:`验证命令为空或引号未闭合:{{line}}`,label:`检查名称(可选)`,moveUp:`上移`,moveDown:`下移`},_={title:`已保存的执行`,refresh:`刷新`,hint:`在原始工作树中使用冻结的范围和设置继续执行,进度显示在该任务的日志中。此操作不会发布或重启 Desktop 交付。请从任务控件停止活动中的执行。`,empty:`没有已保存的执行。`,loadFailed:`无法加载已保存的执行。`,actionFailed:`无法更新此执行。`,phase:`下一阶段:{{phase}}`,approve:`批准完成`,recover:`恢复中断阶段`,resume:`继续`,cancel:`取消继续执行`,status:{running:`继续中…`,succeeded:`成功`,failed:`失败`,blocked:`已阻止`,paused:`已暂停`,cancelled:`已取消`,interrupted:`已中断`,unavailable:`不可用`},question:`架构师提问:`,answerLabel:`你的回答`,answerPlaceholder:`回答该问题后,架构师将据此继续。`,answer:`回答并继续`,viewLog:`查看任务日志`,implementation:`实现`,preserveProgress:`从所示阶段继续,保留已有工作和保存的设置。`,reviewDelivery:`实现已完成。交付前请在任务日志中检查结果;本次继续执行未发布结果。`,prepareDelivery:`准备交付`},v={architect:`阅读代码并撰写提案、设计、任务和规范。只读。`,developer:`带测试地实现任务。可在 CLI 沙箱内编辑文件并运行命令。`,reviewer:`对照规范和验证证据检查结果。只读。`},y={title:`评审门槛`,hint:`留空则使用 Core 的门槛。数值只能提高门槛:总体分数至少 {{score}},安全性至少 {{security}},其他方面至少 {{aspect}}。`,minScore:`最低总体分数(默认 {{score}})`,aspects:{type_correctness:`类型正确性(默认 {{score}})`,pattern_adherence:`模式遵循(默认 {{score}})`,test_coverage:`测试覆盖率(默认 {{score}})`,security:`安全性(默认 {{score}})`,architectural_alignment:`架构一致性(默认 {{score}})`}},b={title:`架构师置信度`,hint:`经过一轮自主调查后,若设计的置信度仍然较低,则带着架构师的问题暂停,或基于已声明的假设继续。`,onLowConfidence:`置信度低时`,ask:`询问(带问题暂停)`,proceed:`基于已声明的假设继续`},x={title:`用量与时间`,hint:`包含修正和失败的调用。代理时间包含工具执行时间。缓存令牌属于输入令牌的一部分。`,unknown:`不可用`,duration:`执行时间`,agentTime:`代理时间`,cost:`已报告费用`,providerCalls:`代理调用`,toolCalls:`工具调用`,input:`输入令牌`,output:`输出令牌`,uncached:`未缓存输入`,cacheRead:`缓存读取`,cacheWrite:`缓存写入`,partial:`部分尝试没有详细测量数据。`,phases:`各阶段用量`,phase:`阶段`,attempts:`尝试次数`},S={title:`代理角色提示词`,description:`查看和编辑各角色的指令。所有项目和提供商共用这些指令;更改适用于新任务。恢复的任务保留原始提示词。`,definition:`{{role}}定义`,default:`出厂默认值`,custom:`已自定义`,restore:`恢复默认值`,contracts:`Spec 上下文、OpenSpec 工作流程和所需的响应格式会自动添加,无法在此编辑。`,invalid:`每个定义必须包含 1–20,000 个字符,不能仅包含空白字符,也不能包含空字节。`,saved:`角色提示词已保存`,unsaved:`未保存的更改`,discard:`放弃更改`,save:`保存提示词`},C={title:`实现效率`,scope:`适用于新运行。已保存的运行保留原始配置和运行时。`,effort:`推理强度`,providerDefault:`提供商默认值`,unconfirmed:`未确认`,unknownSupport:`尚未确认此模型和传输方式的支持情况。`,escalation:`允许使用同一提供商的一个更高等级`,baseRequired:`请先明确选择基础模型。`,escalationModel:`更高等级模型`,triggers:{architect:`仅现有的深入调查步骤可选择此等级。`,developer:`两个候选实现失败后,下一次允许的尝试可选择此等级。`,reviewer:`仅用于修复格式错误的响应;拒绝代码不会触发升级。`},contextMode:`仓库上下文`,reviewMode:`修正审查`,planning:`规划深度`,adaptive:`自适应`,full:`完整`,developerChecks:`接受开发者提出的额外检查`,concurrency:`最大并发检查数`,concurrencyHint:`默认值为 1。只有主机声明为独立且属于不同仓库的检查才能并发运行。默认不复用检查。`,checkCapabilities:`检查模型兼容性`,capabilitiesFailed:`无法确认兼容性。请更新配套 Core 或保留提供商默认值。`},w={title:`验证证据`,acceptance:`技术验收`,acceptanceStatus:{pending:`待处理`,validated:`已验证`,"with-exceptions":`存在例外`,blocked:`已阻止`},calls:`代理调用`,executed:`已执行检查`,reused:`已复用检查`,unknown:`不可用`,unavailable:`证据不可用。已记录的结果不代表当前仍然有效。`,current:`当前候选实现和计划`,historical:`历史结果`,moreChecks:`更多检查`,output:`验证输出`,empty:`无输出`,truncated:`此页面有长度限制或记录已截断。`,nextPage:`下一页输出`,status:{passed:`通过`,failed:`失败`,cancelled:`已取消`,interrupted:`已中断`},disposition:{executed:`已执行`,reused:`已复用`,"not-run":`未执行`},origin:`来源`,origins:{host:`主机`,architect:`架构师`,developer:`开发者`,"frozen-runtime-config":`已保存配置`,"project-role":`项目角色`,default:`默认`,"explicit-launch-override":`本次运行选择的提供商`},reuseDisabled:`此检查已禁用复用。`,reuseConfirmed:`确认输入和工具链一致后复用。`,inputsChanged:`验证期间输入发生变化;结果已失效。`,reuseUnproven:`没有输入一致且仍然有效的结果;已重新执行检查。`,original:`原始执行`,requested:`请求值`,reported:`报告值`},T={title:e,description:t,loading:n,loadFailed:r,retry:i,unavailable:a,save:o,saving:s,saved:c,saveFailed:l,approvalBeforeArchive:u,providers:d,cliNames:f,roles:p,agents:m,limits:h,verification:g,runs:_,roleHints:v,review:y,architect:b,metrics:x,prompts:S,efficiency:C,evidence:w};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,T as default,t as description,C as efficiency,w as evidence,h as limits,r as loadFailed,n as loading,x as metrics,S as prompts,d as providers,i as retry,y as review,v as roleHints,p as roles,_ as runs,o as save,l as saveFailed,c as saved,s as saving,e as title,a as unavailable,g as verification};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`Agenten-Laufzeit`,t=`Architekt, Entwickler und Reviewer laufen als getrennte Phasen mit deterministischer Verifikation dazwischen. Wähle pro Rolle einen Anbieter; alles andere hat funktionierende Standardwerte.`,n=`Einstellungen werden geladen…`,r=`Einstellungen konnten nicht geladen werden. Vor Änderungen erneut versuchen.`,i=`Erneut versuchen`,a=`Diese Core-Installation enthält die Agenten-Laufzeit nicht. Aktualisieren Sie Core vor der Aktivierung. Die Einstellungen können Sie bereits vorbereiten.`,o=`Laufzeit-Einstellungen speichern`,s=`Wird gespeichert…`,c=`Einstellungen gespeichert`,l=`Einstellungen konnten nicht gespeichert werden.`,u=`Vor Abschluss des Workflows auf Freigabe warten`,d={title:`Anbieter`,hint:`CLI-Anbieter nutzen die bestehende Anmeldung. APIs akzeptieren nur den Namen einer Umgebungsvariablen, niemals den Schlüssel selbst. Lokal kann er leer bleiben. Rollen vor dem Entfernen ihres Anbieters neu zuweisen.`,entry:`Anbieter {{index}}`,id:`Anbieter-ID`,kind:`Verbindungstyp`,cli:`Installierte Programmier-CLI`,compatible:`OpenAI-kompatibler Endpunkt`,command:`Programmier-CLI`,baseUrl:`API-Basis-URL`,apiKeyEnv:`Umgebungsvariable für API-Schlüssel (optional)`,remove:`Anbieter entfernen`,addCli:`CLI-Anbieter hinzufügen`,addLocal:`Lokalen / API-Anbieter hinzufügen`,show:`Anbieterverbindungen anzeigen`,hide:`Anbieterverbindungen ausblenden`,globalTitle:`Anbieterverbindungen`,globalHint:`Diese Verbindungen stehen allen Projekten zur Verfügung. Anbieter und Modelle werden in den Projekteinstellungen Rollen zugewiesen. Änderungen gelten für neue Ausführungen.`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`Architekt`,developer:`Entwickler`,reviewer:`Prüfer`,verify:`Prüfung`,archive:`Abschluss`},m={title:`Rollenzuweisungen`,hint:`Jede Rolle kann einen anderen Anbieter und ein anderes Modell verwenden. Verbindungen: Allgemeine Einstellungen → Specrails Agents. Standard: {{turns}} Runden pro Agent.`,provider:`Anbieter`,model:`Modell`,modelPlaceholder:`Modell-ID oder CLI-Standard`,maxTurns:`Maximale Runden (Standard {{turns}})`,defaultModel:`Standard ({{model}})`},h={title:`Workflow-Limits`,hint:`Leere Felder verwenden die Core-Standards: {{attempts}} Entwicklerversuche und {{minutes}} Minuten pro Workflow. Token- und USD-Obergrenzen sind optional; USD-Obergrenzen erfordern Claude für jede KI-Rolle.`,maxAttempts:`Maximale Entwicklerversuche (Standard {{attempts}})`,timeoutMinutes:`Zeitlimit in Minuten (Standard {{minutes}})`,maxTokens:`Maximale Tokens`,maxCostUsd:`Maximale Kosten (USD)`,unlimited:`Kein Limit`},g={title:`Verifikationsbefehle`,hint:`Optional. Sie laufen, nachdem der Entwickler fertig ist; Fehler gehen an den Entwickler zurück. Bleibt die Liste leer, schlägt der Architekt bei jedem Lauf die projekteigenen Prüfungen vor; Repositories ohne automatische Prüfung werden trotzdem reviewt.`,detect:`Projektprüfungen erkennen`,detecting:`Erkenne…`,detected:`Ausgefüllt mit den Prüfungen, die dieses Projekt bereits definiert.`,nothingDetected:`Kein Test-, Typprüfungs- oder Build-Befehl gefunden. Kein Problem: der Architekt schlägt bei jedem Lauf Prüfungen vor, wenn möglich.`,detectFailed:`Die Projekt-Repositories konnten nicht untersucht werden.`,repository:`Repository`,command:`Befehl`,reason:`Erkannt aus {{reason}}`,remove:`Entfernen`,add:`Befehl hinzufügen`,invalidLine:`Verifikationsbefehl ist leer oder hat ein nicht geschlossenes Anführungszeichen: {{line}}`,label:`Prüfbezeichnung (optional)`,moveUp:`Nach oben`,moveDown:`Nach unten`},_={title:`Gespeicherte Ausführungen`,refresh:`Aktualisieren`,hint:`Setzt im ursprünglichen Worktree mit gespeichertem Umfang und Einstellungen fort; der Fortschritt erscheint im Protokoll dieses Jobs. Es wird nichts veröffentlicht und keine Desktop-Auslieferung neu gestartet. Aktive Rail-Ausführungen werden über ihre Job-Steuerung gestoppt.`,empty:`Keine gespeicherten Ausführungen.`,loadFailed:`Ausführungen konnten nicht geladen werden.`,actionFailed:`Ausführung konnte nicht aktualisiert werden.`,phase:`Nächste Phase: {{phase}}`,approve:`Abschluss freigeben`,recover:`Unterbrochene Phase wiederherstellen`,resume:`Fortsetzen`,cancel:`Fortsetzung abbrechen`,status:{running:`Wird fortgesetzt…`,succeeded:`Erfolgreich`,failed:`Fehlgeschlagen`,blocked:`Blockiert`,paused:`Pausiert`,cancelled:`Abgebrochen`,interrupted:`Unterbrochen`,unavailable:`Nicht verfügbar`},question:`Der Architekt fragt:`,answerLabel:`Ihre Antwort`,answerPlaceholder:`Beantworten Sie die Frage; der Architekt macht damit weiter.`,answer:`Antworten und fortsetzen`,viewLog:`Job-Protokoll anzeigen`,implementation:`Implementierung`,preserveProgress:`Ab der angezeigten Phase fortsetzen; bisherige Arbeit und gespeicherte Einstellungen bleiben erhalten.`,reviewDelivery:`Implementierung abgeschlossen. Prüfe das Ergebnis im Job-Protokoll vor der Auslieferung; diese Fortsetzung hat es nicht veröffentlicht.`,prepareDelivery:`Auslieferung vorbereiten`},v={architect:`Liest den Code und schreibt Vorschlag, Design, Aufgaben und Spezifikation. Nur lesend.`,developer:`Setzt die Aufgaben mit Tests um. Darf Dateien bearbeiten und Befehle in der CLI-Sandbox ausführen.`,reviewer:`Prüft das Ergebnis gegen Spezifikation und Verifikationsnachweise. Nur lesend.`},y={title:`Review-Schwelle`,hint:`Leere Felder verwenden Cores Schwelle. Werte können sie nur anheben: Gesamtwert mindestens {{score}}, Sicherheit mindestens {{security}}, andere Aspekte mindestens {{aspect}}.`,minScore:`Mindestgesamtwert (Standard {{score}})`,aspects:{type_correctness:`Typkorrektheit (Standard {{score}})`,pattern_adherence:`Mustertreue (Standard {{score}})`,test_coverage:`Testabdeckung (Standard {{score}})`,security:`Sicherheit (Standard {{score}})`,architectural_alignment:`Architekturkonformität (Standard {{score}})`}},b={title:`Zuversicht des Architekten`,hint:`Nach einem autonomen Untersuchungsdurchlauf pausiert ein weiterhin unsicherer Entwurf mit der Frage des Architekten oder fährt mit benannten Annahmen fort.`,onLowConfidence:`Bei geringer Zuversicht`,ask:`Fragen (mit der Frage pausieren)`,proceed:`Mit benannten Annahmen fortfahren`},x={title:`Verbrauch und Zeit`,hint:`Enthält Korrekturen und fehlgeschlagene Aufrufe. Die Agentenzeit umfasst Werkzeuge. Cache-Tokens sind Teil der Eingabe-Tokens.`,unknown:`Nicht verfügbar`,duration:`Ausführungszeit`,agentTime:`Agentenzeit`,cost:`Gemeldete Kosten`,providerCalls:`Agentenaufrufe`,toolCalls:`Werkzeugaufrufe`,input:`Eingabe-Tokens`,output:`Ausgabe-Tokens`,uncached:`Eingabe ohne Cache`,cacheRead:`Cache-Lesezugriffe`,cacheWrite:`Cache-Schreibzugriffe`,partial:`Für einige Versuche fehlen detaillierte Messungen.`,phases:`Verbrauch nach Phase`,phase:`Phase`,attempts:`Versuche`},S={title:`Prompts der Agentenrollen`,description:`Anweisungen für jede Rolle anzeigen und bearbeiten. Sie gelten für alle Projekte und Anbieter; Änderungen gelten für neue Jobs. Fortgesetzte Jobs behalten ihre ursprünglichen Prompts.`,definition:`Definition für {{role}}`,default:`Werkseinstellung`,custom:`Angepasst`,restore:`Standard wiederherstellen`,contracts:`Spec-Kontext, OpenSpec-Workflow und erforderliches Antwortformat werden automatisch ergänzt und hier nicht bearbeitet.`,invalid:`Jede Definition muss 1–20.000 Zeichen mit nicht leerem Text und ohne Nullbytes enthalten.`,saved:`Rollen-Prompts gespeichert`,unsaved:`Ungespeicherte Änderungen`,discard:`Änderungen verwerfen`,save:`Prompts speichern`},C={title:`Effizienz der Implementierung`,scope:`Gilt für neue Ausführungen. Gespeicherte Ausführungen behalten ihre Konfiguration und Laufzeit.`,effort:`Denkaufwand`,providerDefault:`Anbietervorgabe`,unconfirmed:`Unbestätigt`,unknownSupport:`Unterstützung für dieses Modell und diesen Transport ist nicht bestätigt.`,escalation:`Eine höhere Stufe beim gleichen Anbieter erlauben`,baseRequired:`Zuerst ein konkretes Basismodell auswählen.`,escalationModel:`Modell der höheren Stufe`,triggers:{architect:`Nur die bestehende vertiefte Untersuchung kann diese Stufe wählen.`,developer:`Nach zwei fehlgeschlagenen Kandidaten kann der nächste erlaubte Versuch diese Stufe wählen.`,reviewer:`Nur zur Reparatur ungültiger Antworten, nicht bei Ablehnung des Codes.`},contextMode:`Repository-Kontext`,reviewMode:`Korrekturprüfung`,planning:`Planungstiefe`,adaptive:`Adaptiv`,full:`Vollständig`,developerChecks:`Zusätzliche Prüfungen des Entwicklers akzeptieren`,concurrency:`Maximale gleichzeitige Prüfungen`,concurrencyHint:`Standard: 1. Nur vom Host als unabhängig deklarierte Prüfungen verschiedener Repositories laufen gleichzeitig. Standardmäßig keine Wiederverwendung.`,checkCapabilities:`Modellkompatibilität prüfen`,capabilitiesFailed:`Kompatibilität nicht bestätigt. Core aktualisieren oder Anbietervorgaben beibehalten.`},w={title:`Prüfnachweise`,acceptance:`Technische Abnahme`,acceptanceStatus:{pending:`Ausstehend`,validated:`Validiert`,"with-exceptions":`Mit Ausnahmen`,blocked:`Blockiert`},calls:`Agentenaufrufe`,executed:`Ausgeführte Prüfungen`,reused:`Wiederverwendete Prüfungen`,unknown:`Nicht verfügbar`,unavailable:`Nachweise nicht verfügbar. Das gespeicherte Ergebnis beweist keine aktuelle Gültigkeit.`,current:`Aktueller Kandidat und Plan`,historical:`Historisches Ergebnis`,moreChecks:`Weitere Prüfungen`,output:`Prüfausgabe`,empty:`Keine Ausgabe`,truncated:`Begrenzte Seite oder gekürzte Erfassung.`,nextPage:`Nächste Ausgabeseite`,status:{passed:`Bestanden`,failed:`Fehlgeschlagen`,cancelled:`Abgebrochen`,interrupted:`Unterbrochen`},disposition:{executed:`Ausgeführt`,reused:`Wiederverwendet`,"not-run":`Nicht ausgeführt`},origin:`Herkunft`,origins:{host:`Host`,architect:`Architekt`,developer:`Entwickler`,"frozen-runtime-config":`Gespeicherte Konfiguration`,"project-role":`Projektrolle`,default:`Standard`,"explicit-launch-override":`Für diesen Start gewählter Anbieter`},reuseDisabled:`Wiederverwendung für diese Prüfung deaktiviert.`,reuseConfirmed:`Nach Prüfung identischer Eingaben und Werkzeuge wiederverwendet.`,inputsChanged:`Eingaben während der Prüfung geändert; Ergebnis ungültig.`,reuseUnproven:`Kein aktuelles Ergebnis mit nachweislich identischen Eingaben; erneut ausgeführt.`,original:`Ursprüngliche Ausführung`,requested:`Angefordert`,reported:`Gemeldet`},T={title:e,description:t,loading:n,loadFailed:r,retry:i,unavailable:a,save:o,saving:s,saved:c,saveFailed:l,approvalBeforeArchive:u,providers:d,cliNames:f,roles:p,agents:m,limits:h,verification:g,runs:_,roleHints:v,review:y,architect:b,metrics:x,prompts:S,efficiency:C,evidence:w};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,T as default,t as description,C as efficiency,w as evidence,h as limits,r as loadFailed,n as loading,x as metrics,S as prompts,d as providers,i as retry,y as review,v as roleHints,p as roles,_ as runs,o as save,l as saveFailed,c as saved,s as saving,e as title,a as unavailable,g as verification};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`Motor de agentes`,t=`Arquitecto, desarrollador y revisor se ejecutan como fases separadas con verificación determinista entre ellas. Elige un proveedor por rol; todo lo demás tiene un valor por defecto que funciona.`,n=`Cargando configuración…`,r=`No se pudo cargar la configuración. Reintenta antes de modificarla.`,i=`Reintentar`,a=`Esta instalación de Core no incluye el motor de agentes. Actualiza Core antes de activarlo; puedes preparar la configuración mientras está desactivado.`,o=`Guardar configuración`,s=`Guardando…`,c=`Configuración guardada`,l=`No se pudo guardar la configuración.`,u=`Pausar para aprobación antes de completar el flujo`,d={title:`Proveedores`,hint:`Los proveedores CLI usan su sesión existente. Los proveedores API solo aceptan el nombre de una variable de entorno, nunca una clave. Los servicios locales pueden dejarlo vacío. Asigna otro proveedor al rol antes de eliminar el actual.`,entry:`Proveedor {{index}}`,id:`ID del proveedor`,kind:`Tipo de conexión`,cli:`CLI de programación instalado`,compatible:`API compatible con OpenAI`,command:`CLI de programación`,baseUrl:`URL base de la API`,apiKeyEnv:`Variable de entorno de la clave (opcional)`,remove:`Eliminar proveedor`,addCli:`Añadir proveedor CLI`,addLocal:`Añadir proveedor local / API`,show:`Mostrar conexiones de proveedores`,hide:`Ocultar conexiones de proveedores`,globalTitle:`Conexiones de proveedores`,globalHint:`Estas conexiones están disponibles para todos los proyectos. Asigna proveedores y modelos a cada rol en los ajustes del proyecto. Los cambios se aplican a nuevas ejecuciones.`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`Arquitecto`,developer:`Desarrollador`,reviewer:`Revisor`,verify:`Verificación`,archive:`Finalización`},m={title:`Asignación de roles`,hint:`Cada rol puede usar un proveedor y un modelo distintos. Las conexiones se gestionan en Ajustes generales → Specrails Agents. Límite por defecto: {{turns}} turnos por agente.`,provider:`Proveedor`,model:`Modelo`,modelPlaceholder:`ID del modelo o predeterminado del CLI`,maxTurns:`Máximo de turnos (por defecto {{turns}})`,defaultModel:`Predeterminado ({{model}})`},h={title:`Límites del flujo`,hint:`Los campos vacíos usan los valores de Core: {{attempts}} intentos del desarrollador y {{minutes}} minutos por flujo. Los topes de tokens y USD son opcionales; el tope en USD requiere Claude en todos los roles.`,maxAttempts:`Máximo de intentos del desarrollador (por defecto {{attempts}})`,timeoutMinutes:`Tiempo máximo en minutos (por defecto {{minutes}})`,maxTokens:`Máximo de tokens`,maxCostUsd:`Coste máximo (USD)`,unlimited:`Sin límite`},g={title:`Comandos de verificación`,hint:`Opcional. Se ejecutan cuando el desarrollador termina y sus fallos vuelven al desarrollador. Si dejas la lista vacía, el arquitecto propone las comprobaciones propias del proyecto en cada ejecución; los repositorios sin comprobación automática se revisan igualmente.`,detect:`Detectar comprobaciones del proyecto`,detecting:`Detectando…`,detected:`Rellenado con las comprobaciones que este proyecto ya define.`,nothingDetected:`No se encontró ningún comando de test, comprobación de tipos o build. No pasa nada: el arquitecto propone comprobaciones en cada ejecución cuando es posible.`,detectFailed:`No se pudieron inspeccionar los repositorios del proyecto.`,repository:`Repositorio`,command:`Comando`,reason:`Detectado en {{reason}}`,remove:`Eliminar`,add:`Añadir comando`,invalidLine:`El comando de verificación está vacío o tiene comillas sin cerrar: {{line}}`,label:`Nombre de la comprobación (opcional)`,moveUp:`Subir`,moveDown:`Bajar`},_={title:`Ejecuciones guardadas`,refresh:`Actualizar`,hint:`Continúa en el worktree original con el alcance y la configuración guardados; el progreso aparece en el registro de ese trabajo. No publica ni reinicia la entrega de Desktop. Las ejecuciones activas se detienen desde sus controles de trabajo.`,empty:`No hay ejecuciones guardadas.`,loadFailed:`No se pudieron cargar las ejecuciones.`,actionFailed:`No se pudo actualizar esta ejecución.`,phase:`Siguiente fase: {{phase}}`,approve:`Aprobar finalización`,recover:`Recuperar fase interrumpida`,resume:`Reanudar`,cancel:`Cancelar continuación`,status:{running:`Continuando…`,succeeded:`Completado`,failed:`Fallido`,blocked:`Bloqueado`,paused:`En pausa`,cancelled:`Cancelado`,interrupted:`Interrumpido`,unavailable:`No disponible`},question:`El arquitecto pregunta:`,answerLabel:`Tu respuesta`,answerPlaceholder:`Responde a la pregunta; el arquitecto continúa con ella.`,answer:`Responder y reanudar`,viewLog:`Ver log del job`,implementation:`Implementación`,preserveProgress:`Continúa desde la fase indicada, conservando el trabajo anterior y la configuración guardada.`,reviewDelivery:`Implementación completada. Revisa el resultado en el log de este job antes de preparar la entrega; esta continuación no lo ha publicado.`,prepareDelivery:`Preparar entrega`},v={architect:`Lee el código y escribe la propuesta, el diseño, las tareas y la spec. Solo lectura.`,developer:`Implementa las tareas con tests. Puede editar archivos y ejecutar comandos dentro del sandbox del CLI.`,reviewer:`Comprueba el resultado contra la spec y la evidencia de verificación. Solo lectura.`},y={title:`Umbral de revisión`,hint:`Los campos vacíos usan el umbral de Core. Los valores solo pueden elevarlo: puntuación global mínima {{score}}, seguridad mínima {{security}}, resto de aspectos mínimo {{aspect}}.`,minScore:`Puntuación global mínima (por defecto {{score}})`,aspects:{type_correctness:`Corrección de tipos (por defecto {{score}})`,pattern_adherence:`Adhesión a patrones (por defecto {{score}})`,test_coverage:`Cobertura de pruebas (por defecto {{score}})`,security:`Seguridad (por defecto {{score}})`,architectural_alignment:`Alineación arquitectónica (por defecto {{score}})`}},b={title:`Confianza del arquitecto`,hint:`Tras una pasada de investigación autónoma, un diseño con confianza aún baja se pausa con la pregunta del arquitecto o continúa con supuestos declarados.`,onLowConfidence:`Con confianza baja`,ask:`Preguntar (pausar con la pregunta)`,proceed:`Continuar con supuestos declarados`},x={title:`Consumo y tiempo`,hint:`Incluye correcciones y llamadas fallidas. El tiempo del agente incluye sus herramientas. Los tokens de caché forman parte de los tokens de entrada.`,unknown:`No disponible`,duration:`Tiempo de ejecución`,agentTime:`Tiempo de agentes`,cost:`Coste informado`,providerCalls:`Llamadas a agentes`,toolCalls:`Llamadas a herramientas`,input:`Tokens de entrada`,output:`Tokens de salida`,uncached:`Entrada sin caché`,cacheRead:`Lecturas de caché`,cacheWrite:`Escrituras de caché`,partial:`Algunos intentos no tienen mediciones detalladas.`,phases:`Consumo por fase`,phase:`Fase`,attempts:`Intentos`},S={title:`Prompts de los agentes`,description:`Consulta y edita las instrucciones de cada rol. Son comunes a todos los proyectos y proveedores; los cambios se aplican a los nuevos jobs. Los jobs reanudados conservan sus prompts originales.`,definition:`Definición de {{role}}`,default:`Valor de fábrica`,custom:`Personalizado`,restore:`Restaurar valor de fábrica`,contracts:`El contexto de la spec, el flujo de OpenSpec y el formato de respuesta se añaden automáticamente y no se editan aquí.`,invalid:`Cada definición debe contener entre 1 y 20.000 caracteres, con texto no vacío y sin caracteres nulos.`,saved:`Prompts guardados`,unsaved:`Cambios sin guardar`,discard:`Descartar cambios`,save:`Guardar prompts`},C={title:`Eficiencia de implementación`,scope:`Se aplica a nuevas ejecuciones. Las guardadas conservan su configuración y runtime originales.`,effort:`Esfuerzo de razonamiento`,providerDefault:`Predeterminado del proveedor`,unconfirmed:`Sin confirmar`,unknownSupport:`Compatibilidad sin confirmar para este modelo y transporte. Puedes usar el valor predeterminado del proveedor.`,escalation:`Permitir un nivel superior con el mismo proveedor`,baseRequired:`Selecciona primero un modelo base explícito.`,escalationModel:`Modelo del nivel superior`,triggers:{architect:`Solo puede activarse en la pasada adicional de investigación ya permitida.`,developer:`Tras dos candidatos fallidos, puede activarse en el siguiente intento permitido.`,reviewer:`Solo puede activarse para reparar una respuesta mal formada; rechazar código no lo activa.`},contextMode:`Contexto de repositorios`,reviewMode:`Revisión de correcciones`,planning:`Profundidad del plan`,adaptive:`Adaptativa`,full:`Completa`,developerChecks:`Aceptar checks adicionales propuestos por el developer`,concurrency:`Máximo de checks simultáneos`,concurrencyHint:`Por defecto, 1. Solo se solapan checks declarados independientes por el host en repositorios distintos. La reutilización está desactivada por defecto.`,checkCapabilities:`Comprobar compatibilidad de modelos`,capabilitiesFailed:`No se pudo confirmar la compatibilidad. Actualiza el Core emparejado o conserva los valores predeterminados del proveedor.`},w={title:`Evidencia de verificación`,acceptance:`Aceptación técnica`,acceptanceStatus:{pending:`Pendiente`,validated:`Validada`,"with-exceptions":`Con excepciones`,blocked:`Bloqueada`},calls:`Llamadas de agentes`,executed:`Checks ejecutados`,reused:`Checks reutilizados`,unknown:`No disponible`,unavailable:`La evidencia no está disponible para esta ejecución. El resultado registrado no confirma su validez actual.`,current:`Candidato y plan actuales`,historical:`Resultado histórico`,moreChecks:`Más checks`,output:`Salida de verificación`,empty:`Sin salida`,truncated:`Esta es una página limitada o una captura truncada.`,nextPage:`Siguiente página de salida`,status:{passed:`Correcto`,failed:`Fallido`,cancelled:`Cancelado`,interrupted:`Interrumpido`},disposition:{executed:`Ejecutado`,reused:`Reutilizado`,"not-run":`No ejecutado`},origin:`Origen`,origins:{host:`Host`,architect:`Arquitecto`,developer:`Desarrollador`,"frozen-runtime-config":`Configuración guardada`,"project-role":`Rol del proyecto`,default:`Por defecto`,"explicit-launch-override":`Proveedor elegido para el lanzamiento`},reuseDisabled:`Reutilización desactivada para esta comprobación.`,reuseConfirmed:`Reutilizado tras comprobar entradas y herramientas idénticas.`,inputsChanged:`Las entradas cambiaron durante la verificación; resultado invalidado.`,reuseUnproven:`No hay un resultado vigente con entradas idénticas demostradas; se ejecutó de nuevo.`,original:`Ejecución original`,requested:`Solicitado`,reported:`Reportado`},T={title:e,description:t,loading:n,loadFailed:r,retry:i,unavailable:a,save:o,saving:s,saved:c,saveFailed:l,approvalBeforeArchive:u,providers:d,cliNames:f,roles:p,agents:m,limits:h,verification:g,runs:_,roleHints:v,review:y,architect:b,metrics:x,prompts:S,efficiency:C,evidence:w};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,T as default,t as description,C as efficiency,w as evidence,h as limits,r as loadFailed,n as loading,x as metrics,S as prompts,d as providers,i as retry,y as review,v as roleHints,p as roles,_ as runs,o as save,l as saveFailed,c as saved,s as saving,e as title,a as unavailable,g as verification};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`Motore degli agenti`,t=`Architetto, sviluppatore e revisore girano come fasi separate con verifica deterministica in mezzo. Scegli un fornitore per ruolo; tutto il resto ha un valore predefinito funzionante.`,n=`Caricamento delle impostazioni…`,r=`Impossibile caricare le impostazioni. Riprova prima di modificarle.`,i=`Riprova`,a=`Questa installazione di Core non include il motore degli agenti. Aggiorna Core prima di attivarlo; puoi preparare le impostazioni mentre è disattivato.`,o=`Salva impostazioni`,s=`Salvataggio…`,c=`Impostazioni salvate`,l=`Impossibile salvare le impostazioni.`,u=`Richiedi approvazione prima di completare il flusso`,d={title:`Fornitori`,hint:`I CLI usano l’accesso esistente. Le API accettano solo il nome di una variabile d’ambiente, mai la chiave. Per servizi locali può restare vuoto. Riassegna i ruoli prima di rimuovere il fornitore.`,entry:`Fornitore {{index}}`,id:`ID del fornitore`,kind:`Tipo di connessione`,cli:`CLI di programmazione installato`,compatible:`Endpoint compatibile con OpenAI`,command:`CLI di programmazione`,baseUrl:`URL base dell’API`,apiKeyEnv:`Variabile d’ambiente della chiave (facoltativa)`,remove:`Rimuovi fornitore`,addCli:`Aggiungi fornitore CLI`,addLocal:`Aggiungi fornitore locale / API`,show:`Mostra connessioni dei fornitori`,hide:`Nascondi connessioni dei fornitori`,globalTitle:`Connessioni dei provider`,globalHint:`Queste connessioni sono disponibili per tutti i progetti. Assegna provider e modelli ai ruoli nelle impostazioni del progetto. Le modifiche si applicano alle nuove esecuzioni.`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`Architetto`,developer:`Sviluppatore`,reviewer:`Revisore`,verify:`Verifica`,archive:`Completamento`},m={title:`Assegnazione dei ruoli`,hint:`Ogni ruolo può usare un provider e un modello diversi. Connessioni: Impostazioni generali → Specrails Agents. Limite predefinito: {{turns}} turni per agente.`,provider:`Fornitore`,model:`Modello`,modelPlaceholder:`ID del modello o predefinito del CLI`,maxTurns:`Numero massimo di turni (predefinito {{turns}})`,defaultModel:`Predefinito ({{model}})`},h={title:`Limiti del flusso`,hint:`I campi vuoti usano i valori di Core: {{attempts}} tentativi dello sviluppatore e {{minutes}} minuti per flusso. I limiti di token e USD sono facoltativi; il limite in USD richiede Claude per ogni ruolo IA.`,maxAttempts:`Tentativi massimi dello sviluppatore (predefinito {{attempts}})`,timeoutMinutes:`Timeout in minuti (predefinito {{minutes}})`,maxTokens:`Token massimi`,maxCostUsd:`Costo massimo (USD)`,unlimited:`Nessun limite`},g={title:`Comandi di verifica`,hint:`Facoltativo. Vengono eseguiti quando lo sviluppatore termina e i fallimenti tornano allo sviluppatore. Lista vuota: l’architetto propone i controlli propri del progetto a ogni esecuzione; i repository senza controllo automatico vengono comunque revisionati.`,detect:`Rileva i controlli del progetto`,detecting:`Rilevamento…`,detected:`Compilato con i controlli che questo progetto già definisce.`,nothingDetected:`Nessun comando di test, controllo tipi o build trovato. Va bene: l’architetto propone controlli a ogni esecuzione quando possibile.`,detectFailed:`Impossibile ispezionare i repository del progetto.`,repository:`Repository`,command:`Comando`,reason:`Rilevato da {{reason}}`,remove:`Rimuovi`,add:`Aggiungi comando`,invalidLine:`Comando di verifica vuoto o con virgolette non chiuse: {{line}}`,label:`Nome del controllo (facoltativo)`,moveUp:`Sposta su`,moveDown:`Sposta giù`},_={title:`Esecuzioni salvate`,refresh:`Aggiorna`,hint:`Continua nel worktree originale con ambito e impostazioni salvati; l’avanzamento compare nel log di quel job. Non pubblica né riavvia la consegna Desktop. Le esecuzioni attive si fermano dai controlli del job.`,empty:`Nessuna esecuzione salvata.`,loadFailed:`Impossibile caricare le esecuzioni.`,actionFailed:`Impossibile aggiornare questa esecuzione.`,phase:`Prossima fase: {{phase}}`,approve:`Approva completamento`,recover:`Recupera fase interrotta`,resume:`Riprendi`,cancel:`Annulla continuazione`,status:{running:`Continuazione in corso…`,succeeded:`Riuscito`,failed:`Fallito`,blocked:`Bloccato`,paused:`In pausa`,cancelled:`Annullato`,interrupted:`Interrotto`,unavailable:`Non disponibile`},question:`L'architetto chiede:`,answerLabel:`La tua risposta`,answerPlaceholder:`Rispondi alla domanda; l'architetto prosegue con essa.`,answer:`Rispondi e riprendi`,viewLog:`Visualizza log del job`,implementation:`Implementazione`,preserveProgress:`Riprendi dalla fase indicata, conservando il lavoro e le impostazioni salvate.`,reviewDelivery:`Implementazione completata. Controlla il risultato nel log prima della consegna; questa ripresa non lo ha pubblicato.`,prepareDelivery:`Prepara consegna`},v={architect:`Legge il codice e scrive proposta, design, attività e spec. Sola lettura.`,developer:`Implementa le attività con i test. Può modificare file ed eseguire comandi nella sandbox del CLI.`,reviewer:`Controlla il risultato rispetto alla spec e alle prove di verifica. Sola lettura.`},y={title:`Soglia di revisione`,hint:`I campi vuoti usano la soglia di Core. I valori possono solo alzarla: punteggio complessivo almeno {{score}}, sicurezza almeno {{security}}, altri aspetti almeno {{aspect}}.`,minScore:`Punteggio complessivo minimo (predefinito {{score}})`,aspects:{type_correctness:`Correttezza dei tipi (predefinito {{score}})`,pattern_adherence:`Aderenza ai pattern (predefinito {{score}})`,test_coverage:`Copertura dei test (predefinito {{score}})`,security:`Sicurezza (predefinito {{score}})`,architectural_alignment:`Allineamento architetturale (predefinito {{score}})`}},b={title:`Confidenza dell'architetto`,hint:`Dopo un passaggio di indagine autonoma, un progetto ancora poco sicuro si mette in pausa con la domanda dell'architetto oppure procede su ipotesi dichiarate.`,onLowConfidence:`Con bassa confidenza`,ask:`Chiedere (pausa con la domanda)`,proceed:`Procedere su ipotesi dichiarate`},x={title:`Consumo e tempo`,hint:`Include correzioni e chiamate non riuscite. Il tempo degli agenti include gli strumenti. I token della cache fanno parte dei token di input.`,unknown:`Non disponibile`,duration:`Tempo di esecuzione`,agentTime:`Tempo degli agenti`,cost:`Costo dichiarato`,providerCalls:`Chiamate agli agenti`,toolCalls:`Chiamate agli strumenti`,input:`Token di input`,output:`Token di output`,uncached:`Input senza cache`,cacheRead:`Letture della cache`,cacheWrite:`Scritture della cache`,partial:`Alcuni tentativi non hanno misurazioni dettagliate.`,phases:`Consumo per fase`,phase:`Fase`,attempts:`Tentativi`},S={title:`Prompt dei ruoli degli agenti`,description:`Visualizza e modifica le istruzioni di ogni ruolo. Sono condivise da tutti i progetti e provider; le modifiche si applicano ai nuovi lavori. I lavori ripresi mantengono i prompt originali.`,definition:`Definizione di {{role}}`,default:`Impostazione predefinita`,custom:`Personalizzato`,restore:`Ripristina predefinito`,contracts:`Il contesto della spec, il workflow OpenSpec e il formato di risposta richiesto vengono aggiunti automaticamente e non sono modificabili qui.`,invalid:`Ogni definizione deve contenere da 1 a 20.000 caratteri, con testo non vuoto e senza byte nulli.`,saved:`Prompt dei ruoli salvati`,unsaved:`Modifiche non salvate`,discard:`Scarta modifiche`,save:`Salva prompt`},C={title:`Efficienza dell’implementazione`,scope:`Si applica alle nuove esecuzioni. Quelle salvate mantengono configurazione e motore originali.`,effort:`Sforzo di ragionamento`,providerDefault:`Predefinito del fornitore`,unconfirmed:`Non confermato`,unknownSupport:`Il supporto per questo modello e trasporto non è confermato.`,escalation:`Consenti un livello superiore con lo stesso fornitore`,baseRequired:`Seleziona prima un modello base esplicito.`,escalationModel:`Modello di livello superiore`,triggers:{architect:`Solo l’approfondimento già previsto può selezionare questo livello.`,developer:`Dopo due candidati falliti, il tentativo successivo consentito può selezionare questo livello.`,reviewer:`Solo per correggere risposte malformate; il rifiuto del codice non lo attiva.`},contextMode:`Contesto del repository`,reviewMode:`Revisione delle correzioni`,planning:`Profondità della pianificazione`,adaptive:`Adattivo`,full:`Completo`,developerChecks:`Accetta controlli aggiuntivi proposti dallo sviluppatore`,concurrency:`Controlli simultanei massimi`,concurrencyHint:`Predefinito: 1. Solo controlli indipendenti dichiarati dall’host in repository diversi possono essere simultanei. Nessun riutilizzo predefinito.`,checkCapabilities:`Verifica compatibilità dei modelli`,capabilitiesFailed:`Compatibilità non confermata. Aggiorna Core o mantieni i valori del fornitore.`},w={title:`Evidenze di verifica`,acceptance:`Accettazione tecnica`,acceptanceStatus:{pending:`In attesa`,validated:`Validato`,"with-exceptions":`Con eccezioni`,blocked:`Bloccato`},calls:`Chiamate agli agenti`,executed:`Controlli eseguiti`,reused:`Controlli riutilizzati`,unknown:`Non disponibile`,unavailable:`Evidenza non disponibile. Il risultato registrato non prova la validità attuale.`,current:`Candidato e piano attuali`,historical:`Risultato storico`,moreChecks:`Altri controlli`,output:`Output della verifica`,empty:`Nessun output`,truncated:`Pagina limitata o acquisizione troncata.`,nextPage:`Pagina successiva`,status:{passed:`Superato`,failed:`Fallito`,cancelled:`Annullato`,interrupted:`Interrotto`},disposition:{executed:`Eseguito`,reused:`Riutilizzato`,"not-run":`Non eseguito`},origin:`Origine`,origins:{host:`Host`,architect:`Architetto`,developer:`Sviluppatore`,"frozen-runtime-config":`Configurazione salvata`,"project-role":`Ruolo del progetto`,default:`Predefinito`,"explicit-launch-override":`Provider scelto per questo avvio`},reuseDisabled:`Riutilizzo disabilitato per questo controllo.`,reuseConfirmed:`Riutilizzato dopo la conferma di input e strumenti identici.`,inputsChanged:`Input cambiati durante la verifica; risultato invalidato.`,reuseUnproven:`Nessun risultato attuale con input identici comprovati; controllo rieseguito.`,original:`Esecuzione originale`,requested:`Richiesto`,reported:`Segnalato`},T={title:e,description:t,loading:n,loadFailed:r,retry:i,unavailable:a,save:o,saving:s,saved:c,saveFailed:l,approvalBeforeArchive:u,providers:d,cliNames:f,roles:p,agents:m,limits:h,verification:g,runs:_,roleHints:v,review:y,architect:b,metrics:x,prompts:S,efficiency:C,evidence:w};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,T as default,t as description,C as efficiency,w as evidence,h as limits,r as loadFailed,n as loading,x as metrics,S as prompts,d as providers,i as retry,y as review,v as roleHints,p as roles,_ as runs,o as save,l as saveFailed,c as saved,s as saving,e as title,a as unavailable,g as verification};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`Motor de agentes`,t=`Arquiteto, programador e revisor correm como fases separadas com verificação determinista entre elas. Escolha um fornecedor por função; tudo o resto tem um valor por defeito que funciona.`,n=`A carregar configurações…`,r=`Não foi possível carregar as configurações. Tente novamente antes de alterar.`,i=`Tentar novamente`,a=`Esta instalação do Core não inclui o motor de agentes. Atualize o Core antes de ativar; pode preparar as configurações enquanto está desativado.`,o=`Guardar configurações`,s=`A guardar…`,c=`Configurações guardadas`,l=`Não foi possível guardar as configurações.`,u=`Pausar para aprovação antes de concluir o fluxo`,d={title:`Fornecedores`,hint:`Os CLI usam a sessão existente. As API aceitam apenas o nome da variável de ambiente, nunca a chave. Em serviços locais, pode ficar vazio. Reatribua as funções antes de remover o fornecedor.`,entry:`Fornecedor {{index}}`,id:`ID do fornecedor`,kind:`Tipo de ligação`,cli:`CLI de programação instalado`,compatible:`Endpoint compatível com OpenAI`,command:`CLI de programação`,baseUrl:`URL base da API`,apiKeyEnv:`Variável de ambiente da chave (opcional)`,remove:`Remover fornecedor`,addCli:`Adicionar fornecedor CLI`,addLocal:`Adicionar fornecedor local / API`,show:`Mostrar ligações a fornecedores`,hide:`Ocultar ligações a fornecedores`,globalTitle:`Conexões de fornecedores`,globalHint:`Estas conexões estão disponíveis para todos os projetos. Atribua fornecedores e modelos aos papéis nas definições do projeto. As alterações aplicam-se a novas execuções.`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`Arquiteto`,developer:`Desenvolvedor`,reviewer:`Revisor`,verify:`Verificação`,archive:`Conclusão`},m={title:`Atribuição de funções`,hint:`Cada papel pode usar um fornecedor e um modelo diferentes. Conexões: Definições gerais → Specrails Agents. Limite padrão: {{turns}} turnos por agente.`,provider:`Fornecedor`,model:`Modelo`,modelPlaceholder:`ID do modelo ou padrão do CLI`,maxTurns:`Máximo de turnos (por defeito {{turns}})`,defaultModel:`Por defeito ({{model}})`},h={title:`Limites do fluxo`,hint:`Os campos vazios usam os valores do Core: {{attempts}} tentativas do programador e {{minutes}} minutos por fluxo. Os limites de tokens e USD são opcionais; o limite em USD exige Claude em todas as funções de IA.`,maxAttempts:`Máximo de tentativas do programador (por defeito {{attempts}})`,timeoutMinutes:`Tempo limite em minutos (por defeito {{minutes}})`,maxTokens:`Máximo de tokens`,maxCostUsd:`Custo máximo (USD)`,unlimited:`Sem limite`},g={title:`Comandos de verificação`,hint:`Opcional. Correm quando o programador termina e as falhas voltam ao programador. Com a lista vazia, o arquiteto propõe as verificações do próprio projeto em cada execução; os repositórios sem verificação automática são revistos na mesma.`,detect:`Detetar verificações do projeto`,detecting:`A detetar…`,detected:`Preenchido com as verificações que este projeto já define.`,nothingDetected:`Não foi encontrado nenhum comando de teste, verificação de tipos ou build. Não há problema: o arquiteto propõe verificações em cada execução quando possível.`,detectFailed:`Não foi possível inspecionar os repositórios do projeto.`,repository:`Repositório`,command:`Comando`,reason:`Detetado em {{reason}}`,remove:`Remover`,add:`Adicionar comando`,invalidLine:`Comando de verificação vazio ou com aspas por fechar: {{line}}`,label:`Nome da verificação (opcional)`,moveUp:`Subir`,moveDown:`Descer`},_={title:`Execuções guardadas`,refresh:`Atualizar`,hint:`Continua no worktree original com o âmbito e as configurações guardadas; o progresso aparece no registo desse trabalho. Não publica nem reinicia a entrega do Desktop. As execuções ativas param a partir dos controlos do trabalho.`,empty:`Não há execuções guardadas.`,loadFailed:`Não foi possível carregar as execuções.`,actionFailed:`Não foi possível atualizar esta execução.`,phase:`Próxima fase: {{phase}}`,approve:`Aprovar conclusão`,recover:`Recuperar fase interrompida`,resume:`Retomar`,cancel:`Cancelar continuação`,status:{running:`A continuar…`,succeeded:`Concluído`,failed:`Falhou`,blocked:`Bloqueado`,paused:`Em pausa`,cancelled:`Cancelado`,interrupted:`Interrompido`,unavailable:`Indisponível`},question:`O arquiteto pergunta:`,answerLabel:`A sua resposta`,answerPlaceholder:`Responda à pergunta; o arquiteto continua com ela.`,answer:`Responder e retomar`,viewLog:`Ver log do job`,implementation:`Implementação`,preserveProgress:`Continue a partir da fase indicada, preservando o trabalho e as configurações guardadas.`,reviewDelivery:`Implementação concluída. Reveja o resultado no log antes da entrega; esta continuação não o publicou.`,prepareDelivery:`Preparar entrega`},v={architect:`Lê o código e escreve a proposta, o design, as tarefas e a spec. Só leitura.`,developer:`Implementa as tarefas com testes. Pode editar ficheiros e executar comandos na sandbox do CLI.`,reviewer:`Confere o resultado com a spec e a evidência de verificação. Só leitura.`},y={title:`Limite de revisão`,hint:`Campos vazios usam o limite do Core. Os valores só podem elevá-lo: pontuação geral de pelo menos {{score}}, segurança de pelo menos {{security}}, outros aspetos de pelo menos {{aspect}}.`,minScore:`Pontuação geral mínima (padrão {{score}})`,aspects:{type_correctness:`Correção de tipos (padrão {{score}})`,pattern_adherence:`Aderência a padrões (padrão {{score}})`,test_coverage:`Cobertura de testes (padrão {{score}})`,security:`Segurança (padrão {{score}})`,architectural_alignment:`Alinhamento arquitetural (padrão {{score}})`}},b={title:`Confiança do arquiteto`,hint:`Após uma passagem de investigação autónoma, um design ainda com baixa confiança pausa com a pergunta do arquiteto ou prossegue com suposições declaradas.`,onLowConfidence:`Com baixa confiança`,ask:`Perguntar (pausar com a pergunta)`,proceed:`Prosseguir com suposições declaradas`},x={title:`Consumo e tempo`,hint:`Inclui correções e chamadas falhadas. O tempo dos agentes inclui as ferramentas. Os tokens em cache fazem parte dos tokens de entrada.`,unknown:`Indisponível`,duration:`Tempo de execução`,agentTime:`Tempo dos agentes`,cost:`Custo reportado`,providerCalls:`Chamadas a agentes`,toolCalls:`Chamadas a ferramentas`,input:`Tokens de entrada`,output:`Tokens de saída`,uncached:`Entrada sem cache`,cacheRead:`Leituras da cache`,cacheWrite:`Escritas na cache`,partial:`Algumas tentativas não têm medições detalhadas.`,phases:`Consumo por fase`,phase:`Fase`,attempts:`Tentativas`},S={title:`Prompts dos papéis dos agentes`,description:`Veja e edite as instruções de cada papel. São partilhadas por todos os projetos e fornecedores; as alterações aplicam-se a novos trabalhos. Os trabalhos retomados mantêm os prompts originais.`,definition:`Definição de {{role}}`,default:`Predefinição de fábrica`,custom:`Personalizado`,restore:`Restaurar predefinição`,contracts:`O contexto da spec, o fluxo OpenSpec e o formato de resposta obrigatório são adicionados automaticamente e não são editados aqui.`,invalid:`Cada definição deve conter entre 1 e 20.000 caracteres, com texto não vazio e sem bytes nulos.`,saved:`Prompts dos papéis guardados`,unsaved:`Alterações por guardar`,discard:`Descartar alterações`,save:`Guardar prompts`},C={title:`Eficiência da implementação`,scope:`Aplica-se a novas execuções. As execuções guardadas mantêm a configuração e o motor originais.`,effort:`Esforço de raciocínio`,providerDefault:`Padrão do fornecedor`,unconfirmed:`Não confirmado`,unknownSupport:`O suporte deste modelo e transporte não está confirmado.`,escalation:`Permitir um nível superior com o mesmo fornecedor`,baseRequired:`Selecione primeiro um modelo base explícito.`,escalationModel:`Modelo de nível superior`,triggers:{architect:`Apenas a investigação aprofundada existente pode selecionar este nível.`,developer:`Após dois candidatos falhados, a próxima tentativa permitida pode selecionar este nível.`,reviewer:`Apenas para reparar respostas inválidas; rejeitar código não ativa este nível.`},contextMode:`Contexto do repositório`,reviewMode:`Revisão de correções`,planning:`Profundidade do planeamento`,adaptive:`Adaptativo`,full:`Completo`,developerChecks:`Aceitar verificações adicionais propostas pelo programador`,concurrency:`Máximo de verificações simultâneas`,concurrencyHint:`Padrão: 1. Apenas verificações independentes declaradas pelo anfitrião em repositórios diferentes podem executar em conjunto. Sem reutilização por padrão.`,checkCapabilities:`Verificar compatibilidade dos modelos`,capabilitiesFailed:`Compatibilidade não confirmada. Atualize Core ou mantenha os padrões do fornecedor.`},w={title:`Evidências de verificação`,acceptance:`Aceitação técnica`,acceptanceStatus:{pending:`Pendente`,validated:`Validado`,"with-exceptions":`Com exceções`,blocked:`Bloqueado`},calls:`Chamadas aos agentes`,executed:`Verificações executadas`,reused:`Verificações reutilizadas`,unknown:`Indisponível`,unavailable:`Evidência indisponível. O resultado guardado não prova a validade atual.`,current:`Candidato e plano atuais`,historical:`Resultado histórico`,moreChecks:`Mais verificações`,output:`Saída da verificação`,empty:`Sem saída`,truncated:`Página limitada ou captura truncada.`,nextPage:`Página seguinte`,status:{passed:`Aprovado`,failed:`Falhou`,cancelled:`Cancelado`,interrupted:`Interrompido`},disposition:{executed:`Executado`,reused:`Reutilizado`,"not-run":`Não executado`},origin:`Origem`,origins:{host:`Anfitrião`,architect:`Arquiteto`,developer:`Programador`,"frozen-runtime-config":`Configuração guardada`,"project-role":`Papel do projeto`,default:`Padrão`,"explicit-launch-override":`Fornecedor escolhido para esta execução`},reuseDisabled:`Reutilização desativada para esta verificação.`,reuseConfirmed:`Reutilizado após confirmar entradas e ferramentas idênticas.`,inputsChanged:`As entradas mudaram durante a verificação; resultado invalidado.`,reuseUnproven:`Sem resultado atual com entradas idênticas comprovadas; executado novamente.`,original:`Execução original`,requested:`Solicitado`,reported:`Reportado`},T={title:e,description:t,loading:n,loadFailed:r,retry:i,unavailable:a,save:o,saving:s,saved:c,saveFailed:l,approvalBeforeArchive:u,providers:d,cliNames:f,roles:p,agents:m,limits:h,verification:g,runs:_,roleHints:v,review:y,architect:b,metrics:x,prompts:S,efficiency:C,evidence:w};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,T as default,t as description,C as efficiency,w as evidence,h as limits,r as loadFailed,n as loading,x as metrics,S as prompts,d as providers,i as retry,y as review,v as roleHints,p as roles,_ as runs,o as save,l as saveFailed,c as saved,s as saving,e as title,a as unavailable,g as verification};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={title:`エージェント`,subtitle:`このプロジェクトのエージェントプロファイルとカタログ(アップストリーム + カスタム)を管理します。`,tabs:{profiles:`プロファイル`,usage:`使用状況`,catalog:`カタログ`},banner:{title:`プロファイル対応パイプラインには specrails-core {{required}}+ が必要です`,body:`このプロジェクトのバージョンは <code>{{version}}</code> です。プロジェクト内で <code>{{command}}</code> を実行するとプロファイルモードが有効になります。ここで作成したプロファイルは保存されますが、core を更新するまでパイプラインには影響しません。`,unknownVersion:`不明`}},t={loading:`カタログを読み込み中…`,aiEditChipLabel:`AI編集 · {{agentId}}`,errors:{loadFailed:`カタログの読み込みに失敗しました: {{status}}`,bodyLoadFailed:`エージェント本文の読み込みに失敗しました: {{status}}`,generateFailed:`生成に失敗しました: {{status}}`,agentLoadFailed:`読み込みに失敗しました: {{status}}`},templates:{title:`エージェントテンプレートライブラリ`,countOf:`{{shown}} / {{total}}`,description:`エンジニアリング、プロダクト、科学、医療、法務など、厳選されたテンプレートから始められます。1つ選んで Studio で開き、確認・編集してから保存してください。`,searchPlaceholder:`名前、説明、タグ、カテゴリで検索…`,allCategories:`すべて`,tagFilter:`タグフィルター:`,noMatch:`フィルターに一致するテンプレートはありません。`,clearFilters:`フィルターをクリア`,openInStudio:`Studio で開く →`,tip:`ヒント: カードのタグをクリックすると、そのタグで絞り込めます。`},generate:{title:`カスタムエージェントを生成`,agentIdLabel:`エージェント ID`,agentIdHint:`<code>custom-</code> で始まる必要があります。`,descriptionLabel:`このエージェントの役割を記述してください`,descriptionPlaceholder:`例: Terraform/IaC の変更をレビューし、マージ前にセキュリティ設定ミス、過剰な IAM 権限、公開 S3 バケットを指摘する。保守的かつ簡潔に。`,note:`Claude が完全な <code>.md</code> 本文をドラフトします。Studio で確認し、保存前に編集できます。ワンショットの claude 呼び出しが起動され、最大 90 秒かかることがあります。`,generating:`生成中…`,generateButton:`生成`},empty:{title:`エージェントがインストールされていません`,body:`このプロジェクトで <code>{{command}}</code> を実行してアップストリームのエージェントをインストールするか、今すぐカスタムエージェントを作成してください。`},actions:{template:`テンプレート`,templateTitle:`テンプレートから始める`,generate:`生成`,generateWithClaude:`Claude で生成`,generateWithAi:`AI で生成`,blank:`ブランク`,blankTitle:`空のテンプレートから始める`},sidebar:{title:`カタログ`,createLabel:`カスタムエージェントを作成:`},sections:{upstream:`アップストリーム ({{count}})`,upstreamDescription:`specrails-core 付属。読み取り専用です。`,custom:`カスタム ({{count}})`,customDescription:`このプロジェクトの custom-*.md ファイルです。上のテンプレート / 生成 / ブランクから作成できます。`,noCustomAgents:`カスタムエージェントはまだありません。`},detail:{defaultModel:`デフォルトモデル: {{model}}`,aiEdit:`AI編集`,aiEditTitle:`AI でこのエージェントを反復的に改良`,readOnly:`読み取り専用`,editableHint:`編集可能 — 上の「編集」を使用`},kind:{upstream:`アップストリーム`,custom:`カスタム`}},n={providerLabel:`プロファイルのプロバイダー`,loading:`プロファイルを読み込み中…`,selectPrompt:`編集するプロファイルを選択してください`,errors:{listFailed:`一覧の取得に失敗しました: {{status}}`,loadFailed:`読み込みに失敗しました: {{status}}`,migrationFailed:`移行に失敗しました: {{status}}`,createFailed:`作成に失敗しました: {{status}}`,duplicateFailed:`複製に失敗しました: {{status}}`,deleteFailed:`削除に失敗しました: {{status}}`,saveFailed:`保存に失敗しました: {{status}}`},toasts:{migrated:`プロファイルを移行しました`,migratedDescription:`現在のエージェントから default プロファイルを作成しました`,migrationFailed:`移行に失敗しました`,created:`プロファイルを作成しました`,createFailed:`プロファイルの作成に失敗しました`,duplicated:`プロファイルを複製しました`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`プロファイルの複製に失敗しました`,deleted:`プロファイルを削除しました`,deleteFailed:`プロファイルの削除に失敗しました`,saved:`プロファイルを保存しました`,saveFailed:`プロファイルの保存に失敗しました`,savedWithUntargeted:`未ターゲットのエージェントを含むプロファイルを保存しました`,savedWithUntargetedDescription:`ルーティングルールが次のエージェントを指していません: {{agents}}。実行させたい場合は、タグルールを追加するか default ルールのターゲットを変更してください。`},createDialog:{title:`新規プロファイル`,description:`小文字のケバブケース名(英小文字、数字、ハイフン)を指定してください。`,confirmLabel:`作成`,invalidHint:`先頭は英小文字または数字で、英小文字・数字・ハイフンのみ使用できます。`},duplicateDialog:{title:`「{{name}}」を複製`,description:`新しいプロファイルの名前。`,invalidHint:`小文字のケバブケースのみ。`},deleteDialog:{title:`プロファイル「{{name}}」を削除しますか?`,description:`この操作は元に戻せません。このプロファイルで起動済みのジョブはスナップショットを保持します。今後の起動は解決順序にフォールバックします。`},empty:{title:`プロファイルはまだありません`,body:`プロファイルを使うと、オーケストレーター + エージェント + ルーティングの組み合わせを保存し、レールごとに選択できます。`,migrateButton:`現在のエージェントから移行`,blankButton:`空のプロファイル`,migrateExplainer:`「移行」は既存の <code>.claude/agents/</code> フロントマターのモデルを読み取り、現在の動作をそのまま再現する <code>default</code> プロファイルを作成します — 損失ゼロです。`},sidebar:{title:`プロファイル`,teamDefault:`(チームデフォルト)`},editorFooter:{fixValidationIssues:`保存する前に検証エラーを修正してください`,issuesToResolve_one:`未解決の問題が {{count}} 件`,issuesToResolve_other:`未解決の問題が {{count}} 件`}},r={title:`プロファイル使用状況`,windowLabel:`{{days}}日`,subtitleEmpty:`選択した期間にプロファイルごとに起動されたジョブ数。`,subtitle:`過去 {{count}} 日間にプロファイルごとに起動されたジョブ数。`,empty:`プロファイル指定のジョブはまだありません。`,jobsTooltip:`ジョブ`,jobsLabel_one:`ジョブ`,jobsLabel_other:`ジョブ`,successRateTooltip:`成功率`,okSuffix:`ok`,avgDurationTooltip:`平均実行時間`,avgTokensTooltip:`平均トークン数`,tokensSuffix:`tok`},i={addTitle:`ルーティングルールを追加`,editTitle:`ルーティングルールを編集`,addDescription:`小文字ケバブケースのタグでマッチするルーティングルールを追加します。`,editDescription:`このルールのタグまたはターゲットエージェントを更新します。`,tagsLabel:`タグ`,tagsHint:`カンマ区切り。<code>frontend</code> や <code>api-design</code> のような小文字ケバブケースを使用してください。`,invalidTags_one:`無効なタグ: {{tags}}。タグには英小文字・数字・ハイフンのみ使用できます。`,invalidTags_other:`無効なタグ: {{tags}}。タグには英小文字・数字・ハイフンのみ使用できます。`,routeToLabel:`ルーティング先`,routeToHint:`このプロファイルのチェーンに含まれるエージェントのみルーティング先に指定できます。`,addRule:`ルールを追加`,saveChanges:`変更を保存`},a={profileTitle:`このレールのエージェントプロファイル`,noProfile:`プロファイルなし`,modelTitle:`この Freestyle レールのモデル`,loopModelTitle:`このループのモデル`,engineTitle
|
|
1
|
+
var e={title:`エージェント`,subtitle:`このプロジェクトのエージェントプロファイルとカタログ(アップストリーム + カスタム)を管理します。`,tabs:{profiles:`プロファイル`,usage:`使用状況`,catalog:`カタログ`},banner:{title:`プロファイル対応パイプラインには specrails-core {{required}}+ が必要です`,body:`このプロジェクトのバージョンは <code>{{version}}</code> です。プロジェクト内で <code>{{command}}</code> を実行するとプロファイルモードが有効になります。ここで作成したプロファイルは保存されますが、core を更新するまでパイプラインには影響しません。`,unknownVersion:`不明`}},t={loading:`カタログを読み込み中…`,aiEditChipLabel:`AI編集 · {{agentId}}`,errors:{loadFailed:`カタログの読み込みに失敗しました: {{status}}`,bodyLoadFailed:`エージェント本文の読み込みに失敗しました: {{status}}`,generateFailed:`生成に失敗しました: {{status}}`,agentLoadFailed:`読み込みに失敗しました: {{status}}`},templates:{title:`エージェントテンプレートライブラリ`,countOf:`{{shown}} / {{total}}`,description:`エンジニアリング、プロダクト、科学、医療、法務など、厳選されたテンプレートから始められます。1つ選んで Studio で開き、確認・編集してから保存してください。`,searchPlaceholder:`名前、説明、タグ、カテゴリで検索…`,allCategories:`すべて`,tagFilter:`タグフィルター:`,noMatch:`フィルターに一致するテンプレートはありません。`,clearFilters:`フィルターをクリア`,openInStudio:`Studio で開く →`,tip:`ヒント: カードのタグをクリックすると、そのタグで絞り込めます。`},generate:{title:`カスタムエージェントを生成`,agentIdLabel:`エージェント ID`,agentIdHint:`<code>custom-</code> で始まる必要があります。`,descriptionLabel:`このエージェントの役割を記述してください`,descriptionPlaceholder:`例: Terraform/IaC の変更をレビューし、マージ前にセキュリティ設定ミス、過剰な IAM 権限、公開 S3 バケットを指摘する。保守的かつ簡潔に。`,note:`Claude が完全な <code>.md</code> 本文をドラフトします。Studio で確認し、保存前に編集できます。ワンショットの claude 呼び出しが起動され、最大 90 秒かかることがあります。`,generating:`生成中…`,generateButton:`生成`},empty:{title:`エージェントがインストールされていません`,body:`このプロジェクトで <code>{{command}}</code> を実行してアップストリームのエージェントをインストールするか、今すぐカスタムエージェントを作成してください。`},actions:{template:`テンプレート`,templateTitle:`テンプレートから始める`,generate:`生成`,generateWithClaude:`Claude で生成`,generateWithAi:`AI で生成`,blank:`ブランク`,blankTitle:`空のテンプレートから始める`},sidebar:{title:`カタログ`,createLabel:`カスタムエージェントを作成:`},sections:{upstream:`アップストリーム ({{count}})`,upstreamDescription:`specrails-core 付属。読み取り専用です。`,custom:`カスタム ({{count}})`,customDescription:`このプロジェクトの custom-*.md ファイルです。上のテンプレート / 生成 / ブランクから作成できます。`,noCustomAgents:`カスタムエージェントはまだありません。`},detail:{defaultModel:`デフォルトモデル: {{model}}`,aiEdit:`AI編集`,aiEditTitle:`AI でこのエージェントを反復的に改良`,readOnly:`読み取り専用`,editableHint:`編集可能 — 上の「編集」を使用`},kind:{upstream:`アップストリーム`,custom:`カスタム`}},n={providerLabel:`プロファイルのプロバイダー`,loading:`プロファイルを読み込み中…`,selectPrompt:`編集するプロファイルを選択してください`,errors:{listFailed:`一覧の取得に失敗しました: {{status}}`,loadFailed:`読み込みに失敗しました: {{status}}`,migrationFailed:`移行に失敗しました: {{status}}`,createFailed:`作成に失敗しました: {{status}}`,duplicateFailed:`複製に失敗しました: {{status}}`,deleteFailed:`削除に失敗しました: {{status}}`,saveFailed:`保存に失敗しました: {{status}}`},toasts:{migrated:`プロファイルを移行しました`,migratedDescription:`現在のエージェントから default プロファイルを作成しました`,migrationFailed:`移行に失敗しました`,created:`プロファイルを作成しました`,createFailed:`プロファイルの作成に失敗しました`,duplicated:`プロファイルを複製しました`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`プロファイルの複製に失敗しました`,deleted:`プロファイルを削除しました`,deleteFailed:`プロファイルの削除に失敗しました`,saved:`プロファイルを保存しました`,saveFailed:`プロファイルの保存に失敗しました`,savedWithUntargeted:`未ターゲットのエージェントを含むプロファイルを保存しました`,savedWithUntargetedDescription:`ルーティングルールが次のエージェントを指していません: {{agents}}。実行させたい場合は、タグルールを追加するか default ルールのターゲットを変更してください。`},createDialog:{title:`新規プロファイル`,description:`小文字のケバブケース名(英小文字、数字、ハイフン)を指定してください。`,confirmLabel:`作成`,invalidHint:`先頭は英小文字または数字で、英小文字・数字・ハイフンのみ使用できます。`},duplicateDialog:{title:`「{{name}}」を複製`,description:`新しいプロファイルの名前。`,invalidHint:`小文字のケバブケースのみ。`},deleteDialog:{title:`プロファイル「{{name}}」を削除しますか?`,description:`この操作は元に戻せません。このプロファイルで起動済みのジョブはスナップショットを保持します。今後の起動は解決順序にフォールバックします。`},empty:{title:`プロファイルはまだありません`,body:`プロファイルを使うと、オーケストレーター + エージェント + ルーティングの組み合わせを保存し、レールごとに選択できます。`,migrateButton:`現在のエージェントから移行`,blankButton:`空のプロファイル`,migrateExplainer:`「移行」は既存の <code>.claude/agents/</code> フロントマターのモデルを読み取り、現在の動作をそのまま再現する <code>default</code> プロファイルを作成します — 損失ゼロです。`},sidebar:{title:`プロファイル`,teamDefault:`(チームデフォルト)`},editorFooter:{fixValidationIssues:`保存する前に検証エラーを修正してください`,issuesToResolve_one:`未解決の問題が {{count}} 件`,issuesToResolve_other:`未解決の問題が {{count}} 件`}},r={title:`プロファイル使用状況`,windowLabel:`{{days}}日`,subtitleEmpty:`選択した期間にプロファイルごとに起動されたジョブ数。`,subtitle:`過去 {{count}} 日間にプロファイルごとに起動されたジョブ数。`,empty:`プロファイル指定のジョブはまだありません。`,jobsTooltip:`ジョブ`,jobsLabel_one:`ジョブ`,jobsLabel_other:`ジョブ`,successRateTooltip:`成功率`,okSuffix:`ok`,avgDurationTooltip:`平均実行時間`,avgTokensTooltip:`平均トークン数`,tokensSuffix:`tok`},i={addTitle:`ルーティングルールを追加`,editTitle:`ルーティングルールを編集`,addDescription:`小文字ケバブケースのタグでマッチするルーティングルールを追加します。`,editDescription:`このルールのタグまたはターゲットエージェントを更新します。`,tagsLabel:`タグ`,tagsHint:`カンマ区切り。<code>frontend</code> や <code>api-design</code> のような小文字ケバブケースを使用してください。`,invalidTags_one:`無効なタグ: {{tags}}。タグには英小文字・数字・ハイフンのみ使用できます。`,invalidTags_other:`無効なタグ: {{tags}}。タグには英小文字・数字・ハイフンのみ使用できます。`,routeToLabel:`ルーティング先`,routeToHint:`このプロファイルのチェーンに含まれるエージェントのみルーティング先に指定できます。`,addRule:`ルールを追加`,saveChanges:`変更を保存`},a={profileTitle:`このレールのエージェントプロファイル`,noProfile:`プロファイルなし`,modelTitle:`この Freestyle レールのモデル`,loopModelTitle:`このループのモデル`,engineTitle:`この実行のすべてのロール(設計、開発、レビュー)で使う AI プロバイダー`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={title:`Agenti`,subtitle:`Gestisci i profili agente e il catalogo (upstream + custom) di questo progetto.`,tabs:{profiles:`Profili`,usage:`Utilizzo`,catalog:`Catalogo`},banner:{title:`La pipeline con profili richiede specrails-core {{required}}+`,body:`Questo progetto ha <code>{{version}}</code>. Esegui <code>{{command}}</code> nel progetto per sbloccare la modalità profili. I profili creati qui verranno comunque salvati; semplicemente non influiranno sulla pipeline finché core non viene aggiornato.`,unknownVersion:`sconosciuta`}},t={loading:`Caricamento del catalogo…`,aiEditChipLabel:`Modifica AI · {{agentId}}`,errors:{loadFailed:`Caricamento del catalogo non riuscito: {{status}}`,bodyLoadFailed:`Caricamento del corpo dell'agente non riuscito: {{status}}`,generateFailed:`Generazione non riuscita: {{status}}`,agentLoadFailed:`Caricamento non riuscito: {{status}}`},templates:{title:`Libreria di template agente`,countOf:`{{shown}} di {{total}}`,description:`Parti da un template curato tra engineering, prodotto, scienza, salute, legale e altro. Scegline uno e aprilo nello Studio per revisionarlo e modificarlo prima di salvare.`,searchPlaceholder:`Cerca per nome, descrizione, tag o categoria…`,allCategories:`Tutte`,tagFilter:`Filtro tag:`,noMatch:`Nessun template corrisponde ai filtri.`,clearFilters:`Cancella filtri`,openInStudio:`Apri nello Studio →`,tip:`Suggerimento: clicca un tag su una card per filtrare per quel tag.`},generate:{title:`Genera un agente custom`,agentIdLabel:`ID agente`,agentIdHint:`Deve iniziare con <code>custom-</code>.`,descriptionLabel:`Descrivi cosa deve fare questo agente`,descriptionPlaceholder:`es. Revisiona le modifiche Terraform/IaC e segnala configurazioni di sicurezza errate, permessi IAM eccessivi e bucket S3 pubblici prima del merge. Conservativo e conciso.`,note:`Claude redigerà un corpo <code>.md</code> completo. Lo revisionerai nello Studio e potrai modificarlo prima di salvare. Questo avvia un'invocazione claude one-shot e può richiedere fino a 90 secondi.`,generating:`Generazione…`,generateButton:`Genera`},empty:{title:`Nessun agente installato`,body:`Esegui <code>{{command}}</code> in questo progetto per installare gli agenti upstream, oppure crea subito un agente custom.`},actions:{template:`Template`,templateTitle:`Parti da un template`,generate:`Genera`,generateWithClaude:`Genera con Claude`,generateWithAi:`Genera con IA`,blank:`Vuoto`,blankTitle:`Parti da un template vuoto`},sidebar:{title:`Catalogo`,createLabel:`Crea un agente custom:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Forniti da specrails-core; sola lettura.`,custom:`Custom ({{count}})`,customDescription:`I file custom-*.md del tuo progetto. Usa Template / Genera / Vuoto qui sopra per crearne uno.`,noCustomAgents:`Ancora nessun agente custom.`},detail:{defaultModel:`modello predefinito: {{model}}`,aiEdit:`Modifica AI`,aiEditTitle:`Raffina iterativamente questo agente con l'AI`,readOnly:`sola lettura`,editableHint:`modificabile — usa Modifica qui sopra`},kind:{upstream:`upstream`,custom:`custom`}},n={providerLabel:`Provider del profilo`,loading:`Caricamento dei profili…`,selectPrompt:`Seleziona un profilo da modificare`,errors:{listFailed:`Caricamento dell'elenco non riuscito: {{status}}`,loadFailed:`Caricamento non riuscito: {{status}}`,migrationFailed:`Migrazione non riuscita: {{status}}`,createFailed:`Creazione non riuscita: {{status}}`,duplicateFailed:`Duplicazione non riuscita: {{status}}`,deleteFailed:`Eliminazione non riuscita: {{status}}`,saveFailed:`Salvataggio non riuscito: {{status}}`},toasts:{migrated:`Profilo migrato`,migratedDescription:`profilo default creato dagli agenti attuali`,migrationFailed:`Migrazione non riuscita`,created:`Profilo creato`,createFailed:`Impossibile creare il profilo`,duplicated:`Profilo duplicato`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`Impossibile duplicare il profilo`,deleted:`Profilo eliminato`,deleteFailed:`Impossibile eliminare il profilo`,saved:`Profilo salvato`,saveFailed:`Impossibile salvare il profilo`,savedWithUntargeted:`Profilo salvato con agenti senza routing`,savedWithUntargetedDescription:`Nessuna regola di routing punta a: {{agents}}. Aggiungi una regola per tag o ridefinisci la regola default se vuoi che vengano eseguiti.`},createDialog:{title:`Nuovo profilo`,description:`Scegli un nome in kebab-case minuscolo (lettere, cifre e trattini).`,confirmLabel:`Crea`,invalidHint:`Deve iniziare con una lettera o una cifra e contenere solo lettere minuscole, cifre e trattini.`},duplicateDialog:{title:`Duplica "{{name}}"`,description:`Nome del nuovo profilo.`,invalidHint:`Solo kebab-case minuscolo.`},deleteDialog:{title:`Eliminare il profilo "{{name}}"?`,description:`Questa azione è irreversibile. I job già avviati con questo profilo mantengono il loro snapshot; i prossimi avvii ricadranno sull'ordine di risoluzione.`},empty:{title:`Ancora nessun profilo`,body:`I profili permettono di salvare combinazioni di orchestratore + agenti + routing e sceglierne una per rail.`,migrateButton:`Migra dagli agenti attuali`,blankButton:`Profilo vuoto`,migrateExplainer:`"Migra" legge i modelli dal frontmatter dei tuoi <code>.claude/agents/</code> esistenti e crea un profilo <code>default</code> che rispecchia il comportamento attuale — senza perdite.`},sidebar:{title:`Profili`,teamDefault:`(default del team)`},editorFooter:{fixValidationIssues:`Correggi i problemi di validazione prima di salvare`,issuesToResolve_one:`{{count}} problema da risolvere`,issuesToResolve_other:`{{count}} problemi da risolvere`}},r={title:`Utilizzo dei profili`,windowLabel:`{{days}}d`,subtitleEmpty:`Job avviati per profilo nella finestra selezionata.`,subtitle:`Job avviati per profilo negli ultimi {{count}} giorni.`,empty:`Ancora nessun job con profilo.`,jobsTooltip:`job`,jobsLabel_one:`job`,jobsLabel_other:`job`,successRateTooltip:`tasso di successo`,okSuffix:`ok`,avgDurationTooltip:`durata media`,avgTokensTooltip:`token medi`,tokensSuffix:`tok`},i={addTitle:`Aggiungi regola di routing`,editTitle:`Modifica regola di routing`,addDescription:`Aggiungi una regola di routing per tag usando tag in kebab-case minuscolo.`,editDescription:`Aggiorna i tag o l'agente di destinazione per questa regola.`,tagsLabel:`Tag`,tagsHint:`Separati da virgola. Usa kebab-case minuscolo come <code>frontend</code> o <code>api-design</code>.`,invalidTags_one:`Tag non valido: {{tags}}. I tag possono contenere solo lettere minuscole, cifre e trattini.`,invalidTags_other:`Tag non validi: {{tags}}. I tag possono contenere solo lettere minuscole, cifre e trattini.`,routeToLabel:`Instrada verso`,routeToHint:`Solo gli agenti nella catena di questo profilo possono essere destinazioni di routing.`,addRule:`Aggiungi regola`,saveChanges:`Salva modifiche`},a={profileTitle:`Profilo agente per questo rail`,noProfile:`Nessun profilo`,modelTitle:`Modello per questo rail Freestyle`,loopModelTitle:`Modello per questo loop`,engineTitle:`
|
|
1
|
+
var e={title:`Agenti`,subtitle:`Gestisci i profili agente e il catalogo (upstream + custom) di questo progetto.`,tabs:{profiles:`Profili`,usage:`Utilizzo`,catalog:`Catalogo`},banner:{title:`La pipeline con profili richiede specrails-core {{required}}+`,body:`Questo progetto ha <code>{{version}}</code>. Esegui <code>{{command}}</code> nel progetto per sbloccare la modalità profili. I profili creati qui verranno comunque salvati; semplicemente non influiranno sulla pipeline finché core non viene aggiornato.`,unknownVersion:`sconosciuta`}},t={loading:`Caricamento del catalogo…`,aiEditChipLabel:`Modifica AI · {{agentId}}`,errors:{loadFailed:`Caricamento del catalogo non riuscito: {{status}}`,bodyLoadFailed:`Caricamento del corpo dell'agente non riuscito: {{status}}`,generateFailed:`Generazione non riuscita: {{status}}`,agentLoadFailed:`Caricamento non riuscito: {{status}}`},templates:{title:`Libreria di template agente`,countOf:`{{shown}} di {{total}}`,description:`Parti da un template curato tra engineering, prodotto, scienza, salute, legale e altro. Scegline uno e aprilo nello Studio per revisionarlo e modificarlo prima di salvare.`,searchPlaceholder:`Cerca per nome, descrizione, tag o categoria…`,allCategories:`Tutte`,tagFilter:`Filtro tag:`,noMatch:`Nessun template corrisponde ai filtri.`,clearFilters:`Cancella filtri`,openInStudio:`Apri nello Studio →`,tip:`Suggerimento: clicca un tag su una card per filtrare per quel tag.`},generate:{title:`Genera un agente custom`,agentIdLabel:`ID agente`,agentIdHint:`Deve iniziare con <code>custom-</code>.`,descriptionLabel:`Descrivi cosa deve fare questo agente`,descriptionPlaceholder:`es. Revisiona le modifiche Terraform/IaC e segnala configurazioni di sicurezza errate, permessi IAM eccessivi e bucket S3 pubblici prima del merge. Conservativo e conciso.`,note:`Claude redigerà un corpo <code>.md</code> completo. Lo revisionerai nello Studio e potrai modificarlo prima di salvare. Questo avvia un'invocazione claude one-shot e può richiedere fino a 90 secondi.`,generating:`Generazione…`,generateButton:`Genera`},empty:{title:`Nessun agente installato`,body:`Esegui <code>{{command}}</code> in questo progetto per installare gli agenti upstream, oppure crea subito un agente custom.`},actions:{template:`Template`,templateTitle:`Parti da un template`,generate:`Genera`,generateWithClaude:`Genera con Claude`,generateWithAi:`Genera con IA`,blank:`Vuoto`,blankTitle:`Parti da un template vuoto`},sidebar:{title:`Catalogo`,createLabel:`Crea un agente custom:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Forniti da specrails-core; sola lettura.`,custom:`Custom ({{count}})`,customDescription:`I file custom-*.md del tuo progetto. Usa Template / Genera / Vuoto qui sopra per crearne uno.`,noCustomAgents:`Ancora nessun agente custom.`},detail:{defaultModel:`modello predefinito: {{model}}`,aiEdit:`Modifica AI`,aiEditTitle:`Raffina iterativamente questo agente con l'AI`,readOnly:`sola lettura`,editableHint:`modificabile — usa Modifica qui sopra`},kind:{upstream:`upstream`,custom:`custom`}},n={providerLabel:`Provider del profilo`,loading:`Caricamento dei profili…`,selectPrompt:`Seleziona un profilo da modificare`,errors:{listFailed:`Caricamento dell'elenco non riuscito: {{status}}`,loadFailed:`Caricamento non riuscito: {{status}}`,migrationFailed:`Migrazione non riuscita: {{status}}`,createFailed:`Creazione non riuscita: {{status}}`,duplicateFailed:`Duplicazione non riuscita: {{status}}`,deleteFailed:`Eliminazione non riuscita: {{status}}`,saveFailed:`Salvataggio non riuscito: {{status}}`},toasts:{migrated:`Profilo migrato`,migratedDescription:`profilo default creato dagli agenti attuali`,migrationFailed:`Migrazione non riuscita`,created:`Profilo creato`,createFailed:`Impossibile creare il profilo`,duplicated:`Profilo duplicato`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`Impossibile duplicare il profilo`,deleted:`Profilo eliminato`,deleteFailed:`Impossibile eliminare il profilo`,saved:`Profilo salvato`,saveFailed:`Impossibile salvare il profilo`,savedWithUntargeted:`Profilo salvato con agenti senza routing`,savedWithUntargetedDescription:`Nessuna regola di routing punta a: {{agents}}. Aggiungi una regola per tag o ridefinisci la regola default se vuoi che vengano eseguiti.`},createDialog:{title:`Nuovo profilo`,description:`Scegli un nome in kebab-case minuscolo (lettere, cifre e trattini).`,confirmLabel:`Crea`,invalidHint:`Deve iniziare con una lettera o una cifra e contenere solo lettere minuscole, cifre e trattini.`},duplicateDialog:{title:`Duplica "{{name}}"`,description:`Nome del nuovo profilo.`,invalidHint:`Solo kebab-case minuscolo.`},deleteDialog:{title:`Eliminare il profilo "{{name}}"?`,description:`Questa azione è irreversibile. I job già avviati con questo profilo mantengono il loro snapshot; i prossimi avvii ricadranno sull'ordine di risoluzione.`},empty:{title:`Ancora nessun profilo`,body:`I profili permettono di salvare combinazioni di orchestratore + agenti + routing e sceglierne una per rail.`,migrateButton:`Migra dagli agenti attuali`,blankButton:`Profilo vuoto`,migrateExplainer:`"Migra" legge i modelli dal frontmatter dei tuoi <code>.claude/agents/</code> esistenti e crea un profilo <code>default</code> che rispecchia il comportamento attuale — senza perdite.`},sidebar:{title:`Profili`,teamDefault:`(default del team)`},editorFooter:{fixValidationIssues:`Correggi i problemi di validazione prima di salvare`,issuesToResolve_one:`{{count}} problema da risolvere`,issuesToResolve_other:`{{count}} problemi da risolvere`}},r={title:`Utilizzo dei profili`,windowLabel:`{{days}}d`,subtitleEmpty:`Job avviati per profilo nella finestra selezionata.`,subtitle:`Job avviati per profilo negli ultimi {{count}} giorni.`,empty:`Ancora nessun job con profilo.`,jobsTooltip:`job`,jobsLabel_one:`job`,jobsLabel_other:`job`,successRateTooltip:`tasso di successo`,okSuffix:`ok`,avgDurationTooltip:`durata media`,avgTokensTooltip:`token medi`,tokensSuffix:`tok`},i={addTitle:`Aggiungi regola di routing`,editTitle:`Modifica regola di routing`,addDescription:`Aggiungi una regola di routing per tag usando tag in kebab-case minuscolo.`,editDescription:`Aggiorna i tag o l'agente di destinazione per questa regola.`,tagsLabel:`Tag`,tagsHint:`Separati da virgola. Usa kebab-case minuscolo come <code>frontend</code> o <code>api-design</code>.`,invalidTags_one:`Tag non valido: {{tags}}. I tag possono contenere solo lettere minuscole, cifre e trattini.`,invalidTags_other:`Tag non validi: {{tags}}. I tag possono contenere solo lettere minuscole, cifre e trattini.`,routeToLabel:`Instrada verso`,routeToHint:`Solo gli agenti nella catena di questo profilo possono essere destinazioni di routing.`,addRule:`Aggiungi regola`,saveChanges:`Salva modifiche`},a={profileTitle:`Profilo agente per questo rail`,noProfile:`Nessun profilo`,modelTitle:`Modello per questo rail Freestyle`,loopModelTitle:`Modello per questo loop`,engineTitle:`Provider IA per tutti i ruoli di questo avvio: architetto, sviluppatore e revisore`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({catalog:()=>r,default:()=>c,page:()=>n,profiles:()=>i,railSelectors:()=>s,routingRule:()=>o,usage:()=>a}),n={title:`Agents`,subtitle:`Manage agent profiles and the catalog (upstream + custom) for this project.`,tabs:{profiles:`Profiles`,usage:`Usage`,catalog:`Catalog`},banner:{title:`Profile-aware pipeline requires specrails-core {{required}}+`,body:`This project has <code>{{version}}</code>. Run <code>{{command}}</code> inside the project to unlock profile mode. Profiles you create here will still save; they just won't affect the pipeline until core is updated.`,unknownVersion:`unknown`}},r={loading:`Loading catalog…`,aiEditChipLabel:`AI Edit · {{agentId}}`,errors:{loadFailed:`Catalog load failed: {{status}}`,bodyLoadFailed:`Agent body load failed: {{status}}`,generateFailed:`Generate failed: {{status}}`,agentLoadFailed:`Load failed: {{status}}`},templates:{title:`Agent template library`,countOf:`{{shown}} of {{total}}`,description:`Start from a curated template across engineering, product, science, health, legal, and more. Pick one and open it in the Studio for review and editing before saving.`,searchPlaceholder:`Search by name, description, tag, or category…`,allCategories:`All`,tagFilter:`Tag filter:`,noMatch:`No templates match your filters.`,clearFilters:`Clear filters`,openInStudio:`Open in Studio →`,tip:`Tip: click a tag pill on any card to filter by that tag.`},generate:{title:`Generate a custom agent`,agentIdLabel:`Agent id`,agentIdHint:`Must start with <code>custom-</code>.`,descriptionLabel:`Describe what this agent should do`,descriptionPlaceholder:`e.g. Review Terraform/IaC changes and flag security misconfigurations, excessive IAM permissions, and public S3 buckets before merging. Conservative and terse.`,note:`Claude will draft a full <code>.md</code> body. You'll review it in the Studio and can edit before saving. This spawns a one-shot claude invocation and can take up to 90 seconds.`,generating:`Generating…`,generateButton:`Generate`},empty:{title:`No agents installed`,body:`Run <code>{{command}}</code> in this project to install the upstream agents, or create a custom agent now.`},actions:{template:`Template`,templateTitle:`Start from a template`,generate:`Generate`,generateWithClaude:`Generate with Claude`,generateWithAi:`Generate with AI`,blank:`Blank`,blankTitle:`Start from a blank template`},sidebar:{title:`Catalog`,createLabel:`Create a custom agent:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Shipped by specrails-core; read-only.`,custom:`Custom ({{count}})`,customDescription:`Your project's custom-*.md files. Use Template / Generate / Blank above to create one.`,noCustomAgents:`No custom agents yet.`},detail:{defaultModel:`default model: {{model}}`,aiEdit:`AI Edit`,aiEditTitle:`Iteratively refine this agent with AI`,readOnly:`read-only`,editableHint:`editable — use Edit above`},kind:{upstream:`upstream`,custom:`custom`}},i={providerLabel:`Profile provider`,loading:`Loading profiles…`,selectPrompt:`Select a profile to edit`,errors:{listFailed:`List failed: {{status}}`,loadFailed:`Load failed: {{status}}`,migrationFailed:`Migration failed: {{status}}`,createFailed:`Create failed: {{status}}`,duplicateFailed:`Duplicate failed: {{status}}`,deleteFailed:`Delete failed: {{status}}`,saveFailed:`Save failed: {{status}}`},toasts:{migrated:`Profile migrated`,migratedDescription:`default profile created from your current agents`,migrationFailed:`Migration failed`,created:`Profile created`,createFailed:`Failed to create profile`,duplicated:`Profile duplicated`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`Failed to duplicate profile`,deleted:`Profile deleted`,deleteFailed:`Failed to delete profile`,saved:`Profile saved`,saveFailed:`Failed to save profile`,savedWithUntargeted:`Profile saved with untargeted agents`,savedWithUntargetedDescription:`No routing rule points to: {{agents}}. Add a tag rule or retarget the default rule if you want them to run.`},createDialog:{title:`New profile`,description:`Pick a lowercase kebab-case name (letters, digits, and hyphens).`,confirmLabel:`Create`,invalidHint:`Must start with a letter or digit and contain only lowercase letters, digits, and hyphens.`},duplicateDialog:{title:`Duplicate "{{name}}"`,description:`Name for the new profile.`,invalidHint:`Lowercase kebab-case only.`},deleteDialog:{title:`Delete profile "{{name}}"?`,description:`This cannot be undone. Jobs already launched with this profile keep their snapshot; future launches will fall back to the resolution order.`},empty:{title:`No profiles yet`,body:`Profiles let you save orchestrator + agent + routing combinations and pick one per rail.`,migrateButton:`Migrate from current agents`,blankButton:`Blank profile`,migrateExplainer:`"Migrate" reads your existing <code>.claude/agents/</code> frontmatter models and creates a <code>default</code> profile mirroring today's behavior — zero-loss.`},sidebar:{title:`Profiles`,teamDefault:`(team default)`},editorFooter:{fixValidationIssues:`Fix validation issues before saving`,issuesToResolve_one:`{{count}} issue to resolve`,issuesToResolve_other:`{{count}} issues to resolve`}},a={title:`Profile usage`,windowLabel:`{{days}}d`,subtitleEmpty:`Jobs launched per profile in the selected window.`,subtitle:`Jobs launched per profile in the last {{count}} days.`,empty:`No profile-scoped jobs yet.`,jobsTooltip:`jobs`,jobsLabel_one:`job`,jobsLabel_other:`jobs`,successRateTooltip:`success rate`,okSuffix:`ok`,avgDurationTooltip:`avg duration`,avgTokensTooltip:`avg tokens`,tokensSuffix:`tok`},o={addTitle:`Add routing rule`,editTitle:`Edit routing rule`,addDescription:`Add a tag-matched routing rule using lowercase kebab-case tags.`,editDescription:`Update the tags or target agent for this rule.`,tagsLabel:`Tags`,tagsHint:`Comma-separated. Use lowercase kebab-case like <code>frontend</code> or <code>api-design</code>.`,invalidTags_one:`Invalid tag: {{tags}}. Tags must use lowercase letters, digits, and hyphens only.`,invalidTags_other:`Invalid tags: {{tags}}. Tags must use lowercase letters, digits, and hyphens only.`,routeToLabel:`Route to`,routeToHint:`Only agents in this profile's chain can be routing targets.`,addRule:`Add rule`,saveChanges:`Save changes`},s={profileTitle:`Agent profile for this rail`,noProfile:`No profile`,modelTitle:`Model for this Freestyle rail`,loopModelTitle:`Model for this loop`,engineTitle:`AI
|
|
1
|
+
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({catalog:()=>r,default:()=>c,page:()=>n,profiles:()=>i,railSelectors:()=>s,routingRule:()=>o,usage:()=>a}),n={title:`Agents`,subtitle:`Manage agent profiles and the catalog (upstream + custom) for this project.`,tabs:{profiles:`Profiles`,usage:`Usage`,catalog:`Catalog`},banner:{title:`Profile-aware pipeline requires specrails-core {{required}}+`,body:`This project has <code>{{version}}</code>. Run <code>{{command}}</code> inside the project to unlock profile mode. Profiles you create here will still save; they just won't affect the pipeline until core is updated.`,unknownVersion:`unknown`}},r={loading:`Loading catalog…`,aiEditChipLabel:`AI Edit · {{agentId}}`,errors:{loadFailed:`Catalog load failed: {{status}}`,bodyLoadFailed:`Agent body load failed: {{status}}`,generateFailed:`Generate failed: {{status}}`,agentLoadFailed:`Load failed: {{status}}`},templates:{title:`Agent template library`,countOf:`{{shown}} of {{total}}`,description:`Start from a curated template across engineering, product, science, health, legal, and more. Pick one and open it in the Studio for review and editing before saving.`,searchPlaceholder:`Search by name, description, tag, or category…`,allCategories:`All`,tagFilter:`Tag filter:`,noMatch:`No templates match your filters.`,clearFilters:`Clear filters`,openInStudio:`Open in Studio →`,tip:`Tip: click a tag pill on any card to filter by that tag.`},generate:{title:`Generate a custom agent`,agentIdLabel:`Agent id`,agentIdHint:`Must start with <code>custom-</code>.`,descriptionLabel:`Describe what this agent should do`,descriptionPlaceholder:`e.g. Review Terraform/IaC changes and flag security misconfigurations, excessive IAM permissions, and public S3 buckets before merging. Conservative and terse.`,note:`Claude will draft a full <code>.md</code> body. You'll review it in the Studio and can edit before saving. This spawns a one-shot claude invocation and can take up to 90 seconds.`,generating:`Generating…`,generateButton:`Generate`},empty:{title:`No agents installed`,body:`Run <code>{{command}}</code> in this project to install the upstream agents, or create a custom agent now.`},actions:{template:`Template`,templateTitle:`Start from a template`,generate:`Generate`,generateWithClaude:`Generate with Claude`,generateWithAi:`Generate with AI`,blank:`Blank`,blankTitle:`Start from a blank template`},sidebar:{title:`Catalog`,createLabel:`Create a custom agent:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Shipped by specrails-core; read-only.`,custom:`Custom ({{count}})`,customDescription:`Your project's custom-*.md files. Use Template / Generate / Blank above to create one.`,noCustomAgents:`No custom agents yet.`},detail:{defaultModel:`default model: {{model}}`,aiEdit:`AI Edit`,aiEditTitle:`Iteratively refine this agent with AI`,readOnly:`read-only`,editableHint:`editable — use Edit above`},kind:{upstream:`upstream`,custom:`custom`}},i={providerLabel:`Profile provider`,loading:`Loading profiles…`,selectPrompt:`Select a profile to edit`,errors:{listFailed:`List failed: {{status}}`,loadFailed:`Load failed: {{status}}`,migrationFailed:`Migration failed: {{status}}`,createFailed:`Create failed: {{status}}`,duplicateFailed:`Duplicate failed: {{status}}`,deleteFailed:`Delete failed: {{status}}`,saveFailed:`Save failed: {{status}}`},toasts:{migrated:`Profile migrated`,migratedDescription:`default profile created from your current agents`,migrationFailed:`Migration failed`,created:`Profile created`,createFailed:`Failed to create profile`,duplicated:`Profile duplicated`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`Failed to duplicate profile`,deleted:`Profile deleted`,deleteFailed:`Failed to delete profile`,saved:`Profile saved`,saveFailed:`Failed to save profile`,savedWithUntargeted:`Profile saved with untargeted agents`,savedWithUntargetedDescription:`No routing rule points to: {{agents}}. Add a tag rule or retarget the default rule if you want them to run.`},createDialog:{title:`New profile`,description:`Pick a lowercase kebab-case name (letters, digits, and hyphens).`,confirmLabel:`Create`,invalidHint:`Must start with a letter or digit and contain only lowercase letters, digits, and hyphens.`},duplicateDialog:{title:`Duplicate "{{name}}"`,description:`Name for the new profile.`,invalidHint:`Lowercase kebab-case only.`},deleteDialog:{title:`Delete profile "{{name}}"?`,description:`This cannot be undone. Jobs already launched with this profile keep their snapshot; future launches will fall back to the resolution order.`},empty:{title:`No profiles yet`,body:`Profiles let you save orchestrator + agent + routing combinations and pick one per rail.`,migrateButton:`Migrate from current agents`,blankButton:`Blank profile`,migrateExplainer:`"Migrate" reads your existing <code>.claude/agents/</code> frontmatter models and creates a <code>default</code> profile mirroring today's behavior — zero-loss.`},sidebar:{title:`Profiles`,teamDefault:`(team default)`},editorFooter:{fixValidationIssues:`Fix validation issues before saving`,issuesToResolve_one:`{{count}} issue to resolve`,issuesToResolve_other:`{{count}} issues to resolve`}},a={title:`Profile usage`,windowLabel:`{{days}}d`,subtitleEmpty:`Jobs launched per profile in the selected window.`,subtitle:`Jobs launched per profile in the last {{count}} days.`,empty:`No profile-scoped jobs yet.`,jobsTooltip:`jobs`,jobsLabel_one:`job`,jobsLabel_other:`jobs`,successRateTooltip:`success rate`,okSuffix:`ok`,avgDurationTooltip:`avg duration`,avgTokensTooltip:`avg tokens`,tokensSuffix:`tok`},o={addTitle:`Add routing rule`,editTitle:`Edit routing rule`,addDescription:`Add a tag-matched routing rule using lowercase kebab-case tags.`,editDescription:`Update the tags or target agent for this rule.`,tagsLabel:`Tags`,tagsHint:`Comma-separated. Use lowercase kebab-case like <code>frontend</code> or <code>api-design</code>.`,invalidTags_one:`Invalid tag: {{tags}}. Tags must use lowercase letters, digits, and hyphens only.`,invalidTags_other:`Invalid tags: {{tags}}. Tags must use lowercase letters, digits, and hyphens only.`,routeToLabel:`Route to`,routeToHint:`Only agents in this profile's chain can be routing targets.`,addRule:`Add rule`,saveChanges:`Save changes`},s={profileTitle:`Agent profile for this rail`,noProfile:`No profile`,modelTitle:`Model for this Freestyle rail`,loopModelTitle:`Model for this loop`,engineTitle:`AI provider for all roles in this launch: architect, developer and reviewer`},c={page:n,catalog:r,profiles:i,usage:a,routingRule:o,railSelectors:s};export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={title:`Agents`,subtitle:`Gérez les profils d'agents et le catalogue (upstream + personnalisés) de ce projet.`,tabs:{profiles:`Profils`,usage:`Utilisation`,catalog:`Catalogue`},banner:{title:`Le pipeline avec profils nécessite specrails-core {{required}}+`,body:`Ce projet utilise <code>{{version}}</code>. Exécutez <code>{{command}}</code> dans le projet pour débloquer le mode profil. Les profils créés ici seront tout de même enregistrés ; ils n'affecteront simplement pas le pipeline tant que core n'est pas mis à jour.`,unknownVersion:`inconnue`}},t={loading:`Chargement du catalogue…`,aiEditChipLabel:`Édition IA · {{agentId}}`,errors:{loadFailed:`Échec du chargement du catalogue : {{status}}`,bodyLoadFailed:`Échec du chargement du corps de l'agent : {{status}}`,generateFailed:`Échec de la génération : {{status}}`,agentLoadFailed:`Échec du chargement : {{status}}`},templates:{title:`Bibliothèque de templates d'agents`,countOf:`{{shown}} sur {{total}}`,description:`Partez d'un template sélectionné dans l'ingénierie, le produit, la science, la santé, le juridique et plus encore. Choisissez-en un et ouvrez-le dans le Studio pour le relire et le modifier avant d'enregistrer.`,searchPlaceholder:`Rechercher par nom, description, tag ou catégorie…`,allCategories:`Toutes`,tagFilter:`Filtre de tags :`,noMatch:`Aucun template ne correspond à vos filtres.`,clearFilters:`Effacer les filtres`,openInStudio:`Ouvrir dans le Studio →`,tip:`Astuce : cliquez sur la pastille d'un tag sur une carte pour filtrer sur ce tag.`},generate:{title:`Générer un agent personnalisé`,agentIdLabel:`ID de l'agent`,agentIdHint:`Doit commencer par <code>custom-</code>.`,descriptionLabel:`Décrivez ce que cet agent doit faire`,descriptionPlaceholder:`ex. Relire les modifications Terraform/IaC et signaler les erreurs de configuration de sécurité, les permissions IAM excessives et les buckets S3 publics avant le merge. Conservateur et concis.`,note:`Claude rédigera un corps <code>.md</code> complet. Vous le relirez dans le Studio et pourrez le modifier avant d'enregistrer. Cela lance une invocation claude unique et peut prendre jusqu'à 90 secondes.`,generating:`Génération…`,generateButton:`Générer`},empty:{title:`Aucun agent installé`,body:`Exécutez <code>{{command}}</code> dans ce projet pour installer les agents upstream, ou créez un agent personnalisé dès maintenant.`},actions:{template:`Template`,templateTitle:`Partir d'un template`,generate:`Générer`,generateWithClaude:`Générer avec Claude`,generateWithAi:`Générer avec l’IA`,blank:`Vierge`,blankTitle:`Partir d'un template vierge`},sidebar:{title:`Catalogue`,createLabel:`Créer un agent personnalisé :`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Fournis par specrails-core ; lecture seule.`,custom:`Personnalisés ({{count}})`,customDescription:`Les fichiers custom-*.md de votre projet. Utilisez Template / Générer / Vierge ci-dessus pour en créer un.`,noCustomAgents:`Aucun agent personnalisé pour l'instant.`},detail:{defaultModel:`modèle par défaut : {{model}}`,aiEdit:`Édition IA`,aiEditTitle:`Affiner cet agent de manière itérative avec l'IA`,readOnly:`lecture seule`,editableHint:`modifiable — utilisez Modifier ci-dessus`},kind:{upstream:`upstream`,custom:`personnalisé`}},n={providerLabel:`Fournisseur du profil`,loading:`Chargement des profils…`,selectPrompt:`Sélectionnez un profil à modifier`,errors:{listFailed:`Échec du listage : {{status}}`,loadFailed:`Échec du chargement : {{status}}`,migrationFailed:`Échec de la migration : {{status}}`,createFailed:`Échec de la création : {{status}}`,duplicateFailed:`Échec de la duplication : {{status}}`,deleteFailed:`Échec de la suppression : {{status}}`,saveFailed:`Échec de l'enregistrement : {{status}}`},toasts:{migrated:`Profil migré`,migratedDescription:`profil default créé à partir de vos agents actuels`,migrationFailed:`Échec de la migration`,created:`Profil créé`,createFailed:`Échec de la création du profil`,duplicated:`Profil dupliqué`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`Échec de la duplication du profil`,deleted:`Profil supprimé`,deleteFailed:`Échec de la suppression du profil`,saved:`Profil enregistré`,saveFailed:`Échec de l'enregistrement du profil`,savedWithUntargeted:`Profil enregistré avec des agents non ciblés`,savedWithUntargetedDescription:`Aucune règle de routage ne pointe vers : {{agents}}. Ajoutez une règle de tag ou reciblez la règle par défaut si vous voulez qu'ils s'exécutent.`},createDialog:{title:`Nouveau profil`,description:`Choisissez un nom en kebab-case minuscule (lettres, chiffres et tirets).`,confirmLabel:`Créer`,invalidHint:`Doit commencer par une lettre ou un chiffre et ne contenir que des lettres minuscules, des chiffres et des tirets.`},duplicateDialog:{title:`Dupliquer « {{name}} »`,description:`Nom du nouveau profil.`,invalidHint:`Kebab-case minuscule uniquement.`},deleteDialog:{title:`Supprimer le profil « {{name}} » ?`,description:`Cette action est irréversible. Les jobs déjà lancés avec ce profil conservent leur snapshot ; les prochains lancements reviendront à l'ordre de résolution.`},empty:{title:`Aucun profil pour l'instant`,body:`Les profils vous permettent d'enregistrer des combinaisons orchestrateur + agents + routage et d'en choisir une par rail.`,migrateButton:`Migrer depuis les agents actuels`,blankButton:`Profil vierge`,migrateExplainer:`« Migrer » lit les modèles du frontmatter de vos <code>.claude/agents/</code> existants et crée un profil <code>default</code> reproduisant le comportement actuel — sans aucune perte.`},sidebar:{title:`Profils`,teamDefault:`(défaut de l'équipe)`},editorFooter:{fixValidationIssues:`Corrigez les problèmes de validation avant d'enregistrer`,issuesToResolve_one:`{{count}} problème à résoudre`,issuesToResolve_other:`{{count}} problèmes à résoudre`}},r={title:`Utilisation des profils`,windowLabel:`{{days}}j`,subtitleEmpty:`Jobs lancés par profil sur la période sélectionnée.`,subtitle:`Jobs lancés par profil au cours des {{count}} derniers jours.`,empty:`Aucun job lié à un profil pour l'instant.`,jobsTooltip:`jobs`,jobsLabel_one:`job`,jobsLabel_other:`jobs`,successRateTooltip:`taux de réussite`,okSuffix:`ok`,avgDurationTooltip:`durée moyenne`,avgTokensTooltip:`tokens en moyenne`,tokensSuffix:`tok`},i={addTitle:`Ajouter une règle de routage`,editTitle:`Modifier la règle de routage`,addDescription:`Ajoutez une règle de routage par tags en kebab-case minuscule.`,editDescription:`Mettez à jour les tags ou l'agent cible de cette règle.`,tagsLabel:`Tags`,tagsHint:`Séparés par des virgules. Utilisez le kebab-case minuscule, comme <code>frontend</code> ou <code>api-design</code>.`,invalidTags_one:`Tag invalide : {{tags}}. Les tags ne peuvent contenir que des lettres minuscules, des chiffres et des tirets.`,invalidTags_other:`Tags invalides : {{tags}}. Les tags ne peuvent contenir que des lettres minuscules, des chiffres et des tirets.`,routeToLabel:`Router vers`,routeToHint:`Seuls les agents de la chaîne de ce profil peuvent être des cibles de routage.`,addRule:`Ajouter la règle`,saveChanges:`Enregistrer les modifications`},a={profileTitle:`Profil d'agents pour ce rail`,noProfile:`Aucun profil`,modelTitle:`Modèle pour ce rail Freestyle`,loopModelTitle:`Modèle pour ce loop`,engineTitle:`
|
|
1
|
+
var e={title:`Agents`,subtitle:`Gérez les profils d'agents et le catalogue (upstream + personnalisés) de ce projet.`,tabs:{profiles:`Profils`,usage:`Utilisation`,catalog:`Catalogue`},banner:{title:`Le pipeline avec profils nécessite specrails-core {{required}}+`,body:`Ce projet utilise <code>{{version}}</code>. Exécutez <code>{{command}}</code> dans le projet pour débloquer le mode profil. Les profils créés ici seront tout de même enregistrés ; ils n'affecteront simplement pas le pipeline tant que core n'est pas mis à jour.`,unknownVersion:`inconnue`}},t={loading:`Chargement du catalogue…`,aiEditChipLabel:`Édition IA · {{agentId}}`,errors:{loadFailed:`Échec du chargement du catalogue : {{status}}`,bodyLoadFailed:`Échec du chargement du corps de l'agent : {{status}}`,generateFailed:`Échec de la génération : {{status}}`,agentLoadFailed:`Échec du chargement : {{status}}`},templates:{title:`Bibliothèque de templates d'agents`,countOf:`{{shown}} sur {{total}}`,description:`Partez d'un template sélectionné dans l'ingénierie, le produit, la science, la santé, le juridique et plus encore. Choisissez-en un et ouvrez-le dans le Studio pour le relire et le modifier avant d'enregistrer.`,searchPlaceholder:`Rechercher par nom, description, tag ou catégorie…`,allCategories:`Toutes`,tagFilter:`Filtre de tags :`,noMatch:`Aucun template ne correspond à vos filtres.`,clearFilters:`Effacer les filtres`,openInStudio:`Ouvrir dans le Studio →`,tip:`Astuce : cliquez sur la pastille d'un tag sur une carte pour filtrer sur ce tag.`},generate:{title:`Générer un agent personnalisé`,agentIdLabel:`ID de l'agent`,agentIdHint:`Doit commencer par <code>custom-</code>.`,descriptionLabel:`Décrivez ce que cet agent doit faire`,descriptionPlaceholder:`ex. Relire les modifications Terraform/IaC et signaler les erreurs de configuration de sécurité, les permissions IAM excessives et les buckets S3 publics avant le merge. Conservateur et concis.`,note:`Claude rédigera un corps <code>.md</code> complet. Vous le relirez dans le Studio et pourrez le modifier avant d'enregistrer. Cela lance une invocation claude unique et peut prendre jusqu'à 90 secondes.`,generating:`Génération…`,generateButton:`Générer`},empty:{title:`Aucun agent installé`,body:`Exécutez <code>{{command}}</code> dans ce projet pour installer les agents upstream, ou créez un agent personnalisé dès maintenant.`},actions:{template:`Template`,templateTitle:`Partir d'un template`,generate:`Générer`,generateWithClaude:`Générer avec Claude`,generateWithAi:`Générer avec l’IA`,blank:`Vierge`,blankTitle:`Partir d'un template vierge`},sidebar:{title:`Catalogue`,createLabel:`Créer un agent personnalisé :`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Fournis par specrails-core ; lecture seule.`,custom:`Personnalisés ({{count}})`,customDescription:`Les fichiers custom-*.md de votre projet. Utilisez Template / Générer / Vierge ci-dessus pour en créer un.`,noCustomAgents:`Aucun agent personnalisé pour l'instant.`},detail:{defaultModel:`modèle par défaut : {{model}}`,aiEdit:`Édition IA`,aiEditTitle:`Affiner cet agent de manière itérative avec l'IA`,readOnly:`lecture seule`,editableHint:`modifiable — utilisez Modifier ci-dessus`},kind:{upstream:`upstream`,custom:`personnalisé`}},n={providerLabel:`Fournisseur du profil`,loading:`Chargement des profils…`,selectPrompt:`Sélectionnez un profil à modifier`,errors:{listFailed:`Échec du listage : {{status}}`,loadFailed:`Échec du chargement : {{status}}`,migrationFailed:`Échec de la migration : {{status}}`,createFailed:`Échec de la création : {{status}}`,duplicateFailed:`Échec de la duplication : {{status}}`,deleteFailed:`Échec de la suppression : {{status}}`,saveFailed:`Échec de l'enregistrement : {{status}}`},toasts:{migrated:`Profil migré`,migratedDescription:`profil default créé à partir de vos agents actuels`,migrationFailed:`Échec de la migration`,created:`Profil créé`,createFailed:`Échec de la création du profil`,duplicated:`Profil dupliqué`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`Échec de la duplication du profil`,deleted:`Profil supprimé`,deleteFailed:`Échec de la suppression du profil`,saved:`Profil enregistré`,saveFailed:`Échec de l'enregistrement du profil`,savedWithUntargeted:`Profil enregistré avec des agents non ciblés`,savedWithUntargetedDescription:`Aucune règle de routage ne pointe vers : {{agents}}. Ajoutez une règle de tag ou reciblez la règle par défaut si vous voulez qu'ils s'exécutent.`},createDialog:{title:`Nouveau profil`,description:`Choisissez un nom en kebab-case minuscule (lettres, chiffres et tirets).`,confirmLabel:`Créer`,invalidHint:`Doit commencer par une lettre ou un chiffre et ne contenir que des lettres minuscules, des chiffres et des tirets.`},duplicateDialog:{title:`Dupliquer « {{name}} »`,description:`Nom du nouveau profil.`,invalidHint:`Kebab-case minuscule uniquement.`},deleteDialog:{title:`Supprimer le profil « {{name}} » ?`,description:`Cette action est irréversible. Les jobs déjà lancés avec ce profil conservent leur snapshot ; les prochains lancements reviendront à l'ordre de résolution.`},empty:{title:`Aucun profil pour l'instant`,body:`Les profils vous permettent d'enregistrer des combinaisons orchestrateur + agents + routage et d'en choisir une par rail.`,migrateButton:`Migrer depuis les agents actuels`,blankButton:`Profil vierge`,migrateExplainer:`« Migrer » lit les modèles du frontmatter de vos <code>.claude/agents/</code> existants et crée un profil <code>default</code> reproduisant le comportement actuel — sans aucune perte.`},sidebar:{title:`Profils`,teamDefault:`(défaut de l'équipe)`},editorFooter:{fixValidationIssues:`Corrigez les problèmes de validation avant d'enregistrer`,issuesToResolve_one:`{{count}} problème à résoudre`,issuesToResolve_other:`{{count}} problèmes à résoudre`}},r={title:`Utilisation des profils`,windowLabel:`{{days}}j`,subtitleEmpty:`Jobs lancés par profil sur la période sélectionnée.`,subtitle:`Jobs lancés par profil au cours des {{count}} derniers jours.`,empty:`Aucun job lié à un profil pour l'instant.`,jobsTooltip:`jobs`,jobsLabel_one:`job`,jobsLabel_other:`jobs`,successRateTooltip:`taux de réussite`,okSuffix:`ok`,avgDurationTooltip:`durée moyenne`,avgTokensTooltip:`tokens en moyenne`,tokensSuffix:`tok`},i={addTitle:`Ajouter une règle de routage`,editTitle:`Modifier la règle de routage`,addDescription:`Ajoutez une règle de routage par tags en kebab-case minuscule.`,editDescription:`Mettez à jour les tags ou l'agent cible de cette règle.`,tagsLabel:`Tags`,tagsHint:`Séparés par des virgules. Utilisez le kebab-case minuscule, comme <code>frontend</code> ou <code>api-design</code>.`,invalidTags_one:`Tag invalide : {{tags}}. Les tags ne peuvent contenir que des lettres minuscules, des chiffres et des tirets.`,invalidTags_other:`Tags invalides : {{tags}}. Les tags ne peuvent contenir que des lettres minuscules, des chiffres et des tirets.`,routeToLabel:`Router vers`,routeToHint:`Seuls les agents de la chaîne de ce profil peuvent être des cibles de routage.`,addRule:`Ajouter la règle`,saveChanges:`Enregistrer les modifications`},a={profileTitle:`Profil d'agents pour ce rail`,noProfile:`Aucun profil`,modelTitle:`Modèle pour ce rail Freestyle`,loopModelTitle:`Modèle pour ce loop`,engineTitle:`Fournisseur IA pour tous les rôles de ce lancement : architecte, développeur et réviseur`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={title:`Agentes`,subtitle:`Gestiona los perfiles de agentes y el catálogo (upstream + personalizados) de este proyecto.`,tabs:{profiles:`Perfiles`,usage:`Uso`,catalog:`Catálogo`},banner:{title:`El pipeline con perfiles requiere specrails-core {{required}}+`,body:`Este proyecto tiene <code>{{version}}</code>. Ejecuta <code>{{command}}</code> dentro del proyecto para activar el modo perfiles. Los perfiles que crees aquí se guardarán igualmente; simplemente no afectarán al pipeline hasta que actualices core.`,unknownVersion:`desconocida`}},t={loading:`Cargando catálogo…`,aiEditChipLabel:`Edición IA · {{agentId}}`,errors:{loadFailed:`Error al cargar el catálogo: {{status}}`,bodyLoadFailed:`Error al cargar el cuerpo del agente: {{status}}`,generateFailed:`Error al generar: {{status}}`,agentLoadFailed:`Error al cargar: {{status}}`},templates:{title:`Biblioteca de plantillas de agentes`,countOf:`{{shown}} de {{total}}`,description:`Empieza desde una plantilla seleccionada de ingeniería, producto, ciencia, salud, legal y más. Elige una y ábrela en el Studio para revisarla y editarla antes de guardar.`,searchPlaceholder:`Buscar por nombre, descripción, etiqueta o categoría…`,allCategories:`Todas`,tagFilter:`Filtro de etiquetas:`,noMatch:`Ninguna plantilla coincide con tus filtros.`,clearFilters:`Limpiar filtros`,openInStudio:`Abrir en el Studio →`,tip:`Consejo: haz clic en una etiqueta de cualquier tarjeta para filtrar por ella.`},generate:{title:`Generar un agente personalizado`,agentIdLabel:`Id del agente`,agentIdHint:`Debe empezar por <code>custom-</code>.`,descriptionLabel:`Describe qué debe hacer este agente`,descriptionPlaceholder:`p. ej. Revisar cambios de Terraform/IaC y señalar errores de configuración de seguridad, permisos IAM excesivos y buckets S3 públicos antes del merge. Conservador y conciso.`,note:`Claude redactará un cuerpo <code>.md</code> completo. Lo revisarás en el Studio y podrás editarlo antes de guardar. Esto lanza una invocación puntual de claude y puede tardar hasta 90 segundos.`,generating:`Generando…`,generateButton:`Generar`},empty:{title:`No hay agentes instalados`,body:`Ejecuta <code>{{command}}</code> en este proyecto para instalar los agentes upstream, o crea ahora un agente personalizado.`},actions:{template:`Plantilla`,templateTitle:`Empezar desde una plantilla`,generate:`Generar`,generateWithClaude:`Generar con Claude`,generateWithAi:`Generar con IA`,blank:`En blanco`,blankTitle:`Empezar desde una plantilla en blanco`},sidebar:{title:`Catálogo`,createLabel:`Crear un agente personalizado:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Incluidos con specrails-core; solo lectura.`,custom:`Personalizados ({{count}})`,customDescription:`Los archivos custom-*.md de tu proyecto. Usa Plantilla / Generar / En blanco arriba para crear uno.`,noCustomAgents:`Aún no hay agentes personalizados.`},detail:{defaultModel:`modelo por defecto: {{model}}`,aiEdit:`Edición IA`,aiEditTitle:`Refina este agente iterativamente con IA`,readOnly:`solo lectura`,editableHint:`editable — usa Editar arriba`},kind:{upstream:`upstream`,custom:`personalizado`}},n={providerLabel:`Proveedor del perfil`,loading:`Cargando perfiles…`,selectPrompt:`Selecciona un perfil para editarlo`,errors:{listFailed:`Error al listar: {{status}}`,loadFailed:`Error al cargar: {{status}}`,migrationFailed:`Error en la migración: {{status}}`,createFailed:`Error al crear: {{status}}`,duplicateFailed:`Error al duplicar: {{status}}`,deleteFailed:`Error al eliminar: {{status}}`,saveFailed:`Error al guardar: {{status}}`},toasts:{migrated:`Perfil migrado`,migratedDescription:`perfil default creado a partir de tus agentes actuales`,migrationFailed:`Error en la migración`,created:`Perfil creado`,createFailed:`No se pudo crear el perfil`,duplicated:`Perfil duplicado`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`No se pudo duplicar el perfil`,deleted:`Perfil eliminado`,deleteFailed:`No se pudo eliminar el perfil`,saved:`Perfil guardado`,saveFailed:`No se pudo guardar el perfil`,savedWithUntargeted:`Perfil guardado con agentes sin asignar`,savedWithUntargetedDescription:`Ninguna regla de enrutado apunta a: {{agents}}. Añade una regla por etiquetas o reorienta la regla por defecto si quieres que se ejecuten.`},createDialog:{title:`Nuevo perfil`,description:`Elige un nombre en minúsculas y kebab-case (letras, dígitos y guiones).`,confirmLabel:`Crear`,invalidHint:`Debe empezar por una letra o un dígito y contener solo letras minúsculas, dígitos y guiones.`},duplicateDialog:{title:`Duplicar «{{name}}»`,description:`Nombre para el nuevo perfil.`,invalidHint:`Solo minúsculas en kebab-case.`},deleteDialog:{title:`¿Eliminar el perfil «{{name}}»?`,description:`Esta acción no se puede deshacer. Los jobs ya lanzados con este perfil conservan su snapshot; los próximos lanzamientos usarán el orden de resolución.`},empty:{title:`Aún no hay perfiles`,body:`Los perfiles te permiten guardar combinaciones de orquestador + agentes + enrutado y elegir una por rail.`,migrateButton:`Migrar desde los agentes actuales`,blankButton:`Perfil en blanco`,migrateExplainer:`«Migrar» lee los modelos del frontmatter de tu <code>.claude/agents/</code> actual y crea un perfil <code>default</code> que replica el comportamiento de hoy — sin pérdidas.`},sidebar:{title:`Perfiles`,teamDefault:`(por defecto del equipo)`},editorFooter:{fixValidationIssues:`Corrige los problemas de validación antes de guardar`,issuesToResolve_one:`{{count}} problema por resolver`,issuesToResolve_other:`{{count}} problemas por resolver`}},r={title:`Uso de perfiles`,windowLabel:`{{days}}d`,subtitleEmpty:`Jobs lanzados por perfil en la ventana seleccionada.`,subtitle:`Jobs lanzados por perfil en los últimos {{count}} días.`,empty:`Aún no hay jobs con perfil.`,jobsTooltip:`jobs`,jobsLabel_one:`job`,jobsLabel_other:`jobs`,successRateTooltip:`tasa de éxito`,okSuffix:`ok`,avgDurationTooltip:`duración media`,avgTokensTooltip:`media de tokens`,tokensSuffix:`tok`},i={addTitle:`Añadir regla de enrutado`,editTitle:`Editar regla de enrutado`,addDescription:`Añade una regla de enrutado por etiquetas usando etiquetas en minúsculas y kebab-case.`,editDescription:`Actualiza las etiquetas o el agente de destino de esta regla.`,tagsLabel:`Etiquetas`,tagsHint:`Separadas por comas. Usa minúsculas en kebab-case, como <code>frontend</code> o <code>api-design</code>.`,invalidTags_one:`Etiqueta no válida: {{tags}}. Las etiquetas solo pueden contener letras minúsculas, dígitos y guiones.`,invalidTags_other:`Etiquetas no válidas: {{tags}}. Las etiquetas solo pueden contener letras minúsculas, dígitos y guiones.`,routeToLabel:`Enrutar a`,routeToHint:`Solo los agentes de la cadena de este perfil pueden ser destinos de enrutado.`,addRule:`Añadir regla`,saveChanges:`Guardar cambios`},a={profileTitle:`Perfil de agentes para este rail`,noProfile:`Sin perfil`,modelTitle:`Modelo para este rail Freestyle`,loopModelTitle:`Modelo para este loop`,engineTitle:`
|
|
1
|
+
var e={title:`Agentes`,subtitle:`Gestiona los perfiles de agentes y el catálogo (upstream + personalizados) de este proyecto.`,tabs:{profiles:`Perfiles`,usage:`Uso`,catalog:`Catálogo`},banner:{title:`El pipeline con perfiles requiere specrails-core {{required}}+`,body:`Este proyecto tiene <code>{{version}}</code>. Ejecuta <code>{{command}}</code> dentro del proyecto para activar el modo perfiles. Los perfiles que crees aquí se guardarán igualmente; simplemente no afectarán al pipeline hasta que actualices core.`,unknownVersion:`desconocida`}},t={loading:`Cargando catálogo…`,aiEditChipLabel:`Edición IA · {{agentId}}`,errors:{loadFailed:`Error al cargar el catálogo: {{status}}`,bodyLoadFailed:`Error al cargar el cuerpo del agente: {{status}}`,generateFailed:`Error al generar: {{status}}`,agentLoadFailed:`Error al cargar: {{status}}`},templates:{title:`Biblioteca de plantillas de agentes`,countOf:`{{shown}} de {{total}}`,description:`Empieza desde una plantilla seleccionada de ingeniería, producto, ciencia, salud, legal y más. Elige una y ábrela en el Studio para revisarla y editarla antes de guardar.`,searchPlaceholder:`Buscar por nombre, descripción, etiqueta o categoría…`,allCategories:`Todas`,tagFilter:`Filtro de etiquetas:`,noMatch:`Ninguna plantilla coincide con tus filtros.`,clearFilters:`Limpiar filtros`,openInStudio:`Abrir en el Studio →`,tip:`Consejo: haz clic en una etiqueta de cualquier tarjeta para filtrar por ella.`},generate:{title:`Generar un agente personalizado`,agentIdLabel:`Id del agente`,agentIdHint:`Debe empezar por <code>custom-</code>.`,descriptionLabel:`Describe qué debe hacer este agente`,descriptionPlaceholder:`p. ej. Revisar cambios de Terraform/IaC y señalar errores de configuración de seguridad, permisos IAM excesivos y buckets S3 públicos antes del merge. Conservador y conciso.`,note:`Claude redactará un cuerpo <code>.md</code> completo. Lo revisarás en el Studio y podrás editarlo antes de guardar. Esto lanza una invocación puntual de claude y puede tardar hasta 90 segundos.`,generating:`Generando…`,generateButton:`Generar`},empty:{title:`No hay agentes instalados`,body:`Ejecuta <code>{{command}}</code> en este proyecto para instalar los agentes upstream, o crea ahora un agente personalizado.`},actions:{template:`Plantilla`,templateTitle:`Empezar desde una plantilla`,generate:`Generar`,generateWithClaude:`Generar con Claude`,generateWithAi:`Generar con IA`,blank:`En blanco`,blankTitle:`Empezar desde una plantilla en blanco`},sidebar:{title:`Catálogo`,createLabel:`Crear un agente personalizado:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Incluidos con specrails-core; solo lectura.`,custom:`Personalizados ({{count}})`,customDescription:`Los archivos custom-*.md de tu proyecto. Usa Plantilla / Generar / En blanco arriba para crear uno.`,noCustomAgents:`Aún no hay agentes personalizados.`},detail:{defaultModel:`modelo por defecto: {{model}}`,aiEdit:`Edición IA`,aiEditTitle:`Refina este agente iterativamente con IA`,readOnly:`solo lectura`,editableHint:`editable — usa Editar arriba`},kind:{upstream:`upstream`,custom:`personalizado`}},n={providerLabel:`Proveedor del perfil`,loading:`Cargando perfiles…`,selectPrompt:`Selecciona un perfil para editarlo`,errors:{listFailed:`Error al listar: {{status}}`,loadFailed:`Error al cargar: {{status}}`,migrationFailed:`Error en la migración: {{status}}`,createFailed:`Error al crear: {{status}}`,duplicateFailed:`Error al duplicar: {{status}}`,deleteFailed:`Error al eliminar: {{status}}`,saveFailed:`Error al guardar: {{status}}`},toasts:{migrated:`Perfil migrado`,migratedDescription:`perfil default creado a partir de tus agentes actuales`,migrationFailed:`Error en la migración`,created:`Perfil creado`,createFailed:`No se pudo crear el perfil`,duplicated:`Perfil duplicado`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`No se pudo duplicar el perfil`,deleted:`Perfil eliminado`,deleteFailed:`No se pudo eliminar el perfil`,saved:`Perfil guardado`,saveFailed:`No se pudo guardar el perfil`,savedWithUntargeted:`Perfil guardado con agentes sin asignar`,savedWithUntargetedDescription:`Ninguna regla de enrutado apunta a: {{agents}}. Añade una regla por etiquetas o reorienta la regla por defecto si quieres que se ejecuten.`},createDialog:{title:`Nuevo perfil`,description:`Elige un nombre en minúsculas y kebab-case (letras, dígitos y guiones).`,confirmLabel:`Crear`,invalidHint:`Debe empezar por una letra o un dígito y contener solo letras minúsculas, dígitos y guiones.`},duplicateDialog:{title:`Duplicar «{{name}}»`,description:`Nombre para el nuevo perfil.`,invalidHint:`Solo minúsculas en kebab-case.`},deleteDialog:{title:`¿Eliminar el perfil «{{name}}»?`,description:`Esta acción no se puede deshacer. Los jobs ya lanzados con este perfil conservan su snapshot; los próximos lanzamientos usarán el orden de resolución.`},empty:{title:`Aún no hay perfiles`,body:`Los perfiles te permiten guardar combinaciones de orquestador + agentes + enrutado y elegir una por rail.`,migrateButton:`Migrar desde los agentes actuales`,blankButton:`Perfil en blanco`,migrateExplainer:`«Migrar» lee los modelos del frontmatter de tu <code>.claude/agents/</code> actual y crea un perfil <code>default</code> que replica el comportamiento de hoy — sin pérdidas.`},sidebar:{title:`Perfiles`,teamDefault:`(por defecto del equipo)`},editorFooter:{fixValidationIssues:`Corrige los problemas de validación antes de guardar`,issuesToResolve_one:`{{count}} problema por resolver`,issuesToResolve_other:`{{count}} problemas por resolver`}},r={title:`Uso de perfiles`,windowLabel:`{{days}}d`,subtitleEmpty:`Jobs lanzados por perfil en la ventana seleccionada.`,subtitle:`Jobs lanzados por perfil en los últimos {{count}} días.`,empty:`Aún no hay jobs con perfil.`,jobsTooltip:`jobs`,jobsLabel_one:`job`,jobsLabel_other:`jobs`,successRateTooltip:`tasa de éxito`,okSuffix:`ok`,avgDurationTooltip:`duración media`,avgTokensTooltip:`media de tokens`,tokensSuffix:`tok`},i={addTitle:`Añadir regla de enrutado`,editTitle:`Editar regla de enrutado`,addDescription:`Añade una regla de enrutado por etiquetas usando etiquetas en minúsculas y kebab-case.`,editDescription:`Actualiza las etiquetas o el agente de destino de esta regla.`,tagsLabel:`Etiquetas`,tagsHint:`Separadas por comas. Usa minúsculas en kebab-case, como <code>frontend</code> o <code>api-design</code>.`,invalidTags_one:`Etiqueta no válida: {{tags}}. Las etiquetas solo pueden contener letras minúsculas, dígitos y guiones.`,invalidTags_other:`Etiquetas no válidas: {{tags}}. Las etiquetas solo pueden contener letras minúsculas, dígitos y guiones.`,routeToLabel:`Enrutar a`,routeToHint:`Solo los agentes de la cadena de este perfil pueden ser destinos de enrutado.`,addRule:`Añadir regla`,saveChanges:`Guardar cambios`},a={profileTitle:`Perfil de agentes para este rail`,noProfile:`Sin perfil`,modelTitle:`Modelo para este rail Freestyle`,loopModelTitle:`Modelo para este loop`,engineTitle:`Proveedor de IA para todos los roles de este lanzamiento: arquitecto, desarrollador y revisor`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={title:`Agents`,subtitle:`Agent-Profile und den Katalog (Upstream + Custom) für dieses Projekt verwalten.`,tabs:{profiles:`Profile`,usage:`Nutzung`,catalog:`Katalog`},banner:{title:`Profilgestützte Pipeline erfordert specrails-core {{required}}+`,body:`Dieses Projekt hat <code>{{version}}</code>. Führe <code>{{command}}</code> im Projekt aus, um den Profilmodus freizuschalten. Hier erstellte Profile werden trotzdem gespeichert; sie wirken sich nur erst nach dem Core-Update auf die Pipeline aus.`,unknownVersion:`unbekannt`}},t={loading:`Katalog wird geladen…`,aiEditChipLabel:`AI Edit · {{agentId}}`,errors:{loadFailed:`Katalog konnte nicht geladen werden: {{status}}`,bodyLoadFailed:`Agent-Inhalt konnte nicht geladen werden: {{status}}`,generateFailed:`Generierung fehlgeschlagen: {{status}}`,agentLoadFailed:`Laden fehlgeschlagen: {{status}}`},templates:{title:`Agent-Vorlagenbibliothek`,countOf:`{{shown}} von {{total}}`,description:`Starte mit einer kuratierten Vorlage aus Engineering, Produkt, Wissenschaft, Gesundheit, Recht und mehr. Wähle eine aus und öffne sie im Studio, um sie vor dem Speichern zu prüfen und zu bearbeiten.`,searchPlaceholder:`Nach Name, Beschreibung, Tag oder Kategorie suchen…`,allCategories:`Alle`,tagFilter:`Tag-Filter:`,noMatch:`Keine Vorlagen entsprechen deinen Filtern.`,clearFilters:`Filter zurücksetzen`,openInStudio:`Im Studio öffnen →`,tip:`Tipp: Klicke auf einen Tag-Chip auf einer Karte, um nach diesem Tag zu filtern.`},generate:{title:`Custom-Agent generieren`,agentIdLabel:`Agent-ID`,agentIdHint:`Muss mit <code>custom-</code> beginnen.`,descriptionLabel:`Beschreibe, was dieser Agent tun soll`,descriptionPlaceholder:`z. B. Terraform-/IaC-Änderungen reviewen und Sicherheits-Fehlkonfigurationen, übermäßige IAM-Berechtigungen und öffentliche S3-Buckets vor dem Merge markieren. Konservativ und knapp.`,note:`Claude entwirft einen vollständigen <code>.md</code>-Inhalt. Du prüfst ihn im Studio und kannst ihn vor dem Speichern bearbeiten. Dabei wird ein einmaliger claude-Aufruf gestartet, der bis zu 90 Sekunden dauern kann.`,generating:`Wird generiert…`,generateButton:`Generieren`},empty:{title:`Keine Agents installiert`,body:`Führe <code>{{command}}</code> in diesem Projekt aus, um die Upstream-Agents zu installieren, oder erstelle jetzt einen Custom-Agent.`},actions:{template:`Vorlage`,templateTitle:`Mit einer Vorlage starten`,generate:`Generieren`,generateWithClaude:`Mit Claude generieren`,generateWithAi:`Mit KI generieren`,blank:`Leer`,blankTitle:`Mit einer leeren Vorlage starten`},sidebar:{title:`Katalog`,createLabel:`Custom-Agent erstellen:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Wird von specrails-core mitgeliefert; schreibgeschützt.`,custom:`Custom ({{count}})`,customDescription:`Die custom-*.md-Dateien deines Projekts. Nutze Vorlage / Generieren / Leer oben, um einen zu erstellen.`,noCustomAgents:`Noch keine Custom-Agents.`},detail:{defaultModel:`Standardmodell: {{model}}`,aiEdit:`AI Edit`,aiEditTitle:`Diesen Agent iterativ mit KI verfeinern`,readOnly:`schreibgeschützt`,editableHint:`bearbeitbar – nutze Bearbeiten oben`},kind:{upstream:`upstream`,custom:`custom`}},n={providerLabel:`Profilanbieter`,loading:`Profile werden geladen…`,selectPrompt:`Wähle ein Profil zum Bearbeiten`,errors:{listFailed:`Auflisten fehlgeschlagen: {{status}}`,loadFailed:`Laden fehlgeschlagen: {{status}}`,migrationFailed:`Migration fehlgeschlagen: {{status}}`,createFailed:`Erstellen fehlgeschlagen: {{status}}`,duplicateFailed:`Duplizieren fehlgeschlagen: {{status}}`,deleteFailed:`Löschen fehlgeschlagen: {{status}}`,saveFailed:`Speichern fehlgeschlagen: {{status}}`},toasts:{migrated:`Profil migriert`,migratedDescription:`default-Profil aus deinen aktuellen Agents erstellt`,migrationFailed:`Migration fehlgeschlagen`,created:`Profil erstellt`,createFailed:`Profil konnte nicht erstellt werden`,duplicated:`Profil dupliziert`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`Profil konnte nicht dupliziert werden`,deleted:`Profil gelöscht`,deleteFailed:`Profil konnte nicht gelöscht werden`,saved:`Profil gespeichert`,saveFailed:`Profil konnte nicht gespeichert werden`,savedWithUntargeted:`Profil mit nicht angesteuerten Agents gespeichert`,savedWithUntargetedDescription:`Keine Routing-Regel zeigt auf: {{agents}}. Füge eine Tag-Regel hinzu oder ändere das Ziel der Default-Regel, wenn sie laufen sollen.`},createDialog:{title:`Neues Profil`,description:`Wähle einen Namen in Kleinbuchstaben im kebab-case (Buchstaben, Ziffern und Bindestriche).`,confirmLabel:`Erstellen`,invalidHint:`Muss mit einem Buchstaben oder einer Ziffer beginnen und darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten.`},duplicateDialog:{title:`„{{name}}“ duplizieren`,description:`Name für das neue Profil.`,invalidHint:`Nur Kleinbuchstaben im kebab-case.`},deleteDialog:{title:`Profil „{{name}}“ löschen?`,description:`Dies kann nicht rückgängig gemacht werden. Bereits mit diesem Profil gestartete Jobs behalten ihren Snapshot; künftige Starts fallen auf die Auflösungsreihenfolge zurück.`},empty:{title:`Noch keine Profile`,body:`Mit Profilen speicherst du Kombinationen aus Orchestrator + Agents + Routing und wählst pro Rail eines aus.`,migrateButton:`Aus aktuellen Agents migrieren`,blankButton:`Leeres Profil`,migrateExplainer:`„Migrieren“ liest die Frontmatter-Modelle deiner bestehenden <code>.claude/agents/</code>-Dateien und erstellt ein <code>default</code>-Profil, das das heutige Verhalten verlustfrei abbildet.`},sidebar:{title:`Profile`,teamDefault:`(Team-Standard)`},editorFooter:{fixValidationIssues:`Behebe Validierungsprobleme vor dem Speichern`,issuesToResolve_one:`{{count}} Problem zu beheben`,issuesToResolve_other:`{{count}} Probleme zu beheben`}},r={title:`Profilnutzung`,windowLabel:`{{days}}d`,subtitleEmpty:`Gestartete Jobs pro Profil im gewählten Zeitraum.`,subtitle:`Gestartete Jobs pro Profil in den letzten {{count}} Tagen.`,empty:`Noch keine profilgebundenen Jobs.`,jobsTooltip:`Jobs`,jobsLabel_one:`Job`,jobsLabel_other:`Jobs`,successRateTooltip:`Erfolgsquote`,okSuffix:`ok`,avgDurationTooltip:`Ø Dauer`,avgTokensTooltip:`Ø Tokens`,tokensSuffix:`tok`},i={addTitle:`Routing-Regel hinzufügen`,editTitle:`Routing-Regel bearbeiten`,addDescription:`Füge eine Tag-basierte Routing-Regel mit kebab-case-Tags in Kleinbuchstaben hinzu.`,editDescription:`Aktualisiere die Tags oder den Ziel-Agent dieser Regel.`,tagsLabel:`Tags`,tagsHint:`Kommagetrennt. Verwende kebab-case in Kleinbuchstaben wie <code>frontend</code> oder <code>api-design</code>.`,invalidTags_one:`Ungültiger Tag: {{tags}}. Tags dürfen nur Kleinbuchstaben, Ziffern und Bindestriche enthalten.`,invalidTags_other:`Ungültige Tags: {{tags}}. Tags dürfen nur Kleinbuchstaben, Ziffern und Bindestriche enthalten.`,routeToLabel:`Weiterleiten an`,routeToHint:`Nur Agents in der Kette dieses Profils können Routing-Ziele sein.`,addRule:`Regel hinzufügen`,saveChanges:`Änderungen speichern`},a={profileTitle:`Agent-Profil für diese Rail`,noProfile:`Kein Profil`,modelTitle:`Modell für diese Freestyle-Rail`,loopModelTitle:`Modell für diesen Loop`,engineTitle:`KI-
|
|
1
|
+
var e={title:`Agents`,subtitle:`Agent-Profile und den Katalog (Upstream + Custom) für dieses Projekt verwalten.`,tabs:{profiles:`Profile`,usage:`Nutzung`,catalog:`Katalog`},banner:{title:`Profilgestützte Pipeline erfordert specrails-core {{required}}+`,body:`Dieses Projekt hat <code>{{version}}</code>. Führe <code>{{command}}</code> im Projekt aus, um den Profilmodus freizuschalten. Hier erstellte Profile werden trotzdem gespeichert; sie wirken sich nur erst nach dem Core-Update auf die Pipeline aus.`,unknownVersion:`unbekannt`}},t={loading:`Katalog wird geladen…`,aiEditChipLabel:`AI Edit · {{agentId}}`,errors:{loadFailed:`Katalog konnte nicht geladen werden: {{status}}`,bodyLoadFailed:`Agent-Inhalt konnte nicht geladen werden: {{status}}`,generateFailed:`Generierung fehlgeschlagen: {{status}}`,agentLoadFailed:`Laden fehlgeschlagen: {{status}}`},templates:{title:`Agent-Vorlagenbibliothek`,countOf:`{{shown}} von {{total}}`,description:`Starte mit einer kuratierten Vorlage aus Engineering, Produkt, Wissenschaft, Gesundheit, Recht und mehr. Wähle eine aus und öffne sie im Studio, um sie vor dem Speichern zu prüfen und zu bearbeiten.`,searchPlaceholder:`Nach Name, Beschreibung, Tag oder Kategorie suchen…`,allCategories:`Alle`,tagFilter:`Tag-Filter:`,noMatch:`Keine Vorlagen entsprechen deinen Filtern.`,clearFilters:`Filter zurücksetzen`,openInStudio:`Im Studio öffnen →`,tip:`Tipp: Klicke auf einen Tag-Chip auf einer Karte, um nach diesem Tag zu filtern.`},generate:{title:`Custom-Agent generieren`,agentIdLabel:`Agent-ID`,agentIdHint:`Muss mit <code>custom-</code> beginnen.`,descriptionLabel:`Beschreibe, was dieser Agent tun soll`,descriptionPlaceholder:`z. B. Terraform-/IaC-Änderungen reviewen und Sicherheits-Fehlkonfigurationen, übermäßige IAM-Berechtigungen und öffentliche S3-Buckets vor dem Merge markieren. Konservativ und knapp.`,note:`Claude entwirft einen vollständigen <code>.md</code>-Inhalt. Du prüfst ihn im Studio und kannst ihn vor dem Speichern bearbeiten. Dabei wird ein einmaliger claude-Aufruf gestartet, der bis zu 90 Sekunden dauern kann.`,generating:`Wird generiert…`,generateButton:`Generieren`},empty:{title:`Keine Agents installiert`,body:`Führe <code>{{command}}</code> in diesem Projekt aus, um die Upstream-Agents zu installieren, oder erstelle jetzt einen Custom-Agent.`},actions:{template:`Vorlage`,templateTitle:`Mit einer Vorlage starten`,generate:`Generieren`,generateWithClaude:`Mit Claude generieren`,generateWithAi:`Mit KI generieren`,blank:`Leer`,blankTitle:`Mit einer leeren Vorlage starten`},sidebar:{title:`Katalog`,createLabel:`Custom-Agent erstellen:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Wird von specrails-core mitgeliefert; schreibgeschützt.`,custom:`Custom ({{count}})`,customDescription:`Die custom-*.md-Dateien deines Projekts. Nutze Vorlage / Generieren / Leer oben, um einen zu erstellen.`,noCustomAgents:`Noch keine Custom-Agents.`},detail:{defaultModel:`Standardmodell: {{model}}`,aiEdit:`AI Edit`,aiEditTitle:`Diesen Agent iterativ mit KI verfeinern`,readOnly:`schreibgeschützt`,editableHint:`bearbeitbar – nutze Bearbeiten oben`},kind:{upstream:`upstream`,custom:`custom`}},n={providerLabel:`Profilanbieter`,loading:`Profile werden geladen…`,selectPrompt:`Wähle ein Profil zum Bearbeiten`,errors:{listFailed:`Auflisten fehlgeschlagen: {{status}}`,loadFailed:`Laden fehlgeschlagen: {{status}}`,migrationFailed:`Migration fehlgeschlagen: {{status}}`,createFailed:`Erstellen fehlgeschlagen: {{status}}`,duplicateFailed:`Duplizieren fehlgeschlagen: {{status}}`,deleteFailed:`Löschen fehlgeschlagen: {{status}}`,saveFailed:`Speichern fehlgeschlagen: {{status}}`},toasts:{migrated:`Profil migriert`,migratedDescription:`default-Profil aus deinen aktuellen Agents erstellt`,migrationFailed:`Migration fehlgeschlagen`,created:`Profil erstellt`,createFailed:`Profil konnte nicht erstellt werden`,duplicated:`Profil dupliziert`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`Profil konnte nicht dupliziert werden`,deleted:`Profil gelöscht`,deleteFailed:`Profil konnte nicht gelöscht werden`,saved:`Profil gespeichert`,saveFailed:`Profil konnte nicht gespeichert werden`,savedWithUntargeted:`Profil mit nicht angesteuerten Agents gespeichert`,savedWithUntargetedDescription:`Keine Routing-Regel zeigt auf: {{agents}}. Füge eine Tag-Regel hinzu oder ändere das Ziel der Default-Regel, wenn sie laufen sollen.`},createDialog:{title:`Neues Profil`,description:`Wähle einen Namen in Kleinbuchstaben im kebab-case (Buchstaben, Ziffern und Bindestriche).`,confirmLabel:`Erstellen`,invalidHint:`Muss mit einem Buchstaben oder einer Ziffer beginnen und darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten.`},duplicateDialog:{title:`„{{name}}“ duplizieren`,description:`Name für das neue Profil.`,invalidHint:`Nur Kleinbuchstaben im kebab-case.`},deleteDialog:{title:`Profil „{{name}}“ löschen?`,description:`Dies kann nicht rückgängig gemacht werden. Bereits mit diesem Profil gestartete Jobs behalten ihren Snapshot; künftige Starts fallen auf die Auflösungsreihenfolge zurück.`},empty:{title:`Noch keine Profile`,body:`Mit Profilen speicherst du Kombinationen aus Orchestrator + Agents + Routing und wählst pro Rail eines aus.`,migrateButton:`Aus aktuellen Agents migrieren`,blankButton:`Leeres Profil`,migrateExplainer:`„Migrieren“ liest die Frontmatter-Modelle deiner bestehenden <code>.claude/agents/</code>-Dateien und erstellt ein <code>default</code>-Profil, das das heutige Verhalten verlustfrei abbildet.`},sidebar:{title:`Profile`,teamDefault:`(Team-Standard)`},editorFooter:{fixValidationIssues:`Behebe Validierungsprobleme vor dem Speichern`,issuesToResolve_one:`{{count}} Problem zu beheben`,issuesToResolve_other:`{{count}} Probleme zu beheben`}},r={title:`Profilnutzung`,windowLabel:`{{days}}d`,subtitleEmpty:`Gestartete Jobs pro Profil im gewählten Zeitraum.`,subtitle:`Gestartete Jobs pro Profil in den letzten {{count}} Tagen.`,empty:`Noch keine profilgebundenen Jobs.`,jobsTooltip:`Jobs`,jobsLabel_one:`Job`,jobsLabel_other:`Jobs`,successRateTooltip:`Erfolgsquote`,okSuffix:`ok`,avgDurationTooltip:`Ø Dauer`,avgTokensTooltip:`Ø Tokens`,tokensSuffix:`tok`},i={addTitle:`Routing-Regel hinzufügen`,editTitle:`Routing-Regel bearbeiten`,addDescription:`Füge eine Tag-basierte Routing-Regel mit kebab-case-Tags in Kleinbuchstaben hinzu.`,editDescription:`Aktualisiere die Tags oder den Ziel-Agent dieser Regel.`,tagsLabel:`Tags`,tagsHint:`Kommagetrennt. Verwende kebab-case in Kleinbuchstaben wie <code>frontend</code> oder <code>api-design</code>.`,invalidTags_one:`Ungültiger Tag: {{tags}}. Tags dürfen nur Kleinbuchstaben, Ziffern und Bindestriche enthalten.`,invalidTags_other:`Ungültige Tags: {{tags}}. Tags dürfen nur Kleinbuchstaben, Ziffern und Bindestriche enthalten.`,routeToLabel:`Weiterleiten an`,routeToHint:`Nur Agents in der Kette dieses Profils können Routing-Ziele sein.`,addRule:`Regel hinzufügen`,saveChanges:`Änderungen speichern`},a={profileTitle:`Agent-Profil für diese Rail`,noProfile:`Kein Profil`,modelTitle:`Modell für diese Freestyle-Rail`,loopModelTitle:`Modell für diesen Loop`,engineTitle:`KI-Anbieter für alle Rollen dieses Starts: Architekt, Entwickler und Reviewer`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={title:`Agentes`,subtitle:`Faça a gestão dos perfis de agentes e do catálogo (upstream + personalizados) deste projeto.`,tabs:{profiles:`Perfis`,usage:`Utilização`,catalog:`Catálogo`},banner:{title:`O pipeline com suporte de perfis requer specrails-core {{required}}+`,body:`Este projeto tem <code>{{version}}</code>. Execute <code>{{command}}</code> dentro do projeto para desbloquear o modo de perfis. Os perfis que criar aqui continuam a ser guardados; simplesmente não afetam o pipeline até o core ser atualizado.`,unknownVersion:`desconhecida`}},t={loading:`A carregar o catálogo…`,aiEditChipLabel:`Edição com IA · {{agentId}}`,errors:{loadFailed:`Falha ao carregar o catálogo: {{status}}`,bodyLoadFailed:`Falha ao carregar o corpo do agente: {{status}}`,generateFailed:`Falha ao gerar: {{status}}`,agentLoadFailed:`Falha ao carregar: {{status}}`},templates:{title:`Biblioteca de templates de agentes`,countOf:`{{shown}} de {{total}}`,description:`Comece a partir de um template selecionado nas áreas de engenharia, produto, ciência, saúde, jurídico e mais. Escolha um e abra-o no Studio para rever e editar antes de guardar.`,searchPlaceholder:`Pesquisar por nome, descrição, tag ou categoria…`,allCategories:`Todas`,tagFilter:`Filtro de tags:`,noMatch:`Nenhum template corresponde aos seus filtros.`,clearFilters:`Limpar filtros`,openInStudio:`Abrir no Studio →`,tip:`Dica: clique numa tag em qualquer cartão para filtrar por essa tag.`},generate:{title:`Gerar um agente personalizado`,agentIdLabel:`ID do agente`,agentIdHint:`Tem de começar por <code>custom-</code>.`,descriptionLabel:`Descreva o que este agente deve fazer`,descriptionPlaceholder:`p. ex. Rever alterações de Terraform/IaC e assinalar configurações de segurança incorretas, permissões IAM excessivas e buckets S3 públicos antes do merge. Conservador e conciso.`,note:`O Claude vai redigir um corpo <code>.md</code> completo. Poderá revê-lo no Studio e editá-lo antes de guardar. Isto lança uma invocação única do claude e pode demorar até 90 segundos.`,generating:`A gerar…`,generateButton:`Gerar`},empty:{title:`Nenhum agente instalado`,body:`Execute <code>{{command}}</code> neste projeto para instalar os agentes upstream, ou crie já um agente personalizado.`},actions:{template:`Template`,templateTitle:`Começar a partir de um template`,generate:`Gerar`,generateWithClaude:`Gerar com o Claude`,generateWithAi:`Gerar com IA`,blank:`Em branco`,blankTitle:`Começar a partir de um template em branco`},sidebar:{title:`Catálogo`,createLabel:`Criar um agente personalizado:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Distribuídos pelo specrails-core; apenas de leitura.`,custom:`Personalizados ({{count}})`,customDescription:`Os ficheiros custom-*.md do seu projeto. Use Template / Gerar / Em branco acima para criar um.`,noCustomAgents:`Ainda não há agentes personalizados.`},detail:{defaultModel:`modelo predefinido: {{model}}`,aiEdit:`Edição com IA`,aiEditTitle:`Refinar este agente iterativamente com IA`,readOnly:`apenas leitura`,editableHint:`editável — use Editar acima`},kind:{upstream:`upstream`,custom:`personalizado`}},n={providerLabel:`Fornecedor do perfil`,loading:`A carregar perfis…`,selectPrompt:`Selecione um perfil para editar`,errors:{listFailed:`Falha ao listar: {{status}}`,loadFailed:`Falha ao carregar: {{status}}`,migrationFailed:`Falha na migração: {{status}}`,createFailed:`Falha ao criar: {{status}}`,duplicateFailed:`Falha ao duplicar: {{status}}`,deleteFailed:`Falha ao eliminar: {{status}}`,saveFailed:`Falha ao guardar: {{status}}`},toasts:{migrated:`Perfil migrado`,migratedDescription:`perfil default criado a partir dos seus agentes atuais`,migrationFailed:`Falha na migração`,created:`Perfil criado`,createFailed:`Falha ao criar o perfil`,duplicated:`Perfil duplicado`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`Falha ao duplicar o perfil`,deleted:`Perfil eliminado`,deleteFailed:`Falha ao eliminar o perfil`,saved:`Perfil guardado`,saveFailed:`Falha ao guardar o perfil`,savedWithUntargeted:`Perfil guardado com agentes sem destino`,savedWithUntargetedDescription:`Nenhuma regra de encaminhamento aponta para: {{agents}}. Adicione uma regra de tags ou redirecione a regra predefinida se quiser que sejam executados.`},createDialog:{title:`Novo perfil`,description:`Escolha um nome em kebab-case minúsculo (letras, dígitos e hífenes).`,confirmLabel:`Criar`,invalidHint:`Tem de começar por uma letra ou dígito e conter apenas letras minúsculas, dígitos e hífenes.`},duplicateDialog:{title:`Duplicar "{{name}}"`,description:`Nome para o novo perfil.`,invalidHint:`Apenas kebab-case minúsculo.`},deleteDialog:{title:`Eliminar o perfil "{{name}}"?`,description:`Esta ação não pode ser anulada. Os jobs já lançados com este perfil mantêm o seu snapshot; os próximos lançamentos recorrem à ordem de resolução.`},empty:{title:`Ainda não há perfis`,body:`Os perfis permitem guardar combinações de orquestrador + agentes + encaminhamento e escolher uma por rail.`,migrateButton:`Migrar a partir dos agentes atuais`,blankButton:`Perfil em branco`,migrateExplainer:`"Migrar" lê os modelos do frontmatter existente em <code>.claude/agents/</code> e cria um perfil <code>default</code> que reflete o comportamento atual — sem perdas.`},sidebar:{title:`Perfis`,teamDefault:`(predefinição da equipa)`},editorFooter:{fixValidationIssues:`Corrija os problemas de validação antes de guardar`,issuesToResolve_one:`{{count}} problema por resolver`,issuesToResolve_other:`{{count}} problemas por resolver`}},r={title:`Utilização de perfis`,windowLabel:`{{days}}d`,subtitleEmpty:`Jobs lançados por perfil na janela selecionada.`,subtitle:`Jobs lançados por perfil nos últimos {{count}} dias.`,empty:`Ainda não há jobs associados a perfis.`,jobsTooltip:`jobs`,jobsLabel_one:`job`,jobsLabel_other:`jobs`,successRateTooltip:`taxa de sucesso`,okSuffix:`ok`,avgDurationTooltip:`duração média`,avgTokensTooltip:`média de tokens`,tokensSuffix:`tok`},i={addTitle:`Adicionar regra de encaminhamento`,editTitle:`Editar regra de encaminhamento`,addDescription:`Adicione uma regra de encaminhamento por tags usando tags em kebab-case minúsculo.`,editDescription:`Atualize as tags ou o agente de destino desta regra.`,tagsLabel:`Tags`,tagsHint:`Separadas por vírgulas. Use kebab-case minúsculo como <code>frontend</code> ou <code>api-design</code>.`,invalidTags_one:`Tag inválida: {{tags}}. As tags só podem usar letras minúsculas, dígitos e hífenes.`,invalidTags_other:`Tags inválidas: {{tags}}. As tags só podem usar letras minúsculas, dígitos e hífenes.`,routeToLabel:`Encaminhar para`,routeToHint:`Apenas os agentes da cadeia deste perfil podem ser destinos de encaminhamento.`,addRule:`Adicionar regra`,saveChanges:`Guardar alterações`},a={profileTitle:`Perfil de agentes para este rail`,noProfile:`Sem perfil`,modelTitle:`Modelo para este rail Freestyle`,loopModelTitle:`Modelo para este loop`,engineTitle:`
|
|
1
|
+
var e={title:`Agentes`,subtitle:`Faça a gestão dos perfis de agentes e do catálogo (upstream + personalizados) deste projeto.`,tabs:{profiles:`Perfis`,usage:`Utilização`,catalog:`Catálogo`},banner:{title:`O pipeline com suporte de perfis requer specrails-core {{required}}+`,body:`Este projeto tem <code>{{version}}</code>. Execute <code>{{command}}</code> dentro do projeto para desbloquear o modo de perfis. Os perfis que criar aqui continuam a ser guardados; simplesmente não afetam o pipeline até o core ser atualizado.`,unknownVersion:`desconhecida`}},t={loading:`A carregar o catálogo…`,aiEditChipLabel:`Edição com IA · {{agentId}}`,errors:{loadFailed:`Falha ao carregar o catálogo: {{status}}`,bodyLoadFailed:`Falha ao carregar o corpo do agente: {{status}}`,generateFailed:`Falha ao gerar: {{status}}`,agentLoadFailed:`Falha ao carregar: {{status}}`},templates:{title:`Biblioteca de templates de agentes`,countOf:`{{shown}} de {{total}}`,description:`Comece a partir de um template selecionado nas áreas de engenharia, produto, ciência, saúde, jurídico e mais. Escolha um e abra-o no Studio para rever e editar antes de guardar.`,searchPlaceholder:`Pesquisar por nome, descrição, tag ou categoria…`,allCategories:`Todas`,tagFilter:`Filtro de tags:`,noMatch:`Nenhum template corresponde aos seus filtros.`,clearFilters:`Limpar filtros`,openInStudio:`Abrir no Studio →`,tip:`Dica: clique numa tag em qualquer cartão para filtrar por essa tag.`},generate:{title:`Gerar um agente personalizado`,agentIdLabel:`ID do agente`,agentIdHint:`Tem de começar por <code>custom-</code>.`,descriptionLabel:`Descreva o que este agente deve fazer`,descriptionPlaceholder:`p. ex. Rever alterações de Terraform/IaC e assinalar configurações de segurança incorretas, permissões IAM excessivas e buckets S3 públicos antes do merge. Conservador e conciso.`,note:`O Claude vai redigir um corpo <code>.md</code> completo. Poderá revê-lo no Studio e editá-lo antes de guardar. Isto lança uma invocação única do claude e pode demorar até 90 segundos.`,generating:`A gerar…`,generateButton:`Gerar`},empty:{title:`Nenhum agente instalado`,body:`Execute <code>{{command}}</code> neste projeto para instalar os agentes upstream, ou crie já um agente personalizado.`},actions:{template:`Template`,templateTitle:`Começar a partir de um template`,generate:`Gerar`,generateWithClaude:`Gerar com o Claude`,generateWithAi:`Gerar com IA`,blank:`Em branco`,blankTitle:`Começar a partir de um template em branco`},sidebar:{title:`Catálogo`,createLabel:`Criar um agente personalizado:`},sections:{upstream:`Upstream ({{count}})`,upstreamDescription:`Distribuídos pelo specrails-core; apenas de leitura.`,custom:`Personalizados ({{count}})`,customDescription:`Os ficheiros custom-*.md do seu projeto. Use Template / Gerar / Em branco acima para criar um.`,noCustomAgents:`Ainda não há agentes personalizados.`},detail:{defaultModel:`modelo predefinido: {{model}}`,aiEdit:`Edição com IA`,aiEditTitle:`Refinar este agente iterativamente com IA`,readOnly:`apenas leitura`,editableHint:`editável — use Editar acima`},kind:{upstream:`upstream`,custom:`personalizado`}},n={providerLabel:`Fornecedor do perfil`,loading:`A carregar perfis…`,selectPrompt:`Selecione um perfil para editar`,errors:{listFailed:`Falha ao listar: {{status}}`,loadFailed:`Falha ao carregar: {{status}}`,migrationFailed:`Falha na migração: {{status}}`,createFailed:`Falha ao criar: {{status}}`,duplicateFailed:`Falha ao duplicar: {{status}}`,deleteFailed:`Falha ao eliminar: {{status}}`,saveFailed:`Falha ao guardar: {{status}}`},toasts:{migrated:`Perfil migrado`,migratedDescription:`perfil default criado a partir dos seus agentes atuais`,migrationFailed:`Falha na migração`,created:`Perfil criado`,createFailed:`Falha ao criar o perfil`,duplicated:`Perfil duplicado`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`Falha ao duplicar o perfil`,deleted:`Perfil eliminado`,deleteFailed:`Falha ao eliminar o perfil`,saved:`Perfil guardado`,saveFailed:`Falha ao guardar o perfil`,savedWithUntargeted:`Perfil guardado com agentes sem destino`,savedWithUntargetedDescription:`Nenhuma regra de encaminhamento aponta para: {{agents}}. Adicione uma regra de tags ou redirecione a regra predefinida se quiser que sejam executados.`},createDialog:{title:`Novo perfil`,description:`Escolha um nome em kebab-case minúsculo (letras, dígitos e hífenes).`,confirmLabel:`Criar`,invalidHint:`Tem de começar por uma letra ou dígito e conter apenas letras minúsculas, dígitos e hífenes.`},duplicateDialog:{title:`Duplicar "{{name}}"`,description:`Nome para o novo perfil.`,invalidHint:`Apenas kebab-case minúsculo.`},deleteDialog:{title:`Eliminar o perfil "{{name}}"?`,description:`Esta ação não pode ser anulada. Os jobs já lançados com este perfil mantêm o seu snapshot; os próximos lançamentos recorrem à ordem de resolução.`},empty:{title:`Ainda não há perfis`,body:`Os perfis permitem guardar combinações de orquestrador + agentes + encaminhamento e escolher uma por rail.`,migrateButton:`Migrar a partir dos agentes atuais`,blankButton:`Perfil em branco`,migrateExplainer:`"Migrar" lê os modelos do frontmatter existente em <code>.claude/agents/</code> e cria um perfil <code>default</code> que reflete o comportamento atual — sem perdas.`},sidebar:{title:`Perfis`,teamDefault:`(predefinição da equipa)`},editorFooter:{fixValidationIssues:`Corrija os problemas de validação antes de guardar`,issuesToResolve_one:`{{count}} problema por resolver`,issuesToResolve_other:`{{count}} problemas por resolver`}},r={title:`Utilização de perfis`,windowLabel:`{{days}}d`,subtitleEmpty:`Jobs lançados por perfil na janela selecionada.`,subtitle:`Jobs lançados por perfil nos últimos {{count}} dias.`,empty:`Ainda não há jobs associados a perfis.`,jobsTooltip:`jobs`,jobsLabel_one:`job`,jobsLabel_other:`jobs`,successRateTooltip:`taxa de sucesso`,okSuffix:`ok`,avgDurationTooltip:`duração média`,avgTokensTooltip:`média de tokens`,tokensSuffix:`tok`},i={addTitle:`Adicionar regra de encaminhamento`,editTitle:`Editar regra de encaminhamento`,addDescription:`Adicione uma regra de encaminhamento por tags usando tags em kebab-case minúsculo.`,editDescription:`Atualize as tags ou o agente de destino desta regra.`,tagsLabel:`Tags`,tagsHint:`Separadas por vírgulas. Use kebab-case minúsculo como <code>frontend</code> ou <code>api-design</code>.`,invalidTags_one:`Tag inválida: {{tags}}. As tags só podem usar letras minúsculas, dígitos e hífenes.`,invalidTags_other:`Tags inválidas: {{tags}}. As tags só podem usar letras minúsculas, dígitos e hífenes.`,routeToLabel:`Encaminhar para`,routeToHint:`Apenas os agentes da cadeia deste perfil podem ser destinos de encaminhamento.`,addRule:`Adicionar regra`,saveChanges:`Guardar alterações`},a={profileTitle:`Perfil de agentes para este rail`,noProfile:`Sem perfil`,modelTitle:`Modelo para este rail Freestyle`,loopModelTitle:`Modelo para este loop`,engineTitle:`Fornecedor de IA para todos os papéis desta execução: arquiteto, programador e revisor`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={title:`Agents`,subtitle:`管理此项目的 Agent Profile 和目录(上游 + 自定义)。`,tabs:{profiles:`Profile`,usage:`用量`,catalog:`目录`},banner:{title:`Profile 感知流水线需要 specrails-core {{required}}+`,body:`此项目当前为 <code>{{version}}</code>。在项目内运行 <code>{{command}}</code> 以解锁 Profile 模式。在此创建的 Profile 仍会保存,只是在 core 更新前不会影响流水线。`,unknownVersion:`未知`}},t={loading:`正在加载目录…`,aiEditChipLabel:`AI 编辑 · {{agentId}}`,errors:{loadFailed:`目录加载失败:{{status}}`,bodyLoadFailed:`Agent 正文加载失败:{{status}}`,generateFailed:`生成失败:{{status}}`,agentLoadFailed:`加载失败:{{status}}`},templates:{title:`Agent 模板库`,countOf:`{{shown}} / {{total}}`,description:`从精选模板开始,覆盖工程、产品、科学、健康、法律等领域。挑选一个并在 Studio 中打开,审阅和编辑后再保存。`,searchPlaceholder:`按名称、描述、标签或分类搜索…`,allCategories:`全部`,tagFilter:`标签筛选:`,noMatch:`没有符合筛选条件的模板。`,clearFilters:`清除筛选`,openInStudio:`在 Studio 中打开 →`,tip:`提示:点击任意卡片上的标签即可按该标签筛选。`},generate:{title:`生成自定义 Agent`,agentIdLabel:`Agent ID`,agentIdHint:`必须以 <code>custom-</code> 开头。`,descriptionLabel:`描述此 Agent 的职责`,descriptionPlaceholder:`例如:审查 Terraform/IaC 变更,在合并前标记安全配置错误、过度的 IAM 权限和公开的 S3 存储桶。风格保守、简洁。`,note:`Claude 会起草完整的 <code>.md</code> 正文。你将在 Studio 中审阅,并可在保存前编辑。此操作会启动一次性的 claude 调用,最长可能需要 90 秒。`,generating:`正在生成…`,generateButton:`生成`},empty:{title:`尚未安装任何 Agent`,body:`在此项目中运行 <code>{{command}}</code> 安装上游 Agent,或立即创建一个自定义 Agent。`},actions:{template:`模板`,templateTitle:`从模板开始`,generate:`生成`,generateWithClaude:`用 Claude 生成`,generateWithAi:`用 AI 生成`,blank:`空白`,blankTitle:`从空白模板开始`},sidebar:{title:`目录`,createLabel:`创建自定义 Agent:`},sections:{upstream:`上游({{count}})`,upstreamDescription:`由 specrails-core 提供;只读。`,custom:`自定义({{count}})`,customDescription:`项目中的 custom-*.md 文件。使用上方的模板 / 生成 / 空白来创建。`,noCustomAgents:`暂无自定义 Agent。`},detail:{defaultModel:`默认模型:{{model}}`,aiEdit:`AI 编辑`,aiEditTitle:`用 AI 迭代优化此 Agent`,readOnly:`只读`,editableHint:`可编辑——使用上方的“编辑”`},kind:{upstream:`上游`,custom:`自定义`}},n={providerLabel:`Profile 提供方`,loading:`正在加载 Profile…`,selectPrompt:`选择要编辑的 Profile`,errors:{listFailed:`列表加载失败:{{status}}`,loadFailed:`加载失败:{{status}}`,migrationFailed:`迁移失败:{{status}}`,createFailed:`创建失败:{{status}}`,duplicateFailed:`复制失败:{{status}}`,deleteFailed:`删除失败:{{status}}`,saveFailed:`保存失败:{{status}}`},toasts:{migrated:`Profile 已迁移`,migratedDescription:`已根据当前 Agent 创建 default Profile`,migrationFailed:`迁移失败`,created:`Profile 已创建`,createFailed:`创建 Profile 失败`,duplicated:`Profile 已复制`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`复制 Profile 失败`,deleted:`Profile 已删除`,deleteFailed:`删除 Profile 失败`,saved:`Profile 已保存`,saveFailed:`保存 Profile 失败`,savedWithUntargeted:`Profile 已保存,但存在未被路由的 Agent`,savedWithUntargetedDescription:`没有路由规则指向:{{agents}}。如需让它们运行,请添加标签规则或调整默认规则的目标。`},createDialog:{title:`新建 Profile`,description:`请使用小写 kebab-case 名称(字母、数字和连字符)。`,confirmLabel:`创建`,invalidHint:`必须以字母或数字开头,且只能包含小写字母、数字和连字符。`},duplicateDialog:{title:`复制“{{name}}”`,description:`新 Profile 的名称。`,invalidHint:`仅限小写 kebab-case。`},deleteDialog:{title:`删除 Profile“{{name}}”?`,description:`此操作无法撤销。已使用此 Profile 启动的任务会保留其快照;之后的启动将回退到解析顺序。`},empty:{title:`暂无 Profile`,body:`Profile 可保存编排器 + Agent + 路由的组合,并为每条 rail 单独选用。`,migrateButton:`从当前 Agent 迁移`,blankButton:`空白 Profile`,migrateExplainer:`“迁移”会读取现有 <code>.claude/agents/</code> frontmatter 中的模型,并创建一个 <code>default</code> Profile,完整复刻当前行为——零损失。`},sidebar:{title:`Profile`,teamDefault:`(团队默认)`},editorFooter:{fixValidationIssues:`保存前请先修复校验问题`,issuesToResolve_one:`{{count}} 个待解决问题`,issuesToResolve_other:`{{count}} 个待解决问题`}},r={title:`Profile 用量`,windowLabel:`{{days}}天`,subtitleEmpty:`所选时间窗口内各 Profile 启动的任务数。`,subtitle:`最近 {{count}} 天内各 Profile 启动的任务数。`,empty:`暂无使用 Profile 的任务。`,jobsTooltip:`任务`,jobsLabel_one:`个任务`,jobsLabel_other:`个任务`,successRateTooltip:`成功率`,okSuffix:`成功`,avgDurationTooltip:`平均时长`,avgTokensTooltip:`平均 token 数`,tokensSuffix:`tok`},i={addTitle:`添加路由规则`,editTitle:`编辑路由规则`,addDescription:`添加按标签匹配的路由规则,标签使用小写 kebab-case。`,editDescription:`更新此规则的标签或目标 Agent。`,tagsLabel:`标签`,tagsHint:`以逗号分隔。使用小写 kebab-case,如 <code>frontend</code> 或 <code>api-design</code>。`,invalidTags_one:`无效标签:{{tags}}。标签只能使用小写字母、数字和连字符。`,invalidTags_other:`无效标签:{{tags}}。标签只能使用小写字母、数字和连字符。`,routeToLabel:`路由到`,routeToHint:`只有此 Profile 链中的 Agent 才能作为路由目标。`,addRule:`添加规则`,saveChanges:`保存更改`},a={profileTitle:`此 rail 使用的 Agent Profile`,noProfile:`无 Profile`,modelTitle:`此 Freestyle rail 使用的模型`,loopModelTitle:`此 Loop 使用的模型`,engineTitle
|
|
1
|
+
var e={title:`Agents`,subtitle:`管理此项目的 Agent Profile 和目录(上游 + 自定义)。`,tabs:{profiles:`Profile`,usage:`用量`,catalog:`目录`},banner:{title:`Profile 感知流水线需要 specrails-core {{required}}+`,body:`此项目当前为 <code>{{version}}</code>。在项目内运行 <code>{{command}}</code> 以解锁 Profile 模式。在此创建的 Profile 仍会保存,只是在 core 更新前不会影响流水线。`,unknownVersion:`未知`}},t={loading:`正在加载目录…`,aiEditChipLabel:`AI 编辑 · {{agentId}}`,errors:{loadFailed:`目录加载失败:{{status}}`,bodyLoadFailed:`Agent 正文加载失败:{{status}}`,generateFailed:`生成失败:{{status}}`,agentLoadFailed:`加载失败:{{status}}`},templates:{title:`Agent 模板库`,countOf:`{{shown}} / {{total}}`,description:`从精选模板开始,覆盖工程、产品、科学、健康、法律等领域。挑选一个并在 Studio 中打开,审阅和编辑后再保存。`,searchPlaceholder:`按名称、描述、标签或分类搜索…`,allCategories:`全部`,tagFilter:`标签筛选:`,noMatch:`没有符合筛选条件的模板。`,clearFilters:`清除筛选`,openInStudio:`在 Studio 中打开 →`,tip:`提示:点击任意卡片上的标签即可按该标签筛选。`},generate:{title:`生成自定义 Agent`,agentIdLabel:`Agent ID`,agentIdHint:`必须以 <code>custom-</code> 开头。`,descriptionLabel:`描述此 Agent 的职责`,descriptionPlaceholder:`例如:审查 Terraform/IaC 变更,在合并前标记安全配置错误、过度的 IAM 权限和公开的 S3 存储桶。风格保守、简洁。`,note:`Claude 会起草完整的 <code>.md</code> 正文。你将在 Studio 中审阅,并可在保存前编辑。此操作会启动一次性的 claude 调用,最长可能需要 90 秒。`,generating:`正在生成…`,generateButton:`生成`},empty:{title:`尚未安装任何 Agent`,body:`在此项目中运行 <code>{{command}}</code> 安装上游 Agent,或立即创建一个自定义 Agent。`},actions:{template:`模板`,templateTitle:`从模板开始`,generate:`生成`,generateWithClaude:`用 Claude 生成`,generateWithAi:`用 AI 生成`,blank:`空白`,blankTitle:`从空白模板开始`},sidebar:{title:`目录`,createLabel:`创建自定义 Agent:`},sections:{upstream:`上游({{count}})`,upstreamDescription:`由 specrails-core 提供;只读。`,custom:`自定义({{count}})`,customDescription:`项目中的 custom-*.md 文件。使用上方的模板 / 生成 / 空白来创建。`,noCustomAgents:`暂无自定义 Agent。`},detail:{defaultModel:`默认模型:{{model}}`,aiEdit:`AI 编辑`,aiEditTitle:`用 AI 迭代优化此 Agent`,readOnly:`只读`,editableHint:`可编辑——使用上方的“编辑”`},kind:{upstream:`上游`,custom:`自定义`}},n={providerLabel:`Profile 提供方`,loading:`正在加载 Profile…`,selectPrompt:`选择要编辑的 Profile`,errors:{listFailed:`列表加载失败:{{status}}`,loadFailed:`加载失败:{{status}}`,migrationFailed:`迁移失败:{{status}}`,createFailed:`创建失败:{{status}}`,duplicateFailed:`复制失败:{{status}}`,deleteFailed:`删除失败:{{status}}`,saveFailed:`保存失败:{{status}}`},toasts:{migrated:`Profile 已迁移`,migratedDescription:`已根据当前 Agent 创建 default Profile`,migrationFailed:`迁移失败`,created:`Profile 已创建`,createFailed:`创建 Profile 失败`,duplicated:`Profile 已复制`,duplicatedDescription:`{{from}} → {{to}}`,duplicateFailed:`复制 Profile 失败`,deleted:`Profile 已删除`,deleteFailed:`删除 Profile 失败`,saved:`Profile 已保存`,saveFailed:`保存 Profile 失败`,savedWithUntargeted:`Profile 已保存,但存在未被路由的 Agent`,savedWithUntargetedDescription:`没有路由规则指向:{{agents}}。如需让它们运行,请添加标签规则或调整默认规则的目标。`},createDialog:{title:`新建 Profile`,description:`请使用小写 kebab-case 名称(字母、数字和连字符)。`,confirmLabel:`创建`,invalidHint:`必须以字母或数字开头,且只能包含小写字母、数字和连字符。`},duplicateDialog:{title:`复制“{{name}}”`,description:`新 Profile 的名称。`,invalidHint:`仅限小写 kebab-case。`},deleteDialog:{title:`删除 Profile“{{name}}”?`,description:`此操作无法撤销。已使用此 Profile 启动的任务会保留其快照;之后的启动将回退到解析顺序。`},empty:{title:`暂无 Profile`,body:`Profile 可保存编排器 + Agent + 路由的组合,并为每条 rail 单独选用。`,migrateButton:`从当前 Agent 迁移`,blankButton:`空白 Profile`,migrateExplainer:`“迁移”会读取现有 <code>.claude/agents/</code> frontmatter 中的模型,并创建一个 <code>default</code> Profile,完整复刻当前行为——零损失。`},sidebar:{title:`Profile`,teamDefault:`(团队默认)`},editorFooter:{fixValidationIssues:`保存前请先修复校验问题`,issuesToResolve_one:`{{count}} 个待解决问题`,issuesToResolve_other:`{{count}} 个待解决问题`}},r={title:`Profile 用量`,windowLabel:`{{days}}天`,subtitleEmpty:`所选时间窗口内各 Profile 启动的任务数。`,subtitle:`最近 {{count}} 天内各 Profile 启动的任务数。`,empty:`暂无使用 Profile 的任务。`,jobsTooltip:`任务`,jobsLabel_one:`个任务`,jobsLabel_other:`个任务`,successRateTooltip:`成功率`,okSuffix:`成功`,avgDurationTooltip:`平均时长`,avgTokensTooltip:`平均 token 数`,tokensSuffix:`tok`},i={addTitle:`添加路由规则`,editTitle:`编辑路由规则`,addDescription:`添加按标签匹配的路由规则,标签使用小写 kebab-case。`,editDescription:`更新此规则的标签或目标 Agent。`,tagsLabel:`标签`,tagsHint:`以逗号分隔。使用小写 kebab-case,如 <code>frontend</code> 或 <code>api-design</code>。`,invalidTags_one:`无效标签:{{tags}}。标签只能使用小写字母、数字和连字符。`,invalidTags_other:`无效标签:{{tags}}。标签只能使用小写字母、数字和连字符。`,routeToLabel:`路由到`,routeToHint:`只有此 Profile 链中的 Agent 才能作为路由目标。`,addRule:`添加规则`,saveChanges:`保存更改`},a={profileTitle:`此 rail 使用的 Agent Profile`,noProfile:`无 Profile`,modelTitle:`此 Freestyle rail 使用的模型`,loopModelTitle:`此 Loop 使用的模型`,engineTitle:`本次运行所有角色使用的 AI 提供商:架构师、开发者和审查者`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
package/client/dist/assets/{formatDistanceToNow-CeZv93iR.js → formatDistanceToNow-D44phX1J.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,C as t,S as n,k as r,w as i,x as a,y as o}from"./useSharedWebSocket-
|
|
1
|
+
import{A as e,C as t,S as n,k as r,w as i,x as a,y as o}from"./useSharedWebSocket-D7hkZ3Ka.js";import{t as s}from"./getTimezoneOffsetInMilliseconds-EAh9LFSx.js";function c(e,t){let n=a(e)-+a(t);return n<0?-1:n>0?1:n}function l(e){return i(e,Date.now())}function u(e,n,r){let[i,a]=t(r?.in,e,n),o=i.getFullYear()-a.getFullYear(),s=i.getMonth()-a.getMonth();return o*12+s}function d(e){return t=>{let n=(e?Math[e]:Math.trunc)(t);return n===0?0:n}}function f(e,t){return a(e)-+a(t)}function p(e,t){let n=a(e,t?.in);return n.setHours(23,59,59,999),n}function m(e,t){let n=a(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function h(e,t){let n=a(e,t?.in);return+p(n,t)==+m(n,t)}function g(e,n,r){let[i,a,o]=t(r?.in,e,e,n),s=c(a,o),l=Math.abs(u(a,o));if(l<1)return 0;a.getMonth()===1&&a.getDate()>27&&a.setDate(30),a.setMonth(a.getMonth()-s*l);let d=c(a,o)===-s;h(i)&&l===1&&c(i,o)===1&&(d=!1);let f=s*(l-+d);return f===0?0:f}function _(e,t,n){let r=f(e,t)/1e3;return d(n?.roundingMethod)(r)}function v(i,a,l){let u=n(),d=l?.locale??u.locale??o,f=c(i,a);if(isNaN(f))throw RangeError(`Invalid time value`);let p=Object.assign({},l,{addSuffix:l?.addSuffix,comparison:f}),[m,h]=t(l?.in,...f>0?[a,i]:[i,a]),v=_(h,m),y=(s(h)-s(m))/1e3,b=Math.round((v-y)/60),x;if(b<2)return l?.includeSeconds?v<5?d.formatDistance(`lessThanXSeconds`,5,p):v<10?d.formatDistance(`lessThanXSeconds`,10,p):v<20?d.formatDistance(`lessThanXSeconds`,20,p):v<40?d.formatDistance(`halfAMinute`,0,p):v<60?d.formatDistance(`lessThanXMinutes`,1,p):d.formatDistance(`xMinutes`,1,p):b===0?d.formatDistance(`lessThanXMinutes`,1,p):d.formatDistance(`xMinutes`,b,p);if(b<45)return d.formatDistance(`xMinutes`,b,p);if(b<90)return d.formatDistance(`aboutXHours`,1,p);if(b<1440){let e=Math.round(b/60);return d.formatDistance(`aboutXHours`,e,p)}else if(b<2520)return d.formatDistance(`xDays`,1,p);else if(b<43200){let e=Math.round(b/r);return d.formatDistance(`xDays`,e,p)}else if(b<43200*2)return x=Math.round(b/e),d.formatDistance(`aboutXMonths`,x,p);if(x=g(h,m),x<12){let t=Math.round(b/e);return d.formatDistance(`xMonths`,t,p)}else{let e=x%12,t=Math.trunc(x/12);return e<3?d.formatDistance(`aboutXYears`,t,p):e<9?d.formatDistance(`overXYears`,t,p):d.formatDistance(`almostXYears`,t+1,p)}}function y(e,t){return v(e,l(e),t)}export{y as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{x as e}from"./useSharedWebSocket-
|
|
1
|
+
import{x as e}from"./useSharedWebSocket-D7hkZ3Ka.js";function t(t){let n=e(t),r=new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds()));return r.setUTCFullYear(n.getFullYear()),t-+r}export{t};
|