@orkastery/cli 0.5.3 → 0.6.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.
Files changed (502) hide show
  1. package/adapters/README.md +18 -0
  2. package/adapters/claude-code/.claude-plugin/plugin.json +1 -0
  3. package/adapters/claude-code/README.md +195 -5
  4. package/adapters/claude-code/agents/ork-check.md +1 -0
  5. package/adapters/claude-code/agents/ork-go.md +1 -0
  6. package/adapters/claude-code/agents/ork-goal.md +1 -0
  7. package/adapters/claude-code/agents/ork-master.md +1 -0
  8. package/adapters/claude-code/agents/ork-plan.md +1 -0
  9. package/adapters/claude-code/agents/ork-ship.md +1 -0
  10. package/adapters/claude-code/hooks/hooks.json +2 -1
  11. package/adapters/claude-code/hooks/ork-guard.js +15 -1
  12. package/adapters/claude-code/hooks/ork-resposta.js +91 -0
  13. package/adapters/claude-code/hooks/ork-sensor.js +18 -2
  14. package/adapters/claude-code/hooks/quota-signal.js +14 -0
  15. package/adapters/claude-code/mods/autoridade.json +56 -0
  16. package/adapters/claude-code/mods/ork-clima/.claude-plugin/plugin.json +14 -0
  17. package/adapters/claude-code/mods/ork-clima/hooks/contas.ts +283 -0
  18. package/adapters/claude-code/mods/ork-clima/hooks/hooks.json +3 -0
  19. package/adapters/claude-code/mods/ork-clima/hooks/previsao.ts +393 -0
  20. package/adapters/claude-code/mods/ork-clima/hooks/register.ts +205 -0
  21. package/adapters/claude-code/mods/ork-clima/orkastery-mod.json +5 -0
  22. package/adapters/claude-code/mods/ork-clima/types/index.d.ts +80 -0
  23. package/adapters/claude-code/mods/ork-freio/.claude-plugin/plugin.json +14 -0
  24. package/adapters/claude-code/mods/ork-freio/hooks/carga.ts +160 -0
  25. package/adapters/claude-code/mods/ork-freio/hooks/conferencia.ts +309 -0
  26. package/adapters/claude-code/mods/ork-freio/hooks/hooks.json +3 -0
  27. package/adapters/claude-code/mods/ork-freio/hooks/lote.ts +270 -0
  28. package/adapters/claude-code/mods/ork-freio/hooks/register.ts +285 -0
  29. package/adapters/claude-code/mods/ork-freio/orkastery-mod.json +5 -0
  30. package/adapters/claude-code/mods/ork-freio/types/index.d.ts +127 -0
  31. package/adapters/claude-code/mods/ork-mensageiro/.claude-plugin/plugin.json +14 -0
  32. package/adapters/claude-code/mods/ork-mensageiro/hooks/caixa.ts +215 -0
  33. package/adapters/claude-code/mods/ork-mensageiro/hooks/hooks.json +3 -0
  34. package/adapters/claude-code/mods/ork-mensageiro/hooks/painel.tsx +165 -0
  35. package/adapters/claude-code/mods/ork-mensageiro/hooks/recepcao.ts +256 -0
  36. package/adapters/claude-code/mods/ork-mensageiro/hooks/register.tsx +481 -0
  37. package/adapters/claude-code/mods/ork-mensageiro/orkastery-mod.json +5 -0
  38. package/adapters/claude-code/mods/ork-mensageiro/types/index.d.ts +85 -0
  39. package/adapters/claude-code/mods/ork-mesa/.claude-plugin/plugin.json +14 -0
  40. package/adapters/claude-code/mods/ork-mesa/hooks/cartoes.tsx +246 -0
  41. package/adapters/claude-code/mods/ork-mesa/hooks/decidir.ts +110 -0
  42. package/adapters/claude-code/mods/ork-mesa/hooks/fila.ts +253 -0
  43. package/adapters/claude-code/mods/ork-mesa/hooks/hooks.json +3 -0
  44. package/adapters/claude-code/mods/ork-mesa/hooks/obvia.ts +98 -0
  45. package/adapters/claude-code/mods/ork-mesa/hooks/register.tsx +493 -0
  46. package/adapters/claude-code/mods/ork-mesa/orkastery-mod.json +5 -0
  47. package/adapters/claude-code/mods/ork-mesa/types/index.d.ts +131 -0
  48. package/adapters/claude-code/mods/ork-pista/.claude-plugin/plugin.json +14 -0
  49. package/adapters/claude-code/mods/ork-pista/hooks/acoes.ts +71 -0
  50. package/adapters/claude-code/mods/ork-pista/hooks/ci.ts +121 -0
  51. package/adapters/claude-code/mods/ork-pista/hooks/hooks.json +3 -0
  52. package/adapters/claude-code/mods/ork-pista/hooks/pista.tsx +356 -0
  53. package/adapters/claude-code/mods/ork-pista/hooks/register.tsx +439 -0
  54. package/adapters/claude-code/mods/ork-pista/orkastery-mod.json +5 -0
  55. package/adapters/claude-code/mods/ork-pista/types/index.d.ts +85 -0
  56. package/adapters/claude-code/mods/ork-ponte/.claude-plugin/plugin.json +13 -0
  57. package/adapters/claude-code/mods/ork-ponte/hooks/faixa.tsx +57 -0
  58. package/adapters/claude-code/mods/ork-ponte/hooks/guarda.ts +410 -0
  59. package/adapters/claude-code/mods/ork-ponte/hooks/hooks.json +3 -0
  60. package/adapters/claude-code/mods/ork-ponte/hooks/mostrado.ts +55 -0
  61. package/adapters/claude-code/mods/ork-ponte/hooks/nucleo.ts +157 -0
  62. package/adapters/claude-code/mods/ork-ponte/hooks/papel.ts +42 -0
  63. package/adapters/claude-code/mods/ork-ponte/hooks/register.ts +331 -0
  64. package/adapters/claude-code/mods/ork-ponte/hooks/vigia.ts +76 -0
  65. package/adapters/claude-code/mods/ork-ponte/orkastery-mod.json +5 -0
  66. package/adapters/claude-code/mods/ork-ponte/types/index.d.ts +178 -0
  67. package/adapters/claude-code/mods/ork-portao/.claude-plugin/plugin.json +14 -0
  68. package/adapters/claude-code/mods/ork-portao/hooks/hooks.json +3 -0
  69. package/adapters/claude-code/mods/ork-portao/hooks/lease.ts +201 -0
  70. package/adapters/claude-code/mods/ork-portao/hooks/plano.ts +304 -0
  71. package/adapters/claude-code/mods/ork-portao/hooks/register.ts +339 -0
  72. package/adapters/claude-code/mods/ork-portao/hooks/verify.ts +152 -0
  73. package/adapters/claude-code/mods/ork-portao/orkastery-mod.json +5 -0
  74. package/adapters/claude-code/mods/ork-portao/types/index.d.ts +60 -0
  75. package/adapters/claude-code/mods/ork-radar/.claude-plugin/plugin.json +14 -0
  76. package/adapters/claude-code/mods/ork-radar/hooks/colisao.ts +420 -0
  77. package/adapters/claude-code/mods/ork-radar/hooks/hooks.json +3 -0
  78. package/adapters/claude-code/mods/ork-radar/hooks/mapa.tsx +322 -0
  79. package/adapters/claude-code/mods/ork-radar/hooks/register.tsx +470 -0
  80. package/adapters/claude-code/mods/ork-radar/orkastery-mod.json +5 -0
  81. package/adapters/claude-code/mods/ork-radar/types/index.d.ts +72 -0
  82. package/adapters/claude-code/mods/ork-ritual/.claude-plugin/plugin.json +14 -0
  83. package/adapters/claude-code/mods/ork-ritual/hooks/hooks.json +3 -0
  84. package/adapters/claude-code/mods/ork-ritual/hooks/nota.ts +88 -0
  85. package/adapters/claude-code/mods/ork-ritual/hooks/register.tsx +494 -0
  86. package/adapters/claude-code/mods/ork-ritual/hooks/replay.tsx +271 -0
  87. package/adapters/claude-code/mods/ork-ritual/hooks/ritual.ts +218 -0
  88. package/adapters/claude-code/mods/ork-ritual/orkastery-mod.json +5 -0
  89. package/adapters/claude-code/mods/ork-ritual/types/index.d.ts +106 -0
  90. package/adapters/claude-code/mods/ork-sentinela/.claude-plugin/plugin.json +14 -0
  91. package/adapters/claude-code/mods/ork-sentinela/hooks/alertas.ts +85 -0
  92. package/adapters/claude-code/mods/ork-sentinela/hooks/despacho.ts +156 -0
  93. package/adapters/claude-code/mods/ork-sentinela/hooks/hooks.json +3 -0
  94. package/adapters/claude-code/mods/ork-sentinela/hooks/register.ts +511 -0
  95. package/adapters/claude-code/mods/ork-sentinela/hooks/vigia.ts +186 -0
  96. package/adapters/claude-code/mods/ork-sentinela/orkastery-mod.json +5 -0
  97. package/adapters/claude-code/mods/ork-sentinela/types/index.d.ts +65 -0
  98. package/adapters/claude-code/mods/ork-torre/.claude-plugin/plugin.json +14 -0
  99. package/adapters/claude-code/mods/ork-torre/hooks/agenda.ts +60 -0
  100. package/adapters/claude-code/mods/ork-torre/hooks/detalhe.tsx +236 -0
  101. package/adapters/claude-code/mods/ork-torre/hooks/frases.ts +42 -0
  102. package/adapters/claude-code/mods/ork-torre/hooks/hooks.json +3 -0
  103. package/adapters/claude-code/mods/ork-torre/hooks/painel.tsx +344 -0
  104. package/adapters/claude-code/mods/ork-torre/hooks/rede.ts +97 -0
  105. package/adapters/claude-code/mods/ork-torre/hooks/register.tsx +437 -0
  106. package/adapters/claude-code/mods/ork-torre/orkastery-mod.json +5 -0
  107. package/adapters/claude-code/mods/ork-torre/types/index.d.ts +108 -0
  108. package/adapters/codex/skills/ork/SKILL.md +2 -0
  109. package/adapters/hermes/README.md +64 -1
  110. package/adapters/hermes/bin/ork-conhecimento-colecoes.sh +14 -0
  111. package/adapters/hermes/bin/ork-conhecimento-listar.sh +15 -0
  112. package/adapters/hermes/bin/ork-conhecimento-mostrar.sh +16 -0
  113. package/adapters/hermes/bin/ork-conhecimento-verificar.sh +15 -0
  114. package/adapters/hermes/bin/ork-vigia-batida.py +127 -0
  115. package/adapters/hermes/hermes.plugin.json +4 -0
  116. package/adapters/hermes/hitl-ingress/__init__.py +101 -8
  117. package/adapters/hermes/skills/orkastery-devmaster/SKILL.md +3 -3
  118. package/adapters/openclaw/README.md +83 -10
  119. package/adapters/openclaw/bin/ork-vigia-batida.js +86 -0
  120. package/adapters/openclaw/dist/hitl-ingress.js +106 -9
  121. package/adapters/openclaw/dist/index.js +86 -0
  122. package/adapters/openclaw/openclaw.plugin.json +34 -4
  123. package/adapters/openclaw/package.json +2 -2
  124. package/adapters/openclaw/src/hitl-ingress.ts +103 -9
  125. package/adapters/openclaw/src/index.ts +94 -0
  126. package/assets/adapters-en/claude-code/README.md +403 -0
  127. package/assets/adapters-en/claude-code/agents/ork-check.md +33 -0
  128. package/assets/adapters-en/claude-code/agents/ork-go.md +33 -0
  129. package/assets/adapters-en/claude-code/agents/ork-goal.md +34 -0
  130. package/assets/adapters-en/claude-code/agents/ork-master.md +35 -0
  131. package/assets/adapters-en/claude-code/agents/ork-plan.md +33 -0
  132. package/assets/adapters-en/claude-code/agents/ork-ship.md +33 -0
  133. package/assets/adapters-en/claude-code/commands/check.md +46 -0
  134. package/assets/adapters-en/claude-code/commands/go.md +46 -0
  135. package/assets/adapters-en/claude-code/commands/goal.md +55 -0
  136. package/assets/adapters-en/claude-code/commands/master.md +54 -0
  137. package/assets/adapters-en/claude-code/commands/onboarding.md +22 -0
  138. package/assets/adapters-en/claude-code/commands/ork.md +126 -0
  139. package/assets/adapters-en/claude-code/commands/plan.md +47 -0
  140. package/assets/adapters-en/claude-code/commands/ship.md +45 -0
  141. package/assets/adapters-en/codex/skills/ork/SKILL.md +85 -0
  142. package/assets/adapters-en/hermes/README.md +273 -0
  143. package/assets/adapters-en/hermes/skills/orkastery-devmaster/SKILL.md +169 -0
  144. package/assets/docs-en/markdownlint-cli2.jsonc +22 -0
  145. package/assets/docs-en/padroes/documentacao-de-produto.md +135 -0
  146. package/assets/docs-en/padroes/roadmap-de-produto.md +100 -0
  147. package/assets/docs-en/produto/README.md +14 -0
  148. package/assets/docs-en/produto/_modelo-feature.md +62 -0
  149. package/assets/docs-en/roadmap/README.md +14 -0
  150. package/assets/docs-en/roadmap/_modelo-item.md +75 -0
  151. package/assets/references-en/README.md +25 -0
  152. package/assets/references-en/code-review-axes.md +82 -0
  153. package/assets/references-en/definition-of-done.md +74 -0
  154. package/assets/references-en/performance-checklist.md +53 -0
  155. package/assets/references-en/security-checklist.md +101 -0
  156. package/assets/references-en/testing-patterns.md +51 -0
  157. package/assets/security-scan/defaults/.golangci.yml +2 -0
  158. package/assets/security-scan/defaults/eslint.config.mjs +11 -0
  159. package/assets/security-scan/defaults/gitleaks.toml +3 -0
  160. package/assets/security-scan/defaults/ruff.toml +1 -0
  161. package/assets/security-scan/tools-agil.json +87 -0
  162. package/assets/security-scan/tools.json +625 -0
  163. package/assets/skills-en/core/onboarding/SKILL.md +58 -0
  164. package/assets/skills-en/core/orkastery-bootstrap/SKILL.md +119 -0
  165. package/assets/skills-en/core/thread-state/SKILL.md +88 -0
  166. package/assets/skills-en/governance/decision-triage/SKILL.md +65 -0
  167. package/assets/skills-en/governance/narrative-guardian/SKILL.md +66 -0
  168. package/assets/skills-en/governance/roadmap-keeper/SKILL.md +60 -0
  169. package/assets/skills-en/governance/scope-check-capability-map/SKILL.md +71 -0
  170. package/assets/skills-en/observability/thread-tracing/SKILL.md +63 -0
  171. package/assets/skills-en/phases/check-quality/SKILL.md +103 -0
  172. package/assets/skills-en/phases/go-implementation/SKILL.md +78 -0
  173. package/assets/skills-en/phases/goal-definition/SKILL.md +69 -0
  174. package/assets/skills-en/phases/master-metrics/SKILL.md +72 -0
  175. package/assets/skills-en/phases/plan-specification/SKILL.md +67 -0
  176. package/assets/skills-en/phases/security-remediation/SKILL.md +70 -0
  177. package/assets/skills-en/phases/ship-release/SKILL.md +71 -0
  178. package/assets/skills-en/reviewers/code-reviewer/SKILL.md +61 -0
  179. package/assets/skills-en/reviewers/security-auditor/SKILL.md +93 -0
  180. package/assets/skills-en/reviewers/test-engineer/SKILL.md +66 -0
  181. package/assets/skills-en/reviewers/web-performance-auditor/SKILL.md +63 -0
  182. package/dist/adapters/claude-bg.js +193 -15
  183. package/dist/adapters/codex-controller-worker.js +12 -5
  184. package/dist/adapters/codex-events.js +16 -4
  185. package/dist/adapters/codex.js +13 -2
  186. package/dist/agents-md.js +24 -15
  187. package/dist/atualizar-branch.js +245 -0
  188. package/dist/auditoria.js +13 -11
  189. package/dist/auditrun.js +68 -48
  190. package/dist/autorizacao-duravel.js +327 -0
  191. package/dist/board.js +98 -43
  192. package/dist/branch-de-estado.js +39 -9
  193. package/dist/busca-semantica.js +7 -5
  194. package/dist/catalogo.js +35 -1
  195. package/dist/changelog-reconciliacao.js +290 -0
  196. package/dist/check-agil.js +500 -0
  197. package/dist/check-modo.js +41 -0
  198. package/dist/check-paralelo.js +183 -0
  199. package/dist/ci.js +255 -46
  200. package/dist/ciclos.js +8 -6
  201. package/dist/claim-lint.js +12 -8
  202. package/dist/claims-conferir.js +350 -0
  203. package/dist/claims.js +13 -10
  204. package/dist/company-brain-client.js +45 -3
  205. package/dist/company-brain-journal.js +2 -1
  206. package/dist/company-brain-migration.js +47 -6
  207. package/dist/conducao-batida.js +759 -0
  208. package/dist/conducao-sentinela.js +405 -0
  209. package/dist/conducao-texto.js +12 -18
  210. package/dist/conducao.js +206 -59
  211. package/dist/conhecimento-consulta.js +270 -0
  212. package/dist/conhecimento.js +514 -0
  213. package/dist/conta-esgotada.js +127 -0
  214. package/dist/dado-privado.js +816 -0
  215. package/dist/decisao-autonoma.js +5 -4
  216. package/dist/demo.js +14 -12
  217. package/dist/dependencias-da-worktree.js +25 -0
  218. package/dist/divida.js +38 -36
  219. package/dist/docs.js +103 -82
  220. package/dist/doctor-forja.js +345 -0
  221. package/dist/doctor-pulse-cron.js +294 -27
  222. package/dist/doctor-rede.js +18 -17
  223. package/dist/doctor.js +278 -116
  224. package/dist/dsn-da-memoria.js +417 -0
  225. package/dist/entrega-por-mod.js +503 -0
  226. package/dist/entrega-pr.js +158 -57
  227. package/dist/escopo-escrita.js +10 -1
  228. package/dist/esgotamentos.js +13 -11
  229. package/dist/estado-thread.js +42 -17
  230. package/dist/evalrunner.js +35 -32
  231. package/dist/experiencia-instalacao.js +45 -25
  232. package/dist/fabrica-batida.js +323 -0
  233. package/dist/fabrica-estado.js +49 -16
  234. package/dist/fabrica-publicar.js +3 -1
  235. package/dist/fila-pesada.js +444 -0
  236. package/dist/fix.js +24 -21
  237. package/dist/forja/adaptador.js +6 -0
  238. package/dist/forja/ambiente-de-ci.js +27 -0
  239. package/dist/forja/api.js +256 -0
  240. package/dist/forja/cache.js +89 -0
  241. package/dist/forja/cli.js +60 -0
  242. package/dist/forja/contrato.js +9 -0
  243. package/dist/forja/endereco.js +43 -0
  244. package/dist/forja/estado.js +22 -0
  245. package/dist/forja/executor.js +73 -0
  246. package/dist/forja/github/ci.js +95 -0
  247. package/dist/forja/github/dono-da-rede.js +18 -0
  248. package/dist/forja/github/metadados.js +15 -0
  249. package/dist/forja/github/pedidos.js +200 -0
  250. package/dist/forja/gitlab/ci.js +141 -0
  251. package/dist/forja/gitlab/consultas.js +59 -0
  252. package/dist/forja/gitlab/dono-da-rede.js +43 -0
  253. package/dist/forja/gitlab/metadados.js +15 -0
  254. package/dist/forja/gitlab/pedidos-abertos.js +158 -0
  255. package/dist/forja/gitlab/pedidos.js +141 -0
  256. package/dist/forja/produtor.js +32 -0
  257. package/dist/forja/registro.js +31 -0
  258. package/dist/forja/resolver.js +121 -0
  259. package/dist/forja/texto.js +13 -0
  260. package/dist/forja/versao.js +71 -0
  261. package/dist/forja.js +124 -81
  262. package/dist/gates.js +3 -28
  263. package/dist/handoff.js +33 -19
  264. package/dist/hitl-contract.js +46 -43
  265. package/dist/hitl-curto.js +37 -25
  266. package/dist/hitl-gates.js +13 -11
  267. package/dist/hitl-local-receipt.js +53 -0
  268. package/dist/hitl-local.js +11 -2
  269. package/dist/hitl-lock.js +5 -11
  270. package/dist/hitl-public-receipt.js +11 -0
  271. package/dist/hitl-resumo.js +72 -3
  272. package/dist/hitl-sessions.js +62 -9
  273. package/dist/hitl-tempo-parado.js +4 -4
  274. package/dist/hitl-texto-livre.js +7 -4
  275. package/dist/hitl.js +63 -64
  276. package/dist/horario.js +30 -7
  277. package/dist/hosts.js +155 -134
  278. package/dist/impedimento.js +108 -14
  279. package/dist/index.js +1421 -1019
  280. package/dist/indice-vetorial.js +14 -12
  281. package/dist/indice.js +7 -1
  282. package/dist/init.js +54 -49
  283. package/dist/instabilidade.js +144 -0
  284. package/dist/integracoes-locais.js +4 -0
  285. package/dist/intelligence-graph-cli.js +213 -88
  286. package/dist/intelligence-graph-contexto.js +56 -17
  287. package/dist/intelligence-graph-contract.js +2 -1
  288. package/dist/intelligence-graph-extract-md.js +56 -4
  289. package/dist/intelligence-graph-extract-ts.js +71 -3
  290. package/dist/intelligence-graph-query.js +96 -34
  291. package/dist/leases.js +19 -18
  292. package/dist/ledger-stats.js +17 -16
  293. package/dist/ledger.js +46 -2
  294. package/dist/licoes.js +12 -11
  295. package/dist/liveness.js +6 -3
  296. package/dist/locale-accounts.js +220 -0
  297. package/dist/locale-adapter.js +291 -0
  298. package/dist/locale-ajuda.js +833 -0
  299. package/dist/locale-audit.js +199 -0
  300. package/dist/locale-claims.js +213 -0
  301. package/dist/locale-conducao.js +138 -0
  302. package/dist/locale-conhecimento.js +181 -0
  303. package/dist/locale-decisao.js +205 -0
  304. package/dist/locale-docs.js +230 -0
  305. package/dist/locale-estado.js +101 -0
  306. package/dist/locale-forja.js +290 -0
  307. package/dist/locale-gerados.js +165 -0
  308. package/dist/locale-grafo.js +129 -0
  309. package/dist/locale-master.js +182 -0
  310. package/dist/locale-network.js +524 -0
  311. package/dist/locale-onboarding.js +92 -0
  312. package/dist/locale-operacao-restante.js +931 -0
  313. package/dist/locale-phase.js +151 -0
  314. package/dist/locale-projetos.js +100 -0
  315. package/dist/locale-prompts.js +194 -0
  316. package/dist/locale-pulse.js +349 -0
  317. package/dist/locale-reservas.js +87 -0
  318. package/dist/locale-retry.js +524 -0
  319. package/dist/locale-roadmap.js +102 -0
  320. package/dist/locale-security-scan.js +69 -0
  321. package/dist/locale-setup.js +192 -0
  322. package/dist/locale-ship.js +597 -0
  323. package/dist/locale-thread.js +421 -0
  324. package/dist/locale-verify.js +201 -0
  325. package/dist/locale-worktree.js +246 -0
  326. package/dist/locale.js +1258 -0
  327. package/dist/maestro-runtime.js +22 -3
  328. package/dist/manifest.js +415 -13
  329. package/dist/maquina-ociosa.js +211 -0
  330. package/dist/maquina.js +31 -7
  331. package/dist/master-digest.js +6 -1
  332. package/dist/master-nota-local.js +200 -0
  333. package/dist/master-nota.js +14 -8
  334. package/dist/master.js +139 -65
  335. package/dist/mcp-artifacts.js +11 -2
  336. package/dist/mcp-conhecimento.js +52 -0
  337. package/dist/mcp-experiencia.js +26 -5
  338. package/dist/mcp-git.js +23 -6
  339. package/dist/mcp-grafo.js +7 -4
  340. package/dist/mcp-install.js +73 -8
  341. package/dist/mcp-noctum.js +101 -0
  342. package/dist/mcp-server.js +90 -16
  343. package/dist/mcp-ship-transporte.js +977 -0
  344. package/dist/mcp-ship.js +71 -25
  345. package/dist/mcp-transportes.js +17 -0
  346. package/dist/mcp-verify.js +6 -1
  347. package/dist/memoria.js +63 -58
  348. package/dist/modos-migracao.js +8 -6
  349. package/dist/modos.js +20 -24
  350. package/dist/network-roadmap.js +90 -51
  351. package/dist/noctum-aceite.js +789 -0
  352. package/dist/noctum-arco.js +1418 -0
  353. package/dist/noctum-capacidade.js +141 -0
  354. package/dist/noctum-changelog.js +399 -0
  355. package/dist/noctum-cli.js +482 -0
  356. package/dist/noctum-coordenacao.js +1225 -0
  357. package/dist/noctum-entrega.js +1169 -0
  358. package/dist/noctum-envelope.js +1046 -0
  359. package/dist/noctum-execucao.js +376 -0
  360. package/dist/noctum-fechamento.js +405 -0
  361. package/dist/noctum-fila.js +314 -0
  362. package/dist/noctum-guarda.js +256 -0
  363. package/dist/noctum-integracao.js +507 -0
  364. package/dist/noctum-maquinas.js +383 -0
  365. package/dist/noctum-medicao.js +450 -0
  366. package/dist/noctum-modo.js +362 -0
  367. package/dist/noctum-pergunta-canal.js +96 -0
  368. package/dist/noctum-pergunta.js +115 -0
  369. package/dist/noctum-provas.js +838 -0
  370. package/dist/noctum-reconciliacao.js +591 -0
  371. package/dist/noctum-registro.js +215 -0
  372. package/dist/noctum-relatorio.js +827 -0
  373. package/dist/noctum-resposta.js +207 -0
  374. package/dist/noctum-sessoes-em-voo.js +93 -0
  375. package/dist/noctum-supervisao.js +649 -0
  376. package/dist/noctum-terminal.js +459 -0
  377. package/dist/noctum-transporte.js +655 -0
  378. package/dist/noctum-vigia.js +639 -0
  379. package/dist/ocupacao.js +32 -3
  380. package/dist/onboarding.js +56 -26
  381. package/dist/orkmind.js +48 -25
  382. package/dist/orquestracao.js +44 -47
  383. package/dist/parado-no-condutor.js +174 -127
  384. package/dist/phase.js +144 -63
  385. package/dist/policies.js +37 -4
  386. package/dist/portfolio.js +4 -2
  387. package/dist/postura-local.js +235 -0
  388. package/dist/preflight.js +11 -10
  389. package/dist/procedencia.js +220 -0
  390. package/dist/projeto-alvo.js +186 -24
  391. package/dist/prompts.js +140 -42
  392. package/dist/prova-minima.js +5 -6
  393. package/dist/pulse-cadencia.js +5 -4
  394. package/dist/pulse-consentimento.js +53 -1
  395. package/dist/pulse-delivery.js +151 -24
  396. package/dist/pulse-resposta.js +368 -4
  397. package/dist/pulse.js +188 -22
  398. package/dist/ratelimit.js +16 -6
  399. package/dist/recall.js +14 -13
  400. package/dist/redacao-saida.js +63 -0
  401. package/dist/rede-adesao.js +13 -8
  402. package/dist/rede-forja.js +108 -24
  403. package/dist/rede-status.js +66 -47
  404. package/dist/rede.js +86 -46
  405. package/dist/retomada-checkpoint.js +101 -0
  406. package/dist/retry.js +451 -212
  407. package/dist/roadmap-reservas.js +45 -28
  408. package/dist/roadmap-status.js +129 -33
  409. package/dist/runtime-ambiente.js +5 -0
  410. package/dist/runtime-context.js +284 -32
  411. package/dist/runtime-escada.js +423 -0
  412. package/dist/runtime-profiles.js +103 -46
  413. package/dist/runtimes.js +2 -1
  414. package/dist/saida-segura.js +3 -2
  415. package/dist/security-scan/agil.js +355 -0
  416. package/dist/security-scan/cli.js +76 -0
  417. package/dist/security-scan/compare.js +149 -0
  418. package/dist/security-scan/config.js +93 -0
  419. package/dist/security-scan/detect.js +97 -0
  420. package/dist/security-scan/executor.js +188 -0
  421. package/dist/security-scan/guard.js +180 -0
  422. package/dist/security-scan/imagem-de-lint.js +96 -0
  423. package/dist/security-scan/normalize/actionlint.js +12 -0
  424. package/dist/security-scan/normalize/eslint.js +12 -0
  425. package/dist/security-scan/normalize/gitleaks.js +13 -0
  426. package/dist/security-scan/normalize/golangci-lint.js +13 -0
  427. package/dist/security-scan/normalize/govulncheck.js +36 -0
  428. package/dist/security-scan/normalize/index.js +25 -0
  429. package/dist/security-scan/normalize/npm-audit.js +30 -0
  430. package/dist/security-scan/normalize/osv-scanner.js +32 -0
  431. package/dist/security-scan/normalize/oxlint.js +51 -0
  432. package/dist/security-scan/normalize/pip-audit.js +16 -0
  433. package/dist/security-scan/normalize/ruff.js +12 -0
  434. package/dist/security-scan/normalize/semgrep.js +20 -0
  435. package/dist/security-scan/normalize/trivy.js +33 -0
  436. package/dist/security-scan/normalize/util.js +204 -0
  437. package/dist/security-scan/normalize/zizmor.js +19 -0
  438. package/dist/security-scan/report.js +156 -0
  439. package/dist/security-scan/run.js +448 -0
  440. package/dist/security-scan/tools.js +62 -0
  441. package/dist/security-scan/trabalhador.js +74 -0
  442. package/dist/security-scan/types.js +15 -0
  443. package/dist/session-events.js +26 -5
  444. package/dist/session-watcher-claude.js +81 -20
  445. package/dist/session-watcher.js +340 -42
  446. package/dist/sessoes-contas.js +10 -1
  447. package/dist/sessoes-inventario.js +1 -1
  448. package/dist/sessoes.js +25 -23
  449. package/dist/setup.js +59 -58
  450. package/dist/ship-publicar.js +971 -0
  451. package/dist/ship.js +243 -97
  452. package/dist/steal.js +77 -0
  453. package/dist/superficie.js +14 -11
  454. package/dist/thread-close.js +12 -11
  455. package/dist/thread.js +274 -100
  456. package/dist/tokens.js +15 -11
  457. package/dist/trabalho-thread.js +297 -0
  458. package/dist/transporte-do-canal.js +189 -0
  459. package/dist/types.js +12 -1
  460. package/dist/util.js +13 -3
  461. package/dist/varredura-acoes.js +507 -0
  462. package/dist/verify.js +608 -76
  463. package/dist/vida-da-thread.js +254 -0
  464. package/dist/worktree-local.js +167 -0
  465. package/dist/worktree.js +99 -83
  466. package/dist/yaml.js +27 -8
  467. package/eval/casos/check-quality.json +77 -0
  468. package/eval/casos/security-auditor.json +148 -0
  469. package/eval/casos/security-remediation.json +161 -0
  470. package/eval/fixtures/security-scan/README.md +8 -0
  471. package/eval/fixtures/security-scan/go/.github/workflows/ci.yml +12 -0
  472. package/eval/fixtures/security-scan/go/Dockerfile +4 -0
  473. package/eval/fixtures/security-scan/go/README.md +4 -0
  474. package/eval/fixtures/security-scan/go/config.go +4 -0
  475. package/eval/fixtures/security-scan/go/go.mod +5 -0
  476. package/eval/fixtures/security-scan/go/go.sum +2 -0
  477. package/eval/fixtures/security-scan/go/main.go +31 -0
  478. package/eval/fixtures/security-scan/js/.github/workflows/ci.yml +12 -0
  479. package/eval/fixtures/security-scan/js/Dockerfile +3 -0
  480. package/eval/fixtures/security-scan/js/README.md +4 -0
  481. package/eval/fixtures/security-scan/js/package-lock.json +844 -0
  482. package/eval/fixtures/security-scan/js/package.json +10 -0
  483. package/eval/fixtures/security-scan/js/src/config.js +4 -0
  484. package/eval/fixtures/security-scan/js/src/server.js +17 -0
  485. package/eval/fixtures/security-scan/js/src/util.ts +4 -0
  486. package/eval/fixtures/security-scan/js/tsconfig.json +4 -0
  487. package/eval/fixtures/security-scan/python/.github/workflows/ci.yml +12 -0
  488. package/eval/fixtures/security-scan/python/Dockerfile +3 -0
  489. package/eval/fixtures/security-scan/python/README.md +4 -0
  490. package/eval/fixtures/security-scan/python/app/__init__.py +0 -0
  491. package/eval/fixtures/security-scan/python/app/config.py +2 -0
  492. package/eval/fixtures/security-scan/python/app/main.py +19 -0
  493. package/eval/fixtures/security-scan/python/requirements.txt +1 -0
  494. package/package.json +9 -4
  495. package/references/security-checklist.md +3 -3
  496. package/schemas/code-artifact-graph.v1.schema.json +2 -1
  497. package/skills/README.md +1 -0
  498. package/skills/core/orkastery-bootstrap/SKILL.md +2 -2
  499. package/skills/phases/check-quality/SKILL.md +16 -0
  500. package/skills/phases/go-implementation/SKILL.md +6 -0
  501. package/skills/phases/security-remediation/SKILL.md +70 -0
  502. package/skills/reviewers/security-auditor/SKILL.md +25 -0
@@ -0,0 +1,524 @@
1
+ "use strict";
2
+ /**
3
+ * RM-061, fatia F2b: a familia `retry` do catalogo de mensagens (`ork retry plan` e `ork retry run`). O
4
+ * pt-BR e a fonte; o ingles e tipado por ele. Sem import do nucleo.
5
+ *
6
+ * A politica por motivo tipado (`porque` e `correcao`) tem a fonte aqui: `POLITICA_DE_RETRY` le o pt-BR, e
7
+ * o `--json` de `retry plan` e de `retry policy` nao muda. A razao do plano e o detalhe da execucao vao ao
8
+ * ledger: o comando os monta em pt-BR, e so a impressao os remonta no locale (G2 da F2b). Motivo, acao,
9
+ * bloqueio e comando saem iguais nas duas linguas (G4): o condutor procura `auth-missing` e
10
+ * `quota-exhausted` na saida de `ork retry run`.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.RETRY_EN = exports.RETRY_PT_BR = void 0;
14
+ exports.RETRY_PT_BR = {
15
+ /** `porque` e `correcao` de cada motivo tipado: a fonte de `POLITICA_DE_RETRY`. */
16
+ politica: {
17
+ 'artifact.missing': {
18
+ porque: 'o artefato exigido pela fase nao existe: a fase precisa de spec dirigida do que gravar, nao de repeticao cega do mesmo prompt',
19
+ correcao: 'ork fix open <thread> abre a rodada com a spec exata',
20
+ },
21
+ 'claims.failed': {
22
+ porque: 'a alegacao reprovou na reexecucao no HEAD real: reexecutar a fase igual reproduz a mesma mentira; o que resolve e GO-FIX com a claim e o comando exatos',
23
+ correcao: 'ork fix open <thread> e depois ork fix reverify <thread>',
24
+ },
25
+ 'claims.unverifiable': {
26
+ porque: 'alegacao sem comando de verificacao vira correcao tipo A: anexar o comando (ou retirar a alegacao com motivo) e uma linha, nao um GO inteiro',
27
+ correcao: 'ork claims verificar <thread> <claim> --comando "<comando>"',
28
+ },
29
+ 'policy.violation': {
30
+ porque: 'policy com severidade block reprova em qualquer modo: reexecutar sozinho seria a maquina revogando a policy do manifesto',
31
+ correcao: 'corrija a violacao no pedido/manifesto; policy block nao se resolve por repeticao',
32
+ },
33
+ 'runtime.autoconferencia': {
34
+ porque: 'repetir o despacho no MESMO runtime daria o mesmo resultado: o que falta nao e tentativa, e um validador que nao seja quem executou. Escolher o outro runtime e decisao de conducao, nao retry',
35
+ correcao: 'despache o CHECK em outro runtime (`ork phase run <thread> CHECK --runtime <outro>`), ou tire a exigencia de validacao cruzada da thread se ela nao se justifica',
36
+ },
37
+ 'runtime.profile-invalid': {
38
+ porque: 'o perfil foi pedido pelo dono (--perfil) e nao existe no store ou e de outro runtime: repetir o pedido daria a mesma recusa, e trocar de perfil sozinho desobedeceria o pedido',
39
+ correcao: 'ork accounts list mostra os perfis de cada runtime; repita o despacho com um perfil do runtime certo ou sem --perfil',
40
+ },
41
+ 'cost.violation': {
42
+ porque: 'violacao de CUSTO nunca recebe retry automatico: cada reexecucao gastaria de novo pelo provider pago (subscription-only e regra de codigo, nao lembrete)',
43
+ correcao: 'tire do ambiente a variavel que redireciona o despacho e rode a fase de novo a mao, com o gasto sob os olhos de um humano',
44
+ },
45
+ 'verify.regression': {
46
+ porque: 'o comando passava na baseline e falha agora: o defeito e desta thread e tem alvo conhecido, entao ele vira spec de GO-FIX tipo B',
47
+ correcao: 'ork fix open <thread> (a reexecucao seguinte e completa)',
48
+ },
49
+ 'verify.failed': {
50
+ porque: 'o comando falha sem baseline para separar regressao de divida: a correcao dirigida conserta ou grava a baseline, mas nao chuta de quem e a culpa',
51
+ correcao: 'ork fix open <thread>, ou ork verify <thread> --baseline antes do proximo GO',
52
+ },
53
+ 'verify.timeout': {
54
+ porque: 'o prazo estourou antes de o comando terminar: a prova nao chegou ao fim, e carga de maquina nao e defeito. A reexecucao e completa, e o limite de escalacao do manifesto impede repetir para sempre',
55
+ correcao: 'ork verify <thread> de novo; se estourar sempre, suba verify.timeout_ms no manifesto ou divida o comando',
56
+ },
57
+ 'verify.sem-veredito': {
58
+ porque: 'um comando nao chegou a rodar ou o produto mudou no meio da rodada: nao ha veredito sobre ele, e a prova certa e rodar de novo, inteira',
59
+ correcao: 'ork verify <thread> de novo, sem editar a worktree durante a rodada',
60
+ },
61
+ 'ci.failed': {
62
+ porque: 'o recibo pertence ao provedor e ao SHA candidato: repetir uma fase não cria nem altera legitimamente esse resultado',
63
+ correcao: 'publique a candidata, aguarde o check obrigatório e repita o SHIP; se reprovou, corrija a causa registrada no runner',
64
+ },
65
+ 'runtime.unavailable': {
66
+ porque: 'falha de infraestrutura no despacho nao e falha de conteudo: o MESMO prompt, com o mesmo sha256, sobe a escada de recuperacao ' +
67
+ '(reerguer o daemon do runtime, o fallback do bloco, outro perfil) sem alterar uma virgula, e so depois dela o dono e chamado',
68
+ correcao: 'ork retry run <thread> sobe a escada com o prompt ja gravado em disco',
69
+ },
70
+ 'runtime.silencio': {
71
+ porque: 'fase sem heartbeat: retomar o despacho original com hash conferido e limite de tentativas',
72
+ correcao: 'ork retry run <thread> --motivo runtime.silencio',
73
+ },
74
+ 'runtime.rate-limited': {
75
+ porque: 'o limite de uso tem HORA de volta: a fase entra na fila duravel e e retomada na janela seguinte, sem humano no meio e sem gastar por fora da assinatura',
76
+ correcao: 'ork retry list mostra a fila; ork retry resume retoma o que ja liberou',
77
+ },
78
+ 'runtime.quota-exhausted': {
79
+ porque: 'a cota ou os creditos da CONTA acabaram, nao a infraestrutura: o perfil sai do rodizio ate o prazo; o prompt original, se o intervalo ficou vazio, ou um checkpoint da producao parcial segue no proximo perfil, no runtime de fallback ou na fila ate o menor prazo',
80
+ correcao: 'ork accounts list mostra o perfil esgotado; ork retry run <thread> rotaciona o prompt ja gravado',
81
+ },
82
+ 'runtime.auth-missing': {
83
+ porque: 'a conta do runtime perdeu a autenticacao: o perfil nunca mais recebe despacho ate o login ser refeito pelo proprio CLI, e o MESMO prompt segue no proximo perfil ou no runtime de fallback',
84
+ correcao: 'ork accounts check confere o login de cada perfil; ork retry run <thread> rotaciona o prompt ja gravado',
85
+ },
86
+ 'runtime.model-unavailable': {
87
+ porque: 'o modelo pedido nao existe ou a conta nao tem acesso a ele: o MESMO prompt, com o mesmo sha256, segue no proximo perfil do mesmo runtime com o mesmo modelo e depois no fallback do bloco, nunca de novo no par que ja recusou',
88
+ correcao: 'ork retry run <thread> troca o destino; sem destino, ork setup <modo> --bloco N --model <modelo acessivel> ou --fallback runtime:modelo',
89
+ },
90
+ 'runtime.workspace-untrusted': {
91
+ porque: 'o runtime recusou o diretorio da worktree antes de rodar qualquer coisa: depois que o dono aceita a confianca no terminal, o MESMO prompt, com o mesmo sha256, volta a mesma fase; enquanto a confianca nao aparece no .claude.json da conta, nada e despachado',
92
+ correcao: 'o dono roda o comando da pausa (cd <worktree> && claude, aceita a confianca); ork retry run <thread> re-despacha o prompt ja gravado',
93
+ },
94
+ 'runtime.consent-pending': {
95
+ porque: 'o runtime espera o dono aceitar termos novos antes de rodar qualquer coisa: depois do aceite, o MESMO prompt, com o mesmo sha256, volta a mesma fase; se o runtime recusar de novo, a mesma pausa do dono volta',
96
+ correcao: 'o dono abre o CLI do runtime e aceita os termos; ork retry run <thread> re-despacha o prompt ja gravado',
97
+ },
98
+ 'tree.blocked': {
99
+ porque: 'a arvore de destino andou por baixo da thread: rebasar a worktree contra a base e o passo que desbloqueia, e reexecutar antes disso so repete o conflito',
100
+ correcao: 'ork worktree sync <thread> e so entao repetir o passo',
101
+ },
102
+ 'lease.resume-unavailable': {
103
+ porque: 'sem inode seguro, a remocao forcada exige avaliar a posse antes de retomar',
104
+ correcao: 'ork lease release <nome> --forcar; depois repita a aquisicao',
105
+ },
106
+ 'lease.busy': {
107
+ porque: 'o lease e de outra thread e vai ser liberado: a fila ja serializa, entao a acao e tentar de novo quando chegar a vez, nunca furar a fila',
108
+ correcao: 'ork lease list mostra a fila; a vez chega sem ninguem forcar',
109
+ },
110
+ 'conducao.em-andamento': {
111
+ porque: 'outra conducao executa na mesma worktree agora: a vez chega quando ela terminar, e furar a fila e o incidente de 19/09/2026',
112
+ correcao: 'ork conducao status <thread> mostra quem conduz; repita o pedido com --esperar <min> para seguir sozinho quando liberar',
113
+ },
114
+ 'hitl.formato': {
115
+ porque: 'o pedido HITL saiu fora do formato obrigatorio: quem errou foi o emissor, e a correcao e reemitir com alternativas rotuladas, consequencia por alternativa e exatamente uma recomendada com o porque',
116
+ correcao: 'ork fix open <thread> abre a rodada com a spec exata do formato',
117
+ },
118
+ 'human.pending': {
119
+ porque: 'nao e reprovacao de verdade, e espera de autorizacao: automatizar a espera seria a maquina se autorizando',
120
+ correcao: 'ork gate request <thread>',
121
+ },
122
+ },
123
+ usoPlanRun: (sub) => `uso: ork retry ${sub} <thread-id> [--motivo M] [--fase F]`,
124
+ // textoDoPlano
125
+ titulo: (thread) => `Plano de retry da thread ${thread}`,
126
+ modo: (modo) => ` modo ${modo}`,
127
+ fase: (fase) => ` fase ${fase ?? '(nenhuma)'}`,
128
+ motivo: (motivo) => ` motivo tipado ${motivo ?? '(nenhuma reprovacao pendente)'}`,
129
+ detalhe: (detalhe) => ` detalhe ${detalhe}`,
130
+ acao: (acao) => ` acao ${acao}`,
131
+ tentativas: (feitas, limite) => ` tentativas ${feitas} de ${limite} antes da escalacao`,
132
+ esforco: (effort, anterior) => ` esforco ${effort}${anterior !== null ? ` (escalado de ${anterior})` : ''}`,
133
+ automatica: (sim) => ` automatica ${sim ? 'sim' : 'nao'}`,
134
+ bloqueio: (bloqueio) => ` bloqueio ${bloqueio}`,
135
+ razao: (razao) => ` razao ${razao}`,
136
+ correcao: (correcao) => ` correcao ${correcao}`,
137
+ // textoDoRetry
138
+ execucao: (executada) => `Execucao: ${executada ? 'acao executada' : 'nada executado'}`,
139
+ linhaDoDetalhe: (detalhe) => ` ${detalhe}`,
140
+ rodada: (rodada, correcoes) => `GO-FIX rodada ${rodada}: ${correcoes}`,
141
+ correcaoDaRodada: (id, tipo, origem) => `${id} (tipo ${tipo}, ${origem})`,
142
+ reverify: (veredito, cobertura) => `CHECK-REVERIFY: ${veredito} (cobertura ${cobertura})`,
143
+ /** O veredito e a cobertura do CHECK-REVERIFY sao dado (ledger, --json); o texto so os traduz na impressao. */
144
+ vereditos: { 'PASSOU': 'PASSOU', 'PRECISA DE MUDANCA': 'PRECISA DE MUDANCA', 'BLOQUEADO': 'BLOQUEADO' },
145
+ coberturas: { completa: 'completa', parcial: 'parcial' },
146
+ fila: 'Fila de rate limit desta thread:',
147
+ pedidoNaFila: (id, fase, quando, estimada) => ` ${id} ${fase} libera em ${quando}${estimada ? ' (janela estimada)' : ''}`,
148
+ complementar: {
149
+ politicaTitulo: 'Politica de retry por motivo tipado de gate (bloco B3)',
150
+ colunasPolitica: ['MOTIVO TIPADO', 'ACAO DE RETRY', 'AUTOMATICA', 'POR QUE'],
151
+ sim: 'sim', nao: 'nao',
152
+ politicaFecho: [
153
+ 'A politica e a MESMA em todos os modos: o modo afrouxa a pausa, nunca a',
154
+ 'verificacao. cost.violation nunca recebe retry automatico, e o limite de',
155
+ 'escalacao (retry.max_tentativas) pausa qualquer modo, inclusive #Auto.',
156
+ ],
157
+ motivoDesconhecido: (motivo) => `motivo tipado desconhecido: ${motivo}`,
158
+ conhecidos: (lista) => ` conhecidos: ${lista}`,
159
+ motivo: (valor) => `motivo tipado: ${valor}`,
160
+ significado: (valor) => ` significado ${valor}`,
161
+ acao: (valor) => ` acao ${valor}`,
162
+ automatica: (valor) => ` automatica ${valor}`,
163
+ porque: (valor) => ` por que ${valor}`,
164
+ correcao: (valor) => ` correcao ${valor}`,
165
+ usoParse: 'uso: ork retry parse --stderr "<texto do stderr do adapter>"',
166
+ semSinal: 'Nenhum sinal de rate limit reconhecido neste texto.',
167
+ sinal: 'Sinal de rate limit reconhecido no stderr do runtime:',
168
+ fonte: (valor) => ` fonte da hora ${valor}`,
169
+ reset: (valor) => ` reset em ${valor}`,
170
+ semHora: '(o runtime nao disse a hora)',
171
+ trecho: (valor) => ` trecho ${valor}`,
172
+ estimada: [
173
+ ' Sem hora no texto, a fila usa retry.janela_padrao_min do manifesto e marca',
174
+ ' o pedido como janela ESTIMADA. O `ork` nao inventa horario de reset.',
175
+ ],
176
+ proxima: (quando, falta) => `Proxima janela: ${quando} (${falta}).`,
177
+ retome: 'Retome com: ork retry resume',
178
+ usoCancel: 'uso: ork retry cancel <id> --motivo "<motivo>"',
179
+ cancelado: (id) => `Pedido ${id} cancelado na fila de rate limit.`,
180
+ thread: (valor) => ` thread ${valor}`, fase: (valor) => ` fase ${valor}`,
181
+ motivoLinha: (valor) => ` motivo ${valor}`,
182
+ desconhecido: (sub) => `subcomando desconhecido: retry ${sub}`,
183
+ filaVazia: 'Fila de rate limit vazia: nenhuma fase morreu por limite de uso neste projeto.',
184
+ colunasFila: ['ID', 'THREAD', 'FASE', 'ESTADO', 'LIBERA EM', 'ORIGEM DA HORA', 'FALTA', 'TENT'],
185
+ estados: { aguardando: 'aguardando', retomado: 'retomado', escalado: 'escalado', cancelado: 'cancelado' },
186
+ horaEstimada: (fonte) => `estimada (${fonte})`, horaRuntime: (fonte) => `dita pelo runtime (${fonte})`,
187
+ retomadaVazia: 'Nenhum pedido da fila de rate limit com a janela liberada agora.',
188
+ retomadaCabecalho: (id, thread, fase) => `${id} thread ${thread} fase ${fase}`,
189
+ playbook: (v) => ` playbook ${v}`, slug: (v) => ` slug ${v}`,
190
+ retomada: (sim, sessao) => ` retomada ${sim ? `sim (sessao ${sessao})` : 'nao'}`,
191
+ motivoRetomada: (v) => ` motivo ${v}`, detalhe: (v) => ` detalhe ${v}`,
192
+ estado: (v) => ` estado ${v}`,
193
+ },
194
+ // planejarRetry: a razao do plano (vai ao ledger)
195
+ semReprovacao: 'nenhum gate reprovado no ledger desta thread',
196
+ nadaARepetir: 'nao ha o que repetir: o ledger da thread nao tem reprovacao tipada pendente',
197
+ limiteDeEscalacao: (tentativas, motivo, fase, limite) => `${tentativas} tentativa(s) automatica(s) por ${motivo} em ${fase}, no limite de ${limite} ` +
198
+ 'do manifesto: escalacao tipada pausa qualquer modo, inclusive #Auto',
199
+ comDelegacao: (porque, razao, delegado, evidencia) => `${porque}; ${razao}; delegado ${delegado}; evidência ${evidencia}`,
200
+ blocoPausa: (fases, pausaSobre, acao) => `o bloco ${fases} pausa neste modo ` +
201
+ `(${pausaSobre}): a acao ${acao} espera autorizacao humana. O modo afrouxa a pausa, nunca a verificacao.`,
202
+ silencioSemProva: 'runtime.silencio exige prova terminal atual da mesma sessao; ausencia ou silencio nao provam morte',
203
+ // executarRetry: o detalhe da execucao (vai ao ledger)
204
+ conduzidaAgora: (linha) => `${linha}; nada foi redespachado, a vez chega quando essa conducao terminar`,
205
+ ninguemConduz: 'ninguem conduz a thread agora: o proximo pedido segue normalmente',
206
+ naFila: (n, quando) => `${n} pedido(s) na fila duravel; o proximo libera em ${quando}`,
207
+ filaVazia: 'nenhum pedido aguardando na fila para esta thread',
208
+ sincronizada: (passos) => `worktree sincronizada com a base (${passos})`,
209
+ sincronizacaoFalhou: (detalhe) => `sincronizacao nao concluiu: ${detalhe}`,
210
+ checkPassou: 'o CHECK passou no HEAD real: nao ha correcao a dirigir',
211
+ correcoesNaRodada: (n, rodada, veredito) => `${n} correcao(oes) na rodada ${rodada}` + (veredito !== null ? `; CHECK-REVERIFY: ${veredito}` : ''),
212
+ semDespachoFalho: (fase, thread) => `nao ha despacho falho registrado em ${fase} com prompt gravado: ` +
213
+ `rode a fase de novo com \`ork phase run ${thread} ${fase} --prompt "..."\``,
214
+ semConfianca: (motivo, cwd, thread) => `${motivo}: o runtime ainda nao confia em ${cwd}; nada foi despachado. ` +
215
+ `Rode \`cd ${cwd} && claude\`, aceite a confianca e repita \`ork retry run ${thread}\``,
216
+ /** RM-063 (F3): a sessao viva na thread; redespachar abriria a segunda na mesma worktree. */
217
+ sessaoAindaViva: (sessao, thread) => `a sessao ${sessao} ainda trabalha na thread no runtime; nada foi ` +
218
+ `redespachado (uma segunda sessao na mesma worktree). Espere ela terminar, ou pare-a com \`ork sessions stop ${sessao}\`, ` +
219
+ `e repita \`ork retry run ${thread}\``,
220
+ runtimeSemProva: (detalhe, thread) => `o runtime nao respondeu (${detalhe}): sem a prova de que nenhuma ` +
221
+ `sessao trabalha na thread, nada foi redespachado; repita \`ork retry run ${thread}\` quando ele responder`,
222
+ semDespachoComPrompt: (motivo, fase) => `nao ha despacho com prompt gravado para ${motivo} em ${fase}: rode a fase de novo com ork phase run`,
223
+ rotacaoRecusada: (erro) => `rotacao recusada: ${erro}`,
224
+ producaoParcialConta: (cota, evidencia) => `producao parcial sob ${cota ? 'cota esgotada' : 'auth ausente'}: ${evidencia}; ` +
225
+ 'a sessao nao e redespachada sobre a worktree alterada e a fase nao conclui sem o humano',
226
+ limiteDaRotacao: (tentativas, motivo, fase, limite) => `${tentativas} tentativa(s) de rotacao por ${motivo} em ${fase}, no limite de ${limite} do manifesto: escalacao tipada pausa qualquer modo`,
227
+ semLogin: 'nenhum perfil com login conferido em nenhum runtime da ordem de fallback: ' +
228
+ 'refaca o login com ork accounts add ou ork accounts check antes de retomar',
229
+ entrariaNaFila: (quando) => `ensaio: entraria na fila duravel ate ${quando}`,
230
+ pedidoAte: (id, quando) => `pedido ${id} na fila ate ${quando}`,
231
+ trocaRecusada: (erro) => `troca de destino recusada: ${erro}`,
232
+ producaoParcialModelo: (rotulo, evidencia) => `producao parcial com o modelo ${rotulo} inacessivel: ${evidencia}; ` +
233
+ 'a sessao nao e redespachada sobre a worktree alterada e a fase nao conclui sem o humano',
234
+ padraoDoRuntime: '(padrao do runtime)',
235
+ ensaioDoModelo: (runtime, perfil, modelo, detalhe) => `ensaio: o mesmo prompt iria a ${runtime}` +
236
+ `${perfil ? ` (perfil ${perfil})` : ''} com o modelo ${modelo}; ${detalhe}`,
237
+ limiteDaTroca: (tentativas, motivo, fase, limite) => `${tentativas} tentativa(s) de troca por ${motivo} em ${fase}, no limite de ${limite} do manifesto: escalacao tipada pausa qualquer modo`,
238
+ modeloSemDestino: (rotulo, tentados, correcao) => `o modelo ${rotulo} nao esta acessivel em ${tentados} e o bloco nao tem outro destino: ${correcao}`,
239
+ correcaoDoModelo: (modo, bloco) => `ork setup ${modo} --bloco ${bloco} --model <modelo acessivel>, ou declare no mesmo bloco --fallback runtime:modelo`,
240
+ // redespachar: o detalhe do redespacho (vai ao ledger)
241
+ promptSumiu: (caminho) => `o prompt gravado sumiu do disco: ${caminho}`,
242
+ promptMudou: (caminho, atual, original) => `o prompt em ${caminho} mudou desde o despacho original ` +
243
+ `(sha256 ${atual} != ${original}): retomada e redespachar o MESMO texto`,
244
+ jaConduz: (sessao, fase) => `a sessao ${sessao} ja conduz a fase ${fase} com este prompt: nada foi redespachado`,
245
+ baselinePendente: (runtime) => `baseline.pendente: o bloco com GO no ${runtime} precisa da baseline antes da retomada`,
246
+ runtimeIndisponivel: (erro) => `runtime.unavailable: ${erro}`,
247
+ ensaioDoRedespacho: 'ensaio (--dry-run): comando montado, nada despachado',
248
+ semSessionId: 'sem sessionId na saida do runtime',
249
+ redespachada: (sessao, sha, perfil, runtime) => `sessao ${sessao} despachada com o mesmo prompt sha256 ${sha}` + (perfil ? ` no perfil ${perfil} (${runtime})` : ''),
250
+ /** RM-063 (F4): a escada de recuperacao do runtime. Vai ao ledger em pt-BR; a impressao remonta no locale. */
251
+ escada: {
252
+ degraus: { 'reerguer-daemon': 'reerguer o daemon do runtime', 'fallback-do-bloco': 'o fallback do bloco',
253
+ 'outro-perfil': 'outro perfil do runtime' },
254
+ pulos: { 'sem-fallback': 'o bloco nao tem fallback de runtime',
255
+ 'adaptador-ausente': 'nenhum fallback tem adaptador instalado neste projeto',
256
+ 'fallback-sem-destino': 'nenhum alvo do fallback do bloco tem perfil disponivel',
257
+ 'sem-outro-perfil': 'o runtime nao tem outro perfil disponivel' },
258
+ resultados: { redespachada: 'redespachada', falhou: 'falhou', pulado: 'pulado', interrompido: 'interrompido' },
259
+ linhaDoDegrau: (n, tipo, resultado, motivo) => `degrau ${n} (${tipo}): ${resultado}${motivo ? ` (${motivo})` : ''}`,
260
+ noPlano: (n, tipo) => ` escada degrau ${n} de 3, ${tipo}`,
261
+ noPlanoEsgotada: ' escada os 3 degraus acabaram neste episodio',
262
+ esgotada: (resumo) => `a escada de recuperacao do runtime acabou sem sessao (${resumo}): ` +
263
+ 'escalacao tipada pausa qualquer modo, inclusive #Auto',
264
+ correcao: (conferir, retomar) => `confira o runtime (${conferir}) e retome com o mesmo prompt: ${retomar}`,
265
+ proximo: (n, tipo) => `o mesmo prompt sobe a escada de recuperacao no degrau ${n}: ${tipo}`,
266
+ ensaio: (n, tipo, destino) => `ensaio: o degrau ${n} (${tipo}) mandaria o mesmo prompt a ${destino}`,
267
+ ensaioPulado: (n, tipo, pulo) => `ensaio: o degrau ${n} (${tipo}) seria pulado: ${pulo}`,
268
+ ensaioEsgotada: 'ensaio: nenhum degrau da escada tem destino agora; o dono seria chamado',
269
+ lancou: (erro) => `runtime.unavailable: o adaptador lancou no redespacho: ${erro}`,
270
+ semResposta: (vezes, detalhe) => `o runtime nao respondeu a prova de vida em ${vezes} tentativa(s) seguidas ` +
271
+ `(${detalhe}), mesmo depois de reerguer o daemon: sem a prova, nada foi redespachado`,
272
+ },
273
+ };
274
+ exports.RETRY_EN = {
275
+ politica: {
276
+ 'artifact.missing': {
277
+ porque: 'the artifact the phase requires does not exist: the phase needs a directed spec of what to write, not a blind repeat of the same prompt',
278
+ correcao: '`ork fix open <thread>` opens the round with the exact spec',
279
+ },
280
+ 'claims.failed': {
281
+ porque: 'the claim failed when rerun on the real HEAD: running the phase again the same way reproduces the same lie; what fixes it is a GO-FIX with the exact claim and command',
282
+ correcao: '`ork fix open <thread>` and then `ork fix reverify <thread>`',
283
+ },
284
+ 'claims.unverifiable': {
285
+ porque: 'a claim without a verification command becomes a type A fix: attaching the command (or withdrawing the claim with a reason) is one line, not a whole GO',
286
+ correcao: 'ork claims verificar <thread> <claim> --comando "<command>"',
287
+ },
288
+ 'policy.violation': {
289
+ porque: 'a policy with block severity fails in any mode: rerunning on its own would be the machine revoking the manifest policy',
290
+ correcao: 'fix the violation in the request or the manifest; a block policy is not solved by repetition',
291
+ },
292
+ 'runtime.autoconferencia': {
293
+ porque: 'repeating the dispatch on the SAME runtime would give the same result: what is missing is not another attempt but a validator other than the one that executed. Picking the other runtime is a conduction decision, not a retry',
294
+ correcao: 'dispatch CHECK on another runtime (`ork phase run <thread> CHECK --runtime <other>`), or drop the cross-validation requirement from the thread if it is not justified',
295
+ },
296
+ 'runtime.profile-invalid': {
297
+ porque: 'the owner asked for the profile (`--perfil`) and it does not exist in the store or belongs to another runtime: repeating the request would get the same refusal, and switching profiles on its own would disobey the request',
298
+ correcao: '`ork accounts list` shows the profiles of each runtime; repeat the dispatch with a profile of the right runtime or without `--perfil`',
299
+ },
300
+ 'cost.violation': {
301
+ porque: 'a COST violation never gets an automatic retry: each rerun would spend again through the paid provider (subscription-only is a code rule, not a reminder)',
302
+ correcao: 'remove from the environment the variable that redirects the dispatch and run the phase again by hand, with a human watching the spend',
303
+ },
304
+ 'verify.regression': {
305
+ porque: 'the command passed in the baseline and fails now: the defect belongs to this thread and has a known target, so it becomes a type B GO-FIX spec',
306
+ correcao: '`ork fix open <thread>` (the next rerun is complete)',
307
+ },
308
+ 'verify.failed': {
309
+ porque: 'the command fails with no baseline to tell a regression from debt: the directed fix repairs it or records the baseline, but does not guess who is to blame',
310
+ correcao: '`ork fix open <thread>`, or `ork verify <thread> --baseline` before the next GO',
311
+ },
312
+ 'verify.timeout': {
313
+ porque: 'the deadline ran out before the command finished: the proof did not reach the end, and machine load is not a defect. The rerun is complete, and the manifest escalation limit keeps it from repeating forever',
314
+ correcao: '`ork verify <thread>` again; if it always times out, raise `verify.timeout_ms` in the manifest or split the command',
315
+ },
316
+ 'verify.sem-veredito': {
317
+ porque: 'a command never ran or the product changed during the run: there is no verdict on it, and the right proof is to run again, in full',
318
+ correcao: '`ork verify <thread>` again, without editing the worktree during the run',
319
+ },
320
+ 'ci.failed': {
321
+ porque: 'the receipt belongs to the provider and to the candidate SHA: repeating a phase neither creates nor legitimately changes that result',
322
+ correcao: 'publish the candidate, wait for the required check and run SHIP again; if it failed, fix the cause recorded on the runner',
323
+ },
324
+ 'runtime.unavailable': {
325
+ porque: 'an infrastructure failure in the dispatch is not a content failure: the SAME prompt, with the same sha256, climbs the ' +
326
+ 'recovery ladder (bring the runtime daemon back up, the block fallback, another profile) without changing a comma, and only ' +
327
+ 'after it is the owner called',
328
+ correcao: '`ork retry run <thread>` climbs the ladder with the prompt already on disk',
329
+ },
330
+ 'runtime.silencio': {
331
+ porque: 'phase with no heartbeat: resume the original dispatch with the hash checked and an attempt limit',
332
+ correcao: 'ork retry run <thread> --motivo runtime.silencio',
333
+ },
334
+ 'runtime.rate-limited': {
335
+ porque: 'the usage limit has a TIME to come back: the phase enters the durable queue and resumes in the next window, with no human in the middle and no spending outside the subscription',
336
+ correcao: '`ork retry list` shows the queue; `ork retry resume` resumes what is already released',
337
+ },
338
+ 'runtime.quota-exhausted': {
339
+ porque: 'the ACCOUNT quota or credits ran out, not the infrastructure: the profile leaves the rotation until the deadline; the original prompt after an empty interval, or a checkpoint of partial production, goes on to the next profile, the fallback runtime or the queue until the earliest deadline',
340
+ correcao: '`ork accounts list` shows the exhausted profile; `ork retry run <thread>` rotates the prompt already written',
341
+ },
342
+ 'runtime.auth-missing': {
343
+ porque: 'the runtime account lost its authentication: the profile gets no dispatch until the login is redone through the CLI itself, and the SAME prompt goes on to the next profile or the fallback runtime',
344
+ correcao: '`ork accounts check` checks the login of each profile; `ork retry run <thread>` rotates the prompt already written',
345
+ },
346
+ 'runtime.model-unavailable': {
347
+ porque: 'the requested model does not exist or the account has no access to it: the SAME prompt, with the same sha256, goes on to the next profile of the same runtime with the same model and then to the block fallback, never again to the pair that already refused',
348
+ correcao: '`ork retry run <thread>` switches the target; with no target, `ork setup <mode> --bloco N --model <available model>` or `--fallback runtime:model`',
349
+ },
350
+ 'runtime.workspace-untrusted': {
351
+ porque: 'the runtime refused the worktree directory before running anything: once the owner accepts trust in the terminal, the SAME prompt, with the same sha256, goes back to the same phase; while the trust is not in the account .claude.json, nothing is dispatched',
352
+ correcao: 'the owner runs the pause command (`cd <worktree> && claude`, accepting the trust); `ork retry run <thread>` re-dispatches the prompt already on disk',
353
+ },
354
+ 'runtime.consent-pending': {
355
+ porque: 'the runtime waits for the owner to accept new terms before running anything: after the acceptance, the SAME prompt, with the same sha256, goes back to the same phase; if the runtime refuses again, the same owner pause comes back',
356
+ correcao: 'the owner opens the runtime CLI and accepts the terms; `ork retry run <thread>` re-dispatches the prompt already on disk',
357
+ },
358
+ 'tree.blocked': {
359
+ porque: 'the target tree moved under the thread: rebasing the worktree onto the base is the step that unblocks it, and rerunning before that only repeats the conflict',
360
+ correcao: '`ork worktree sync <thread>`, and only then repeat the step',
361
+ },
362
+ 'lease.resume-unavailable': {
363
+ porque: 'without a safe inode, the forced removal requires checking ownership before resuming',
364
+ correcao: '`ork lease release <name> --forcar`; then repeat the acquisition',
365
+ },
366
+ 'lease.busy': {
367
+ porque: 'the lease belongs to another thread and will be released: the queue already serializes, so the action is to try again when the turn comes, never to jump the queue',
368
+ correcao: '`ork lease list` shows the queue; the turn comes with nobody forcing it',
369
+ },
370
+ 'conducao.em-andamento': {
371
+ porque: 'another conduction runs on the same worktree now: the turn comes when it finishes, and jumping the queue is the 2026-09-19 incident',
372
+ correcao: '`ork conducao status <thread>` shows who conducts; repeat the request with `--esperar <min>` to go on by itself when it frees up',
373
+ },
374
+ 'hitl.formato': {
375
+ porque: 'the HITL request came out of the required format: the issuer made the mistake, and the fix is to issue it again with labeled alternatives, a consequence per alternative and exactly one recommended, with the reason',
376
+ correcao: '`ork fix open <thread>` opens the round with the exact format spec',
377
+ },
378
+ 'human.pending': {
379
+ porque: 'this is not a real failure but a wait for authorization: automating the wait would be the machine authorizing itself',
380
+ correcao: 'ork gate request <thread>',
381
+ },
382
+ },
383
+ usoPlanRun: (sub) => `usage: ork retry ${sub} <thread-id> [--motivo M] [--fase F]`,
384
+ titulo: (thread) => `Retry plan for thread ${thread}`,
385
+ modo: (modo) => ` mode ${modo}`,
386
+ fase: (fase) => ` phase ${fase ?? '(none)'}`,
387
+ motivo: (motivo) => ` typed reason ${motivo ?? '(no pending failure)'}`,
388
+ detalhe: (detalhe) => ` detail ${detalhe}`,
389
+ acao: (acao) => ` action ${acao}`,
390
+ tentativas: (feitas, limite) => ` attempts ${feitas} of ${limite} before escalation`,
391
+ esforco: (effort, anterior) => ` effort ${effort}${anterior !== null ? ` (escalated from ${anterior})` : ''}`,
392
+ automatica: (sim) => ` automatic ${sim ? 'yes' : 'no'}`,
393
+ bloqueio: (bloqueio) => ` blocked by ${bloqueio}`,
394
+ razao: (razao) => ` reason ${razao}`,
395
+ correcao: (correcao) => ` fix ${correcao}`,
396
+ execucao: (executada) => `Run: ${executada ? 'action taken' : 'nothing run'}`,
397
+ linhaDoDetalhe: (detalhe) => ` ${detalhe}`,
398
+ rodada: (rodada, correcoes) => `GO-FIX round ${rodada}: ${correcoes}`,
399
+ correcaoDaRodada: (id, tipo, origem) => `${id} (type ${tipo}, ${origem})`,
400
+ reverify: (veredito, cobertura) => `CHECK-REVERIFY: ${veredito} (coverage ${cobertura})`,
401
+ vereditos: { 'PASSOU': 'PASSED', 'PRECISA DE MUDANCA': 'NEEDS CHANGES', 'BLOQUEADO': 'BLOCKED' },
402
+ coberturas: { completa: 'full', parcial: 'partial' },
403
+ fila: 'Rate limit queue for this thread:',
404
+ pedidoNaFila: (id, fase, quando, estimada) => ` ${id} ${fase} released at ${quando}${estimada ? ' (estimated window)' : ''}`,
405
+ complementar: {
406
+ politicaTitulo: 'Retry policy by typed gate reason (block B3)',
407
+ colunasPolitica: ['TYPED REASON', 'RETRY ACTION', 'AUTOMATIC', 'WHY'],
408
+ sim: 'yes', nao: 'no',
409
+ politicaFecho: [
410
+ 'The policy is the SAME in every mode: the mode loosens pauses, never',
411
+ 'verification. cost.violation never gets an automatic retry, and the',
412
+ 'escalation limit (retry.max_tentativas) pauses every mode, including #Auto.',
413
+ ],
414
+ motivoDesconhecido: (reason) => `unknown typed reason: ${reason}`,
415
+ conhecidos: (list) => ` known: ${list}`,
416
+ motivo: (value) => `typed reason: ${value}`,
417
+ significado: (value) => ` meaning ${value}`,
418
+ acao: (value) => ` action ${value}`,
419
+ automatica: (value) => ` automatic ${value}`,
420
+ porque: (value) => ` why ${value}`,
421
+ correcao: (value) => ` fix ${value}`,
422
+ usoParse: 'usage: ork retry parse --stderr "<adapter stderr text>"',
423
+ semSinal: 'No rate-limit signal was recognized in this text.',
424
+ sinal: 'Rate-limit signal recognized in runtime stderr:',
425
+ fonte: (value) => ` time source ${value}`,
426
+ reset: (value) => ` reset at ${value}`,
427
+ semHora: '(the runtime did not provide a time)',
428
+ trecho: (value) => ` excerpt ${value}`,
429
+ estimada: [
430
+ ' With no time in the text, the queue uses retry.janela_padrao_min from the manifest',
431
+ ' and marks the request as an ESTIMATED window. `ork` does not invent a reset time.',
432
+ ],
433
+ proxima: (when, remaining) => `Next window: ${when} (${remaining}).`,
434
+ retome: 'Resume with: ork retry resume',
435
+ usoCancel: 'usage: ork retry cancel <id> --motivo "<reason>"',
436
+ cancelado: (id) => `Request ${id} cancelled in the rate-limit queue.`,
437
+ thread: (value) => ` thread ${value}`, fase: (value) => ` phase ${value}`,
438
+ motivoLinha: (value) => ` reason ${value}`,
439
+ desconhecido: (sub) => `unknown subcommand: retry ${sub}`,
440
+ filaVazia: 'Rate-limit queue is empty: no phase died from a usage limit in this project.',
441
+ colunasFila: ['ID', 'THREAD', 'PHASE', 'STATE', 'RELEASES AT', 'TIME SOURCE', 'LEFT', 'TRY'],
442
+ estados: { aguardando: 'waiting', retomado: 'resumed', escalado: 'escalated', cancelado: 'cancelled' },
443
+ horaEstimada: (source) => `estimated (${source})`, horaRuntime: (source) => `reported by runtime (${source})`,
444
+ retomadaVazia: 'No rate-limit queue request has a released window now.',
445
+ retomadaCabecalho: (id, thread, phase) => `${id} thread ${thread} phase ${phase}`,
446
+ playbook: (v) => ` playbook ${v}`, slug: (v) => ` slug ${v}`,
447
+ retomada: (yes, session) => ` resumed ${yes ? `yes (session ${session})` : 'no'}`,
448
+ motivoRetomada: (v) => ` reason ${v}`, detalhe: (v) => ` detail ${v}`,
449
+ estado: (v) => ` state ${v}`,
450
+ },
451
+ semReprovacao: 'no failed gate in the ledger of this thread',
452
+ nadaARepetir: 'nothing to repeat: the thread ledger has no pending typed failure',
453
+ limiteDeEscalacao: (tentativas, motivo, fase, limite) => `${tentativas} automatic attempt(s) for ${motivo} in ${fase}, at the manifest limit of ${limite}: ` +
454
+ 'a typed escalation pauses any mode, including #Auto',
455
+ comDelegacao: (porque, razao, delegado, evidencia) => `${porque}; ${razao}; delegate ${delegado}; evidence ${evidencia}`,
456
+ blocoPausa: (fases, pausaSobre, acao) => `the ${fases} block pauses in this mode ` +
457
+ `(${pausaSobre}): action ${acao} waits for human authorization. The mode loosens the pause, never the verification.`,
458
+ silencioSemProva: 'runtime.silencio needs current terminal proof from the same session; absence or silence does not prove death',
459
+ conduzidaAgora: (linha) => `${linha}; nothing was dispatched again, the turn comes when that conduction ends`,
460
+ ninguemConduz: 'nobody conducts the thread now: the next request goes on normally',
461
+ naFila: (n, quando) => `${n} request(s) in the durable queue; the next one is released at ${quando}`,
462
+ filaVazia: 'no request waiting in the queue for this thread',
463
+ sincronizada: (passos) => `worktree synced with the base (${passos})`,
464
+ sincronizacaoFalhou: (detalhe) => `sync did not finish: ${detalhe}`,
465
+ checkPassou: 'CHECK passed on the real HEAD: there is no fix to direct',
466
+ correcoesNaRodada: (n, rodada, veredito) => `${n} fix(es) in round ${rodada}` + (veredito !== null ? `; CHECK-REVERIFY: ${veredito}` : ''),
467
+ semDespachoFalho: (fase, thread) => `no failed dispatch with a written prompt is recorded in ${fase}: ` +
468
+ `run the phase again with \`ork phase run ${thread} ${fase} --prompt "..."\``,
469
+ semConfianca: (motivo, cwd, thread) => `${motivo}: the runtime does not trust ${cwd} yet; nothing was dispatched. ` +
470
+ `Run \`cd ${cwd} && claude\`, accept the trust and repeat \`ork retry run ${thread}\``,
471
+ sessaoAindaViva: (sessao, thread) => `session ${sessao} is still working on the thread in the runtime; nothing was ` +
472
+ `redispatched (a second session on the same worktree). Wait for it to end, or stop it with \`ork sessions stop ${sessao}\`, ` +
473
+ `and repeat \`ork retry run ${thread}\``,
474
+ runtimeSemProva: (detalhe, thread) => `the runtime did not respond (${detalhe}): with no proof that no session works on the ` +
475
+ `thread, nothing was redispatched; repeat \`ork retry run ${thread}\` when it responds`,
476
+ semDespachoComPrompt: (motivo, fase) => `no dispatch with a written prompt for ${motivo} in ${fase}: run the phase again with \`ork phase run\``,
477
+ rotacaoRecusada: (erro) => `rotation refused: ${erro}`,
478
+ producaoParcialConta: (cota, evidencia) => `partial production under ${cota ? 'an exhausted quota' : 'missing auth'}: ${evidencia}; ` +
479
+ 'the session is not dispatched again over the changed worktree, and the phase does not finish without the human',
480
+ limiteDaRotacao: (tentativas, motivo, fase, limite) => `${tentativas} rotation attempt(s) for ${motivo} in ${fase}, at the manifest limit of ${limite}: a typed escalation pauses any mode`,
481
+ semLogin: 'no profile with a checked login in any runtime of the fallback order: ' +
482
+ 'redo the login with `ork accounts add` or `ork accounts check` before resuming',
483
+ entrariaNaFila: (quando) => `dry run: would enter the durable queue until ${quando}`,
484
+ pedidoAte: (id, quando) => `request ${id} in the queue until ${quando}`,
485
+ trocaRecusada: (erro) => `target switch refused: ${erro}`,
486
+ producaoParcialModelo: (rotulo, evidencia) => `partial production with model ${rotulo} unavailable: ${evidencia}; ` +
487
+ 'the session is not dispatched again over the changed worktree, and the phase does not finish without the human',
488
+ padraoDoRuntime: '(runtime default)',
489
+ ensaioDoModelo: (runtime, perfil, modelo, detalhe) => `dry run: the same prompt would go to ${runtime}` +
490
+ `${perfil ? ` (profile ${perfil})` : ''} with model ${modelo}; ${detalhe}`,
491
+ limiteDaTroca: (tentativas, motivo, fase, limite) => `${tentativas} switch attempt(s) for ${motivo} in ${fase}, at the manifest limit of ${limite}: a typed escalation pauses any mode`,
492
+ modeloSemDestino: (rotulo, tentados, correcao) => `model ${rotulo} is not available on ${tentados} and the block has no other target: ${correcao}`,
493
+ correcaoDoModelo: (modo, bloco) => `\`ork setup ${modo} --bloco ${bloco} --model <available model>\`, or declare \`--fallback runtime:model\` in the same block`,
494
+ promptSumiu: (caminho) => `the written prompt is gone from disk: ${caminho}`,
495
+ promptMudou: (caminho, atual, original) => `the prompt at ${caminho} changed since the original dispatch ` +
496
+ `(sha256 ${atual} != ${original}): resuming means dispatching the SAME text again`,
497
+ jaConduz: (sessao, fase) => `session ${sessao} already conducts phase ${fase} with this prompt: nothing was dispatched again`,
498
+ baselinePendente: (runtime) => `baseline.pendente: the block with GO on ${runtime} needs the baseline before resuming`,
499
+ runtimeIndisponivel: (erro) => `runtime.unavailable: ${erro}`,
500
+ ensaioDoRedespacho: 'dry run (--dry-run): command built, nothing dispatched',
501
+ semSessionId: 'no sessionId in the runtime output',
502
+ redespachada: (sessao, sha, perfil, runtime) => `session ${sessao} dispatched with the same prompt sha256 ${sha}` + (perfil ? ` on profile ${perfil} (${runtime})` : ''),
503
+ escada: {
504
+ degraus: { 'reerguer-daemon': 'bring the runtime daemon back up', 'fallback-do-bloco': 'the block fallback',
505
+ 'outro-perfil': 'another runtime profile' },
506
+ pulos: { 'sem-fallback': 'the block has no runtime fallback', 'adaptador-ausente': 'no fallback has an adapter installed in this project',
507
+ 'fallback-sem-destino': 'no target of the block fallback has an available profile',
508
+ 'sem-outro-perfil': 'the runtime has no other available profile' },
509
+ resultados: { redespachada: 'dispatched again', falhou: 'failed', pulado: 'skipped', interrompido: 'interrupted' },
510
+ linhaDoDegrau: (n, tipo, resultado, motivo) => `step ${n} (${tipo}): ${resultado}${motivo ? ` (${motivo})` : ''}`,
511
+ noPlano: (n, tipo) => ` ladder step ${n} of 3, ${tipo}`,
512
+ noPlanoEsgotada: ' ladder the 3 steps are spent in this episode',
513
+ esgotada: (resumo) => `the runtime recovery ladder ended with no session (${resumo}): ` +
514
+ 'a typed escalation pauses any mode, #Auto included',
515
+ correcao: (conferir, retomar) => `check the runtime (${conferir}) and resume with the same prompt: ${retomar}`,
516
+ proximo: (n, tipo) => `the same prompt climbs the recovery ladder at step ${n}: ${tipo}`,
517
+ ensaio: (n, tipo, destino) => `dry run: step ${n} (${tipo}) would send the same prompt to ${destino}`,
518
+ ensaioPulado: (n, tipo, pulo) => `dry run: step ${n} (${tipo}) would be skipped: ${pulo}`,
519
+ ensaioEsgotada: 'dry run: no step of the ladder has a target now; the owner would be called',
520
+ lancou: (erro) => `runtime.unavailable: the adapter threw in the redispatch: ${erro}`,
521
+ semResposta: (vezes, detalhe) => `the runtime did not answer the liveness proof in ${vezes} attempt(s) in a row ` +
522
+ `(${detalhe}), even after bringing the daemon back up: without the proof, nothing was redispatched`,
523
+ },
524
+ };