specrails-desktop 2.59.3 → 2.60.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-BGEayjTY.js → ActivityFeedPage-3J7fR8yB.js} +1 -1
- package/client/dist/assets/{AgentBrowserCapture-Qvg4y5Tr.js → AgentBrowserCapture-D4a3wYM1.js} +1 -1
- package/client/dist/assets/{AgentModeAnalyticsPane-CR7aFeLJ.js → AgentModeAnalyticsPane-Dps30tk9.js} +2 -2
- package/client/dist/assets/{AgentModeCodePane-gAd88Gng.js → AgentModeCodePane-CvLimey8.js} +2 -2
- package/client/dist/assets/{AgentModeJobsPane-EjCDuTow.js → AgentModeJobsPane-25tQlLpF.js} +1 -1
- package/client/dist/assets/{AgentsPage-CRHHcp1V.js → AgentsPage-CUDp_sfw.js} +2 -2
- package/client/dist/assets/{AnalyticsPage-a0b1fNEl.js → AnalyticsPage-DXWMGn8b.js} +1 -1
- package/client/dist/assets/{CodePage-BmV1m7l3.js → CodePage-D981zRHy.js} +1 -1
- package/client/dist/assets/{DesktopAnalyticsPage-B87WmXOQ.js → DesktopAnalyticsPage-BkFBq0E6.js} +1 -1
- package/client/dist/assets/{DocsDialog-Co0O672q.js → DocsDialog-BL7uSbIJ.js} +1 -1
- package/client/dist/assets/{DocsPage-DxGI6A2T.js → DocsPage-CsDLbmZX.js} +1 -1
- package/client/dist/assets/{ExportDropdown-1Ce031vB.js → ExportDropdown-B4Olg1Fk.js} +1 -1
- package/client/dist/assets/{InteractiveJobComposer-DkqR77pO.js → InteractiveJobComposer-Z6fl4791.js} +1 -1
- package/client/dist/assets/{JobDetailModal-DVLDVgzz.js → JobDetailModal-DS_Owxs6.js} +1 -1
- package/client/dist/assets/{JobDetailPage-RcP9N-D-.js → JobDetailPage-1TUQ9vlE.js} +1 -1
- package/client/dist/assets/{JobsPage-R9M4xQnp.js → JobsPage-BSrl8P7u.js} +1 -1
- package/client/dist/assets/LoopBuilderPage-Dh5uk2Qy.js +1 -0
- package/client/dist/assets/{LoopPreviewModal-DA2JeKWX.js → LoopPreviewModal-CH1r-KhU.js} +1 -1
- package/client/dist/assets/{LoopWindowSurface-BkkeD0hx.js → LoopWindowSurface-CiZdI6aw.js} +1 -1
- package/client/dist/assets/{LoopsPage-BHv--iI7.js → LoopsPage-BwFujdGi.js} +1 -1
- package/client/dist/assets/{MinimizedChatsContext-Bc9xHByW.js → MinimizedChatsContext-BD2bsRBe.js} +1 -1
- package/client/dist/assets/{PluginsPage-BEy62gxK.js → PluginsPage-B8f49Mvn.js} +1 -1
- package/client/dist/assets/{ProjectSettingsDialog-DDQ_f94T.js → ProjectSettingsDialog-D7q-O6h3.js} +1 -1
- package/client/dist/assets/{RepositoryDeliveries-DIWDFLRM.js → RepositoryDeliveries-NNorcGzT.js} +1 -1
- package/client/dist/assets/{RepositoryScopeSelector-D3PlHIM-.js → RepositoryScopeSelector-D-jb4bI_.js} +1 -1
- package/client/dist/assets/{ReviewPacketPage-BXdPwmdE.js → ReviewPacketPage-DpZSzF-Q.js} +1 -1
- package/client/dist/assets/{TemplatePreviewModal-C7-G6lvI.js → TemplatePreviewModal-5CZdAZ0G.js} +1 -1
- package/client/dist/assets/{TicketDetailModalContext-gGUv7gsQ.js → TicketDetailModalContext-BHmtj1As.js} +1 -1
- package/client/dist/assets/{Trans-Br_OIUKP.js → Trans-wmTUDVyC.js} +1 -1
- package/client/dist/assets/{agentRuntime-TXPQowKJ.js → agentRuntime-7Ydcvr6P.js} +1 -1
- package/client/dist/assets/{agentRuntime-Bpx3yWHK.js → agentRuntime-BHVw9orA.js} +1 -1
- package/client/dist/assets/{agentRuntime-15Pkk6we.js → agentRuntime-DCPDaQcV.js} +1 -1
- package/client/dist/assets/{agentRuntime-C78n13To.js → agentRuntime-DKTw4Ajg.js} +1 -1
- package/client/dist/assets/{agentRuntime-CCI7XF4c.js → agentRuntime-DVhij_i_.js} +1 -1
- package/client/dist/assets/{agentRuntime-Ddqvp2bP.js → agentRuntime-Doss-T8o.js} +1 -1
- package/client/dist/assets/{agentRuntime-CKDHe2-a.js → agentRuntime-eZSMUlkM.js} +1 -1
- package/client/dist/assets/{agentRuntime-hqZRy08E.js → agentRuntime-qSSU7fQk.js} +1 -1
- package/client/dist/assets/agents-B6ZsnARo.js +1 -0
- package/client/dist/assets/agents-BORdhe0K.js +1 -0
- package/client/dist/assets/agents-C6aq9Oqs.js +1 -0
- package/client/dist/assets/agents-Cbsc4bcX.js +1 -0
- package/client/dist/assets/agents-D0uYR6hq.js +1 -0
- package/client/dist/assets/agents-Doe1sHY5.js +1 -0
- package/client/dist/assets/agents-DyNi_I9m.js +1 -0
- package/client/dist/assets/agents-StKxiTg0.js +1 -0
- package/client/dist/assets/agentstudio-7cYCXn-L.js +1 -0
- package/client/dist/assets/{agentstudio-QdAJIDef.js → agentstudio-BHWQh8G3.js} +1 -1
- package/client/dist/assets/agentstudio-BjnWHyRs.js +1 -0
- package/client/dist/assets/{agentstudio-fLXpRGIi.js → agentstudio-BkV8vcK4.js} +1 -1
- package/client/dist/assets/{agentstudio-BWAKeGgB.js → agentstudio-BzugqB_N.js} +1 -1
- package/client/dist/assets/{agentstudio-Cja8Sjcp.js → agentstudio-CWbp7KvH.js} +1 -1
- package/client/dist/assets/agentstudio-DG6plf5o.js +1 -0
- package/client/dist/assets/agentstudio-DkZVF-Cc.js +1 -0
- package/client/dist/assets/{formatDistanceToNow-Q7QPRFV4.js → formatDistanceToNow-Dax4zqPF.js} +1 -1
- package/client/dist/assets/{getTimezoneOffsetInMilliseconds-Bq0CXBaJ.js → getTimezoneOffsetInMilliseconds-dpIo42JZ.js} +1 -1
- package/client/dist/assets/{index-DVkWHOR3.js → index-g8S62tpS.js} +7 -7
- package/client/dist/assets/{jira-api-C2Tzc362.js → jira-api-CLrIvXFm.js} +1 -1
- package/client/dist/assets/{project-repositories-DZKmieH3.js → project-repositories-BkyT8AjU.js} +1 -1
- package/client/dist/assets/{spending-EXaboRU0.js → spending-Oov7p52A.js} +1 -1
- package/client/dist/assets/{useDesktop-ChSmmJfc.js → useDesktop-DpiS8Uov.js} +1 -1
- package/client/dist/assets/{useRuntimeRuns-w9-5OzZl.js → useRuntimeRuns-DBm1mul0.js} +1 -1
- package/client/dist/assets/{useSharedWebSocket-g0nTHfTT.js → useSharedWebSocket-BZxKaVNT.js} +2 -2
- package/client/dist/index.html +17 -17
- package/docs/getting-started.md +2 -2
- package/docs/guide/de/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/de/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/de/agents/3-customizing-models-per-agent.md +1 -1
- package/docs/guide/de/agents/4-custom-agents-catalog.md +3 -3
- package/docs/guide/en/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/en/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/en/agents/3-customizing-models-per-agent.md +1 -1
- package/docs/guide/en/agents/4-custom-agents-catalog.md +3 -3
- package/docs/guide/es/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/es/agents/3-customizing-models-per-agent.md +1 -1
- package/docs/guide/es/agents/4-custom-agents-catalog.md +3 -3
- package/docs/guide/fr/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/fr/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/fr/agents/3-customizing-models-per-agent.md +1 -1
- package/docs/guide/fr/agents/4-custom-agents-catalog.md +3 -3
- package/docs/guide/it/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/it/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/it/agents/3-customizing-models-per-agent.md +1 -1
- package/docs/guide/it/agents/4-custom-agents-catalog.md +3 -3
- package/docs/guide/ja/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/ja/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/ja/agents/3-customizing-models-per-agent.md +1 -1
- package/docs/guide/ja/agents/4-custom-agents-catalog.md +3 -3
- package/docs/guide/pt/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/pt/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/pt/agents/3-customizing-models-per-agent.md +1 -1
- package/docs/guide/pt/agents/4-custom-agents-catalog.md +3 -3
- package/docs/guide/zh/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/zh/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/zh/agents/3-customizing-models-per-agent.md +1 -1
- package/docs/guide/zh/agents/4-custom-agents-catalog.md +3 -3
- package/docs/internals/adding-a-provider.md +7 -6
- package/docs/internals/core-runtime-updates.md +19 -0
- package/docs/internals/profiles.md +17 -10
- package/docs/internals/review-packet.md +1 -1
- package/docs/internals/source-map.md +1 -1
- package/docs/running-pipelines.md +2 -2
- package/package.json +1 -1
- package/server/dist/core-compat.js +7 -3
- package/server/dist/mcp/guide.js +4 -3
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-bridge.js +7 -3
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings.js +24 -1
- package/server/dist/modules/agents/runtime/profiles-router.js +74 -36
- package/server/dist/modules/execution/runtime/queue-manager.js +7 -9
- package/server/dist/modules/loops/runtime/loop-agents.js +2 -5
- package/server/dist/modules/loops/runtime/loop-command-catalog.js +5 -5
- package/server/dist/modules/loops/runtime/loop-definition.js +1 -1
- package/server/dist/modules/loops/runtime/loop-executors.js +0 -2
- package/server/dist/modules/loops/runtime/loop-implement-recipe.js +5 -4
- package/server/dist/modules/loops/runtime/loops-router.js +3 -1
- package/server/dist/providers/gemini-agent-ack.js +13 -10
- package/server/dist/setup-manager.js +28 -43
- package/server/dist/workspace-manager.js +13 -71
- package/client/dist/assets/LoopBuilderPage-C4S-rkWp.js +0 -1
- package/client/dist/assets/agents-CA5eT1d0.js +0 -1
- package/client/dist/assets/agents-CAgy-5uS.js +0 -1
- package/client/dist/assets/agents-CNm6Qzlv.js +0 -1
- package/client/dist/assets/agents-CTwbx-fb.js +0 -1
- package/client/dist/assets/agents-DEGV1Vao.js +0 -1
- package/client/dist/assets/agents-HsDF1aQU.js +0 -1
- package/client/dist/assets/agents-IQjdA-z9.js +0 -1
- package/client/dist/assets/agents-RkGoteXh.js +0 -1
- package/client/dist/assets/agentstudio-B2CTtQgZ.js +0 -1
- package/client/dist/assets/agentstudio-DtfPcr99.js +0 -1
- package/client/dist/assets/agentstudio-X70BKf6u.js +0 -1
- package/client/dist/assets/agentstudio-qXKqVnWS.js +0 -1
- package/server/dist/modules/loops/runtime/loop-agent-defaults.json +0 -6
|
@@ -1 +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:`AI 提供商`,globalHint:`每个项目由两类提供商驱动:本机检测到的编程 CLI,以及你在此注册的本地 OpenAI 兼容引擎。在项目设置 ▸ 代理引擎中将它们分配给流水线各阶段。更改适用于新的执行。`,label:`显示名称(可选)`,labelPlaceholder:`例如:局域网主机`,defaultModel:`默认模型`,defaultModelNone:`无默认(使用首个发现的模型)`,defaultModelPlaceholder:`模型 ID 或自定义别名`,customModel:`自定义别名…`,discoveredModels:`已发现的模型`,noModels:`尚未发现模型,请测试连接。`,rates:`费率(每 100 万 token 的美元,可选)`,ratesHint:`费用按估算显示;两项都留空则费用保持未知。`,inputRate:`输入 / 100 万`,outputRate:`输出 / 100 万`,ratesInvalid:`请将两项费率都填写为非负数,或都留空。`,reasoningEffort:`端点支持推理强度`,reasoningEffortHint:`发送 OpenAI 的 reasoning_effort 字段:每次调用使用该角色配置的推理强度,在紧凑架构师撰写计划时提升为 high。除非服务器支持,否则请保持关闭。`,apiKeyEnvMissing:`应用进程中未设置 {{name}}。请在启动应用的环境中设置它。`,test:`测试连接`,testing:`测试中…`,testFailed:`无法测试连接。`,rename:`重命名`,renameHint:`重命名后,角色分配仍指向此连接。`,idLocked:`保存后 ID 将被锁定。请使用“重命名”修改。`,localBadge:`本地引擎`,cliBadge:`CLI`,notDetected:`本机未检测到`,unsaved:`未保存的更改`,empty:`尚无连接。添加本地 / API 提供商以开始。`,fixBeforeSave:`保存前请修正标出的字段。`,status:{probing:`检测中…`,reachable:`可访问`,unauthorized:`未授权`,unreachable:`无法访问`,untested:`从未测试`},auth:{authenticated:`已登录`,unauthenticated:`未登录`,unknown:`登录状态未知`},agentLoop:`Agent 循环`,agentLoopHint:`implement 流水线如何驱动此模型`,agentLoop_compact:`紧凑`,agentLoop_compactHint:`由应用驱动的微步骤与结构化输出。推荐 ~30B 以下的模型使用。`,agentLoop_free:`自由`,agentLoop_freeHint:`每个角色一个 agent 循环,与 CLI 提供商相同。需要较强的模型。`,contextWindow:`上下文窗口(token)`,contextWindowHint:`与服务器的上下文大小保持一致(n_ctx / num_ctx)。用于在窗口填满前压缩旧的工具结果。默认 32768。`,maxOutput:`每轮输出预算(token)`,maxOutputHint:`单个工具轮次的 max_tokens;被截断的轮次会以两倍预算重试一次。它计入上下文窗口,因此始终受剩余空间限制——若模型会私下思考(thinking 会消耗该预算),请调高。默认 8192。`,reasoningEffortRailHint:`关闭时,此引擎在 rail 标题栏中不会显示推理强度选择器。`,presetTitle:`快速设置`,presetSmallModel:`小模型推荐`,presetSmallModelApplied:`已应用小模型预设`,presetSmallModelHint:`启用紧凑循环、转发推理强度并设置 32k 上下文窗口——这是在 7–14B 模型上验证过的组合。各字段仍可单独修改。`,cliGroup:`CLI 工具`,cliGroupHint:`在本机检测到——使用各自的登录,无需配置。`,localGroup:`本地引擎`,localGroupHint:`本应用可访问的 OpenAI 兼容端点(llama.cpp、Ollama、vLLM、LM Studio 等)。`,models_one:`{{count}} 个模型`,models_other:`{{count}} 个模型`,expand:`显示设置`,collapse:`隐藏设置`,overflow:`更多操作`,addLocalHero:`添加本地引擎`,emptyLocalPitch:`尚无本地引擎。将应用指向一个 OpenAI 兼容端点,即可在自己的硬件上运行流水线:成本由你掌控,数据不离开你的网络。`,defaultsGroup:`提供商默认值`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`架构师`,developer:`开发者`,reviewer:`审查者`,fixer:`修复者`,verify:`验证`,archive:`完成`},m={title:`角色分配`,hint:`每个角色可以使用不同的提供商和模型。在常规设置 → AI 提供商中管理连接。默认每个代理最多{{turns}}轮。`,provider:`提供商`,model:`模型`,modelPlaceholder:`模型 ID 或 CLI 默认值`,maxTurns:`最大轮数(默认 {{turns}})`,defaultModel:`默认({{model}})`,thinking:`隐藏思考`,thinking_off:`关闭`,thinking_on:`开启`,thinkingHint:`默认关闭:在由主机驱动的循环中,隐藏推理会消耗输出预算和每轮的分钟数。对受益于深思的角色可开启(以 chat_template_kwargs.enable_thinking 发送;不识别该字段的端点会忽略)。`},h={title:`工作流限制`,hint:`留空则使用 Core 默认值:{{attempts}} 次修正尝试,每个角色步骤 {{minutes}} 分钟。在本地引擎上,超时按工作单元计算(一个任务组、一个工件、一次审查),默认 45 分钟,另有 20 分钟空闲看门狗;超时的步骤会阻塞运行,并可从下一个未完成的任务组恢复。token 和美元上限为可选;美元上限要求所有 AI 角色使用 Claude。`,maxAttempts:`开发者最大尝试次数(默认 {{attempts}})`,timeoutMinutes:`超时(分钟;默认 {{minutes}},本地引擎每个任务组 45)`,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:`不可用`,expired:`已过期`},question:`架构师提问:`,answerLabel:`你的回答`,answerPlaceholder:`回答该问题后,架构师将据此继续。`,answer:`回答并继续`,viewLog:`查看任务日志`,implementation:`实现`,preserveProgress:`从所示阶段继续,保留已有工作和保存的设置。`,reviewDelivery:`实现已完成。交付前请在任务日志中检查结果;本次继续执行未发布结果。`,prepareDelivery:`准备交付`,dismiss:`忽略`,selectRecovery:`选择要恢复的中断尝试`},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:`保存提示词`,fixerHint:`仅在修正轮次使用:验证失败或审查被拒之后。除非“设置 ▸ 代理引擎 ▸ 修复者”指定了独立引擎,否则运行在开发者引擎上。恢复开发者会话的 CLI 提供方收到的是简短的修正跟进;每当启动新会话(本地引擎、修复者引擎、会话丢失)时,本定义生效。`},C={title:`实现效率`,scope:`适用于新运行。已保存的运行保留原始配置和运行时。`,effort:`推理强度`,providerDefault:`提供商默认值`,unconfirmed:`未确认`,unknownSupport:`尚未确认此模型和传输方式的支持情况。`,escalation:`允许使用同一提供商的一个更高等级`,baseRequired:`请先明确选择基础模型。`,escalationModel:`更高等级模型`,triggers:{architect:`仅现有的深入调查步骤可选择此等级。`,developer:`两个候选实现失败后,下一次允许的尝试可选择此等级。`,reviewer:`仅用于修复格式错误的响应;拒绝代码不会触发升级。`,fixer:`只有修正轮次才能进入此层级;首次实现从不运行修复者。`},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":`本次运行选择的提供商`,"loop-role":`循环角色`},reuseDisabled:`此检查已禁用复用。`,reuseConfirmed:`确认输入和工具链一致后复用。`,inputsChanged:`验证期间输入发生变化;结果已失效。`,reuseUnproven:`没有输入一致且仍然有效的结果;已重新执行检查。`,original:`原始执行`,requested:`请求值`,reported:`报告值`},T={title:`循环角色`,hint:`轨道以“按角色”引擎启动时循环侧角色所用的引擎。上方的流水线角色(architect、developer、reviewer)已来自此运行时配置。`,verifier:`验证者`,verifierHint:`循环中所有非核心的 AI 步骤:verify、fix 和自定义 AI 步骤。`,decider:`决策者`,deciderHint:`读取结论并决定下一步的 Loop Decider——选择便宜快速的模型最合适。`,inherit:`继承主引擎`,model:`模型`,effort:`推理强度`,disabled:`代理运行时已禁用——在启用之前,以“按角色”引擎启动的轨道会被拒绝。`,saveFailed:`无法保存循环角色。`},E={title:`实现流水线`,explainer:`每次实现都按此顺序执行这些阶段。当 rail 的引擎为“{{roles}}”时,每个阶段使用下方配置的引擎——每个阶段可以有不同的提供商、模型和推理强度。若在 rail 上选择具体引擎,则所有阶段都在该引擎上运行。`,host:`主机`,noCommand:`无命令`,inherits:`继承主引擎`,inheritsDeveloper:`继承开发者`,open:`展开`,collapse:`收起`,groups:{core:{title:`核心流水线`,hint:`在每次实现中运行:规划、构建、验证、修复、评审。`},loop:{title:`循环步骤`,hint:`包裹运行的 rail 循环(验证 → 决策 → 修复)以及自定义循环的 AI 步骤;未设置时继承主引擎。`,chip:`rail 循环`}},phases:{architect:{name:`架构师`,purpose:`阅读代码并编写提案、设计与任务。`},developer:{name:`开发者`,purpose:`带测试地实现任务。`},verification:{name:`验证`,purpose:`主机运行你的检查;失败会返回给开发者。`},fixer:{name:`修复者`,purpose:`修正验证或评审驳回的内容;未配置时继承开发者。`},reviewer:{name:`审查者`,purpose:`对照规格与证据检查结果。`},verifier:{name:`校验者`,purpose:`循环中的 verify、fix 与自定义 AI 步骤。`},decider:{name:`决策者`,purpose:`读取裁定并决定循环的下一步。`}}},D={title:`修复者引擎`,inherit:`继承开发者`,own:`独立引擎`,hint:`仅在修正轮次运行:验证失败或评审被驳回之后;首次实现仍由开发者完成。当开发者是廉价的本地模型时,在此使用更强或云端模型更划算。`},O={title:`护栏`,intro:`宿主在本地模型周围施加的流程规则,防止小模型跑偏。默认全部开启;只有在需要微调流程时才关闭某一项。CLI 提供商永不受影响。`,unsupported:`此 Core 安装未提供可配置的护栏。请更新 Core 以进行调整;内置规则仍然生效。`,active:`{{total}} 项中 {{on}} 项已启用`,reset:`恢复默认`,phases:{architect:`架构师`,developer:`开发者`,host:`宿主`},unknown:`由更新版本的 Core 新增的护栏;此应用尚无对应描述。`,items:{"plan-validation":{title:`经过校验的任务计划`,description:`拒绝指向 openspec/、把裸文件名列为任务、任务/分组数量相对规格过少或验收标准未覆盖的计划;架构师会重试。`,why:`含糊或不完整的计划是小型开发者模型写出桩代码的头号原因。`},"genuine-blocking-question":{title:`只允许真正的阻塞问题`,description:`架构师只能用以“?”结尾的真实问题暂停运行,绝不能用复制的示例文本。`,why:`小模型会照搬提示词占位符,导致每次运行都被阻塞。`},"plan-language-hint":{title:`按仓库语言规划`,description:`告知架构师主要语言,使任务文件名带有正确的扩展名。`,why:`在 TypeScript 仓库上生成 JS 计划会让任务无法勾选。`},"frozen-plan-writes":{title:`规划产物已冻结`,description:`开发者不能写入 openspec/;计划归宿主所有。`,why:`模型会通过修改计划而不是代码来“实现”功能。`},"primary-language":{title:`主要语言提醒`,description:`每个任务组都会被告知仓库的主要语言;新文件应使用该语言。`,why:`防止用另一种语言做第二套实现。`},"duplicate-sibling":{title:`跨语言不允许孪生模块`,description:`当 board.ts 已存在时拒绝 board.js;请扩展现有模块。`,why:`孪生模块都会编译,而测试会导入错误的那个。`},"one-test-per-module":{title:`每个模块一个测试文件`,description:`当 board.test.ts 已存在时拒绝 board.tick.test.ts;请扩展它。`,why:`否则每轮修正都会新增一个测试套件。`},"empty-write":{title:`禁止空覆盖`,description:`拒绝用空内容覆盖非空文件;请写入完整内容或打补丁。`,why:`一次“清理”曾把 index.ts 变成 0 行。`},"evidence-gated-ticking":{title:`有证据才勾选任务`,description:`指明文件的任务只有在文件存在且不是桩代码时才算完成(接受同类扩展名)。`,why:`否则“完成”只是一句声明,验证时无物可测。`},"inventory-retry":{title:`用真实清单重试`,description:`当模型声称仓库为空而放弃(实际并非如此)时,带上文件列表重试一次。`,why:`以低成本给第二次机会,而不是失败的步骤。`},"synthetic-corrections":{title:`把反馈变成任务`,description:`当所有任务都已勾选但审查/验证失败时,把反馈转成具体的修正任务。`,why:`否则开发者会回答“已经完成”,什么都不会改变。`},"silent-group-closure":{title:`关闭沉默的分组并保留其文件`,description:`模型停止响应的分组会被关闭,计入其写入的文件并保留任务为未完成,而不是让整个运行失败。`,why:`一个 9B 模型写了五个模块后沉默,导致整个运行失败。`},"environment-repair":{title:`宿主修复环境`,description:`缺失的依赖或测试工具(npm install、ts-jest、@types/jest、Jest 配置模块)由宿主安装,然后重新验证一次。`,why:`模型无法修复环境,只会在尝试中耗尽修正次数。`},"lockfile-repair":{title:`丢弃手写的锁文件`,description:`模型编造的 package-lock.json(EINTEGRITY/ETARGET)会被删除,并重试安装一次。`,why:`编造的哈希永远无法安装。`},"verify-idle-timeout":{title:`终止挂起的测试`,description:`5 分钟无输出的验证命令会被终止,并报告为疑似挂起(附最后输出)。`,why:`否则测试里的 while 循环会把运行拖到 15 分钟上限。`},"verify-per-group":{title:`每组后验证`,description:`在每个任务组完成后立即运行仓库自身的测试命令;失败时趁该组上下文仍新鲜进行一轮就地修复。`,why:`最后一次面对五个损坏的测试套件,比逐个修复难得多。`},"test-reachability":{title:`每个新测试都必须真正运行`,description:"开发者写下、但仓库测试命令从未执行的测试文件(逐个列举文件的 `test` 脚本漏掉了新文件)会使验证失败并指出确切文件——先在任务组层面,再在主机验证时。",why:`一个 622 行、含六个失败用例的测试套件曾因从未被运行而“绿灯”交付。`},"exit-code-honesty":{title:`不信任报告失败却返回 0 的退出码`,description:'验证命令以 0 退出但输出中打印了失败(`FAIL:` 行、"3 failed"、AssertionError)时视为失败,并交给修复者,同时指出测试框架本身是缺陷。',why:`一个从不设置非零退出码的手写测试运行器曾把三个失败测试当作通过交付。`}}},k=`未保存的更改`,A={title:`自定义角色`,hint:`为工作流角色定义可复用的指令和明确的权限。`,unsupported:`更新 Core 后即可编辑自定义角色。`,remove:`删除 {{id}}`,access:`源代码访问权限`,read:`只读`,write:`读写`,artifacts:`OpenSpec 工件访问权限`,none:`无`,tasks:`仅任务复选框`,all:`该变更的所有工件`,skill:`OpenSpec 技能`,noSkill:`不绑定技能`,prompt:`角色指令`,id:`角色 ID`,add:`添加角色`,invalidId:`使用以字母开头的唯一小写 ID,最多包含64个字母、数字或连字符。内置 ID 为保留名称。`,escalationHint:`仅允许的协议修复可以使用升级模型,不会增加重试次数。`},j={title:`运行指令`,hint:`Core 会保存这些指令,供下一个符合条件的代理回合使用。发送指令不会回答问题或授予批准。`,label:`补充指令`,send:`发送指令`,accepted:`Core 已接收,等待代理使用。`,pending:`等待代理回合`,consumed:`代理已使用`,counts:`待处理:{{pending}} · 已使用:{{consumed}}`,failed:`无法发送指令。请重试以确认同一条消息。`,unavailable:`无法获取接收记录详情。`,unreported:`此 Core 版本不报告使用状态。`,truncated:`仅显示最近的接收记录和待处理消息。`},M={title:`Core 角色默认值`,hint:`这些文件默认值适用于新工作流。项目的显式设置优先;已保存的运行保留其固定配置。`,invalid:`更改角色字段前,请先在编辑器中修正 YAML 头部。`,escalationEffort:`更高级模型的推理强度`},N={title:`历史保留`,description:`删除已过期的执行历史和未使用的 Core 版本。已删除的历史无法恢复执行或创建分支。运行中、可恢复的执行和待交付内容仍受保护;任务日志与费用记录会保留。`,forever:`永久保留历史`,days:`保留天数`,save:`保存保留设置`,preview:`预览清理`,collect:`删除过期历史`,previewSummary:`可清理:{{runs}} 条历史和 {{packages}} 个未使用的 Core 版本。`,collectedSummary:`已过期:{{runs}} 条历史。已删除:{{packages}} 个未使用的 Core 版本。`,more:`另有 {{count}} 次执行。`,failed:`无法查看或更新保留设置。`,expired:`此执行历史已根据项目策略过期。任务日志和费用记录仍然可用。`,loading:`正在加载保留策略…`,states:{protected:`已保留`,eligible:`可清理`,expired:`已过期`,cleanup_pending:`等待清理`,busy:`使用中`,error:`检查失败`},reasons:{disabled:`永久保留`,recoverable:`仍可恢复`,active:`执行中`,human_pending:`等待人工回复`,interrupted_writes:`中断的写入需要检查`,delivery_pending:`等待交付`,fork_pending:`仍有依赖分支`,unknown_terminal_time:`完成时间未知`,within_retention:`仍在保留期限内`}},P={title:`Loop agents`,hint:`These definitions are shared by every project using this loop. Duplicate the loop to customize a separate workflow.`,legacy:`This saved loop still uses historical project agents. Import them or enable loop agents before changing its configuration.`,enable:`Use loop agents`,import:`Import current project agents`,restoreDefinition:`Restore default definition`,default:`Provider default`,effort:`Reasoning effort`,escalationModel:`Escalation model`,escalationEffort:`Escalation effort`,policy:`Workflow policy`,maxAttempts:`Maximum correction attempts`,maxTokens:`Token budget`,maxCostUsd:`Cost budget (USD)`,timeoutMs:`Run timeout (ms)`,projectHint:`Configure repository checks here. Agent definitions, models and workflow policy are configured in the loop editor. Historical project agents can be imported into a duplicated loop.`,showUnused:`Also show agents not used in this loop`,stepTitle:`Step agent and options`,stepHint:`Edit this step’s agent definition and engine. Steps using the same role in this loop share these settings.`,inheritProvider:`继承任务的提供商`},F={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,loopRoles:T,pipeline:E,fixer:D,guardrails:O,unsavedChanges:k,customRoles:A,steering:j,studioRole:M,retention:N,loopAgents:P};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,A as customRoles,F as default,t as description,C as efficiency,w as evidence,D as fixer,O as guardrails,h as limits,r as loadFailed,n as loading,P as loopAgents,T as loopRoles,x as metrics,E as pipeline,S as prompts,d as providers,N as retention,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,j as steering,M as studioRole,e as title,a as unavailable,k as unsavedChanges,g as verification};
|
|
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:`AI 提供商`,globalHint:`每个项目由两类提供商驱动:本机检测到的编程 CLI,以及你在此注册的本地 OpenAI 兼容引擎。在项目设置 ▸ 代理引擎中将它们分配给流水线各阶段。更改适用于新的执行。`,label:`显示名称(可选)`,labelPlaceholder:`例如:局域网主机`,defaultModel:`默认模型`,defaultModelNone:`无默认(使用首个发现的模型)`,defaultModelPlaceholder:`模型 ID 或自定义别名`,customModel:`自定义别名…`,discoveredModels:`已发现的模型`,noModels:`尚未发现模型,请测试连接。`,rates:`费率(每 100 万 token 的美元,可选)`,ratesHint:`费用按估算显示;两项都留空则费用保持未知。`,inputRate:`输入 / 100 万`,outputRate:`输出 / 100 万`,ratesInvalid:`请将两项费率都填写为非负数,或都留空。`,reasoningEffort:`端点支持推理强度`,reasoningEffortHint:`发送 OpenAI 的 reasoning_effort 字段:每次调用使用该角色配置的推理强度,在紧凑架构师撰写计划时提升为 high。除非服务器支持,否则请保持关闭。`,apiKeyEnvMissing:`应用进程中未设置 {{name}}。请在启动应用的环境中设置它。`,test:`测试连接`,testing:`测试中…`,testFailed:`无法测试连接。`,rename:`重命名`,renameHint:`重命名后,角色分配仍指向此连接。`,idLocked:`保存后 ID 将被锁定。请使用“重命名”修改。`,localBadge:`本地引擎`,cliBadge:`CLI`,notDetected:`本机未检测到`,unsaved:`未保存的更改`,empty:`尚无连接。添加本地 / API 提供商以开始。`,fixBeforeSave:`保存前请修正标出的字段。`,status:{probing:`检测中…`,reachable:`可访问`,unauthorized:`未授权`,unreachable:`无法访问`,untested:`从未测试`},auth:{authenticated:`已登录`,unauthenticated:`未登录`,unknown:`登录状态未知`},agentLoop:`Agent 循环`,agentLoopHint:`implement 流水线如何驱动此模型`,agentLoop_compact:`紧凑`,agentLoop_compactHint:`由应用驱动的微步骤与结构化输出。推荐 ~30B 以下的模型使用。`,agentLoop_free:`自由`,agentLoop_freeHint:`每个角色一个 agent 循环,与 CLI 提供商相同。需要较强的模型。`,contextWindow:`上下文窗口(token)`,contextWindowHint:`与服务器的上下文大小保持一致(n_ctx / num_ctx)。用于在窗口填满前压缩旧的工具结果。默认 32768。`,maxOutput:`每轮输出预算(token)`,maxOutputHint:`单个工具轮次的 max_tokens;被截断的轮次会以两倍预算重试一次。它计入上下文窗口,因此始终受剩余空间限制——若模型会私下思考(thinking 会消耗该预算),请调高。默认 8192。`,reasoningEffortRailHint:`关闭时,此引擎在 rail 标题栏中不会显示推理强度选择器。`,presetTitle:`快速设置`,presetSmallModel:`小模型推荐`,presetSmallModelApplied:`已应用小模型预设`,presetSmallModelHint:`启用紧凑循环、转发推理强度并设置 32k 上下文窗口——这是在 7–14B 模型上验证过的组合。各字段仍可单独修改。`,cliGroup:`CLI 工具`,cliGroupHint:`在本机检测到——使用各自的登录,无需配置。`,localGroup:`本地引擎`,localGroupHint:`本应用可访问的 OpenAI 兼容端点(llama.cpp、Ollama、vLLM、LM Studio 等)。`,models_one:`{{count}} 个模型`,models_other:`{{count}} 个模型`,expand:`显示设置`,collapse:`隐藏设置`,overflow:`更多操作`,addLocalHero:`添加本地引擎`,emptyLocalPitch:`尚无本地引擎。将应用指向一个 OpenAI 兼容端点,即可在自己的硬件上运行流水线:成本由你掌控,数据不离开你的网络。`,defaultsGroup:`提供商默认值`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`架构师`,developer:`开发者`,reviewer:`审查者`,fixer:`修复者`,verify:`验证`,archive:`完成`},m={title:`角色分配`,hint:`每个角色可以使用不同的提供商和模型。在常规设置 → AI 提供商中管理连接。默认每个代理最多{{turns}}轮。`,provider:`提供商`,model:`模型`,modelPlaceholder:`模型 ID 或 CLI 默认值`,maxTurns:`最大轮数(默认 {{turns}})`,defaultModel:`默认({{model}})`,thinking:`隐藏思考`,thinking_off:`关闭`,thinking_on:`开启`,thinkingHint:`默认关闭:在由主机驱动的循环中,隐藏推理会消耗输出预算和每轮的分钟数。对受益于深思的角色可开启(以 chat_template_kwargs.enable_thinking 发送;不识别该字段的端点会忽略)。`},h={title:`工作流限制`,hint:`留空则使用 Core 默认值:{{attempts}} 次修正尝试,每个角色步骤 {{minutes}} 分钟。在本地引擎上,超时按工作单元计算(一个任务组、一个工件、一次审查),默认 45 分钟,另有 20 分钟空闲看门狗;超时的步骤会阻塞运行,并可从下一个未完成的任务组恢复。token 和美元上限为可选;美元上限要求所有 AI 角色使用 Claude。`,maxAttempts:`开发者最大尝试次数(默认 {{attempts}})`,timeoutMinutes:`超时(分钟;默认 {{minutes}},本地引擎每个任务组 45)`,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:`不可用`,expired:`已过期`},question:`架构师提问:`,answerLabel:`你的回答`,answerPlaceholder:`回答该问题后,架构师将据此继续。`,answer:`回答并继续`,viewLog:`查看任务日志`,implementation:`实现`,preserveProgress:`从所示阶段继续,保留已有工作和保存的设置。`,reviewDelivery:`实现已完成。交付前请在任务日志中检查结果;本次继续执行未发布结果。`,prepareDelivery:`准备交付`,dismiss:`忽略`,selectRecovery:`选择要恢复的中断尝试`},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:`保存提示词`,fixerHint:`仅在修正轮次使用:验证失败或审查被拒之后。除非“设置 ▸ 代理引擎 ▸ 修复者”指定了独立引擎,否则运行在开发者引擎上。恢复开发者会话的 CLI 提供方收到的是简短的修正跟进;每当启动新会话(本地引擎、修复者引擎、会话丢失)时,本定义生效。`},C={title:`实现效率`,scope:`适用于新运行。已保存的运行保留原始配置和运行时。`,effort:`推理强度`,providerDefault:`提供商默认值`,unconfirmed:`未确认`,unknownSupport:`尚未确认此模型和传输方式的支持情况。`,escalation:`允许使用同一提供商的一个更高等级`,baseRequired:`请先明确选择基础模型。`,escalationModel:`更高等级模型`,triggers:{architect:`仅现有的深入调查步骤可选择此等级。`,developer:`两个候选实现失败后,下一次允许的尝试可选择此等级。`,reviewer:`仅用于修复格式错误的响应;拒绝代码不会触发升级。`,fixer:`只有修正轮次才能进入此层级;首次实现从不运行修复者。`},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":`本次运行选择的提供商`,"loop-role":`循环角色`},reuseDisabled:`此检查已禁用复用。`,reuseConfirmed:`确认输入和工具链一致后复用。`,inputsChanged:`验证期间输入发生变化;结果已失效。`,reuseUnproven:`没有输入一致且仍然有效的结果;已重新执行检查。`,original:`原始执行`,requested:`请求值`,reported:`报告值`},T={title:`循环角色`,hint:`轨道以“按角色”引擎启动时循环侧角色所用的引擎。上方的流水线角色(architect、developer、reviewer)已来自此运行时配置。`,verifier:`验证者`,verifierHint:`循环中所有非核心的 AI 步骤:verify、fix 和自定义 AI 步骤。`,decider:`决策者`,deciderHint:`读取结论并决定下一步的 Loop Decider——选择便宜快速的模型最合适。`,inherit:`继承主引擎`,model:`模型`,effort:`推理强度`,disabled:`代理运行时已禁用——在启用之前,以“按角色”引擎启动的轨道会被拒绝。`,saveFailed:`无法保存循环角色。`},E={title:`实现流水线`,explainer:`每次实现都按此顺序执行这些阶段。当 rail 的引擎为“{{roles}}”时,每个阶段使用下方配置的引擎——每个阶段可以有不同的提供商、模型和推理强度。若在 rail 上选择具体引擎,则所有阶段都在该引擎上运行。`,host:`主机`,noCommand:`无命令`,inherits:`继承主引擎`,inheritsDeveloper:`继承开发者`,open:`展开`,collapse:`收起`,groups:{core:{title:`核心流水线`,hint:`在每次实现中运行:规划、构建、验证、修复、评审。`},loop:{title:`循环步骤`,hint:`包裹运行的 rail 循环(验证 → 决策 → 修复)以及自定义循环的 AI 步骤;未设置时继承主引擎。`,chip:`rail 循环`}},phases:{architect:{name:`架构师`,purpose:`阅读代码并编写提案、设计与任务。`},developer:{name:`开发者`,purpose:`带测试地实现任务。`},verification:{name:`验证`,purpose:`主机运行你的检查;失败会返回给开发者。`},fixer:{name:`修复者`,purpose:`修正验证或评审驳回的内容;未配置时继承开发者。`},reviewer:{name:`审查者`,purpose:`对照规格与证据检查结果。`},verifier:{name:`校验者`,purpose:`循环中的 verify、fix 与自定义 AI 步骤。`},decider:{name:`决策者`,purpose:`读取裁定并决定循环的下一步。`}}},D={title:`修复者引擎`,inherit:`继承开发者`,own:`独立引擎`,hint:`仅在修正轮次运行:验证失败或评审被驳回之后;首次实现仍由开发者完成。当开发者是廉价的本地模型时,在此使用更强或云端模型更划算。`},O={title:`护栏`,intro:`宿主在本地模型周围施加的流程规则,防止小模型跑偏。默认全部开启;只有在需要微调流程时才关闭某一项。CLI 提供商永不受影响。`,unsupported:`此 Core 安装未提供可配置的护栏。请更新 Core 以进行调整;内置规则仍然生效。`,active:`{{total}} 项中 {{on}} 项已启用`,reset:`恢复默认`,phases:{architect:`架构师`,developer:`开发者`,host:`宿主`},unknown:`由更新版本的 Core 新增的护栏;此应用尚无对应描述。`,items:{"plan-validation":{title:`经过校验的任务计划`,description:`拒绝指向 openspec/、把裸文件名列为任务、任务/分组数量相对规格过少或验收标准未覆盖的计划;架构师会重试。`,why:`含糊或不完整的计划是小型开发者模型写出桩代码的头号原因。`},"genuine-blocking-question":{title:`只允许真正的阻塞问题`,description:`架构师只能用以“?”结尾的真实问题暂停运行,绝不能用复制的示例文本。`,why:`小模型会照搬提示词占位符,导致每次运行都被阻塞。`},"plan-language-hint":{title:`按仓库语言规划`,description:`告知架构师主要语言,使任务文件名带有正确的扩展名。`,why:`在 TypeScript 仓库上生成 JS 计划会让任务无法勾选。`},"frozen-plan-writes":{title:`规划产物已冻结`,description:`开发者不能写入 openspec/;计划归宿主所有。`,why:`模型会通过修改计划而不是代码来“实现”功能。`},"primary-language":{title:`主要语言提醒`,description:`每个任务组都会被告知仓库的主要语言;新文件应使用该语言。`,why:`防止用另一种语言做第二套实现。`},"duplicate-sibling":{title:`跨语言不允许孪生模块`,description:`当 board.ts 已存在时拒绝 board.js;请扩展现有模块。`,why:`孪生模块都会编译,而测试会导入错误的那个。`},"one-test-per-module":{title:`每个模块一个测试文件`,description:`当 board.test.ts 已存在时拒绝 board.tick.test.ts;请扩展它。`,why:`否则每轮修正都会新增一个测试套件。`},"empty-write":{title:`禁止空覆盖`,description:`拒绝用空内容覆盖非空文件;请写入完整内容或打补丁。`,why:`一次“清理”曾把 index.ts 变成 0 行。`},"evidence-gated-ticking":{title:`有证据才勾选任务`,description:`指明文件的任务只有在文件存在且不是桩代码时才算完成(接受同类扩展名)。`,why:`否则“完成”只是一句声明,验证时无物可测。`},"inventory-retry":{title:`用真实清单重试`,description:`当模型声称仓库为空而放弃(实际并非如此)时,带上文件列表重试一次。`,why:`以低成本给第二次机会,而不是失败的步骤。`},"synthetic-corrections":{title:`把反馈变成任务`,description:`当所有任务都已勾选但审查/验证失败时,把反馈转成具体的修正任务。`,why:`否则开发者会回答“已经完成”,什么都不会改变。`},"silent-group-closure":{title:`关闭沉默的分组并保留其文件`,description:`模型停止响应的分组会被关闭,计入其写入的文件并保留任务为未完成,而不是让整个运行失败。`,why:`一个 9B 模型写了五个模块后沉默,导致整个运行失败。`},"environment-repair":{title:`宿主修复环境`,description:`缺失的依赖或测试工具(npm install、ts-jest、@types/jest、Jest 配置模块)由宿主安装,然后重新验证一次。`,why:`模型无法修复环境,只会在尝试中耗尽修正次数。`},"lockfile-repair":{title:`丢弃手写的锁文件`,description:`模型编造的 package-lock.json(EINTEGRITY/ETARGET)会被删除,并重试安装一次。`,why:`编造的哈希永远无法安装。`},"verify-idle-timeout":{title:`终止挂起的测试`,description:`5 分钟无输出的验证命令会被终止,并报告为疑似挂起(附最后输出)。`,why:`否则测试里的 while 循环会把运行拖到 15 分钟上限。`},"verify-per-group":{title:`每组后验证`,description:`在每个任务组完成后立即运行仓库自身的测试命令;失败时趁该组上下文仍新鲜进行一轮就地修复。`,why:`最后一次面对五个损坏的测试套件,比逐个修复难得多。`},"test-reachability":{title:`每个新测试都必须真正运行`,description:"开发者写下、但仓库测试命令从未执行的测试文件(逐个列举文件的 `test` 脚本漏掉了新文件)会使验证失败并指出确切文件——先在任务组层面,再在主机验证时。",why:`一个 622 行、含六个失败用例的测试套件曾因从未被运行而“绿灯”交付。`},"exit-code-honesty":{title:`不信任报告失败却返回 0 的退出码`,description:'验证命令以 0 退出但输出中打印了失败(`FAIL:` 行、"3 failed"、AssertionError)时视为失败,并交给修复者,同时指出测试框架本身是缺陷。',why:`一个从不设置非零退出码的手写测试运行器曾把三个失败测试当作通过交付。`}}},k=`未保存的更改`,A={title:`自定义角色`,hint:`为工作流角色定义可复用的指令和明确的权限。`,unsupported:`更新 Core 后即可编辑自定义角色。`,remove:`删除 {{id}}`,access:`源代码访问权限`,read:`只读`,write:`读写`,artifacts:`OpenSpec 工件访问权限`,none:`无`,tasks:`仅任务复选框`,all:`该变更的所有工件`,skill:`OpenSpec 技能`,noSkill:`不绑定技能`,prompt:`角色指令`,id:`角色 ID`,add:`添加角色`,invalidId:`使用以字母开头的唯一小写 ID,最多包含64个字母、数字或连字符。内置 ID 为保留名称。`,escalationHint:`仅允许的协议修复可以使用升级模型,不会增加重试次数。`},j={title:`运行指令`,hint:`Core 会保存这些指令,供下一个符合条件的代理回合使用。发送指令不会回答问题或授予批准。`,label:`补充指令`,send:`发送指令`,accepted:`Core 已接收,等待代理使用。`,pending:`等待代理回合`,consumed:`代理已使用`,counts:`待处理:{{pending}} · 已使用:{{consumed}}`,failed:`无法发送指令。请重试以确认同一条消息。`,unavailable:`无法获取接收记录详情。`,unreported:`此 Core 版本不报告使用状态。`,truncated:`仅显示最近的接收记录和待处理消息。`},M={title:`Core 角色默认值`,hint:`这些文件默认值适用于新工作流。项目的显式设置优先;已保存的运行保留其固定配置。`,invalid:`更改角色字段前,请先在编辑器中修正 YAML 头部。`,escalationEffort:`更高级模型的推理强度`},N={title:`历史保留`,description:`删除已过期的执行历史和未使用的 Core 版本。已删除的历史无法恢复执行或创建分支。运行中、可恢复的执行和待交付内容仍受保护;任务日志与费用记录会保留。`,forever:`永久保留历史`,days:`保留天数`,save:`保存保留设置`,preview:`预览清理`,collect:`删除过期历史`,previewSummary:`可清理:{{runs}} 条历史和 {{packages}} 个未使用的 Core 版本。`,collectedSummary:`已过期:{{runs}} 条历史。已删除:{{packages}} 个未使用的 Core 版本。`,more:`另有 {{count}} 次执行。`,failed:`无法查看或更新保留设置。`,expired:`此执行历史已根据项目策略过期。任务日志和费用记录仍然可用。`,loading:`正在加载保留策略…`,states:{protected:`已保留`,eligible:`可清理`,expired:`已过期`,cleanup_pending:`等待清理`,busy:`使用中`,error:`检查失败`},reasons:{disabled:`永久保留`,recoverable:`仍可恢复`,active:`执行中`,human_pending:`等待人工回复`,interrupted_writes:`中断的写入需要检查`,delivery_pending:`等待交付`,fork_pending:`仍有依赖分支`,unknown_terminal_time:`完成时间未知`,within_retention:`仍在保留期限内`}},P={title:`Loop agents`,hint:`These definitions are shared by every project using this loop. Duplicate the loop to customize a separate workflow.`,legacy:`This saved loop still uses historical project agents. Import them or enable loop agents before changing its configuration.`,enable:`Use loop agents`,import:`Import current project agents`,restoreDefinition:`使用 Core 定义`,default:`Provider default`,effort:`Reasoning effort`,escalationModel:`Escalation model`,escalationEffort:`Escalation effort`,policy:`Workflow policy`,maxAttempts:`Maximum correction attempts`,maxTokens:`Token budget`,maxCostUsd:`Cost budget (USD)`,timeoutMs:`Run timeout (ms)`,projectHint:`Configure repository checks here. Agent definitions, models and workflow policy are configured in the loop editor. Historical project agents can be imported into a duplicated loop.`,showUnused:`Also show agents not used in this loop`,stepTitle:`Step agent and options`,stepHint:`Edit this step’s agent definition and engine. Steps using the same role in this loop share these settings.`,inheritProvider:`继承任务的提供商`,inheritDefinition:`跟随 Core 定义:每次升级 Core 都会自动更新。`,customizeDefinition:`为此循环自定义`,coreDefinitionUnavailable:`安装 Core 运行时后才能预览。`},F={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,loopRoles:T,pipeline:E,fixer:D,guardrails:O,unsavedChanges:k,customRoles:A,steering:j,studioRole:M,retention:N,loopAgents:P};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,A as customRoles,F as default,t as description,C as efficiency,w as evidence,D as fixer,O as guardrails,h as limits,r as loadFailed,n as loading,P as loopAgents,T as loopRoles,x as metrics,E as pipeline,S as prompts,d as providers,N as retention,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,j as steering,M as studioRole,e as title,a as unavailable,k as unsavedChanges,g as verification};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`Agents`,subtitle:`Gérez les profils d'agents et le catalogue (rôles de base définis à l'exécution + agents 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 personnalisé pour l'instant`,body:`Les rôles de base (architect, developer, reviewer) sont définis par le runtime specrails-core et ne nécessitent aucune installation. Créez un agent personnalisé pour étendre votre équipe.`},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:`Rôles de base définis par le runtime 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`,runtimeDefinition:`définition du runtime specrails-core`,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 » crée un profil <code>default</code> avec les rôles de base sur le modèle par défaut du fournisseur, en conservant tout modèle trouvé dans le frontmatter existant de <code>.claude/agents/</code> — 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`,localEngine:`Moteur local`,rolesEngine:`Rôles`,rolesEngineTitle:`Moteurs hybrides par rôle : architect, developer et reviewer utilisent la configuration du runtime ; verifier et decider utilisent les rôles de boucle (Réglages ▸ Agents Specrails)`,rolesChip:`Moteurs par rôle`,rolesChipTitle:`Moteurs configurés par rôle dans Réglages ▸ Agents Specrails : architect, developer et reviewer depuis la configuration du runtime ; verifier et decider depuis les rôles de boucle. Le modèle, l'effort et le profil ne se choisissent pas ici.`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`Agenti`,subtitle:`Gestisci i profili agente e il catalogo (ruoli base definiti dal runtime + agenti 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 custom ancora`,body:`I ruoli base (architect, developer, reviewer) sono definiti dal runtime di specrails-core e non richiedono installazione. Crea un agente custom per ampliare il tuo team.`},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:`Ruoli base definiti dal runtime di 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`,runtimeDefinition:`definizione del runtime di specrails-core`,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" crea un profilo <code>default</code> con i ruoli base sul modello predefinito del provider, conservando i modelli trovati nel frontmatter esistente di <code>.claude/agents/</code> — 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`,localEngine:`Motore locale`,rolesEngine:`Ruoli`,rolesEngineTitle:`Motori ibridi per ruolo: architect, developer e reviewer usano la configurazione del runtime; verifier e decider usano i ruoli del loop (Impostazioni ▸ Agenti Specrails)`,rolesChip:`Motori per ruolo`,rolesChipTitle:`Motori configurati per ruolo in Impostazioni ▸ Agenti Specrails: architect, developer e reviewer dalla configurazione del runtime; verifier e decider dai ruoli del loop. Modello, sforzo e profilo non si scelgono qui.`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`Agentes`,subtitle:`Gestiona los perfiles de agentes y el catálogo (roles base definidos en runtime + agentes 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:`Aún no hay agentes personalizados`,body:`Los roles base (architect, developer, reviewer) los define el runtime de specrails-core y no requieren instalación. Crea un agente personalizado para ampliar tu equipo.`},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:`Roles base definidos por el runtime de 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`,runtimeDefinition:`definición del runtime de specrails-core`,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» crea un perfil <code>default</code> con los roles base en el modelo por defecto del proveedor, conservando cualquier modelo encontrado en el frontmatter existente de <code>.claude/agents/</code> — 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`,localEngine:`Motor local`,rolesEngine:`Roles`,rolesEngineTitle:`Motores híbridos por rol: architect, developer y reviewer usan la configuración del runtime; verifier y decider usan los roles del loop (Ajustes ▸ Agentes Specrails)`,rolesChip:`Motores por rol`,rolesChipTitle:`Motores configurados por rol en Ajustes ▸ Agentes Specrails: architect, developer y reviewer desde la configuración del runtime; verifier y decider desde los roles del loop. Aquí no se elige modelo, esfuerzo ni perfil.`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={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:`基本ロール(architect、developer、reviewer)は specrails-core のランタイムが定義するため、インストールは不要です。チームを拡張するにはカスタムエージェントを作成してください。`},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 でこのエージェントを反復的に改良`,runtimeDefinition:`specrails-core ランタイム定義`,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>default</code> プロファイルを作成し、既存の <code>.claude/agents/</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 プロバイダー`,localEngine:`ローカルエンジン`,rolesEngine:`ロール別`,rolesEngineTitle:`ロール別のハイブリッドエンジン:architect・developer・reviewer はランタイム設定を、verifier・decider はループロールを使用します(設定 ▸ Specrails エージェント)`,rolesChip:`ロール別エンジン`,rolesChipTitle:`エンジンは「設定 ▸ Specrails エージェント」でロールごとに設定済みです:architect・developer・reviewer はランタイム設定から、verifier・decider はループロールから。モデル・推論の深さ・プロファイルはここでは選びません。`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={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:`基础角色(architect、developer、reviewer)由 specrails-core 运行时定义,无需安装。创建一个自定义 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`,runtimeDefinition:`specrails-core 运行时定义`,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>default</code> Profile,并保留现有 <code>.claude/agents/</code> frontmatter 中找到的模型——零损失。`},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 提供商:架构师、开发者和审查者`,localEngine:`本地引擎`,rolesEngine:`按角色`,rolesEngineTitle:`按角色的混合引擎:architect、developer 和 reviewer 使用运行时配置;verifier 和 decider 使用循环角色(设置 ▸ Specrails 代理)`,rolesChip:`按角色引擎`,rolesChipTitle:`引擎已在“设置 ▸ Specrails 代理”中按角色配置:architect、developer 和 reviewer 来自运行时配置;verifier 和 decider 来自循环角色。此处不选择模型、推理强度或配置文件。`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
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 (runtime-defined baseline roles + custom agents) 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 custom agents yet`,body:`The baseline roles (architect, developer, reviewer) are defined by the specrails-core runtime and need no installation. Create a custom agent to extend your team.`},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:`Baseline roles defined by the specrails-core runtime; 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`,runtimeDefinition:`specrails-core runtime definition`,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" creates a <code>default</code> profile with the baseline roles on the provider's default model, keeping any model found in existing <code>.claude/agents/</code> frontmatter — 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`,localEngine:`Local engine`,rolesEngine:`Roles`,rolesEngineTitle:`Hybrid engines per role: architect, developer and reviewer use the runtime configuration; verifier and decider use the loop roles (Settings ▸ AI providers)`,rolesChip:`Per-role engines`,rolesChipTitle:`Engines configured per role in Settings ▸ AI providers: architect, developer and reviewer from the runtime configuration; verifier and decider from the loop roles. Model, effort and profile are not chosen here.`},c={page:n,catalog:r,profiles:i,usage:a,routingRule:o,railSelectors:s};export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`Agentes`,subtitle:`Faça a gestão dos perfis de agentes e do catálogo (papéis base definidos em runtime + 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:`Ainda não há agentes personalizados`,body:`Os papéis base (architect, developer, reviewer) são definidos pelo runtime do specrails-core e não precisam de instalação. Crie um agente personalizado para ampliar a sua equipa.`},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:`Papéis base definidos pelo runtime do 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`,runtimeDefinition:`definição do runtime do specrails-core`,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" cria um perfil <code>default</code> com os papéis base no modelo predefinido do fornecedor, mantendo qualquer modelo encontrado no frontmatter existente em <code>.claude/agents/</code> — 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`,localEngine:`Motor local`,rolesEngine:`Papéis`,rolesEngineTitle:`Motores híbridos por papel: architect, developer e reviewer usam a configuração do runtime; verifier e decider usam os papéis do loop (Definições ▸ Agentes Specrails)`,rolesChip:`Motores por papel`,rolesChipTitle:`Motores configurados por papel em Definições ▸ Agentes Specrails: architect, developer e reviewer a partir da configuração do runtime; verifier e decider a partir dos papéis do loop. Modelo, esforço e perfil não se escolhem aqui.`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`Agents`,subtitle:`Agent-Profile und den Katalog (laufzeitdefinierte Basisrollen + Custom-Agents) 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:`Noch keine Custom-Agents`,body:`Die Basisrollen (Architect, Developer, Reviewer) werden von der specrails-core-Laufzeit definiert und müssen nicht installiert werden. Erstelle einen Custom-Agent, um dein Team zu erweitern.`},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:`Basisrollen, definiert von der specrails-core-Laufzeit; 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`,runtimeDefinition:`Laufzeitdefinition von specrails-core`,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“ erstellt ein <code>default</code>-Profil mit den Basisrollen auf dem Standardmodell des Providers und übernimmt Modelle aus vorhandenem <code>.claude/agents/</code>-Frontmatter — verlustfrei.`},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`,localEngine:`Lokale Engine`,rolesEngine:`Rollen`,rolesEngineTitle:`Hybride Engines pro Rolle: Architect, Developer und Reviewer nutzen die Runtime-Konfiguration; Verifier und Decider nutzen die Loop-Rollen (Einstellungen ▸ Specrails-Agenten)`,rolesChip:`Engines pro Rolle`,rolesChipTitle:`Engines pro Rolle konfiguriert in Einstellungen ▸ Specrails-Agenten: Architect, Developer und Reviewer aus der Runtime-Konfiguration; Verifier und Decider aus den Loop-Rollen. Modell, Aufwand und Profil werden hier nicht gewählt.`},o={page:e,catalog:t,profiles:n,usage:r,routingRule:i,railSelectors:a};export{t as catalog,o as default,e as page,n as profiles,a as railSelectors,i as routingRule,r as usage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={loadingAgent:`Cargando agente…`,modeCreate:`Nuevo agente personalizado`,modeEdit:`Editar agente personalizado`,create:`Crear`,unsaved:`● sin guardar`,resumeAiEdit:`Reanudar AI Edit`,resumeAiEditTitle:`Devolver este borrador al panel de AI Edit`,loadingAiDraft:`cargando borrador de IA…`,testButton:`Probar`,testButtonTitle:`Probar este agente con una tarea de ejemplo`,historyButton:`Historial`,historyButtonTitle:`Historial de versiones`,deleteConfirm:{title:`¿Eliminar el agente "{{agentId}}"?`,description:`Esto elimina el .md del disco. El historial de versiones se conserva en la BD — usa un nuevo agente personalizado si quieres recuperar el cuerpo más adelante.`},errors:{loadDraftFailed:`Error al cargar el borrador: {{status}}`,loadFailed:`Error al cargar: {{status}}`,saveFailed:`Error al guardar: {{status}}`,deleteFailed:`Error al eliminar: {{status}}`,testFailed:`Error en la prueba: {{status}}`},toasts:{agentCreated:`Agente creado`,agentSaved:`Agente guardado`,agentDeleted:`Agente eliminado`,createFailed:`No se pudo crear el agente`,saveFailed:`No se pudo guardar el agente`,deleteFailed:`No se pudo eliminar el agente`},validation:{namePattern:`El nombre debe empezar por <code>custom-</code> y contener solo minúsculas, dígitos y guiones.`,missingFrontmatter:`Falta el frontmatter YAML (necesita un <code>---</code> de apertura en la primera línea).`},sampleTasks:{pick:`— elige una tarea de ejemplo —`,terraform:`Terraform: bucket S3 público`,sqlInjection:`Revisión de código: inyección SQL`,accessibility:`Frontend: accesibilidad`,schemaChange:`Datos: cambio de esquema`,slowQuery:`Rendimiento: consulta lenta`},testPane:{header:`Probar agente`,sampleTaskLabel:`Tarea de ejemplo`,placeholder:`Describe qué debe hacer el agente o elige un ejemplo arriba.`,run:`Ejecutar`,running:`Ejecutando…`,sandboxNote:`En sandbox; no se escriben archivos.`,tokens_one:`<mono>{{count}}</mono> token`,tokens_other:`<mono>{{count}}</mono> tokens`,tokensUnavailable:`Uso de tokens no disponible`,emptyHint:`Ejecuta una tarea de ejemplo contra el borrador actual. El resultado aparece aquí.`},versions:{header:`Historial de versiones`,empty:`No hay versiones anteriores registradas para este agente.`,restoreHint:`Haz clic en una versión para restaurar su cuerpo en el editor (aún tendrás que guardar).`}},t={eyebrow:`AI Edit`,headline:`Refina tu agente`,streamingHeadline:`Refinando tu agente…`,placeholderInitial:`Describe cómo refinar este agente…`,placeholderFollowUp:`Envía un refinamiento adicional…`,viewCurrentBody:`Ver el cuerpo actual del agente`,appliedAsVersion:`Aplicado como versión {{version}}.`,openInStudio:`Abrir el borrador en Studio para editarlo manualmente`,chips:{tightenTools:`Acota la lista de herramientas`,stricterPersonality:`Haz la personalidad más estricta`,workflowSection:`Añade una sección de protocolo de workflow`,sharpenDescription:`Acorta y afina la descripción`,matchDeveloperStyle:`Imita el estilo de sr-developer`}},n={validation:{missingBaseline:`Falta el agente base obligatorio: {{agent}}`,multipleDefaultRules:`El enrutado solo puede tener una regla por defecto (se encontraron {{found}})`,defaultRuleNotLast:`La regla de enrutado por defecto debe ser la última entrada`,unknownRoutingAgent:`El enrutado referencia un agente que no está en la cadena: {{agent}}`,invalidTags:`La regla de enrutado {{agent}} tiene tags no válidos: {{tags}} (usa kebab-case en minúsculas)`},validationSummary_one:`{{count}} problema de validación`,validationSummary_other:`{{count}} problemas de validación`,nameLabel:`Nombre`,descriptionLabel:`Descripción`,descriptionPlaceholder:`¿Para qué sirve este perfil?`,orchestrator:{heading:`Orquestador`,description:`Modelo de nivel superior para el comando implement. Cada rail que ejecuta hereda la cadena de agentes de este perfil.`},agentChain:{heading:`Cadena de agentes ({{n}})`,addTitle:`Añadir un agente del catálogo`,addDisabledTitle:`Todos los agentes del catálogo ya están en la cadena`,pickFromCatalog:`Elegir del catálogo ({{n}} disponibles)`,emptyCatalog:`No quedan agentes en el catálogo. Añade agentes personalizados desde la pestaña Catálogo de agentes.`,kind:{upstream:`upstream`,custom:`personalizado`}},routing:{heading:`Enrutado ({{n}})`,addDefault:`Añadir por defecto`,addRule:`Añadir regla`,needAgentsTitle:`Añade al menos un agente antes de crear reglas de enrutado`,explainer:`Gana la primera regla que coincida. Las reglas se pueden editar y eliminar, y la regla por defecto se mantiene en último lugar cuando existe. Si dejas el enrutado vacío, el pipeline recurre al primer agente de tipo developer de la cadena.`,untargetedTitle:`Agentes de la cadena sin regla`,untargetedDetail:`Ninguna regla de enrutado apunta a: <mono>{{agents}}</mono>. Añade una regla de tags o redirige la regla por defecto si quieres que se ejecuten.`},agentRow:{dragTitle:`Arrastra para reordenar`,dragHandleAria:`Asa de arrastre`,pinnedFirst:`primero`,pinnedFirstTitle:`Fijado en primera posición — el pipeline siempre empieza con sr-architect`,pinnedLast:`último`,pinnedLastTitle:`Fijado en última posición — la fase de merge siempre se ejecuta al final`,required:`obligatorio`,requiredRemoveTitle:`Agente base obligatorio — el pipeline depende de esta fila`},routingRow:{everythingElse:`todo lo demás`,defaultTargetAria:`Destino de enrutado por defecto (core, solo lectura)`,defaultTargetTitle:`Fallback del core — no editable`,targetAria:`Destino de enrutado para la regla {{ordinal}}`,editTitle:`Editar regla`,editAria:`Editar regla {{ordinal}}`,moveDown:`Bajar`,moveUp:`Subir`,coreDefaultBadge:`core · por defecto`,coreDefaultTitle:`Fallback del core — la regla de último recurso del pipeline, fijada a sr-developer`},legacyWorkflowNotice:`Los ajustes del orquestador y del enrutamiento se aplican a los workflows antiguos. Los workflows de Core usan los roles seleccionados en el editor de loops.`},r={coreBadge:`core`,agents:{"sr-architect":{name:`Arquitecto`,description:`Diseño de arquitectura, specs de cambios, planificación de la implementación`},"sr-developer":{name:`Desarrollador`,description:`Implementación full-stack en todas las capas`},"sr-reviewer":{name:`Revisor`,description:`Revisión general de código — el último control de calidad`}},coreTeamTitle:`Tu equipo de agentes`,coreTeamNote:`Estos tres roles core los define el runtime de specrails-core — no hay nada que instalar ni elegir. Añade especialistas más tarde con perfiles y agentes custom-*.`},i={"security-reviewer":{label:`Revisor de seguridad`,blurb:`Encuentra bugs de autenticación, inyección y exposición de datos en un diff antes de publicarlo.`},"performance-profiler":{label:`Perfilador de rendimiento`,blurb:`Encuentra hot paths, consultas N+1, bucles sin límite y bundles hinchados.`},"data-engineer":{label:`Ingeniero de datos`,blurb:`Migraciones de esquema, pipelines ETL, transformaciones de datos.`},"ui-ux-polisher":{label:`Pulidor de UI / UX`,blurb:`Accesibilidad, espaciado, estados vacíos, gestión de errores.`},"api-designer":{label:`Diseñador de APIs`,blurb:`Versionado, paginación, formatos de error, retrocompatibilidad.`},"database-architect":{label:`Arquitecto de bases de datos`,blurb:`Índices, normalización frente a desnormalización, patrones de consulta.`},"devops-sre":{label:`DevOps / SRE`,blurb:`CI/CD, observabilidad, preparación ante incidentes, runbooks.`},"mobile-engineer":{label:`Ingeniero móvil`,blurb:`Patrones de iOS y Android, offline-first, cuidado con la batería.`},"ml-engineer":{label:`Ingeniero de ML`,blurb:`Pipelines, evaluación, reproducibilidad, monitorización de drift.`},"accessibility-auditor":{label:`Auditor de accesibilidad`,blurb:`Revisión WCAG 2.2: contraste, foco, ARIA, teclado.`},"qa-test-strategist":{label:`Estratega de tests QA`,blurb:`Planes de test: reparto unitarios / integración / E2E, huecos de cobertura.`},"load-tester":{label:`Tester de carga / estrés`,blurb:`Planificación de capacidad, escenarios k6 / Locust, caza de cuellos de botella.`},"integration-tester":{label:`Tester de integración`,blurb:`Contratos entre servicios, fixtures, reducción de tests flaky.`},"regression-hunter":{label:`Cazador de regresiones`,blurb:`Biseca, reproduce y escribe primero el test que falla.`},"data-analyst":{label:`Analista de datos`,blurb:`Convierte preguntas vagas en consultas + conclusiones legibles.`},"etl-reviewer":{label:`Revisor de pipelines ETL`,blurb:`Idempotencia, backfills, datos que llegan tarde.`},"dashboard-designer":{label:`Diseñador de dashboards`,blurb:`Dashboards de un vistazo, ejes honestos, una acción por gráfico.`},"iac-reviewer":{label:`Revisor de IaC / cloud`,blurb:`Terraform / CloudFormation: IAM, exposición pública, costes.`},"compliance-reviewer":{label:`Revisor de cumplimiento`,blurb:`Comprobaciones cercanas a RGPD / SOC2 / HIPAA sobre flujos de datos.`},"threat-modeler":{label:`Modelador de amenazas`,blurb:`STRIDE / LINDDUN sobre diagramas de arquitectura.`},"product-manager":{label:`Product Manager`,blurb:`Encuadre de problemas, PRDs, priorización.`},"ux-researcher":{label:`Investigador UX`,blurb:`Guiones de entrevista, planes de test de usabilidad, síntesis.`},"technical-writer":{label:`Redactor técnico`,blurb:`Docs que de verdad se leen — tutoriales, referencias, changelogs.`},"design-reviewer":{label:`Revisor de design system`,blurb:`Deriva de tokens, mal uso de componentes, consistencia entre flujos.`},"financial-analyst":{label:`Analista financiero`,blurb:`Unit economics, modelos de cohortes, análisis de escenarios.`},"pricing-strategist":{label:`Estratega de precios`,blurb:`Niveles, empaquetado, estudios de disposición a pagar.`},"market-researcher":{label:`Investigador de mercado`,blurb:`TAM/SAM/SOM, mapas competitivos, segmentos de clientes.`},"ops-optimizer":{label:`Optimizador de operaciones`,blurb:`Tiempos de ciclo, detección de cuellos de botella, candidatos a automatización.`},"seo-auditor":{label:`Auditor SEO`,blurb:`SEO técnico y de contenido: indexabilidad, arquitectura de la información, ajuste a la intención.`},"growth-hacker":{label:`Experimentador de growth`,blurb:`Diagnóstico de funnels, experimentos de mejora, bucles de activación.`},"social-strategist":{label:`Estratega de redes sociales`,blurb:`Contenido adaptado al canal, calendario editorial, consistencia de voz.`},"literature-reviewer":{label:`Revisor de literatura`,blurb:`Resúmenes de revisión sistemática, grafos de citas, conflictos.`},"experiment-designer":{label:`Diseñador de experimentos`,blurb:`Hipótesis, controles, tamaño muestral, prerregistro.`},"statistical-analyst":{label:`Analista estadístico`,blurb:`Elige el test correcto e informa tamaños de efecto, no solo p-valores.`},"scientific-writer":{label:`Redactor científico`,blurb:`Estructura IMRaD, límites honestos, abstracts legibles.`},"curriculum-designer":{label:`Diseñador curricular`,blurb:`Resultados de aprendizaje → actividades → evaluación.`},"assessment-author":{label:`Autor de evaluaciones`,blurb:`Ítems que miden comprensión, no memorización.`},"tutor-explainer":{label:`Tutor / explicador`,blurb:`Explicaciones sencillas al estilo Feynman con ejemplos resueltos.`},"clinical-guideline-reviewer":{label:`Revisor de guías clínicas`,blurb:`Contrasta la práctica con las últimas guías basadas en la evidencia.`},"medical-summarizer":{label:`Resumidor de literatura médica`,blurb:`Abstracts para clínicos: qué ha cambiado, calidad de la evidencia.`},"protocol-designer":{label:`Diseñador de protocolos`,blurb:`Protocolos clínicos: endpoints, criterios de inclusión, seguridad.`},"contract-reviewer":{label:`Revisor de contratos`,blurb:`Señala cláusulas de riesgo y explica qué significan en realidad.`},"privacy-counsel":{label:`Asesor de privacidad`,blurb:`RGPD / CCPA / LGPD aplicados a flujos concretos.`},"copy-editor":{label:`Editor de estilo`,blurb:`Ediciones línea a línea: voz, cadencia, recortar un 30 % sin perder significado.`},"brand-voice-guardian":{label:`Guardián de la voz de marca`,blurb:`Aplica las reglas de voz; caza frases fuera de marca.`},"creative-brainstormer":{label:`Brainstormer creativo`,blurb:`Diverge y luego converge; mata vacas sagradas con educación.`},"hiring-interviewer":{label:`Entrevistador de contratación`,blurb:`Entrevistas estructuradas, centradas en la señal, conscientes del sesgo.`},"strategic-planner":{label:`Planificador estratégico`,blurb:`Objetivos → apuestas → métricas; poda los proyectos capricho.`},"coach-1on1":{label:`Coach de 1:1`,blurb:`Ayuda a enmarcar el feedback, el crecimiento profesional y las conversaciones difíciles.`},"meeting-facilitator":{label:`Facilitador de reuniones`,blurb:`Agendas que producen decisiones, no actualizaciones.`}},a={studio:e,refine:t,profileEditor:n,agentSelector:r,templates:i};export{r as agentSelector,a as default,n as profileEditor,t as refine,e as studio,i as templates};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={loadingAgent:`エージェントを読み込み中…`,modeCreate:`新規カスタムエージェント`,modeEdit:`カスタムエージェントを編集`,create:`作成`,unsaved:`● 未保存`,resumeAiEdit:`AI編集を再開`,resumeAiEditTitle:`このドラフトをAI編集オーバーレイに戻す`,loadingAiDraft:`AIドラフトを読み込み中…`,testButton:`テスト`,testButtonTitle:`サンプルタスクでこのエージェントをテスト`,historyButton:`履歴`,historyButtonTitle:`バージョン履歴`,deleteConfirm:{title:`エージェント「{{agentId}}」を削除しますか?`,description:`ディスクから .md を削除します。バージョン履歴は DB に残ります — 後で本文を復元したい場合は新しいカスタムエージェントを作成してください。`},errors:{loadDraftFailed:`ドラフトの読み込みに失敗しました: {{status}}`,loadFailed:`読み込みに失敗しました: {{status}}`,saveFailed:`保存に失敗しました: {{status}}`,deleteFailed:`削除に失敗しました: {{status}}`,testFailed:`テストに失敗しました: {{status}}`},toasts:{agentCreated:`エージェントを作成しました`,agentSaved:`エージェントを保存しました`,agentDeleted:`エージェントを削除しました`,createFailed:`エージェントの作成に失敗しました`,saveFailed:`エージェントの保存に失敗しました`,deleteFailed:`エージェントの削除に失敗しました`},validation:{namePattern:`名前は <code>custom-</code> で始まり、小文字・数字・ハイフンのみ使用できます。`,missingFrontmatter:`YAML フロントマターがありません(1行目に <code>---</code> が必要です)。`},sampleTasks:{pick:`— サンプルタスクを選択 —`,terraform:`Terraform: 公開 S3 バケット`,sqlInjection:`コードレビュー: SQL インジェクション`,accessibility:`フロントエンド: アクセシビリティ`,schemaChange:`データ: スキーマ変更`,slowQuery:`パフォーマンス: 遅いクエリ`},testPane:{header:`エージェントをテスト`,sampleTaskLabel:`サンプルタスク`,placeholder:`エージェントに実行させたい内容を記述するか、上のサンプルを選択してください。`,run:`実行`,running:`実行中…`,sandboxNote:`サンドボックス実行。ファイルへの書き込みはありません。`,tokens_one:`<mono>{{count}}</mono> トークン`,tokens_other:`<mono>{{count}}</mono> トークン`,tokensUnavailable:`トークン使用量は利用できません`,emptyHint:`現在のドラフトに対してサンプルタスクを実行します。出力はここに表示されます。`},versions:{header:`バージョン履歴`,empty:`このエージェントの過去のバージョンはありません。`,restoreHint:`バージョンをクリックすると本文がエディタに復元されます(保存は別途必要です)。`}},t={eyebrow:`AI編集`,headline:`エージェントを改良`,streamingHeadline:`エージェントを改良中…`,placeholderInitial:`このエージェントをどう改良するか記述してください…`,placeholderFollowUp:`追加の改良指示を送信…`,viewCurrentBody:`現在のエージェント本文を表示`,appliedAsVersion:`バージョン {{version}} として適用しました。`,openInStudio:`Studio でドラフトを開いて手動編集`,chips:{tightenTools:`ツールリストを絞り込む`,stricterPersonality:`パーソナリティをより厳格に`,workflowSection:`ワークフロープロトコルのセクションを追加`,sharpenDescription:`説明を短く鋭く`,matchDeveloperStyle:`sr-developer のスタイルに合わせる`}},n={validation:{missingBaseline:`必須のベースラインエージェントがありません: {{agent}}`,multipleDefaultRules:`ルーティングのデフォルトルールは1つまでです({{found}} 件見つかりました)`,defaultRuleNotLast:`デフォルトのルーティングルールは最後に配置する必要があります`,unknownRoutingAgent:`ルーティングがチェーンにないエージェントを参照しています: {{agent}}`,invalidTags:`ルーティングルール {{agent}} に不正なタグがあります: {{tags}}(小文字のケバブケースを使用してください)`},validationSummary_one:`{{count}} 件の検証の問題`,validationSummary_other:`{{count}} 件の検証の問題`,nameLabel:`名前`,descriptionLabel:`説明`,descriptionPlaceholder:`このプロファイルの用途は?`,orchestrator:{heading:`オーケストレーター`,description:`implement コマンドの最上位モデルです。実行されるすべてのレールがこのプロファイルのエージェントチェーンを継承します。`},agentChain:{heading:`エージェントチェーン({{n}})`,addTitle:`カタログからエージェントを追加`,addDisabledTitle:`カタログの全エージェントが既にチェーンに含まれています`,pickFromCatalog:`カタログから選択({{n}} 件利用可能)`,emptyCatalog:`カタログに追加できるエージェントがありません。エージェントカタログタブからカスタムエージェントを追加してください。`,kind:{upstream:`アップストリーム`,custom:`カスタム`}},routing:{heading:`ルーティング({{n}})`,addDefault:`デフォルトを追加`,addRule:`ルールを追加`,needAgentsTitle:`ルーティングルールを作成する前にエージェントを1つ以上追加してください`,explainer:`最初に一致したルールが適用されます。ルールは編集・削除でき、デフォルトのキャッチオールは存在する場合は常に最後に配置されます。ルーティングが空の場合、パイプラインはチェーン内の最初の developer 系エージェントにフォールバックします。`,untargetedTitle:`チェーン内の未割り当てエージェント`,untargetedDetail:`どのルーティングルールも <mono>{{agents}}</mono> を指していません。実行させたい場合はタグルールを追加するか、デフォルトルールのターゲットを変更してください。`},agentRow:{dragTitle:`ドラッグして並べ替え`,dragHandleAria:`ドラッグハンドル`,pinnedFirst:`先頭`,pinnedFirstTitle:`先頭に固定 — パイプラインは常に sr-architect から開始します`,pinnedLast:`末尾`,pinnedLastTitle:`末尾に固定 — マージフェーズは常に最後に実行されます`,required:`必須`,requiredRemoveTitle:`必須のベースラインエージェント — パイプラインはこの行に依存しています`},routingRow:{everythingElse:`その他すべて`,defaultTargetAria:`デフォルトのルーティングターゲット(コア、読み取り専用)`,defaultTargetTitle:`コアのフォールバック — 編集不可`,targetAria:`ルール {{ordinal}} のルーティングターゲット`,editTitle:`ルールを編集`,editAria:`ルール {{ordinal}} を編集`,moveDown:`下へ移動`,moveUp:`上へ移動`,coreDefaultBadge:`コア · デフォルト`,coreDefaultTitle:`コアのフォールバック — パイプラインの最終手段のルールで、sr-developer に固定されています`},legacyWorkflowNotice:`オーケストレーターとルーティングの設定は従来のワークフローに適用されます。Core のワークフローでは Loop Builder で選択したロールを使用します。`},r={coreBadge:`コア`,agents:{"sr-architect":{name:`アーキテクト`,description:`アーキテクチャ設計、変更スペック、実装計画`},"sr-developer":{name:`デベロッパー`,description:`全レイヤーにわたるフルスタック実装`},"sr-reviewer":{name:`レビュアー`,description:`一般的なコードレビュー — 最終品質ゲート`}},coreTeamTitle:`エージェントチーム`,coreTeamNote:`この3
|
|
1
|
+
var e={loadingAgent:`エージェントを読み込み中…`,modeCreate:`新規カスタムエージェント`,modeEdit:`カスタムエージェントを編集`,create:`作成`,unsaved:`● 未保存`,resumeAiEdit:`AI編集を再開`,resumeAiEditTitle:`このドラフトをAI編集オーバーレイに戻す`,loadingAiDraft:`AIドラフトを読み込み中…`,testButton:`テスト`,testButtonTitle:`サンプルタスクでこのエージェントをテスト`,historyButton:`履歴`,historyButtonTitle:`バージョン履歴`,deleteConfirm:{title:`エージェント「{{agentId}}」を削除しますか?`,description:`ディスクから .md を削除します。バージョン履歴は DB に残ります — 後で本文を復元したい場合は新しいカスタムエージェントを作成してください。`},errors:{loadDraftFailed:`ドラフトの読み込みに失敗しました: {{status}}`,loadFailed:`読み込みに失敗しました: {{status}}`,saveFailed:`保存に失敗しました: {{status}}`,deleteFailed:`削除に失敗しました: {{status}}`,testFailed:`テストに失敗しました: {{status}}`},toasts:{agentCreated:`エージェントを作成しました`,agentSaved:`エージェントを保存しました`,agentDeleted:`エージェントを削除しました`,createFailed:`エージェントの作成に失敗しました`,saveFailed:`エージェントの保存に失敗しました`,deleteFailed:`エージェントの削除に失敗しました`},validation:{namePattern:`名前は <code>custom-</code> で始まり、小文字・数字・ハイフンのみ使用できます。`,missingFrontmatter:`YAML フロントマターがありません(1行目に <code>---</code> が必要です)。`},sampleTasks:{pick:`— サンプルタスクを選択 —`,terraform:`Terraform: 公開 S3 バケット`,sqlInjection:`コードレビュー: SQL インジェクション`,accessibility:`フロントエンド: アクセシビリティ`,schemaChange:`データ: スキーマ変更`,slowQuery:`パフォーマンス: 遅いクエリ`},testPane:{header:`エージェントをテスト`,sampleTaskLabel:`サンプルタスク`,placeholder:`エージェントに実行させたい内容を記述するか、上のサンプルを選択してください。`,run:`実行`,running:`実行中…`,sandboxNote:`サンドボックス実行。ファイルへの書き込みはありません。`,tokens_one:`<mono>{{count}}</mono> トークン`,tokens_other:`<mono>{{count}}</mono> トークン`,tokensUnavailable:`トークン使用量は利用できません`,emptyHint:`現在のドラフトに対してサンプルタスクを実行します。出力はここに表示されます。`},versions:{header:`バージョン履歴`,empty:`このエージェントの過去のバージョンはありません。`,restoreHint:`バージョンをクリックすると本文がエディタに復元されます(保存は別途必要です)。`}},t={eyebrow:`AI編集`,headline:`エージェントを改良`,streamingHeadline:`エージェントを改良中…`,placeholderInitial:`このエージェントをどう改良するか記述してください…`,placeholderFollowUp:`追加の改良指示を送信…`,viewCurrentBody:`現在のエージェント本文を表示`,appliedAsVersion:`バージョン {{version}} として適用しました。`,openInStudio:`Studio でドラフトを開いて手動編集`,chips:{tightenTools:`ツールリストを絞り込む`,stricterPersonality:`パーソナリティをより厳格に`,workflowSection:`ワークフロープロトコルのセクションを追加`,sharpenDescription:`説明を短く鋭く`,matchDeveloperStyle:`sr-developer のスタイルに合わせる`}},n={validation:{missingBaseline:`必須のベースラインエージェントがありません: {{agent}}`,multipleDefaultRules:`ルーティングのデフォルトルールは1つまでです({{found}} 件見つかりました)`,defaultRuleNotLast:`デフォルトのルーティングルールは最後に配置する必要があります`,unknownRoutingAgent:`ルーティングがチェーンにないエージェントを参照しています: {{agent}}`,invalidTags:`ルーティングルール {{agent}} に不正なタグがあります: {{tags}}(小文字のケバブケースを使用してください)`},validationSummary_one:`{{count}} 件の検証の問題`,validationSummary_other:`{{count}} 件の検証の問題`,nameLabel:`名前`,descriptionLabel:`説明`,descriptionPlaceholder:`このプロファイルの用途は?`,orchestrator:{heading:`オーケストレーター`,description:`implement コマンドの最上位モデルです。実行されるすべてのレールがこのプロファイルのエージェントチェーンを継承します。`},agentChain:{heading:`エージェントチェーン({{n}})`,addTitle:`カタログからエージェントを追加`,addDisabledTitle:`カタログの全エージェントが既にチェーンに含まれています`,pickFromCatalog:`カタログから選択({{n}} 件利用可能)`,emptyCatalog:`カタログに追加できるエージェントがありません。エージェントカタログタブからカスタムエージェントを追加してください。`,kind:{upstream:`アップストリーム`,custom:`カスタム`}},routing:{heading:`ルーティング({{n}})`,addDefault:`デフォルトを追加`,addRule:`ルールを追加`,needAgentsTitle:`ルーティングルールを作成する前にエージェントを1つ以上追加してください`,explainer:`最初に一致したルールが適用されます。ルールは編集・削除でき、デフォルトのキャッチオールは存在する場合は常に最後に配置されます。ルーティングが空の場合、パイプラインはチェーン内の最初の developer 系エージェントにフォールバックします。`,untargetedTitle:`チェーン内の未割り当てエージェント`,untargetedDetail:`どのルーティングルールも <mono>{{agents}}</mono> を指していません。実行させたい場合はタグルールを追加するか、デフォルトルールのターゲットを変更してください。`},agentRow:{dragTitle:`ドラッグして並べ替え`,dragHandleAria:`ドラッグハンドル`,pinnedFirst:`先頭`,pinnedFirstTitle:`先頭に固定 — パイプラインは常に sr-architect から開始します`,pinnedLast:`末尾`,pinnedLastTitle:`末尾に固定 — マージフェーズは常に最後に実行されます`,required:`必須`,requiredRemoveTitle:`必須のベースラインエージェント — パイプラインはこの行に依存しています`},routingRow:{everythingElse:`その他すべて`,defaultTargetAria:`デフォルトのルーティングターゲット(コア、読み取り専用)`,defaultTargetTitle:`コアのフォールバック — 編集不可`,targetAria:`ルール {{ordinal}} のルーティングターゲット`,editTitle:`ルールを編集`,editAria:`ルール {{ordinal}} を編集`,moveDown:`下へ移動`,moveUp:`上へ移動`,coreDefaultBadge:`コア · デフォルト`,coreDefaultTitle:`コアのフォールバック — パイプラインの最終手段のルールで、sr-developer に固定されています`},legacyWorkflowNotice:`オーケストレーターとルーティングの設定は従来のワークフローに適用されます。Core のワークフローでは Loop Builder で選択したロールを使用します。`},r={coreBadge:`コア`,agents:{"sr-architect":{name:`アーキテクト`,description:`アーキテクチャ設計、変更スペック、実装計画`},"sr-developer":{name:`デベロッパー`,description:`全レイヤーにわたるフルスタック実装`},"sr-reviewer":{name:`レビュアー`,description:`一般的なコードレビュー — 最終品質ゲート`}},coreTeamTitle:`エージェントチーム`,coreTeamNote:`この3つのコアロールは specrails-core のランタイムが定義します — インストールも選択も不要です。後からプロファイルと custom-* エージェントで専門エージェントを追加できます。`},i={"security-reviewer":{label:`セキュリティレビュアー`,blurb:`リリース前の diff から認証、インジェクション、データ漏洩のバグを発見します。`},"performance-profiler":{label:`パフォーマンスプロファイラー`,blurb:`ホットパス、N+1 クエリ、上限のないループ、バンドル肥大化を発見します。`},"data-engineer":{label:`データエンジニア`,blurb:`スキーママイグレーション、ETL パイプライン、データ変換。`},"ui-ux-polisher":{label:`UI / UX ポリッシャー`,blurb:`アクセシビリティ、スペーシング、空状態、エラーハンドリング。`},"api-designer":{label:`API デザイナー`,blurb:`バージョニング、ページネーション、エラー形式、後方互換性。`},"database-architect":{label:`データベースアーキテクト`,blurb:`インデックス、正規化 vs 非正規化、クエリ形状。`},"devops-sre":{label:`DevOps / SRE`,blurb:`CI/CD、可観測性、インシデント対応準備、ランブック。`},"mobile-engineer":{label:`モバイルエンジニア`,blurb:`iOS + Android のパターン、オフラインファースト、バッテリー配慮。`},"ml-engineer":{label:`ML エンジニア`,blurb:`パイプライン、評価、再現性、ドリフト監視。`},"accessibility-auditor":{label:`アクセシビリティ監査者`,blurb:`WCAG 2.2 レビュー: コントラスト、フォーカス、ARIA、キーボード。`},"qa-test-strategist":{label:`QA テストストラテジスト`,blurb:`テスト計画: ユニット / 統合 / E2E の配分、カバレッジの欠落。`},"load-tester":{label:`負荷 / ストレステスター`,blurb:`キャパシティプランニング、k6 / Locust シナリオ、ボトルネック探索。`},"integration-tester":{label:`統合テスター`,blurb:`サービス間コントラクト、フィクスチャ、フレーキーテストの削減。`},"regression-hunter":{label:`リグレッションハンター`,blurb:`バイセクトと再現を行い、まず失敗するテストを書きます。`},"data-analyst":{label:`データアナリスト`,blurb:`曖昧な質問をクエリと読みやすい知見に変換します。`},"etl-reviewer":{label:`ETL パイプラインレビュアー`,blurb:`冪等性、バックフィル、遅延到着データ。`},"dashboard-designer":{label:`ダッシュボードデザイナー`,blurb:`一目で分かるダッシュボード、正直な軸、チャートごとのアクション。`},"iac-reviewer":{label:`IaC / クラウドレビュアー`,blurb:`Terraform / CloudFormation: IAM、公開露出、コスト。`},"compliance-reviewer":{label:`コンプライアンスレビュアー`,blurb:`データフローに対する GDPR / SOC2 / HIPAA 関連のチェック。`},"threat-modeler":{label:`脅威モデラー`,blurb:`アーキテクチャ図に対する STRIDE / LINDDUN。`},"product-manager":{label:`プロダクトマネージャー`,blurb:`課題設定、PRD、優先順位付け。`},"ux-researcher":{label:`UX リサーチャー`,blurb:`インタビュースクリプト、ユーザビリティテスト計画、結果の統合。`},"technical-writer":{label:`テクニカルライター`,blurb:`実際に読まれるドキュメント — チュートリアル、リファレンス、変更履歴。`},"design-reviewer":{label:`デザインシステムレビュアー`,blurb:`トークンのドリフト、コンポーネントの誤用、フロー間の一貫性。`},"financial-analyst":{label:`ファイナンシャルアナリスト`,blurb:`ユニットエコノミクス、コホートモデル、シナリオ分析。`},"pricing-strategist":{label:`プライシングストラテジスト`,blurb:`ティアリング、パッケージング、支払い意欲調査。`},"market-researcher":{label:`マーケットリサーチャー`,blurb:`TAM/SAM/SOM、競合マップ、顧客セグメント。`},"ops-optimizer":{label:`オペレーション最適化担当`,blurb:`サイクルタイム、ボトルネック発見、自動化候補。`},"seo-auditor":{label:`SEO 監査者`,blurb:`テクニカル + コンテンツ SEO: インデックス可能性、情報設計、検索意図の一致。`},"growth-hacker":{label:`グロース実験担当`,blurb:`ファネル診断、リフト実験、アクティベーションループ。`},"social-strategist":{label:`ソーシャルメディアストラテジスト`,blurb:`チャネルに合ったコンテンツ、編集カレンダー、ボイスの一貫性。`},"literature-reviewer":{label:`文献レビュアー`,blurb:`システマティックレビューの要約、引用グラフ、相反の検出。`},"experiment-designer":{label:`実験デザイナー`,blurb:`仮説、対照群、サンプルサイズ、事前登録。`},"statistical-analyst":{label:`統計アナリスト`,blurb:`適切な検定を選び、p 値だけでなく効果量を報告します。`},"scientific-writer":{label:`サイエンティフィックライター`,blurb:`IMRaD 構成、誠実な限界の記述、読みやすい要旨。`},"curriculum-designer":{label:`カリキュラムデザイナー`,blurb:`学習成果 → アクティビティ → 評価。`},"assessment-author":{label:`評価項目作成者`,blurb:`暗記ではなく理解を測る設問。`},"tutor-explainer":{label:`チューター / 解説者`,blurb:`ファインマン流のシンプルな説明と例題。`},"clinical-guideline-reviewer":{label:`臨床ガイドラインレビュアー`,blurb:`最新のエビデンスに基づくガイドラインと診療を照合します。`},"medical-summarizer":{label:`医学文献要約者`,blurb:`臨床医向けの要約: 何が変わったか、エビデンスの質。`},"protocol-designer":{label:`プロトコルデザイナー`,blurb:`臨床プロトコル: エンドポイント、選択基準、安全性。`},"contract-reviewer":{label:`契約レビュアー`,blurb:`リスクの高い条項にフラグを立て、実際の意味を説明します。`},"privacy-counsel":{label:`プライバシーカウンセル`,blurb:`具体的なフローに適用する GDPR / CCPA / LGPD。`},"copy-editor":{label:`コピーエディター`,blurb:`行単位の編集: ボイス、リズム、意味を保ったまま 30% 削減。`},"brand-voice-guardian":{label:`ブランドボイスガーディアン`,blurb:`ボイスルールを徹底し、ブランドから外れた表現を検出します。`},"creative-brainstormer":{label:`クリエイティブブレインストーマー`,blurb:`発散してから収束。聖域も丁寧に切り捨てます。`},"hiring-interviewer":{label:`採用面接官`,blurb:`構造化面接、シグナル重視、バイアスに配慮。`},"strategic-planner":{label:`戦略プランナー`,blurb:`目標 → 賭け → 指標。お気に入りプロジェクトを剪定します。`},"coach-1on1":{label:`1:1 コーチ`,blurb:`フィードバック、キャリア成長、難しい対話の組み立てを支援します。`},"meeting-facilitator":{label:`ミーティングファシリテーター`,blurb:`報告ではなく意思決定を生むアジェンダ。`}},a={studio:e,refine:t,profileEditor:n,agentSelector:r,templates:i};export{r as agentSelector,a as default,n as profileEditor,t as refine,e as studio,i as templates};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={loadingAgent:`Chargement de l'agent…`,modeCreate:`Nouvel agent personnalisé`,modeEdit:`Modifier l'agent personnalisé`,create:`Créer`,unsaved:`● non enregistré`,resumeAiEdit:`Reprendre l'Édition IA`,resumeAiEditTitle:`Renvoyer ce brouillon vers l'overlay Édition IA`,loadingAiDraft:`chargement du brouillon IA…`,testButton:`Tester`,testButtonTitle:`Tester cet agent sur une tâche d'exemple`,historyButton:`Historique`,historyButtonTitle:`Historique des versions`,deleteConfirm:{title:`Supprimer l'agent « {{agentId}} » ?`,description:`Supprime le fichier .md du disque. L'historique des versions reste en base — créez un nouvel agent personnalisé si vous voulez récupérer le corps plus tard.`},errors:{loadDraftFailed:`Échec du chargement du brouillon : {{status}}`,loadFailed:`Échec du chargement : {{status}}`,saveFailed:`Échec de l'enregistrement : {{status}}`,deleteFailed:`Échec de la suppression : {{status}}`,testFailed:`Échec du test : {{status}}`},toasts:{agentCreated:`Agent créé`,agentSaved:`Agent enregistré`,agentDeleted:`Agent supprimé`,createFailed:`Échec de la création de l'agent`,saveFailed:`Échec de l'enregistrement de l'agent`,deleteFailed:`Échec de la suppression de l'agent`},validation:{namePattern:`Le nom doit commencer par <code>custom-</code> et ne contenir que des lettres minuscules, des chiffres et des tirets.`,missingFrontmatter:`Frontmatter YAML manquant (il faut un <code>---</code> d'ouverture sur la première ligne).`},sampleTasks:{pick:`— choisir une tâche d'exemple —`,terraform:`Terraform : bucket S3 public`,sqlInjection:`Revue de code : injection SQL`,accessibility:`Frontend : accessibilité`,schemaChange:`Données : changement de schéma`,slowQuery:`Performance : requête lente`},testPane:{header:`Tester l'agent`,sampleTaskLabel:`Tâche d'exemple`,placeholder:`Décrivez ce que l'agent doit faire, ou choisissez un exemple ci-dessus.`,run:`Exécuter`,running:`Exécution…`,sandboxNote:`Exécution en sandbox ; aucun fichier écrit.`,tokens_one:`<mono>{{count}}</mono> token`,tokens_other:`<mono>{{count}}</mono> tokens`,tokensUnavailable:`Utilisation des tokens indisponible`,emptyHint:`Exécutez une tâche d'exemple sur le brouillon actuel. La sortie s'affiche ici.`},versions:{header:`Historique des versions`,empty:`Aucune version antérieure enregistrée pour cet agent.`,restoreHint:`Cliquez sur une version pour restaurer son corps dans l'éditeur (il faudra ensuite Enregistrer).`}},t={eyebrow:`Édition IA`,headline:`Affinez votre agent`,streamingHeadline:`Affinage de votre agent…`,placeholderInitial:`Décrivez comment affiner cet agent…`,placeholderFollowUp:`Envoyez un affinage complémentaire…`,viewCurrentBody:`Voir le corps actuel de l'agent`,appliedAsVersion:`Appliqué comme version {{version}}.`,openInStudio:`Ouvrir le brouillon dans le Studio pour l'éditer manuellement`,chips:{tightenTools:`Resserrer la liste d'outils`,stricterPersonality:`Rendre la personnalité plus stricte`,workflowSection:`Ajouter une section de protocole Workflow`,sharpenDescription:`Raccourcir et affûter la description`,matchDeveloperStyle:`S'aligner sur le style de sr-developer`}},n={validation:{missingBaseline:`Agent de base requis manquant : {{agent}}`,multipleDefaultRules:`Le routage admet au plus une règle par défaut ({{found}} trouvées)`,defaultRuleNotLast:`La règle de routage par défaut doit être la dernière entrée`,unknownRoutingAgent:`Le routage référence un agent absent de la chaîne : {{agent}}`,invalidTags:`La règle de routage {{agent}} a des tags invalides : {{tags}} (utilisez du kebab-case en minuscules)`},validationSummary_one:`{{count}} problème de validation`,validationSummary_other:`{{count}} problèmes de validation`,nameLabel:`Nom`,descriptionLabel:`Description`,descriptionPlaceholder:`À quoi sert ce profil ?`,orchestrator:{heading:`Orchestrateur`,description:`Modèle de premier niveau pour la commande implement. Chaque rail qu'elle exécute hérite de la chaîne d'agents de ce profil.`},agentChain:{heading:`Chaîne d'agents ({{n}})`,addTitle:`Ajouter un agent depuis le catalogue`,addDisabledTitle:`Tous les agents du catalogue sont déjà dans la chaîne`,pickFromCatalog:`Choisir dans le catalogue ({{n}} disponibles)`,emptyCatalog:`Plus aucun agent dans le catalogue. Ajoutez des agents personnalisés depuis l'onglet Catalogue d'agents.`,kind:{upstream:`upstream`,custom:`personnalisé`}},routing:{heading:`Routage ({{n}})`,addDefault:`Ajouter la règle par défaut`,addRule:`Ajouter une règle`,needAgentsTitle:`Ajoutez au moins un agent avant de créer des règles de routage`,explainer:`La première règle correspondante l'emporte. Les règles sont modifiables et supprimables, et la règle fourre-tout par défaut reste en dernier quand elle existe. Si le routage est vide, le pipeline se rabat sur le premier agent de type développeur de la chaîne.`,untargetedTitle:`Agents non ciblés dans la chaîne`,untargetedDetail:`Aucune règle de routage ne pointe vers : <mono>{{agents}}</mono>. Ajoutez une règle de tag ou reciblez la règle par défaut si vous voulez qu'ils s'exécutent.`},agentRow:{dragTitle:`Glisser pour réordonner`,dragHandleAria:`Poignée de glissement`,pinnedFirst:`premier`,pinnedFirstTitle:`Épinglé en première position — le pipeline commence toujours par sr-architect`,pinnedLast:`dernier`,pinnedLastTitle:`Épinglé en dernière position — la phase de merge s'exécute toujours en dernier`,required:`requis`,requiredRemoveTitle:`Agent de base requis — le pipeline dépend de cette ligne`},routingRow:{everythingElse:`tout le reste`,defaultTargetAria:`Cible de routage par défaut (core, lecture seule)`,defaultTargetTitle:`Repli core — non modifiable`,targetAria:`Cible de routage pour la règle {{ordinal}}`,editTitle:`Modifier la règle`,editAria:`Modifier la règle {{ordinal}}`,moveDown:`Descendre`,moveUp:`Monter`,coreDefaultBadge:`core · défaut`,coreDefaultTitle:`Repli core — la règle de dernier recours du pipeline, épinglée sur sr-developer`},legacyWorkflowNotice:`Les paramètres de l’orchestrateur et du routage s’appliquent aux anciens workflows. Les workflows Core utilisent les rôles sélectionnés dans l’éditeur de loops.`},r={coreBadge:`core`,agents:{"sr-architect":{name:`Architecte`,description:`Conception d'architecture, specs de changement, planification d'implémentation`},"sr-developer":{name:`Développeur`,description:`Implémentation full-stack sur toutes les couches`},"sr-reviewer":{name:`Relecteur`,description:`Revue de code générale — l'ultime contrôle qualité`}},coreTeamTitle:`Votre équipe d'agents`,coreTeamNote:`Ces trois rôles de base sont définis par le runtime specrails-core — rien à installer ni à choisir. Ajoutez des spécialistes plus tard via des profils et des agents custom-*.`},i={"security-reviewer":{label:`Relecteur Sécurité`,blurb:`Détecte les bugs d'authentification, d'injection et d'exposition de données dans un diff avant livraison.`},"performance-profiler":{label:`Profileur de performance`,blurb:`Repère les hot paths, les requêtes N+1, les boucles non bornées, le gonflement du bundle.`},"data-engineer":{label:`Data Engineer`,blurb:`Migrations de schéma, pipelines ETL, transformations de données.`},"ui-ux-polisher":{label:`Polisseur UI / UX`,blurb:`Accessibilité, espacement, états vides, gestion des erreurs.`},"api-designer":{label:`Concepteur d'API`,blurb:`Versionnage, pagination, formats d'erreur, rétrocompatibilité.`},"database-architect":{label:`Architecte base de données`,blurb:`Index, normalisation vs dénormalisation, formes de requêtes.`},"devops-sre":{label:`DevOps / SRE`,blurb:`CI/CD, observabilité, préparation aux incidents, runbooks.`},"mobile-engineer":{label:`Ingénieur Mobile`,blurb:`Patterns iOS + Android, offline-first, sobriété batterie.`},"ml-engineer":{label:`Ingénieur ML`,blurb:`Pipelines, éval, reproductibilité, surveillance du drift.`},"accessibility-auditor":{label:`Auditeur Accessibilité`,blurb:`Revue WCAG 2.2 : contraste, focus, ARIA, clavier.`},"qa-test-strategist":{label:`Stratège de tests QA`,blurb:`Plans de test : répartition unitaires / intégration / E2E, lacunes de couverture.`},"load-tester":{label:`Testeur de charge / stress`,blurb:`Planification de capacité, scénarios k6 / Locust, chasse aux goulots d'étranglement.`},"integration-tester":{label:`Testeur d'intégration`,blurb:`Contrats inter-services, fixtures, réduction des tests flaky.`},"regression-hunter":{label:`Chasseur de régressions`,blurb:`Bisecte, reproduit, écrit d'abord le test qui échoue.`},"data-analyst":{label:`Data Analyst`,blurb:`Transforme des questions vagues en requêtes + conclusions lisibles.`},"etl-reviewer":{label:`Relecteur de pipeline ETL`,blurb:`Idempotence, backfills, données tardives.`},"dashboard-designer":{label:`Concepteur de dashboards`,blurb:`Dashboards lisibles d'un coup d'œil, axes honnêtes, une action par graphique.`},"iac-reviewer":{label:`Relecteur IaC / Cloud`,blurb:`Terraform / CloudFormation : IAM, exposition publique, coûts.`},"compliance-reviewer":{label:`Relecteur Conformité`,blurb:`Contrôles type RGPD / SOC2 / HIPAA sur les flux de données.`},"threat-modeler":{label:`Modélisateur de menaces`,blurb:`STRIDE / LINDDUN sur les diagrammes d'architecture.`},"product-manager":{label:`Product Manager`,blurb:`Cadrage du problème, PRD, priorisation.`},"ux-researcher":{label:`Chercheur UX`,blurb:`Scripts d'entretien, plans de tests d'utilisabilité, synthèse.`},"technical-writer":{label:`Rédacteur technique`,blurb:`Des docs qu'on lit vraiment — tutoriels, références, changelogs.`},"design-reviewer":{label:`Relecteur Design System`,blurb:`Dérive des tokens, mauvais usage des composants, cohérence entre les flux.`},"financial-analyst":{label:`Analyste financier`,blurb:`Unit economics, modèles de cohortes, analyse de scénarios.`},"pricing-strategist":{label:`Stratège Pricing`,blurb:`Paliers, packaging, études de disposition à payer.`},"market-researcher":{label:`Chargé d'études de marché`,blurb:`TAM/SAM/SOM, cartographies concurrentielles, segments clients.`},"ops-optimizer":{label:`Optimiseur des opérations`,blurb:`Temps de cycle, détection des goulots, candidats à l'automatisation.`},"seo-auditor":{label:`Auditeur SEO`,blurb:`SEO technique + contenu : indexabilité, architecture de l'information, adéquation à l'intention.`},"growth-hacker":{label:`Expérimentateur Growth`,blurb:`Diagnostic de funnel, expériences d'uplift, boucles d'activation.`},"social-strategist":{label:`Stratège réseaux sociaux`,blurb:`Contenu adapté au canal, calendrier éditorial, cohérence de la voix.`},"literature-reviewer":{label:`Relecteur de littérature`,blurb:`Synthèses de revues systématiques, graphes de citations, conflits.`},"experiment-designer":{label:`Concepteur d'expériences`,blurb:`Hypothèses, contrôles, taille d'échantillon, préenregistrement.`},"statistical-analyst":{label:`Analyste statistique`,blurb:`Choisit le bon test, rapporte les tailles d'effet, pas seulement les p-values.`},"scientific-writer":{label:`Rédacteur scientifique`,blurb:`Structure IMRaD, limites honnêtes, abstracts lisibles.`},"curriculum-designer":{label:`Concepteur de cursus`,blurb:`Objectifs d'apprentissage → activités → évaluation.`},"assessment-author":{label:`Auteur d'évaluations`,blurb:`Des questions qui mesurent la compréhension, pas la mémorisation.`},"tutor-explainer":{label:`Tuteur / Vulgarisateur`,blurb:`Explications simples façon Feynman, avec exemples corrigés.`},"clinical-guideline-reviewer":{label:`Relecteur de recommandations cliniques`,blurb:`Confronte la pratique aux dernières recommandations fondées sur les preuves.`},"medical-summarizer":{label:`Synthétiseur de littérature médicale`,blurb:`Des abstracts pour les cliniciens : ce qui change, qualité des preuves.`},"protocol-designer":{label:`Concepteur de protocoles`,blurb:`Protocoles cliniques : critères de jugement, critères d'inclusion, sécurité.`},"contract-reviewer":{label:`Relecteur de contrats`,blurb:`Signale les clauses à risque ; explique ce qu'elles veulent vraiment dire.`},"privacy-counsel":{label:`Conseil en confidentialité`,blurb:`RGPD / CCPA / LGPD appliqués à des flux concrets.`},"copy-editor":{label:`Réviseur éditorial`,blurb:`Corrections fines : voix, rythme, couper 30 % sans perdre le sens.`},"brand-voice-guardian":{label:`Gardien de la voix de marque`,blurb:`Fait respecter les règles de ton ; repère les formulations hors marque.`},"creative-brainstormer":{label:`Brainstormer créatif`,blurb:`Divergent puis convergent ; tue les vaches sacrées avec tact.`},"hiring-interviewer":{label:`Intervieweur de recrutement`,blurb:`Entretiens structurés, axés sur le signal, attentifs aux biais.`},"strategic-planner":{label:`Planificateur stratégique`,blurb:`Objectifs → paris → métriques ; élague les projets fétiches.`},"coach-1on1":{label:`Coach 1:1`,blurb:`Aide à cadrer le feedback, l'évolution de carrière, les conversations difficiles.`},"meeting-facilitator":{label:`Facilitateur de réunions`,blurb:`Des ordres du jour qui produisent des décisions, pas des points d'étape.`}},a={studio:e,refine:t,profileEditor:n,agentSelector:r,templates:i};export{r as agentSelector,a as default,n as profileEditor,t as refine,e as studio,i as templates};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={loadingAgent:`Agent wird geladen…`,modeCreate:`Neuer Custom-Agent`,modeEdit:`Custom-Agent bearbeiten`,create:`Erstellen`,unsaved:`● ungespeichert`,resumeAiEdit:`AI Edit fortsetzen`,resumeAiEditTitle:`Diesen Entwurf zurück an das AI-Edit-Overlay übergeben`,loadingAiDraft:`KI-Entwurf wird geladen…`,testButton:`Testen`,testButtonTitle:`Diesen Agent mit einer Beispielaufgabe testen`,historyButton:`Verlauf`,historyButtonTitle:`Versionsverlauf`,deleteConfirm:{title:`Agent „{{agentId}}“ löschen?`,description:`Entfernt die .md-Datei von der Festplatte. Der Versionsverlauf bleibt in der DB erhalten – verwenden Sie einen neuen Custom-Agent, um den Inhalt später wiederherzustellen.`},errors:{loadDraftFailed:`Entwurf konnte nicht geladen werden: {{status}}`,loadFailed:`Laden fehlgeschlagen: {{status}}`,saveFailed:`Speichern fehlgeschlagen: {{status}}`,deleteFailed:`Löschen fehlgeschlagen: {{status}}`,testFailed:`Test fehlgeschlagen: {{status}}`},toasts:{agentCreated:`Agent erstellt`,agentSaved:`Agent gespeichert`,agentDeleted:`Agent gelöscht`,createFailed:`Agent konnte nicht erstellt werden`,saveFailed:`Agent konnte nicht gespeichert werden`,deleteFailed:`Agent konnte nicht gelöscht werden`},validation:{namePattern:`Der Name muss mit <code>custom-</code> beginnen und darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten.`,missingFrontmatter:`YAML-Frontmatter fehlt (benötigt öffnendes <code>---</code> in der ersten Zeile).`},sampleTasks:{pick:`– Beispielaufgabe wählen –`,terraform:`Terraform: öffentlicher S3-Bucket`,sqlInjection:`Code-Review: SQL-Injection`,accessibility:`Frontend: Barrierefreiheit`,schemaChange:`Daten: Schemaänderung`,slowQuery:`Performance: langsame Query`},testPane:{header:`Agent testen`,sampleTaskLabel:`Beispielaufgabe`,placeholder:`Beschreiben Sie, was der Agent tun soll, oder wählen Sie oben ein Beispiel.`,run:`Ausführen`,running:`Läuft…`,sandboxNote:`Sandbox-Modus; es werden keine Dateien geschrieben.`,tokens_one:`<mono>{{count}}</mono> Token`,tokens_other:`<mono>{{count}}</mono> Tokens`,tokensUnavailable:`Token-Nutzung nicht verfügbar`,emptyHint:`Führen Sie eine Beispielaufgabe gegen den aktuellen Entwurf aus. Die Ausgabe erscheint hier.`},versions:{header:`Versionsverlauf`,empty:`Keine früheren Versionen für diesen Agent vorhanden.`,restoreHint:`Klicken Sie auf eine Version, um ihren Inhalt in den Editor zu übernehmen (Speichern ist weiterhin nötig).`}},t={eyebrow:`AI Edit`,headline:`Agent verfeinern`,streamingHeadline:`Agent wird verfeinert…`,placeholderInitial:`Beschreiben Sie, wie dieser Agent verfeinert werden soll…`,placeholderFollowUp:`Weitere Verfeinerung senden…`,viewCurrentBody:`Aktuellen Agent-Inhalt anzeigen`,appliedAsVersion:`Als Version {{version}} übernommen.`,openInStudio:`Entwurf im Studio zur manuellen Bearbeitung öffnen`,chips:{tightenTools:`Tool-Liste straffen`,stricterPersonality:`Persönlichkeit strenger machen`,workflowSection:`Abschnitt mit Workflow-Protokoll hinzufügen`,sharpenDescription:`Beschreibung kürzen und schärfen`,matchDeveloperStyle:`An den sr-developer-Stil angleichen`}},n={validation:{missingBaseline:`Erforderlicher Baseline-Agent fehlt: {{agent}}`,multipleDefaultRules:`Routing darf höchstens eine Standardregel haben ({{found}} gefunden)`,defaultRuleNotLast:`Die Standard-Routing-Regel muss der letzte Eintrag sein`,unknownRoutingAgent:`Routing verweist auf einen Agent, der nicht in der Kette ist: {{agent}}`,invalidTags:`Routing-Regel {{agent}} hat ungültige Tags: {{tags}} (Kleinbuchstaben in kebab-case verwenden)`},validationSummary_one:`{{count}} Validierungsproblem`,validationSummary_other:`{{count}} Validierungsprobleme`,nameLabel:`Name`,descriptionLabel:`Beschreibung`,descriptionPlaceholder:`Wofür ist dieses Profil?`,orchestrator:{heading:`Orchestrator`,description:`Top-Level-Modell für den implement-Befehl. Jede damit gestartete Rail erbt die Agenten-Kette dieses Profils.`},agentChain:{heading:`Agenten-Kette ({{n}})`,addTitle:`Agent aus dem Katalog hinzufügen`,addDisabledTitle:`Alle Katalog-Agenten sind bereits in der Kette`,pickFromCatalog:`Aus Katalog wählen ({{n}} verfügbar)`,emptyCatalog:`Keine weiteren Agenten im Katalog. Fügen Sie Custom-Agenten über den Tab „Agenten-Katalog“ hinzu.`,kind:{upstream:`upstream`,custom:`custom`}},routing:{heading:`Routing ({{n}})`,addDefault:`Standard hinzufügen`,addRule:`Regel hinzufügen`,needAgentsTitle:`Fügen Sie mindestens einen Agent hinzu, bevor Sie Routing-Regeln erstellen`,explainer:`Die erste passende Regel gewinnt. Regeln sind bearbeitbar und entfernbar; die Standard-Catch-all-Regel bleibt am Ende, sofern vorhanden. Bleibt das Routing leer, fällt die Pipeline auf den ersten Developer-artigen Agent in der Kette zurück.`,untargetedTitle:`Nicht angesteuerte Agenten in der Kette`,untargetedDetail:`Keine Routing-Regel zeigt auf: <mono>{{agents}}</mono>. Fügen Sie eine Tag-Regel hinzu oder ändern Sie das Ziel der Standardregel, damit sie ausgeführt werden.`},agentRow:{dragTitle:`Zum Umsortieren ziehen`,dragHandleAria:`Ziehgriff`,pinnedFirst:`Anfang`,pinnedFirstTitle:`An erster Position fixiert – die Pipeline beginnt immer mit sr-architect`,pinnedLast:`Ende`,pinnedLastTitle:`An letzter Position fixiert – die Merge-Phase läuft immer zuletzt`,required:`erforderlich`,requiredRemoveTitle:`Erforderlicher Baseline-Agent – die Pipeline hängt von dieser Zeile ab`},routingRow:{everythingElse:`alles andere`,defaultTargetAria:`Standard-Routing-Ziel (Core, schreibgeschützt)`,defaultTargetTitle:`Core-Fallback – nicht bearbeitbar`,targetAria:`Routing-Ziel für Regel {{ordinal}}`,editTitle:`Regel bearbeiten`,editAria:`Regel {{ordinal}} bearbeiten`,moveDown:`Nach unten`,moveUp:`Nach oben`,coreDefaultBadge:`Core · Standard`,coreDefaultTitle:`Core-Fallback – die letzte Auffangregel der Pipeline, fest auf sr-developer`},legacyWorkflowNotice:`Orchestrator- und Routing-Einstellungen gelten für ältere Workflows. Core-Workflows verwenden die im Loop Builder ausgewählten Rollen.`},r={coreBadge:`core`,agents:{"sr-architect":{name:`Architekt`,description:`Architekturdesign, Change-Specs, Implementierungsplanung`},"sr-developer":{name:`Entwickler`,description:`Full-Stack-Implementierung über alle Schichten`},"sr-reviewer":{name:`Reviewer`,description:`Allgemeines Code-Review – das letzte Quality-Gate`}},coreTeamTitle:`Dein Agenten-Team`,coreTeamNote:`Diese drei Kern-Agenten werden immer installiert — nichts auszuwählen. Füge Spezialisten später über Profile und custom-*-Agenten hinzu.`},i={"security-reviewer":{label:`Security-Reviewer`,blurb:`Findet Auth-, Injection- und Datenleck-Bugs in einem Diff, bevor er ausgeliefert wird.`},"performance-profiler":{label:`Performance-Profiler`,blurb:`Findet Hot Paths, N+1-Queries, unbegrenzte Schleifen, Bundle-Bloat.`},"data-engineer":{label:`Data Engineer`,blurb:`Schema-Migrationen, ETL-Pipelines, Datentransformationen.`},"ui-ux-polisher":{label:`UI-/UX-Polisher`,blurb:`Barrierefreiheit, Abstände, Leerzustände, Fehlerbehandlung.`},"api-designer":{label:`API-Designer`,blurb:`Versionierung, Pagination, Fehlerformate, Abwärtskompatibilität.`},"database-architect":{label:`Datenbank-Architekt`,blurb:`Indizes, Normalisierung vs. Denormalisierung, Query-Formen.`},"devops-sre":{label:`DevOps / SRE`,blurb:`CI/CD, Observability, Incident-Bereitschaft, Runbooks.`},"mobile-engineer":{label:`Mobile Engineer`,blurb:`iOS- und Android-Patterns, Offline-first, akkuschonend.`},"ml-engineer":{label:`ML Engineer`,blurb:`Pipelines, Evaluation, Reproduzierbarkeit, Drift-Monitoring.`},"accessibility-auditor":{label:`Accessibility-Auditor`,blurb:`WCAG-2.2-Review: Kontrast, Fokus, ARIA, Tastatur.`},"qa-test-strategist":{label:`QA-Test-Stratege`,blurb:`Testpläne: Aufteilung Unit / Integration / E2E, Coverage-Lücken.`},"load-tester":{label:`Last-/Stresstester`,blurb:`Kapazitätsplanung, k6-/Locust-Szenarien, Engpasssuche.`},"integration-tester":{label:`Integrationstester`,blurb:`Service-übergreifende Contracts, Fixtures, weniger Flaky-Tests.`},"regression-hunter":{label:`Regressionsjäger`,blurb:`Bisektiert, reproduziert, schreibt zuerst den fehlschlagenden Test.`},"data-analyst":{label:`Data Analyst`,blurb:`Macht aus vagen Fragen Queries und lesbare Erkenntnisse.`},"etl-reviewer":{label:`ETL-Pipeline-Reviewer`,blurb:`Idempotenz, Backfills, verspätet eintreffende Daten.`},"dashboard-designer":{label:`Dashboard-Designer`,blurb:`Dashboards auf einen Blick, ehrliche Achsen, eine Aktion pro Chart.`},"iac-reviewer":{label:`IaC-/Cloud-Reviewer`,blurb:`Terraform / CloudFormation: IAM, öffentliche Exposition, Kosten.`},"compliance-reviewer":{label:`Compliance-Reviewer`,blurb:`DSGVO- / SOC2- / HIPAA-nahe Prüfungen von Datenflüssen.`},"threat-modeler":{label:`Threat Modeler`,blurb:`STRIDE / LINDDUN über Architekturdiagramme.`},"product-manager":{label:`Product Manager`,blurb:`Problem-Framing, PRDs, Priorisierung.`},"ux-researcher":{label:`UX-Researcher`,blurb:`Interviewleitfäden, Usability-Testpläne, Synthese.`},"technical-writer":{label:`Technical Writer`,blurb:`Doku, die wirklich gelesen wird – Tutorials, Referenzen, Changelogs.`},"design-reviewer":{label:`Designsystem-Reviewer`,blurb:`Token-Drift, Komponenten-Fehlgebrauch, Konsistenz über Flows hinweg.`},"financial-analyst":{label:`Finanzanalyst`,blurb:`Unit Economics, Kohortenmodelle, Szenarioanalysen.`},"pricing-strategist":{label:`Pricing-Stratege`,blurb:`Tiering, Packaging, Zahlungsbereitschaftsstudien.`},"market-researcher":{label:`Marktforscher`,blurb:`TAM/SAM/SOM, Wettbewerbskarten, Kundensegmente.`},"ops-optimizer":{label:`Operations-Optimierer`,blurb:`Durchlaufzeiten, Engpasssuche, Automatisierungskandidaten.`},"seo-auditor":{label:`SEO-Auditor`,blurb:`Technisches und Content-SEO: Indexierbarkeit, IA, Suchintention.`},"growth-hacker":{label:`Growth-Experimentierer`,blurb:`Funnel-Diagnose, Lift-Experimente, Aktivierungsschleifen.`},"social-strategist":{label:`Social-Media-Stratege`,blurb:`Kanalgerechter Content, Redaktionskalender, konsistente Stimme.`},"literature-reviewer":{label:`Literatur-Reviewer`,blurb:`Zusammenfassungen systematischer Reviews, Zitationsgraphen, Konflikte.`},"experiment-designer":{label:`Experiment-Designer`,blurb:`Hypothesen, Kontrollgruppen, Stichprobengröße, Präregistrierung.`},"statistical-analyst":{label:`Statistik-Analyst`,blurb:`Wählt den richtigen Test, berichtet Effektstärken statt nur p-Werte.`},"scientific-writer":{label:`Wissenschaftsautor`,blurb:`IMRaD-Struktur, ehrliche Limitationen, lesbare Abstracts.`},"curriculum-designer":{label:`Curriculum-Designer`,blurb:`Lernziele → Aktivitäten → Bewertung.`},"assessment-author":{label:`Prüfungsautor`,blurb:`Aufgaben, die Verständnis messen, nicht Auswendiglernen.`},"tutor-explainer":{label:`Tutor / Erklärer`,blurb:`Einfache Erklärungen im Feynman-Stil mit durchgerechneten Beispielen.`},"clinical-guideline-reviewer":{label:`Reviewer klinischer Leitlinien`,blurb:`Gleicht die Praxis mit den neuesten evidenzbasierten Leitlinien ab.`},"medical-summarizer":{label:`Zusammenfasser medizinischer Literatur`,blurb:`Abstracts für Klinikpersonal: was sich geändert hat, Evidenzqualität.`},"protocol-designer":{label:`Protokoll-Designer`,blurb:`Klinische Protokolle: Endpunkte, Einschlusskriterien, Sicherheit.`},"contract-reviewer":{label:`Vertragsprüfer`,blurb:`Markiert riskante Klauseln und erklärt, was sie wirklich bedeuten.`},"privacy-counsel":{label:`Datenschutzberater`,blurb:`DSGVO / CCPA / LGPD angewendet auf konkrete Datenflüsse.`},"copy-editor":{label:`Lektor`,blurb:`Zeilenlektorat: Stimme, Rhythmus, 30 % kürzen ohne Bedeutungsverlust.`},"brand-voice-guardian":{label:`Markenstimme-Wächter`,blurb:`Setzt Voice-Regeln durch; erkennt markenfremde Formulierungen.`},"creative-brainstormer":{label:`Kreativ-Brainstormer`,blurb:`Erst divergent, dann konvergent; schlachtet heilige Kühe höflich.`},"hiring-interviewer":{label:`Hiring-Interviewer`,blurb:`Strukturierte Interviews, signalfokussiert, bias-bewusst.`},"strategic-planner":{label:`Strategieplaner`,blurb:`Ziele → Wetten → Metriken; streicht Lieblingsprojekte.`},"coach-1on1":{label:`1:1-Coach`,blurb:`Hilft bei Feedback, Karriereentwicklung und schwierigen Gesprächen.`},"meeting-facilitator":{label:`Meeting-Moderator`,blurb:`Agenden, die Entscheidungen liefern statt Status-Updates.`}},a={studio:e,refine:t,profileEditor:n,agentSelector:r,templates:i};export{r as agentSelector,a as default,n as profileEditor,t as refine,e as studio,i as templates};
|
|
1
|
+
var e={loadingAgent:`Agent wird geladen…`,modeCreate:`Neuer Custom-Agent`,modeEdit:`Custom-Agent bearbeiten`,create:`Erstellen`,unsaved:`● ungespeichert`,resumeAiEdit:`AI Edit fortsetzen`,resumeAiEditTitle:`Diesen Entwurf zurück an das AI-Edit-Overlay übergeben`,loadingAiDraft:`KI-Entwurf wird geladen…`,testButton:`Testen`,testButtonTitle:`Diesen Agent mit einer Beispielaufgabe testen`,historyButton:`Verlauf`,historyButtonTitle:`Versionsverlauf`,deleteConfirm:{title:`Agent „{{agentId}}“ löschen?`,description:`Entfernt die .md-Datei von der Festplatte. Der Versionsverlauf bleibt in der DB erhalten – verwenden Sie einen neuen Custom-Agent, um den Inhalt später wiederherzustellen.`},errors:{loadDraftFailed:`Entwurf konnte nicht geladen werden: {{status}}`,loadFailed:`Laden fehlgeschlagen: {{status}}`,saveFailed:`Speichern fehlgeschlagen: {{status}}`,deleteFailed:`Löschen fehlgeschlagen: {{status}}`,testFailed:`Test fehlgeschlagen: {{status}}`},toasts:{agentCreated:`Agent erstellt`,agentSaved:`Agent gespeichert`,agentDeleted:`Agent gelöscht`,createFailed:`Agent konnte nicht erstellt werden`,saveFailed:`Agent konnte nicht gespeichert werden`,deleteFailed:`Agent konnte nicht gelöscht werden`},validation:{namePattern:`Der Name muss mit <code>custom-</code> beginnen und darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten.`,missingFrontmatter:`YAML-Frontmatter fehlt (benötigt öffnendes <code>---</code> in der ersten Zeile).`},sampleTasks:{pick:`– Beispielaufgabe wählen –`,terraform:`Terraform: öffentlicher S3-Bucket`,sqlInjection:`Code-Review: SQL-Injection`,accessibility:`Frontend: Barrierefreiheit`,schemaChange:`Daten: Schemaänderung`,slowQuery:`Performance: langsame Query`},testPane:{header:`Agent testen`,sampleTaskLabel:`Beispielaufgabe`,placeholder:`Beschreiben Sie, was der Agent tun soll, oder wählen Sie oben ein Beispiel.`,run:`Ausführen`,running:`Läuft…`,sandboxNote:`Sandbox-Modus; es werden keine Dateien geschrieben.`,tokens_one:`<mono>{{count}}</mono> Token`,tokens_other:`<mono>{{count}}</mono> Tokens`,tokensUnavailable:`Token-Nutzung nicht verfügbar`,emptyHint:`Führen Sie eine Beispielaufgabe gegen den aktuellen Entwurf aus. Die Ausgabe erscheint hier.`},versions:{header:`Versionsverlauf`,empty:`Keine früheren Versionen für diesen Agent vorhanden.`,restoreHint:`Klicken Sie auf eine Version, um ihren Inhalt in den Editor zu übernehmen (Speichern ist weiterhin nötig).`}},t={eyebrow:`AI Edit`,headline:`Agent verfeinern`,streamingHeadline:`Agent wird verfeinert…`,placeholderInitial:`Beschreiben Sie, wie dieser Agent verfeinert werden soll…`,placeholderFollowUp:`Weitere Verfeinerung senden…`,viewCurrentBody:`Aktuellen Agent-Inhalt anzeigen`,appliedAsVersion:`Als Version {{version}} übernommen.`,openInStudio:`Entwurf im Studio zur manuellen Bearbeitung öffnen`,chips:{tightenTools:`Tool-Liste straffen`,stricterPersonality:`Persönlichkeit strenger machen`,workflowSection:`Abschnitt mit Workflow-Protokoll hinzufügen`,sharpenDescription:`Beschreibung kürzen und schärfen`,matchDeveloperStyle:`An den sr-developer-Stil angleichen`}},n={validation:{missingBaseline:`Erforderlicher Baseline-Agent fehlt: {{agent}}`,multipleDefaultRules:`Routing darf höchstens eine Standardregel haben ({{found}} gefunden)`,defaultRuleNotLast:`Die Standard-Routing-Regel muss der letzte Eintrag sein`,unknownRoutingAgent:`Routing verweist auf einen Agent, der nicht in der Kette ist: {{agent}}`,invalidTags:`Routing-Regel {{agent}} hat ungültige Tags: {{tags}} (Kleinbuchstaben in kebab-case verwenden)`},validationSummary_one:`{{count}} Validierungsproblem`,validationSummary_other:`{{count}} Validierungsprobleme`,nameLabel:`Name`,descriptionLabel:`Beschreibung`,descriptionPlaceholder:`Wofür ist dieses Profil?`,orchestrator:{heading:`Orchestrator`,description:`Top-Level-Modell für den implement-Befehl. Jede damit gestartete Rail erbt die Agenten-Kette dieses Profils.`},agentChain:{heading:`Agenten-Kette ({{n}})`,addTitle:`Agent aus dem Katalog hinzufügen`,addDisabledTitle:`Alle Katalog-Agenten sind bereits in der Kette`,pickFromCatalog:`Aus Katalog wählen ({{n}} verfügbar)`,emptyCatalog:`Keine weiteren Agenten im Katalog. Fügen Sie Custom-Agenten über den Tab „Agenten-Katalog“ hinzu.`,kind:{upstream:`upstream`,custom:`custom`}},routing:{heading:`Routing ({{n}})`,addDefault:`Standard hinzufügen`,addRule:`Regel hinzufügen`,needAgentsTitle:`Fügen Sie mindestens einen Agent hinzu, bevor Sie Routing-Regeln erstellen`,explainer:`Die erste passende Regel gewinnt. Regeln sind bearbeitbar und entfernbar; die Standard-Catch-all-Regel bleibt am Ende, sofern vorhanden. Bleibt das Routing leer, fällt die Pipeline auf den ersten Developer-artigen Agent in der Kette zurück.`,untargetedTitle:`Nicht angesteuerte Agenten in der Kette`,untargetedDetail:`Keine Routing-Regel zeigt auf: <mono>{{agents}}</mono>. Fügen Sie eine Tag-Regel hinzu oder ändern Sie das Ziel der Standardregel, damit sie ausgeführt werden.`},agentRow:{dragTitle:`Zum Umsortieren ziehen`,dragHandleAria:`Ziehgriff`,pinnedFirst:`Anfang`,pinnedFirstTitle:`An erster Position fixiert – die Pipeline beginnt immer mit sr-architect`,pinnedLast:`Ende`,pinnedLastTitle:`An letzter Position fixiert – die Merge-Phase läuft immer zuletzt`,required:`erforderlich`,requiredRemoveTitle:`Erforderlicher Baseline-Agent – die Pipeline hängt von dieser Zeile ab`},routingRow:{everythingElse:`alles andere`,defaultTargetAria:`Standard-Routing-Ziel (Core, schreibgeschützt)`,defaultTargetTitle:`Core-Fallback – nicht bearbeitbar`,targetAria:`Routing-Ziel für Regel {{ordinal}}`,editTitle:`Regel bearbeiten`,editAria:`Regel {{ordinal}} bearbeiten`,moveDown:`Nach unten`,moveUp:`Nach oben`,coreDefaultBadge:`Core · Standard`,coreDefaultTitle:`Core-Fallback – die letzte Auffangregel der Pipeline, fest auf sr-developer`},legacyWorkflowNotice:`Orchestrator- und Routing-Einstellungen gelten für ältere Workflows. Core-Workflows verwenden die im Loop Builder ausgewählten Rollen.`},r={coreBadge:`core`,agents:{"sr-architect":{name:`Architekt`,description:`Architekturdesign, Change-Specs, Implementierungsplanung`},"sr-developer":{name:`Entwickler`,description:`Full-Stack-Implementierung über alle Schichten`},"sr-reviewer":{name:`Reviewer`,description:`Allgemeines Code-Review – das letzte Quality-Gate`}},coreTeamTitle:`Dein Agenten-Team`,coreTeamNote:`Diese drei Kernrollen werden von der specrails-core-Laufzeit definiert — nichts zu installieren oder auszuwählen. Füge Spezialisten später über Profile und custom-*-Agenten hinzu.`},i={"security-reviewer":{label:`Security-Reviewer`,blurb:`Findet Auth-, Injection- und Datenleck-Bugs in einem Diff, bevor er ausgeliefert wird.`},"performance-profiler":{label:`Performance-Profiler`,blurb:`Findet Hot Paths, N+1-Queries, unbegrenzte Schleifen, Bundle-Bloat.`},"data-engineer":{label:`Data Engineer`,blurb:`Schema-Migrationen, ETL-Pipelines, Datentransformationen.`},"ui-ux-polisher":{label:`UI-/UX-Polisher`,blurb:`Barrierefreiheit, Abstände, Leerzustände, Fehlerbehandlung.`},"api-designer":{label:`API-Designer`,blurb:`Versionierung, Pagination, Fehlerformate, Abwärtskompatibilität.`},"database-architect":{label:`Datenbank-Architekt`,blurb:`Indizes, Normalisierung vs. Denormalisierung, Query-Formen.`},"devops-sre":{label:`DevOps / SRE`,blurb:`CI/CD, Observability, Incident-Bereitschaft, Runbooks.`},"mobile-engineer":{label:`Mobile Engineer`,blurb:`iOS- und Android-Patterns, Offline-first, akkuschonend.`},"ml-engineer":{label:`ML Engineer`,blurb:`Pipelines, Evaluation, Reproduzierbarkeit, Drift-Monitoring.`},"accessibility-auditor":{label:`Accessibility-Auditor`,blurb:`WCAG-2.2-Review: Kontrast, Fokus, ARIA, Tastatur.`},"qa-test-strategist":{label:`QA-Test-Stratege`,blurb:`Testpläne: Aufteilung Unit / Integration / E2E, Coverage-Lücken.`},"load-tester":{label:`Last-/Stresstester`,blurb:`Kapazitätsplanung, k6-/Locust-Szenarien, Engpasssuche.`},"integration-tester":{label:`Integrationstester`,blurb:`Service-übergreifende Contracts, Fixtures, weniger Flaky-Tests.`},"regression-hunter":{label:`Regressionsjäger`,blurb:`Bisektiert, reproduziert, schreibt zuerst den fehlschlagenden Test.`},"data-analyst":{label:`Data Analyst`,blurb:`Macht aus vagen Fragen Queries und lesbare Erkenntnisse.`},"etl-reviewer":{label:`ETL-Pipeline-Reviewer`,blurb:`Idempotenz, Backfills, verspätet eintreffende Daten.`},"dashboard-designer":{label:`Dashboard-Designer`,blurb:`Dashboards auf einen Blick, ehrliche Achsen, eine Aktion pro Chart.`},"iac-reviewer":{label:`IaC-/Cloud-Reviewer`,blurb:`Terraform / CloudFormation: IAM, öffentliche Exposition, Kosten.`},"compliance-reviewer":{label:`Compliance-Reviewer`,blurb:`DSGVO- / SOC2- / HIPAA-nahe Prüfungen von Datenflüssen.`},"threat-modeler":{label:`Threat Modeler`,blurb:`STRIDE / LINDDUN über Architekturdiagramme.`},"product-manager":{label:`Product Manager`,blurb:`Problem-Framing, PRDs, Priorisierung.`},"ux-researcher":{label:`UX-Researcher`,blurb:`Interviewleitfäden, Usability-Testpläne, Synthese.`},"technical-writer":{label:`Technical Writer`,blurb:`Doku, die wirklich gelesen wird – Tutorials, Referenzen, Changelogs.`},"design-reviewer":{label:`Designsystem-Reviewer`,blurb:`Token-Drift, Komponenten-Fehlgebrauch, Konsistenz über Flows hinweg.`},"financial-analyst":{label:`Finanzanalyst`,blurb:`Unit Economics, Kohortenmodelle, Szenarioanalysen.`},"pricing-strategist":{label:`Pricing-Stratege`,blurb:`Tiering, Packaging, Zahlungsbereitschaftsstudien.`},"market-researcher":{label:`Marktforscher`,blurb:`TAM/SAM/SOM, Wettbewerbskarten, Kundensegmente.`},"ops-optimizer":{label:`Operations-Optimierer`,blurb:`Durchlaufzeiten, Engpasssuche, Automatisierungskandidaten.`},"seo-auditor":{label:`SEO-Auditor`,blurb:`Technisches und Content-SEO: Indexierbarkeit, IA, Suchintention.`},"growth-hacker":{label:`Growth-Experimentierer`,blurb:`Funnel-Diagnose, Lift-Experimente, Aktivierungsschleifen.`},"social-strategist":{label:`Social-Media-Stratege`,blurb:`Kanalgerechter Content, Redaktionskalender, konsistente Stimme.`},"literature-reviewer":{label:`Literatur-Reviewer`,blurb:`Zusammenfassungen systematischer Reviews, Zitationsgraphen, Konflikte.`},"experiment-designer":{label:`Experiment-Designer`,blurb:`Hypothesen, Kontrollgruppen, Stichprobengröße, Präregistrierung.`},"statistical-analyst":{label:`Statistik-Analyst`,blurb:`Wählt den richtigen Test, berichtet Effektstärken statt nur p-Werte.`},"scientific-writer":{label:`Wissenschaftsautor`,blurb:`IMRaD-Struktur, ehrliche Limitationen, lesbare Abstracts.`},"curriculum-designer":{label:`Curriculum-Designer`,blurb:`Lernziele → Aktivitäten → Bewertung.`},"assessment-author":{label:`Prüfungsautor`,blurb:`Aufgaben, die Verständnis messen, nicht Auswendiglernen.`},"tutor-explainer":{label:`Tutor / Erklärer`,blurb:`Einfache Erklärungen im Feynman-Stil mit durchgerechneten Beispielen.`},"clinical-guideline-reviewer":{label:`Reviewer klinischer Leitlinien`,blurb:`Gleicht die Praxis mit den neuesten evidenzbasierten Leitlinien ab.`},"medical-summarizer":{label:`Zusammenfasser medizinischer Literatur`,blurb:`Abstracts für Klinikpersonal: was sich geändert hat, Evidenzqualität.`},"protocol-designer":{label:`Protokoll-Designer`,blurb:`Klinische Protokolle: Endpunkte, Einschlusskriterien, Sicherheit.`},"contract-reviewer":{label:`Vertragsprüfer`,blurb:`Markiert riskante Klauseln und erklärt, was sie wirklich bedeuten.`},"privacy-counsel":{label:`Datenschutzberater`,blurb:`DSGVO / CCPA / LGPD angewendet auf konkrete Datenflüsse.`},"copy-editor":{label:`Lektor`,blurb:`Zeilenlektorat: Stimme, Rhythmus, 30 % kürzen ohne Bedeutungsverlust.`},"brand-voice-guardian":{label:`Markenstimme-Wächter`,blurb:`Setzt Voice-Regeln durch; erkennt markenfremde Formulierungen.`},"creative-brainstormer":{label:`Kreativ-Brainstormer`,blurb:`Erst divergent, dann konvergent; schlachtet heilige Kühe höflich.`},"hiring-interviewer":{label:`Hiring-Interviewer`,blurb:`Strukturierte Interviews, signalfokussiert, bias-bewusst.`},"strategic-planner":{label:`Strategieplaner`,blurb:`Ziele → Wetten → Metriken; streicht Lieblingsprojekte.`},"coach-1on1":{label:`1:1-Coach`,blurb:`Hilft bei Feedback, Karriereentwicklung und schwierigen Gesprächen.`},"meeting-facilitator":{label:`Meeting-Moderator`,blurb:`Agenden, die Entscheidungen liefern statt Status-Updates.`}},a={studio:e,refine:t,profileEditor:n,agentSelector:r,templates:i};export{r as agentSelector,a as default,n as profileEditor,t as refine,e as studio,i as templates};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({agentSelector:()=>a,default:()=>s,profileEditor:()=>i,refine:()=>r,studio:()=>n,templates:()=>o}),n={loadingAgent:`Loading agent…`,modeCreate:`New custom agent`,modeEdit:`Edit custom agent`,create:`Create`,unsaved:`● unsaved`,resumeAiEdit:`Resume AI Edit`,resumeAiEditTitle:`Hand this draft back to the AI Edit overlay`,loadingAiDraft:`loading AI draft…`,testButton:`Test`,testButtonTitle:`Test this agent against a sample task`,historyButton:`History`,historyButtonTitle:`Version history`,deleteConfirm:{title:`Delete agent "{{agentId}}"?`,description:`This removes the .md from disk. Version history stays in the DB — use a fresh custom agent if you want to recover the body later.`},errors:{loadDraftFailed:`Load draft failed: {{status}}`,loadFailed:`Load failed: {{status}}`,saveFailed:`Save failed: {{status}}`,deleteFailed:`Delete failed: {{status}}`,testFailed:`Test failed: {{status}}`},toasts:{agentCreated:`Agent created`,agentSaved:`Agent saved`,agentDeleted:`Agent deleted`,createFailed:`Failed to create agent`,saveFailed:`Failed to save agent`,deleteFailed:`Failed to delete agent`},validation:{namePattern:`Name must start with <code>custom-</code> and contain only lowercase letters, digits, and hyphens.`,missingFrontmatter:`Missing YAML frontmatter (needs opening <code>---</code> on the first line).`},sampleTasks:{pick:`— pick a sample task —`,terraform:`Terraform: public S3 bucket`,sqlInjection:`Code review: SQL injection`,accessibility:`Frontend: accessibility`,schemaChange:`Data: schema change`,slowQuery:`Performance: slow query`},testPane:{header:`Test agent`,sampleTaskLabel:`Sample task`,placeholder:`Describe what the agent should do, or pick a sample above.`,run:`Run`,running:`Running…`,sandboxNote:`Sandboxed; no files written.`,tokens_one:`<mono>{{count}}</mono> token`,tokens_other:`<mono>{{count}}</mono> tokens`,tokensUnavailable:`Token usage unavailable`,emptyHint:`Run a sample task against the current draft. Output appears here.`},versions:{header:`Version history`,empty:`No prior versions recorded for this agent.`,restoreHint:`Click a version to restore its body into the editor (you still need to Save).`}},r={eyebrow:`AI Edit`,headline:`Refine your agent`,streamingHeadline:`Refining your agent…`,placeholderInitial:`Describe how to refine this agent…`,placeholderFollowUp:`Send a follow-up refinement…`,viewCurrentBody:`View current agent body`,appliedAsVersion:`Applied as version {{version}}.`,openInStudio:`Open draft in Studio for manual editing`,chips:{tightenTools:`Tighten the tool list`,stricterPersonality:`Make the personality stricter`,workflowSection:`Add a Workflow protocol section`,sharpenDescription:`Shorten and sharpen the description`,matchDeveloperStyle:`Match the sr-developer style`}},i={validation:{missingBaseline:`Missing required baseline agent: {{agent}}`,multipleDefaultRules:`Routing may have at most one default rule (found {{found}})`,defaultRuleNotLast:`The default routing rule must be the last entry`,unknownRoutingAgent:`Routing references agent not in the chain: {{agent}}`,invalidTags:`Routing rule {{agent}} has invalid tags: {{tags}} (use lowercase kebab-case)`},validationSummary_one:`{{count}} validation issue`,validationSummary_other:`{{count}} validation issues`,nameLabel:`Name`,descriptionLabel:`Description`,descriptionPlaceholder:`What is this profile for?`,orchestrator:{heading:`Orchestrator`,description:`Top-level model for the implement command. Every rail it runs inherits this profile's agent chain.`},agentChain:{heading:`Agent chain ({{n}})`,addTitle:`Add an agent from the catalog`,addDisabledTitle:`All catalog agents are already in the chain`,pickFromCatalog:`Pick from catalog ({{n}} available)`,emptyCatalog:`No more agents in the catalog. Add custom agents from the Agents Catalog tab.`,kind:{upstream:`upstream`,custom:`custom`}},routing:{heading:`Routing ({{n}})`,addDefault:`Add default`,addRule:`Add rule`,needAgentsTitle:`Add at least one agent before creating routing rules`,explainer:`First matching rule wins. Rules are editable and removable, and the default catch-all stays last when present. If you leave routing empty, the pipeline falls back to the first developer-shaped agent in the chain.`,untargetedTitle:`Untargeted agents in the chain`,untargetedDetail:`No routing rule points to: <mono>{{agents}}</mono>. Add a tag rule or retarget the default rule if you want them to run.`},agentRow:{dragTitle:`Drag to reorder`,dragHandleAria:`Drag handle`,pinnedFirst:`first`,pinnedFirstTitle:`Pinned to first position — pipeline always starts with sr-architect`,pinnedLast:`last`,pinnedLastTitle:`Pinned to last position — merge phase always runs last`,required:`required`,requiredRemoveTitle:`Required baseline agent — the pipeline depends on this row`},routingRow:{everythingElse:`everything else`,defaultTargetAria:`Default routing target (core, read-only)`,defaultTargetTitle:`Core fallback — not editable`,targetAria:`Routing target for rule {{ordinal}}`,editTitle:`Edit rule`,editAria:`Edit rule {{ordinal}}`,moveDown:`Move down`,moveUp:`Move up`,coreDefaultBadge:`core · default`,coreDefaultTitle:`Core fallback — the pipeline's last-resort rule, pinned to sr-developer`},legacyWorkflowNotice:`Orchestrator and routing settings apply to legacy workflows. Core workflows use the roles selected in the Loop Builder.`},a={coreBadge:`core`,agents:{"sr-architect":{name:`Architect`,description:`Architecture design, change specs, implementation planning`},"sr-developer":{name:`Developer`,description:`Full-stack implementation across all layers`},"sr-reviewer":{name:`Reviewer`,description:`General code review — the final quality gate`}},coreTeamTitle:`Your agent team`,coreTeamNote:`These three core agents are always installed — nothing to choose. Add specialists later with profiles and custom-* agents.`},o={"security-reviewer":{label:`Security Reviewer`,blurb:`Finds auth, injection, and data-exposure bugs in a diff before it ships.`},"performance-profiler":{label:`Performance Profiler`,blurb:`Finds hot paths, N+1 queries, unbounded loops, bundle bloat.`},"data-engineer":{label:`Data Engineer`,blurb:`Schema migrations, ETL pipelines, data transformations.`},"ui-ux-polisher":{label:`UI / UX Polisher`,blurb:`Accessibility, spacing, empty states, error handling.`},"api-designer":{label:`API Designer`,blurb:`Versioning, pagination, error shapes, backward compatibility.`},"database-architect":{label:`Database Architect`,blurb:`Indexes, normalization vs denormalization, query shapes.`},"devops-sre":{label:`DevOps / SRE`,blurb:`CI/CD, observability, incident-readiness, runbooks.`},"mobile-engineer":{label:`Mobile Engineer`,blurb:`iOS + Android patterns, offline-first, battery-aware.`},"ml-engineer":{label:`ML Engineer`,blurb:`Pipelines, eval, reproducibility, drift monitoring.`},"accessibility-auditor":{label:`Accessibility Auditor`,blurb:`WCAG 2.2 review: contrast, focus, ARIA, keyboard.`},"qa-test-strategist":{label:`QA Test Strategist`,blurb:`Test plans: unit / integration / E2E split, coverage gaps.`},"load-tester":{label:`Load / Stress Tester`,blurb:`Capacity planning, k6 / Locust scenarios, bottleneck hunting.`},"integration-tester":{label:`Integration Tester`,blurb:`Cross-service contracts, fixtures, flake reduction.`},"regression-hunter":{label:`Regression Hunter`,blurb:`Bisects, repros, writes the failing test first.`},"data-analyst":{label:`Data Analyst`,blurb:`Turns vague questions into queries + readable findings.`},"etl-reviewer":{label:`ETL Pipeline Reviewer`,blurb:`Idempotency, backfills, late-arriving data.`},"dashboard-designer":{label:`Dashboard Designer`,blurb:`One-glance dashboards, honest axes, action-per-chart.`},"iac-reviewer":{label:`IaC / Cloud Reviewer`,blurb:`Terraform / CloudFormation: IAM, public exposure, costs.`},"compliance-reviewer":{label:`Compliance Reviewer`,blurb:`GDPR / SOC2 / HIPAA-adjacent checks on data flows.`},"threat-modeler":{label:`Threat Modeler`,blurb:`STRIDE / LINDDUN over architecture diagrams.`},"product-manager":{label:`Product Manager`,blurb:`Problem framing, PRDs, prioritization.`},"ux-researcher":{label:`UX Researcher`,blurb:`Interview scripts, usability test plans, synthesis.`},"technical-writer":{label:`Technical Writer`,blurb:`Docs that are actually read — tutorials, references, changelogs.`},"design-reviewer":{label:`Design System Reviewer`,blurb:`Token drift, component misuse, consistency across flows.`},"financial-analyst":{label:`Financial Analyst`,blurb:`Unit economics, cohort models, scenario analysis.`},"pricing-strategist":{label:`Pricing Strategist`,blurb:`Tiering, packaging, willingness-to-pay studies.`},"market-researcher":{label:`Market Researcher`,blurb:`TAM/SAM/SOM, competitive maps, customer segments.`},"ops-optimizer":{label:`Operations Optimizer`,blurb:`Cycle-time, bottleneck-finding, automation candidates.`},"seo-auditor":{label:`SEO Auditor`,blurb:`Technical + content SEO: indexability, IA, intent match.`},"growth-hacker":{label:`Growth Experimenter`,blurb:`Funnel diagnosis, lift experiments, activation loops.`},"social-strategist":{label:`Social Media Strategist`,blurb:`Channel-fit content, editorial calendar, voice consistency.`},"literature-reviewer":{label:`Literature Reviewer`,blurb:`Systematic review summaries, citation graphs, conflicts.`},"experiment-designer":{label:`Experiment Designer`,blurb:`Hypotheses, controls, sample size, pre-registration.`},"statistical-analyst":{label:`Statistical Analyst`,blurb:`Chooses the right test, reports effect sizes, not just p-values.`},"scientific-writer":{label:`Scientific Writer`,blurb:`IMRaD structure, honest limits, readable abstracts.`},"curriculum-designer":{label:`Curriculum Designer`,blurb:`Learning outcomes → activities → assessment.`},"assessment-author":{label:`Assessment Author`,blurb:`Items that measure understanding, not recall.`},"tutor-explainer":{label:`Tutor / Explainer`,blurb:`Feynman-style simple explanations with worked examples.`},"clinical-guideline-reviewer":{label:`Clinical Guideline Reviewer`,blurb:`Map practice against latest evidence-based guidelines.`},"medical-summarizer":{label:`Medical Literature Summarizer`,blurb:`Abstracts to clinicians: what changed, evidence quality.`},"protocol-designer":{label:`Protocol Designer`,blurb:`Clinical protocols: endpoints, inclusion criteria, safety.`},"contract-reviewer":{label:`Contract Reviewer`,blurb:`Flags risky clauses; explains what they actually mean.`},"privacy-counsel":{label:`Privacy Counsel`,blurb:`GDPR / CCPA / LGPD applied to concrete flows.`},"copy-editor":{label:`Copy Editor`,blurb:`Line edits: voice, cadence, cut 30% without losing meaning.`},"brand-voice-guardian":{label:`Brand Voice Guardian`,blurb:`Enforces voice rules; catches off-brand phrasing.`},"creative-brainstormer":{label:`Creative Brainstormer`,blurb:`Divergent then convergent; kills sacred cows politely.`},"hiring-interviewer":{label:`Hiring Interviewer`,blurb:`Structured interviews, signal-focused, bias-aware.`},"strategic-planner":{label:`Strategic Planner`,blurb:`Goals → bets → metrics; prunes pet projects.`},"coach-1on1":{label:`1:1 Coach`,blurb:`Helps frame feedback, career growth, difficult conversations.`},"meeting-facilitator":{label:`Meeting Facilitator`,blurb:`Agendas that produce decisions, not updates.`}},s={studio:n,refine:r,profileEditor:i,agentSelector:a,templates:o};export{t};
|
|
1
|
+
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({agentSelector:()=>a,default:()=>s,profileEditor:()=>i,refine:()=>r,studio:()=>n,templates:()=>o}),n={loadingAgent:`Loading agent…`,modeCreate:`New custom agent`,modeEdit:`Edit custom agent`,create:`Create`,unsaved:`● unsaved`,resumeAiEdit:`Resume AI Edit`,resumeAiEditTitle:`Hand this draft back to the AI Edit overlay`,loadingAiDraft:`loading AI draft…`,testButton:`Test`,testButtonTitle:`Test this agent against a sample task`,historyButton:`History`,historyButtonTitle:`Version history`,deleteConfirm:{title:`Delete agent "{{agentId}}"?`,description:`This removes the .md from disk. Version history stays in the DB — use a fresh custom agent if you want to recover the body later.`},errors:{loadDraftFailed:`Load draft failed: {{status}}`,loadFailed:`Load failed: {{status}}`,saveFailed:`Save failed: {{status}}`,deleteFailed:`Delete failed: {{status}}`,testFailed:`Test failed: {{status}}`},toasts:{agentCreated:`Agent created`,agentSaved:`Agent saved`,agentDeleted:`Agent deleted`,createFailed:`Failed to create agent`,saveFailed:`Failed to save agent`,deleteFailed:`Failed to delete agent`},validation:{namePattern:`Name must start with <code>custom-</code> and contain only lowercase letters, digits, and hyphens.`,missingFrontmatter:`Missing YAML frontmatter (needs opening <code>---</code> on the first line).`},sampleTasks:{pick:`— pick a sample task —`,terraform:`Terraform: public S3 bucket`,sqlInjection:`Code review: SQL injection`,accessibility:`Frontend: accessibility`,schemaChange:`Data: schema change`,slowQuery:`Performance: slow query`},testPane:{header:`Test agent`,sampleTaskLabel:`Sample task`,placeholder:`Describe what the agent should do, or pick a sample above.`,run:`Run`,running:`Running…`,sandboxNote:`Sandboxed; no files written.`,tokens_one:`<mono>{{count}}</mono> token`,tokens_other:`<mono>{{count}}</mono> tokens`,tokensUnavailable:`Token usage unavailable`,emptyHint:`Run a sample task against the current draft. Output appears here.`},versions:{header:`Version history`,empty:`No prior versions recorded for this agent.`,restoreHint:`Click a version to restore its body into the editor (you still need to Save).`}},r={eyebrow:`AI Edit`,headline:`Refine your agent`,streamingHeadline:`Refining your agent…`,placeholderInitial:`Describe how to refine this agent…`,placeholderFollowUp:`Send a follow-up refinement…`,viewCurrentBody:`View current agent body`,appliedAsVersion:`Applied as version {{version}}.`,openInStudio:`Open draft in Studio for manual editing`,chips:{tightenTools:`Tighten the tool list`,stricterPersonality:`Make the personality stricter`,workflowSection:`Add a Workflow protocol section`,sharpenDescription:`Shorten and sharpen the description`,matchDeveloperStyle:`Match the sr-developer style`}},i={validation:{missingBaseline:`Missing required baseline agent: {{agent}}`,multipleDefaultRules:`Routing may have at most one default rule (found {{found}})`,defaultRuleNotLast:`The default routing rule must be the last entry`,unknownRoutingAgent:`Routing references agent not in the chain: {{agent}}`,invalidTags:`Routing rule {{agent}} has invalid tags: {{tags}} (use lowercase kebab-case)`},validationSummary_one:`{{count}} validation issue`,validationSummary_other:`{{count}} validation issues`,nameLabel:`Name`,descriptionLabel:`Description`,descriptionPlaceholder:`What is this profile for?`,orchestrator:{heading:`Orchestrator`,description:`Top-level model for the implement command. Every rail it runs inherits this profile's agent chain.`},agentChain:{heading:`Agent chain ({{n}})`,addTitle:`Add an agent from the catalog`,addDisabledTitle:`All catalog agents are already in the chain`,pickFromCatalog:`Pick from catalog ({{n}} available)`,emptyCatalog:`No more agents in the catalog. Add custom agents from the Agents Catalog tab.`,kind:{upstream:`upstream`,custom:`custom`}},routing:{heading:`Routing ({{n}})`,addDefault:`Add default`,addRule:`Add rule`,needAgentsTitle:`Add at least one agent before creating routing rules`,explainer:`First matching rule wins. Rules are editable and removable, and the default catch-all stays last when present. If you leave routing empty, the pipeline falls back to the first developer-shaped agent in the chain.`,untargetedTitle:`Untargeted agents in the chain`,untargetedDetail:`No routing rule points to: <mono>{{agents}}</mono>. Add a tag rule or retarget the default rule if you want them to run.`},agentRow:{dragTitle:`Drag to reorder`,dragHandleAria:`Drag handle`,pinnedFirst:`first`,pinnedFirstTitle:`Pinned to first position — pipeline always starts with sr-architect`,pinnedLast:`last`,pinnedLastTitle:`Pinned to last position — merge phase always runs last`,required:`required`,requiredRemoveTitle:`Required baseline agent — the pipeline depends on this row`},routingRow:{everythingElse:`everything else`,defaultTargetAria:`Default routing target (core, read-only)`,defaultTargetTitle:`Core fallback — not editable`,targetAria:`Routing target for rule {{ordinal}}`,editTitle:`Edit rule`,editAria:`Edit rule {{ordinal}}`,moveDown:`Move down`,moveUp:`Move up`,coreDefaultBadge:`core · default`,coreDefaultTitle:`Core fallback — the pipeline's last-resort rule, pinned to sr-developer`},legacyWorkflowNotice:`Orchestrator and routing settings apply to legacy workflows. Core workflows use the roles selected in the Loop Builder.`},a={coreBadge:`core`,agents:{"sr-architect":{name:`Architect`,description:`Architecture design, change specs, implementation planning`},"sr-developer":{name:`Developer`,description:`Full-stack implementation across all layers`},"sr-reviewer":{name:`Reviewer`,description:`General code review — the final quality gate`}},coreTeamTitle:`Your agent team`,coreTeamNote:`These three core roles are defined by the specrails-core runtime — nothing to install or choose. Add specialists later with profiles and custom-* agents.`},o={"security-reviewer":{label:`Security Reviewer`,blurb:`Finds auth, injection, and data-exposure bugs in a diff before it ships.`},"performance-profiler":{label:`Performance Profiler`,blurb:`Finds hot paths, N+1 queries, unbounded loops, bundle bloat.`},"data-engineer":{label:`Data Engineer`,blurb:`Schema migrations, ETL pipelines, data transformations.`},"ui-ux-polisher":{label:`UI / UX Polisher`,blurb:`Accessibility, spacing, empty states, error handling.`},"api-designer":{label:`API Designer`,blurb:`Versioning, pagination, error shapes, backward compatibility.`},"database-architect":{label:`Database Architect`,blurb:`Indexes, normalization vs denormalization, query shapes.`},"devops-sre":{label:`DevOps / SRE`,blurb:`CI/CD, observability, incident-readiness, runbooks.`},"mobile-engineer":{label:`Mobile Engineer`,blurb:`iOS + Android patterns, offline-first, battery-aware.`},"ml-engineer":{label:`ML Engineer`,blurb:`Pipelines, eval, reproducibility, drift monitoring.`},"accessibility-auditor":{label:`Accessibility Auditor`,blurb:`WCAG 2.2 review: contrast, focus, ARIA, keyboard.`},"qa-test-strategist":{label:`QA Test Strategist`,blurb:`Test plans: unit / integration / E2E split, coverage gaps.`},"load-tester":{label:`Load / Stress Tester`,blurb:`Capacity planning, k6 / Locust scenarios, bottleneck hunting.`},"integration-tester":{label:`Integration Tester`,blurb:`Cross-service contracts, fixtures, flake reduction.`},"regression-hunter":{label:`Regression Hunter`,blurb:`Bisects, repros, writes the failing test first.`},"data-analyst":{label:`Data Analyst`,blurb:`Turns vague questions into queries + readable findings.`},"etl-reviewer":{label:`ETL Pipeline Reviewer`,blurb:`Idempotency, backfills, late-arriving data.`},"dashboard-designer":{label:`Dashboard Designer`,blurb:`One-glance dashboards, honest axes, action-per-chart.`},"iac-reviewer":{label:`IaC / Cloud Reviewer`,blurb:`Terraform / CloudFormation: IAM, public exposure, costs.`},"compliance-reviewer":{label:`Compliance Reviewer`,blurb:`GDPR / SOC2 / HIPAA-adjacent checks on data flows.`},"threat-modeler":{label:`Threat Modeler`,blurb:`STRIDE / LINDDUN over architecture diagrams.`},"product-manager":{label:`Product Manager`,blurb:`Problem framing, PRDs, prioritization.`},"ux-researcher":{label:`UX Researcher`,blurb:`Interview scripts, usability test plans, synthesis.`},"technical-writer":{label:`Technical Writer`,blurb:`Docs that are actually read — tutorials, references, changelogs.`},"design-reviewer":{label:`Design System Reviewer`,blurb:`Token drift, component misuse, consistency across flows.`},"financial-analyst":{label:`Financial Analyst`,blurb:`Unit economics, cohort models, scenario analysis.`},"pricing-strategist":{label:`Pricing Strategist`,blurb:`Tiering, packaging, willingness-to-pay studies.`},"market-researcher":{label:`Market Researcher`,blurb:`TAM/SAM/SOM, competitive maps, customer segments.`},"ops-optimizer":{label:`Operations Optimizer`,blurb:`Cycle-time, bottleneck-finding, automation candidates.`},"seo-auditor":{label:`SEO Auditor`,blurb:`Technical + content SEO: indexability, IA, intent match.`},"growth-hacker":{label:`Growth Experimenter`,blurb:`Funnel diagnosis, lift experiments, activation loops.`},"social-strategist":{label:`Social Media Strategist`,blurb:`Channel-fit content, editorial calendar, voice consistency.`},"literature-reviewer":{label:`Literature Reviewer`,blurb:`Systematic review summaries, citation graphs, conflicts.`},"experiment-designer":{label:`Experiment Designer`,blurb:`Hypotheses, controls, sample size, pre-registration.`},"statistical-analyst":{label:`Statistical Analyst`,blurb:`Chooses the right test, reports effect sizes, not just p-values.`},"scientific-writer":{label:`Scientific Writer`,blurb:`IMRaD structure, honest limits, readable abstracts.`},"curriculum-designer":{label:`Curriculum Designer`,blurb:`Learning outcomes → activities → assessment.`},"assessment-author":{label:`Assessment Author`,blurb:`Items that measure understanding, not recall.`},"tutor-explainer":{label:`Tutor / Explainer`,blurb:`Feynman-style simple explanations with worked examples.`},"clinical-guideline-reviewer":{label:`Clinical Guideline Reviewer`,blurb:`Map practice against latest evidence-based guidelines.`},"medical-summarizer":{label:`Medical Literature Summarizer`,blurb:`Abstracts to clinicians: what changed, evidence quality.`},"protocol-designer":{label:`Protocol Designer`,blurb:`Clinical protocols: endpoints, inclusion criteria, safety.`},"contract-reviewer":{label:`Contract Reviewer`,blurb:`Flags risky clauses; explains what they actually mean.`},"privacy-counsel":{label:`Privacy Counsel`,blurb:`GDPR / CCPA / LGPD applied to concrete flows.`},"copy-editor":{label:`Copy Editor`,blurb:`Line edits: voice, cadence, cut 30% without losing meaning.`},"brand-voice-guardian":{label:`Brand Voice Guardian`,blurb:`Enforces voice rules; catches off-brand phrasing.`},"creative-brainstormer":{label:`Creative Brainstormer`,blurb:`Divergent then convergent; kills sacred cows politely.`},"hiring-interviewer":{label:`Hiring Interviewer`,blurb:`Structured interviews, signal-focused, bias-aware.`},"strategic-planner":{label:`Strategic Planner`,blurb:`Goals → bets → metrics; prunes pet projects.`},"coach-1on1":{label:`1:1 Coach`,blurb:`Helps frame feedback, career growth, difficult conversations.`},"meeting-facilitator":{label:`Meeting Facilitator`,blurb:`Agendas that produce decisions, not updates.`}},s={studio:n,refine:r,profileEditor:i,agentSelector:a,templates:o};export{t};
|