specrails-desktop 2.24.2 → 2.24.3

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.
Files changed (54) hide show
  1. package/client/dist/assets/{ActivityFeedPage-D0HbUDeS.js → ActivityFeedPage-CxnjeMnO.js} +1 -1
  2. package/client/dist/assets/{AgentBrowserCapture-Brth-3zu.js → AgentBrowserCapture-c-Cr7q94.js} +1 -1
  3. package/client/dist/assets/{AgentModeCodePane-UuKgXzPX.js → AgentModeCodePane-CoZZ2_sJ.js} +2 -2
  4. package/client/dist/assets/{AgentModeJobsPane-_P5Xm6ij.js → AgentModeJobsPane-Dua5r_jk.js} +1 -1
  5. package/client/dist/assets/{AgentsPage-BHpan6kZ.js → AgentsPage-L-pmBTbc.js} +1 -1
  6. package/client/dist/assets/{AnalyticsPage-kryIHuZy.js → AnalyticsPage-B82qtTYV.js} +1 -1
  7. package/client/dist/assets/{BarChart-C5W41oN4.js → BarChart-JoGhQq6b.js} +1 -1
  8. package/client/dist/assets/{CodePage-B0WhKBeS.js → CodePage-CIBbOHTk.js} +1 -1
  9. package/client/dist/assets/{DesktopAnalyticsPage-u9a30yar.js → DesktopAnalyticsPage-D94CWcV4.js} +1 -1
  10. package/client/dist/assets/{DocsDialog-GSzYhxfg.js → DocsDialog-DIubUwd_.js} +1 -1
  11. package/client/dist/assets/{DocsPage-Bm0J873n.js → DocsPage-A9PpvdW3.js} +1 -1
  12. package/client/dist/assets/{ExportDropdown-CXc3MBkq.js → ExportDropdown-CWelhih_.js} +1 -1
  13. package/client/dist/assets/{IntegrationsPage-Z5Qy3n6G.js → IntegrationsPage-DtcigyHI.js} +1 -1
  14. package/client/dist/assets/{InteractiveJobComposer-BbBSAQm1.js → InteractiveJobComposer-CtkXJ1gD.js} +1 -1
  15. package/client/dist/assets/{JobDetailModal-CdPgkHdb.js → JobDetailModal-C-AewB0N.js} +1 -1
  16. package/client/dist/assets/{JobDetailPage-CprNUYlt.js → JobDetailPage-C2nAjNRu.js} +1 -1
  17. package/client/dist/assets/{JobsPage-ClIaG5ow.js → JobsPage-CtDu1BqI.js} +1 -1
  18. package/client/dist/assets/{LoopBuilderPage-rWwSzVr_.js → LoopBuilderPage-CLikTQXx.js} +1 -1
  19. package/client/dist/assets/{LoopPreviewModal-B0VUdegW.js → LoopPreviewModal-SEb8gedX.js} +1 -1
  20. package/client/dist/assets/{LoopsPage-Brrl03uv.js → LoopsPage-Pf_0o0Yf.js} +1 -1
  21. package/client/dist/assets/{ProjectSettingsDialog-i1aAs49_.js → ProjectSettingsDialog-C6_NZLxv.js} +1 -1
  22. package/client/dist/assets/{TemplatePreviewModal-C92-Ygm2.js → TemplatePreviewModal-CcTeX1GA.js} +1 -1
  23. package/client/dist/assets/agent-CXGbWkpN2.js +1 -0
  24. package/client/dist/assets/{agent-CbHTqhBt.js → agent-Cjiy_5TS.js} +1 -1
  25. package/client/dist/assets/agent-DBo9_-zx.js +1 -0
  26. package/client/dist/assets/agent-DUmd88ng.js +1 -0
  27. package/client/dist/assets/{agent-i5VEzNfj2.js → agent-N5jFquC82.js} +1 -1
  28. package/client/dist/assets/{agent-Bq74VvOq.js → agent-ay1iYN3L.js} +1 -1
  29. package/client/dist/assets/agent-dMyoDKGk.js +1 -0
  30. package/client/dist/assets/agent-opeyUUUG2.js +1 -0
  31. package/client/dist/assets/{brain-CJ92kxwM.js → brain-BVlxI-OH.js} +1 -1
  32. package/client/dist/assets/{dist-js-CAU8gTUN.js → dist-js-DOGUoTVT.js} +1 -1
  33. package/client/dist/assets/{dist-js-BVonQLiD.js → dist-js-DtG-ECSR.js} +1 -1
  34. package/client/dist/assets/{index-CfHBmcjb.js → index-B0fq5d1Z.js} +21 -21
  35. package/client/dist/assets/index-DZ2Beygz.css +2 -0
  36. package/client/dist/assets/{lib-DJy6HBRz.js → lib-B-CmfZ34.js} +1 -1
  37. package/client/dist/assets/{upload-D_1UxNS_.js → upload-B22mO1uT.js} +1 -1
  38. package/client/dist/assets/{value-BH0Vlt96.js → value-DltGn-Ab.js} +1 -1
  39. package/client/dist/index.html +3 -3
  40. package/package.json +1 -1
  41. package/server/dist/active-pr-continuation.js +84 -13
  42. package/server/dist/jira/jira-adf.js +317 -36
  43. package/server/dist/loop-factory.js +1 -1
  44. package/server/dist/loop-run-manager.js +49 -6
  45. package/server/dist/project-router-git.js +26 -0
  46. package/server/dist/rail-isolated-launch.js +9 -0
  47. package/server/dist/rail-pr-store.js +1 -0
  48. package/server/dist/worktree-manager.js +24 -1
  49. package/client/dist/assets/agent-2gmrdgKk.js +0 -1
  50. package/client/dist/assets/agent-BrhvIxZF.js +0 -1
  51. package/client/dist/assets/agent-Ch_OIjXA2.js +0 -1
  52. package/client/dist/assets/agent-E-X9b1uz2.js +0 -1
  53. package/client/dist/assets/agent-zI95bSiF.js +0 -1
  54. package/client/dist/assets/index-B9483NYu.css +0 -2
@@ -1 +0,0 @@
1
- var e=`任务中心`,t=`通过对话操作 Specrails`,n=`任务中心`,r=`让智能体做任何事…`,i=`发送`,a=`停止`,o=`复制`,s=`最大化`,c=`还原`,l=`最小化`,u=`关闭`,d=`新任务`,f=`这次的任务是什么?`,p=`先选择一个项目,然后提问。智能体工作时看板会实时更新。`,m=`思考中…`,h=`连接中…`,g=`正在查询应用…`,_={compact:`紧凑`,comfortable:`舒适`,max:`最大化`},v={label:`模型`},y={hint:`浏览提示历史 — 输入以编辑,↑↓ 导航`},b={queued:`排队中`,send:`发送到队列`,sendHint:`智能体仍在工作——此消息将排队并在之后执行`,placeholder:`智能体工作时可继续输入——消息将排队…`},x={editing:`正在编辑排队消息 {{n}}/{{m}}`,hint:`↑↓ 导航 · 回车保存 · Esc 取消`,save:`保存排队消息`,cancel:`取消编辑`,dispatched:`该排队消息已发送——你的文本已保留为草稿`,saveFailed:`无法保存排队消息`},S={branch:`分支`,detached:`(分离头指针)`,dirty:`有未提交的更改`,switched:`已切换到 {{branch}}`,switchFailed:`无法切换分支`,lockedWhileWorking:`智能体工作时分支已锁定`,searchPlaceholder:`搜索分支…`,noMatches:`没有匹配的分支`,worktrees:`工作树`,worktreePathCopied:`已复制工作树路径`,copyWorktreePath:`复制工作树路径`},C={label:`提供方`,claude:`Claude`,codex:`Codex`,gemini:`Gemini`},w={cycleHint:`⇧⇥ 切换`,observe:{name:`观察`,desc:`只读 — 不做任何更改`},edit:{name:`编辑`,desc:`创建和编辑(可撤销)`},operate:{name:`操作`,desc:`启动 AI — 会产生费用`},autonomous:{name:`自主`,desc:`删除和终止 — 不可逆`},lockedTitle:`需要更高的级别`,lockedBody:`该操作需要「{{level}}」级别。你当前处于「{{current}}」。`,raiseHint:`⇧⇥ 提升级别,或换一种方式询问。`},T={title:`确认操作`,costAction:`{{action}} · ~{{cost}} · {{tier}}`,approve:`批准`,cancel:`取消`,dontAskAgain:`本次会话不再询问`,approved:`已批准`,cancelled:`已取消`},E={home:`主页`,searchPlaceholder:`与 Specrails 对话…`,recents:`最近`,allProjects:`所有项目`,searchAll:`在所有项目中搜索`,addProject:`添加项目…`,homeHint:`未选择项目 — 正在跨所有项目操作。`,askCreateOrSearch:`未选择任何项目。你想创建一个新项目,还是在所有项目中搜索?`},D={label:`切换任务`,untitled:`新任务`,new:`新任务`,searchPlaceholder:`搜索任务…`,noMatches:`没有匹配的任务`,working:`代理正在工作`,queuedBadge:`{{n}} 条排队`,delete:`删除任务 "{{title}}"`,deleteConfirm:`删除?`,deleteLiveConfirm:`代理正在工作 — 仍要删除?`,confirmDelete:`确认删除`,cancelDelete:`保留任务`,deleteFailed:`无法删除任务`},O={title:`未安装 AI 提供方`,body:`智能体需要在你的机器上安装 Claude、Codex 或 Gemini。安装其中之一后重新打开智能体即可开始对话。`,placeholder:`请安装 AI 提供方以使用智能体…`},k={title:`Specrails MCP 已关闭`,body:`智能体需要内置的 MCP 服务器来操作应用。`,enable:`启用 Specrails MCP`,enabling:`正在启用…`,enabled:`MCP 已启用`},A={live:`实时`,queued:`排队中`,running:`运行中`,done:`已完成`,failed:`失败`},j={generic:`出了点问题。请重试。`,busy:`智能体正忙。请稍后重试。`},M={kindAgent:`智能体任务`},N=`新任务`,P=`切换到任务中心`,F=`切换到看板`,I=`搜索`,L=`主页`,R=`未命名`,z={title:`工作区`,terminal:`终端`,files:`文件`,browser:`浏览器`,requiresProject:`请选择一个项目以使用此工具`,resizeCode:`调整代码面板`,closeFiles:`关闭代码`,browserConfirm:`添加到智能体`,browserCaptured:`已添加捕获`,uploadFailed:`上传失败`,requiresConversation:`启动任务后才能使用此工具`,jobs:`作业`,closeJobs:`关闭作业`,resizeJobs:`调整作业面板大小`,noJobs:`还没有作业——让智能体启动一个吧`},B=`附加文件`,V=`删除「{{title}}」`,H=`确认删除「{{title}}」`,U=`确认?`,W=`该提供商暂不支持读取图片 — 请附加文本文件`,G={label:`推理强度`,minimal:`最小`,low:`低`,medium:`中`,high:`高`,xhigh:`极高`},K=`这次的任务是什么,Neo?`,q={rail:`Rail {{index}}`,specCount_one:`{{count}} 个 Spec`,specCount_other:`{{count}} 个 Spec`,base:`基础分支`,openPr:`打开 PR`,title:{building:`正在隔离的 worktree 中实现…`,on_review:`实现已完成,待评审`,pr_draft:`已创建草稿 PR`,pr_draft_degraded:`PR 交付未完成`,pr_ready:`PR 已就绪,可合并`,pr_failed:`PR 创建失败`,merged:`PR 已合并`,discarded:`已丢弃`},buildingHint:`完成后会询问你是否创建 PR。`,createPr:`创建 PR`,publish:`发布`,retry:`重试`,retryPr:`重试 PR`,checkMerge:`检查合并`,discard:`丢弃`,confirmDiscard:`确认丢弃?`,mergedNote:`已合并 — Spec 已移至完成`,discardedNote:`已丢弃 — Spec 已退回待办`,degraded:{pushed:`分支已推送,但无法创建 PR — 请重试以完成。`,localOnly:`更改已在本地组装但未推送 — 请重试以发布 PR。`},alreadyResolved:`已在其他地方处理`,actionFailed:`操作失败`,notMergedYet:`尚未合并`,viewLog:`查看 {{ref}} 的运行日志`,runElapsedAria:`已运行 {{elapsed}}`,runCostAria:`已花费 {{cost}}`,pinned:{label:`已固定`,marker:`实现卡片 — 已固定在上方`,collapse:`最小化固定卡片`,expand:`展开固定卡片`,expandCard:`展开此卡片`,collapseCard:`最小化此卡片`,collapsed_one:`实现卡片`,collapsed_other:`{{count}} 张实现卡片`,state:{building:`构建中`,on_review:`待审阅`,pr_draft:`草稿 PR`,pr_ready:`已发布`,pr_failed:`失败`,merged:`已合并`,discarded:`已丢弃`}},mergeLocal:`本地集成`,mergeLocalTooltip:`将交付的分支合并到本地检出的 {{base}}(无需 GitHub)`,mergeLocalBlockedDirty:`无法集成:{{base}} 上的工作树有未提交的更改。请提交或暂存后重试。`,mergeLocalBlockedBranch:`无法集成:当前检出在 {{current}},而不是 {{base}}。请切换到 {{base}} 后重试。`,mergedLocally:`已在本地集成到 {{base}}`},J={heading:`规格草稿`,drafting:`正在更新草稿…`,acceptanceCriteria:`验收标准`,untitled:`未命名规格`,expand:`显示完整描述`,collapse:`收起描述`},Y={openTicket:`打开 Spec #{{id}}`,openJob:`打开任务 {{id}}`,openLoop:`打开循环 {{id}}`,ticketNotFound:`未找到 Spec #{{id}} — 可能已被删除`,jobNotFound:`未找到任务 — 可能已被删除`,loopNotFound:`未找到循环 — 可能已被删除`,lookupFailed:`无法验证该引用 — 请重试`},X={untitled:`未命名任务`,menu:`任务菜单`,rename:`重命名`,renamePlaceholder:`任务名称`,renameHint:`双击重命名`,renameFailed:`无法重命名`,copyName:`复制任务名称`,copyId:`复制任务 ID`,copyProject:`复制项目名称`,copyProjectPath:`复制项目路径`,copyFailed:`无法复制`,delete:`删除任务`,deleteConfirm:`删除此任务?此操作无法撤销。`,deleteFailed:`无法删除任务`},Z={title:e,subtitle:t,trigger:n,composerPlaceholder:r,send:i,stop:a,copy:o,maximize:s,restore:c,minimize:l,close:u,newConversation:d,emptyTitle:f,emptyHint:p,thinking:m,connecting:h,consultingCode:g,size:_,model:v,history:y,queue:b,queueEdit:x,git:S,provider:C,tier:w,approval:T,project:E,mission:D,noProvider:O,degraded:k,toolCard:A,error:j,chip:M,newAgent:N,switchToAgent:P,switchToKanban:F,search:I,home:L,untitled:R,workspace:z,attachFile:B,deleteConversation:V,confirmDeleteConversation:H,confirmShort:U,imagesUnsupported:W,effort:G,emptyTitleMatrix:K,prCard:q,specDraft:J,refs:Y,header:X};export{T as approval,B as attachFile,M as chip,u as close,r as composerPlaceholder,H as confirmDeleteConversation,U as confirmShort,h as connecting,g as consultingCode,o as copy,Z as default,k as degraded,V as deleteConversation,G as effort,p as emptyHint,f as emptyTitle,K as emptyTitleMatrix,j as error,S as git,X as header,y as history,L as home,W as imagesUnsupported,s as maximize,l as minimize,D as mission,v as model,N as newAgent,d as newConversation,O as noProvider,q as prCard,E as project,C as provider,b as queue,x as queueEdit,Y as refs,c as restore,I as search,i as send,_ as size,J as specDraft,a as stop,t as subtitle,P as switchToAgent,F as switchToKanban,m as thinking,w as tier,e as title,A as toolCard,n as trigger,R as untitled,z as workspace};
@@ -1 +0,0 @@
1
- var e=`Control de misiones`,t=`Maneja Specrails conversando`,n=`Control de misiones`,r=`Pídele al agente lo que necesites…`,i=`Enviar`,a=`Detener`,o=`Copiar`,s=`Maximizar`,c=`Restaurar`,l=`Minimizar`,u=`Cerrar`,d=`Nueva misión`,f=`¿Cuál es la misión?`,p=`Elige un proyecto y luego pregunta. El tablero se actualiza en vivo mientras el agente trabaja.`,m=`Pensando…`,h=`Conectando…`,g=`Consultando la app…`,_={compact:`Compacto`,comfortable:`Cómodo`,max:`Maximizar`},v={label:`Modelo`},y={hint:`Explorando historial de prompts — escribe para editar, ↑↓ para navegar`},b={queued:`En cola`,send:`Enviar a la cola`,sendHint:`El agente sigue trabajando — este mensaje se pondrá en cola y se ejecutará después`,placeholder:`Añade más mientras el agente trabaja — se pondrá en cola…`},x={editing:`Editando mensaje en cola {{n}} de {{m}}`,hint:`↑↓ para navegar · Enter guarda · Esc cancela`,save:`Guardar mensaje en cola`,cancel:`Cancelar edición`,dispatched:`Ese mensaje en cola ya se envió — tu texto se conserva como borrador`,saveFailed:`No se pudo guardar el mensaje en cola`},S={branch:`Rama`,detached:`(detached)`,dirty:`Cambios sin commitear`,switched:`Cambiado a {{branch}}`,switchFailed:`No se pudo cambiar de rama`,lockedWhileWorking:`Rama bloqueada mientras el agente trabaja`,searchPlaceholder:`Buscar ramas…`,noMatches:`Ninguna rama coincide`,worktrees:`Worktrees`,worktreePathCopied:`Ruta del worktree copiada`,copyWorktreePath:`Copiar ruta del worktree`},C={label:`Proveedor`,claude:`Claude`,codex:`Codex`,gemini:`Gemini`},w={cycleHint:`⇧⇥ para cambiar`,observe:{name:`Observa`,desc:`Solo lectura — nada cambia`},edit:{name:`Edita`,desc:`Crear y editar (reversible)`},operate:{name:`Opera`,desc:`Lanzar IA — tiene coste`},autonomous:{name:`Autónomo`,desc:`Borrar y detener — irreversible`},lockedTitle:`Necesita un nivel superior`,lockedBody:`Esa acción necesita el nivel «{{level}}». Estás en «{{current}}».`,raiseHint:`⇧⇥ para subir el nivel, o pídelo de otra forma.`},T={title:`Confirmar acción`,costAction:`{{action}} · ~{{cost}} · {{tier}}`,approve:`Aprobar`,cancel:`Cancelar`,dontAskAgain:`No volver a preguntar en esta sesión`,approved:`Aprobado`,cancelled:`Cancelado`},E={home:`Inicio`,searchPlaceholder:`Habla con Specrails…`,recents:`Recientes`,allProjects:`Todos los proyectos`,searchAll:`Buscar en todos los proyectos`,addProject:`Añadir proyecto…`,homeHint:`Ningún proyecto seleccionado — operando en todos los proyectos.`,askCreateOrSearch:`No hay ningún proyecto seleccionado. ¿Quieres crear un proyecto nuevo o buscar en todos los proyectos?`},D={label:`Cambiar de misión`,untitled:`Nueva misión`,new:`Nueva misión`,searchPlaceholder:`Buscar misiones…`,noMatches:`Ninguna misión coincide`,working:`El agente está trabajando`,queuedBadge:`{{n}} en cola`,delete:`Eliminar misión "{{title}}"`,deleteConfirm:`¿Eliminar?`,deleteLiveConfirm:`El agente está trabajando — ¿eliminar igualmente?`,confirmDelete:`Confirmar eliminación`,cancelDelete:`Conservar misión`,deleteFailed:`No se pudo eliminar la misión`},O={title:`No hay ningún proveedor de IA instalado`,body:`El agente necesita Claude, Codex o Gemini en tu máquina. Instala uno y vuelve a abrir el agente para empezar a chatear.`,placeholder:`Instala un proveedor de IA para usar el agente…`},k={title:`El MCP de Specrails está apagado`,body:`El agente necesita el servidor MCP integrado para manejar la app.`,enable:`Activar el MCP de Specrails`,enabling:`Activando…`,enabled:`MCP activado`},A={live:`en vivo`,queued:`en cola`,running:`en curso`,done:`hecho`,failed:`fallido`},j={generic:`Algo salió mal. Inténtalo de nuevo.`,busy:`El agente está ocupado. Inténtalo de nuevo en un momento.`},M={kindAgent:`Misión del agente`},N=`Nueva misión`,P=`Cambiar a Control de misiones`,F=`Cambiar al tablero`,I=`Buscar`,L=`Inicio`,R=`Sin título`,z={title:`En el workspace`,terminal:`Terminal`,files:`Archivos`,browser:`Navegador`,requiresProject:`Selecciona un proyecto para usar esta herramienta`,resizeCode:`Redimensionar panel de código`,closeFiles:`Cerrar código`,browserConfirm:`Añadir al agente`,browserCaptured:`Captura añadida`,uploadFailed:`Error al subir`,requiresConversation:`Inicia una misión para usar esta herramienta`,jobs:`Jobs`,closeJobs:`Cerrar jobs`,resizeJobs:`Redimensionar panel de jobs`,noJobs:`Aún no hay jobs — pide al agente que lance uno`},B=`Adjuntar archivo`,V=`Borrar «{{title}}»`,H=`Confirmar borrado de «{{title}}»`,U=`¿confirmar?`,W=`Este proveedor aún no lee imágenes — adjunta archivos de texto`,G={label:`Esfuerzo`,minimal:`Mínimo`,low:`Bajo`,medium:`Medio`,high:`Alto`,xhigh:`Extra alto`},K=`¿Cuál es la misión, Neo?`,q={rail:`Rail {{index}}`,specCount_one:`{{count}} spec`,specCount_other:`{{count}} specs`,base:`Rama base`,openPr:`Abrir PR`,title:{building:`Implementando en un worktree aislado…`,on_review:`Implementación lista para revisar`,pr_draft:`PR en borrador creada`,pr_draft_degraded:`Entrega de la PR incompleta`,pr_ready:`PR lista para el merge`,pr_failed:`No se pudo crear la PR`,merged:`Merge de la PR completado`,discarded:`Descartada`},buildingHint:`Cuando termine, se te preguntará si crear la PR.`,createPr:`Crear PR`,publish:`Publicar`,retry:`Reintentar`,retryPr:`Reintentar PR`,checkMerge:`Comprobar merge`,discard:`Descartar`,confirmDiscard:`¿Confirmar descarte?`,mergedNote:`Merge completado — las specs han pasado a Hecho`,discardedNote:`Descartada — las specs han vuelto al backlog`,degraded:{pushed:`La rama se subió pero no se pudo crear la PR — reintenta para terminar.`,localOnly:`Los cambios se ensamblaron en local pero no se subieron — reintenta para publicar la PR.`},alreadyResolved:`Ya resuelta en otro sitio`,actionFailed:`La acción falló`,notMergedYet:`Aún sin merge`,viewLog:`Ver el registro de ejecución de {{ref}}`,runElapsedAria:`{{elapsed}} transcurridos`,runCostAria:`{{cost}} gastados`,pinned:{label:`Fijada`,marker:`Tarjeta de implementación — fijada arriba`,collapse:`Minimizar tarjeta fijada`,expand:`Expandir tarjeta fijada`,expandCard:`Expandir esta tarjeta`,collapseCard:`Minimizar esta tarjeta`,collapsed_one:`Tarjeta de implementación`,collapsed_other:`{{count}} tarjetas de implementación`,state:{building:`En curso`,on_review:`Revisión`,pr_draft:`PR borrador`,pr_ready:`Publicada`,pr_failed:`Fallida`,merged:`Fusionada`,discarded:`Descartada`}},mergeLocal:`Integrar en local`,mergeLocalTooltip:`Fusiona las ramas entregadas en {{base}} en tu checkout local (sin necesidad de GitHub)`,mergeLocalBlockedDirty:`No se puede integrar: tu árbol de trabajo en {{base}} tiene cambios sin commitear. Haz commit o stash y reintenta.`,mergeLocalBlockedBranch:`No se puede integrar: tu checkout está en {{current}}, no en {{base}}. Cambia a {{base}} y reintenta.`,mergedLocally:`Integrado en {{base}} en local`},J={heading:`Borrador de spec`,drafting:`Actualizando borrador…`,acceptanceCriteria:`Criterios de aceptación`,untitled:`Spec sin título`,expand:`Ver descripción completa`,collapse:`Contraer descripción`},Y={openTicket:`Abrir spec #{{id}}`,openJob:`Abrir job {{id}}`,openLoop:`Abrir loop {{id}}`,ticketNotFound:`Spec #{{id}} no encontrada — puede haber sido eliminada`,jobNotFound:`Job no encontrado — puede haber sido eliminado`,loopNotFound:`Loop no encontrado — puede haber sido eliminado`,lookupFailed:`No se pudo verificar la referencia — inténtalo de nuevo`},X={untitled:`Misión sin título`,menu:`Menú de la misión`,rename:`Renombrar`,renamePlaceholder:`Nombre de la misión`,renameHint:`Doble clic para renombrar`,renameFailed:`No se pudo renombrar`,copyName:`Copiar nombre de la misión`,copyId:`Copiar ID de la misión`,copyProject:`Copiar nombre del proyecto`,copyProjectPath:`Copiar ruta del proyecto`,copyFailed:`No se pudo copiar`,delete:`Borrar misión`,deleteConfirm:`¿Borrar esta misión? No se puede deshacer.`,deleteFailed:`No se pudo borrar la misión`},Z={title:e,subtitle:t,trigger:n,composerPlaceholder:r,send:i,stop:a,copy:o,maximize:s,restore:c,minimize:l,close:u,newConversation:d,emptyTitle:f,emptyHint:p,thinking:m,connecting:h,consultingCode:g,size:_,model:v,history:y,queue:b,queueEdit:x,git:S,provider:C,tier:w,approval:T,project:E,mission:D,noProvider:O,degraded:k,toolCard:A,error:j,chip:M,newAgent:N,switchToAgent:P,switchToKanban:F,search:I,home:L,untitled:R,workspace:z,attachFile:B,deleteConversation:V,confirmDeleteConversation:H,confirmShort:U,imagesUnsupported:W,effort:G,emptyTitleMatrix:K,prCard:q,specDraft:J,refs:Y,header:X};export{T as approval,B as attachFile,M as chip,u as close,r as composerPlaceholder,H as confirmDeleteConversation,U as confirmShort,h as connecting,g as consultingCode,o as copy,Z as default,k as degraded,V as deleteConversation,G as effort,p as emptyHint,f as emptyTitle,K as emptyTitleMatrix,j as error,S as git,X as header,y as history,L as home,W as imagesUnsupported,s as maximize,l as minimize,D as mission,v as model,N as newAgent,d as newConversation,O as noProvider,q as prCard,E as project,C as provider,b as queue,x as queueEdit,Y as refs,c as restore,I as search,i as send,_ as size,J as specDraft,a as stop,t as subtitle,P as switchToAgent,F as switchToKanban,m as thinking,w as tier,e as title,A as toolCard,n as trigger,R as untitled,z as workspace};
@@ -1 +0,0 @@
1
- var e=`Controllo missioni`,t=`Gestisci Specrails chattando`,n=`Controllo missioni`,r=`Chiedi all'agente qualsiasi cosa…`,i=`Invia`,a=`Ferma`,o=`Copia`,s=`Massimizza`,c=`Ripristina`,l=`Riduci a icona`,u=`Chiudi`,d=`Nuova missione`,f=`Qual è la missione?`,p=`Scegli un progetto, poi chiedi. La board si aggiorna in tempo reale mentre l'agente lavora.`,m=`Sto pensando…`,h=`Connessione…`,g=`Consulto l'app…`,_={compact:`Compatto`,comfortable:`Comodo`,max:`Ingrandisci`},v={label:`Modello`},y={hint:`Cronologia prompt — scrivi per modificare, ↑↓ per navigare`},b={queued:`In coda`,send:`Invia in coda`,sendHint:`L'agente sta ancora lavorando — questo messaggio verrà messo in coda ed eseguito dopo`,placeholder:`Aggiungi altro mentre l'agente lavora — verrà messo in coda…`},x={editing:`Modifica del messaggio in coda {{n}} di {{m}}`,hint:`↑↓ per navigare · Invio salva · Esc annulla`,save:`Salva messaggio in coda`,cancel:`Annulla modifica`,dispatched:`Quel messaggio in coda è già stato inviato — il tuo testo è conservato come bozza`,saveFailed:`Impossibile salvare il messaggio in coda`},S={branch:`Branch`,detached:`(detached)`,dirty:`Modifiche non committate`,switched:`Passato a {{branch}}`,switchFailed:`Impossibile cambiare branch`,lockedWhileWorking:`Branch bloccato mentre l'agente lavora`,searchPlaceholder:`Cerca branch…`,noMatches:`Nessun branch corrisponde`,worktrees:`Worktree`,worktreePathCopied:`Percorso del worktree copiato`,copyWorktreePath:`Copia percorso del worktree`},C={label:`Provider`,claude:`Claude`,codex:`Codex`,gemini:`Gemini`},w={cycleHint:`⇧⇥ per cambiare`,observe:{name:`Osserva`,desc:`Solo lettura — niente cambia`},edit:{name:`Modifica`,desc:`Crea e modifica (reversibile)`},operate:{name:`Opera`,desc:`Avvia l'IA — ha un costo`},autonomous:{name:`Autonomo`,desc:`Elimina e arresta — irreversibile`},lockedTitle:`Serve un livello superiore`,lockedBody:`Quell'azione richiede il livello «{{level}}». Sei su «{{current}}».`,raiseHint:`⇧⇥ per alzare il livello, o chiedi in un altro modo.`},T={title:`Conferma azione`,costAction:`{{action}} · ~{{cost}} · {{tier}}`,approve:`Approva`,cancel:`Annulla`,dontAskAgain:`Non chiedere più in questa sessione`,approved:`Approvato`,cancelled:`Annullato`},E={home:`Home`,searchPlaceholder:`Parla con Specrails…`,recents:`Recenti`,allProjects:`Tutti i progetti`,searchAll:`Cerca in tutti i progetti`,addProject:`Aggiungi progetto…`,homeHint:`Nessun progetto selezionato — operando su tutti i progetti.`,askCreateOrSearch:`Nessun progetto è selezionato. Vuoi creare un nuovo progetto o cercare in tutti i progetti?`},D={label:`Cambia missione`,untitled:`Nuova missione`,new:`Nuova missione`,searchPlaceholder:`Cerca missioni…`,noMatches:`Nessuna missione corrisponde`,working:`L'agente sta lavorando`,queuedBadge:`{{n}} in coda`,delete:`Elimina missione "{{title}}"`,deleteConfirm:`Eliminare?`,deleteLiveConfirm:`L'agente sta lavorando — eliminare comunque?`,confirmDelete:`Conferma eliminazione`,cancelDelete:`Mantieni missione`,deleteFailed:`Impossibile eliminare la missione`},O={title:`Nessun provider IA installato`,body:`L'agente richiede Claude, Codex o Gemini sul tuo computer. Installane uno e riapri l'agente per iniziare a chattare.`,placeholder:`Installa un provider IA per usare l'agente…`},k={title:`L'MCP di Specrails è spento`,body:`L'agente ha bisogno del server MCP integrato per gestire l'app.`,enable:`Attiva l'MCP di Specrails`,enabling:`Attivazione…`,enabled:`MCP attivato`},A={live:`in diretta`,queued:`in coda`,running:`in corso`,done:`completato`,failed:`fallito`},j={generic:`Qualcosa è andato storto. Riprova.`,busy:`L'agente è occupato. Riprova tra un momento.`},M={kindAgent:`Missione dell'agente`},N=`Nuova missione`,P=`Passa al Controllo missioni`,F=`Passa alla board`,I=`Cerca`,L=`Home`,R=`Senza titolo`,z={title:`Nel workspace`,terminal:`Terminale`,files:`File`,browser:`Browser`,requiresProject:`Seleziona un progetto per usare questo strumento`,resizeCode:`Ridimensiona pannello codice`,closeFiles:`Chiudi codice`,browserConfirm:`Aggiungi all'agente`,browserCaptured:`Cattura aggiunta`,uploadFailed:`Caricamento non riuscito`,requiresConversation:`Avvia una missione per usare questo strumento`,jobs:`Jobs`,closeJobs:`Chiudi jobs`,resizeJobs:`Ridimensiona pannello jobs`,noJobs:`Ancora nessun job — chiedi all'agente di lanciarne uno`},B=`Allega file`,V=`Elimina «{{title}}»`,H=`Conferma eliminazione di «{{title}}»`,U=`confermare?`,W=`Questo provider non legge ancora le immagini — allega file di testo`,G={label:`Sforzo`,minimal:`Minimo`,low:`Basso`,medium:`Medio`,high:`Alto`,xhigh:`Extra alto`},K=`Qual è la missione, Neo?`,q={rail:`Rail {{index}}`,specCount_one:`{{count}} spec`,specCount_other:`{{count}} spec`,base:`Ramo base`,openPr:`Apri PR`,title:{building:`Implementazione in un worktree isolato…`,on_review:`Implementazione pronta per la revisione`,pr_draft:`PR in bozza creata`,pr_draft_degraded:`Consegna della PR incompleta`,pr_ready:`PR pronta per il merge`,pr_failed:`Creazione della PR non riuscita`,merged:`Merge della PR effettuato`,discarded:`Scartata`},buildingHint:`Al termine ti verrà chiesto se creare la PR.`,createPr:`Crea PR`,publish:`Pubblica`,retry:`Riprova`,retryPr:`Riprova PR`,checkMerge:`Verifica merge`,discard:`Scarta`,confirmDiscard:`Confermare lo scarto?`,mergedNote:`Merge effettuato — le spec sono passate a Completato`,discardedNote:`Scartata — le spec sono tornate nel backlog`,degraded:{pushed:`Il ramo è stato inviato ma non è stato possibile creare la PR — riprova per completare.`,localOnly:`Le modifiche sono state assemblate in locale ma non inviate — riprova per pubblicare la PR.`},alreadyResolved:`Già risolta altrove`,actionFailed:`Azione non riuscita`,notMergedYet:`Ancora nessun merge`,viewLog:`Vedi il log di esecuzione di {{ref}}`,runElapsedAria:`{{elapsed}} trascorsi`,runCostAria:`{{cost}} spesi`,pinned:{label:`Fissata`,marker:`Scheda di implementazione — fissata sopra`,collapse:`Riduci la scheda fissata`,expand:`Espandi la scheda fissata`,expandCard:`Espandi questa scheda`,collapseCard:`Riduci questa scheda`,collapsed_one:`Scheda di implementazione`,collapsed_other:`{{count}} schede di implementazione`,state:{building:`In corso`,on_review:`Revisione`,pr_draft:`PR bozza`,pr_ready:`Pubblicata`,pr_failed:`Fallita`,merged:`Unita`,discarded:`Scartata`}},mergeLocal:`Integra in locale`,mergeLocalTooltip:`Unisce i branch consegnati in {{base}} nel tuo checkout locale (senza GitHub)`,mergeLocalBlockedDirty:`Impossibile integrare: il tuo albero di lavoro su {{base}} ha modifiche non committate. Fai commit o stash e riprova.`,mergeLocalBlockedBranch:`Impossibile integrare: il tuo checkout è su {{current}}, non su {{base}}. Passa a {{base}} e riprova.`,mergedLocally:`Integrato in {{base}} in locale`},J={heading:`Bozza della spec`,drafting:`Aggiornamento della bozza…`,acceptanceCriteria:`Criteri di accettazione`,untitled:`Spec senza titolo`,expand:`Mostra descrizione completa`,collapse:`Comprimi descrizione`},Y={openTicket:`Apri la spec #{{id}}`,openJob:`Apri il job {{id}}`,openLoop:`Apri loop {{id}}`,ticketNotFound:`Spec #{{id}} non trovata — potrebbe essere stata eliminata`,jobNotFound:`Job non trovato — potrebbe essere stato eliminato`,loopNotFound:`Loop non trovato — potrebbe essere stato eliminato`,lookupFailed:`Impossibile verificare il riferimento — riprova`},X={untitled:`Missione senza titolo`,menu:`Menu della missione`,rename:`Rinomina`,renamePlaceholder:`Nome della missione`,renameHint:`Doppio clic per rinominare`,renameFailed:`Impossibile rinominare`,copyName:`Copia nome missione`,copyId:`Copia ID missione`,copyProject:`Copia nome progetto`,copyProjectPath:`Copia percorso progetto`,copyFailed:`Impossibile copiare`,delete:`Elimina missione`,deleteConfirm:`Eliminare questa missione? Non è reversibile.`,deleteFailed:`Impossibile eliminare la missione`},Z={title:e,subtitle:t,trigger:n,composerPlaceholder:r,send:i,stop:a,copy:o,maximize:s,restore:c,minimize:l,close:u,newConversation:d,emptyTitle:f,emptyHint:p,thinking:m,connecting:h,consultingCode:g,size:_,model:v,history:y,queue:b,queueEdit:x,git:S,provider:C,tier:w,approval:T,project:E,mission:D,noProvider:O,degraded:k,toolCard:A,error:j,chip:M,newAgent:N,switchToAgent:P,switchToKanban:F,search:I,home:L,untitled:R,workspace:z,attachFile:B,deleteConversation:V,confirmDeleteConversation:H,confirmShort:U,imagesUnsupported:W,effort:G,emptyTitleMatrix:K,prCard:q,specDraft:J,refs:Y,header:X};export{T as approval,B as attachFile,M as chip,u as close,r as composerPlaceholder,H as confirmDeleteConversation,U as confirmShort,h as connecting,g as consultingCode,o as copy,Z as default,k as degraded,V as deleteConversation,G as effort,p as emptyHint,f as emptyTitle,K as emptyTitleMatrix,j as error,S as git,X as header,y as history,L as home,W as imagesUnsupported,s as maximize,l as minimize,D as mission,v as model,N as newAgent,d as newConversation,O as noProvider,q as prCard,E as project,C as provider,b as queue,x as queueEdit,Y as refs,c as restore,I as search,i as send,_ as size,J as specDraft,a as stop,t as subtitle,P as switchToAgent,F as switchToKanban,m as thinking,w as tier,e as title,A as toolCard,n as trigger,R as untitled,z as workspace};