@semacode/cli 1.5.34 → 1.5.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -37,8 +37,9 @@ Importante:
37
37
  - a Sema usa \`execucao\` para explicitar timeout, retry, compensacao e criticidade
38
38
  - a Sema usa \`drift\` para medir diferenca entre contrato e codigo vivo com score, confianca e lacunas
39
39
  - a Sema usa \`resumo\` e \`prompt-curto\` para IA fraca, gratuita ou com pouco contexto
40
- - a Sema usa \`contexto-ia\` para gerar \`ast.json\`, \`ir.json\`, \`drift.json\`, \`briefing.json\` e artefatos compactos antes da edicao
41
- - a Sema pode servir de base para interfaces graficas elegantes e coerentes
40
+ - a Sema usa \`contexto-ia\` para gerar \`ast.json\`, \`ir.json\`, \`drift.json\`, \`briefing.json\` e artefatos compactos antes da edicao
41
+ - timeout definido pelo agente nao e falha do Sema; aumente o timeout e tente de novo antes de concluir falha
42
+ - a Sema pode servir de base para interfaces graficas elegantes e coerentes
42
43
  - a Sema nao gera uma interface completa sozinha no estado atual
43
44
  - trate a Sema como cerebro semantico da aplicacao, nao como gerador magico de front-end pronto
44
45
  - se a tarefa envolver UI, prefira pedir Sema + React + TypeScript ou Sema + arquitetura de front-end
@@ -48,8 +49,9 @@ Regras:
48
49
  - nao invente sintaxe fora da gramatica e dos exemplos oficiais
49
50
  - antes de qualquer acao, crie, edite ou remova o contrato .sema aplicavel; isso vale para Software, Author, Workflow, Ops, Game, Legal e Research
50
51
  - se a IA for fraca, nao tente abrir tudo de uma vez
51
- - use \`sema resumo\` e \`briefing.min.json\` antes de subir para o pacote completo
52
- - trate \`ir --json\` como fonte de verdade semantica
52
+ - use \`sema resumo\` e \`briefing.min.json\` antes de subir para o pacote completo
53
+ - se \`sema resumo . --micro\` estourar timeout local, repita com timeout maior ou escopo menor; nao avance com codigo
54
+ - trate \`ir --json\` como fonte de verdade semantica
53
55
  - trate \`briefing.json\` como plano de intervencao antes de editar projeto vivo
54
56
  - trate \`diagnosticos --json\` como fonte de correcao
55
57
  - use \`sema formatar\` como fonte unica de estilo
@@ -74,10 +76,11 @@ Comandos essenciais:
74
76
  - geracao de codigo: \`sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart|lua> --saida <diretorio>\`
75
77
  - verificacao final: \`sema verificar <arquivo-ou-pasta> [--json]\`
76
78
 
77
- Antes de editar:
78
- 1. leia README, docs de IA e um exemplo oficial parecido
79
+ Antes de editar:
80
+ 1. leia README, docs de IA e um exemplo oficial parecido
79
81
  2. se a IA for fraca, rode \`sema resumo <arquivo> --micro\` e leia \`briefing.min.json\`
80
- 3. se a IA aguentar mais, rode \`sema drift\` para medir impls, vinculos, rotas, score e lacunas
82
+ - se timeout local estourar, aumente o timeout e tente de novo; timeout nao significa Sema inativo
83
+ 3. se a IA aguentar mais, rode \`sema drift\` para medir impls, vinculos, rotas, score e lacunas
81
84
  4. se a tarefa for pesada, rode \`sema contexto-ia\` e leia \`briefing.json\`
82
85
  5. consulte AST e IR do modulo alvo so quando a capacidade realmente aguentar
83
86
 
@@ -1575,6 +1578,41 @@ function criarPoliticaIdiomaAgentContext() {
1575
1578
  comandosESimbolos: "Não traduza comandos, nomes de arquivos, rotas, símbolos de código ou palavras-chave da DSL.",
1576
1579
  };
1577
1580
  }
1581
+ function criarPoliticaCodigoGovernadoAgentContext() {
1582
+ return {
1583
+ marcador: "SEMA-GOVERNED",
1584
+ regra: "Arquivos de código gerados ou governados pela Sema devem manter um cabeçalho curto com módulo de origem, lembrete para consultar o contrato .sema e descrição humana no idioma do usuário.",
1585
+ descricaoHumana: "O comentário deve orientar humanos e IAs sem duplicar o contrato inteiro dentro do código.",
1586
+ porCapacidade: {
1587
+ fraca: "Se abrir código com SEMA-GOVERNED, pare, leia SEMA_SMALL_MODEL.md e chame Sema antes de editar.",
1588
+ media: "Se abrir código com SEMA-GOVERNED, rode docs-impacto e drift antes de alterar comportamento.",
1589
+ forte: "Se abrir código com SEMA-GOVERNED, pode inspecionar AST/IR e código completo, mas mantém contrato primeiro, drift e finalizar-mudanca.",
1590
+ },
1591
+ formatosPorAlvo: {
1592
+ typescript: "// SEMA-GOVERNED",
1593
+ javascript: "// SEMA-GOVERNED",
1594
+ python: "# SEMA-GOVERNED",
1595
+ dart: "// SEMA-GOVERNED",
1596
+ lua: "-- SEMA-GOVERNED",
1597
+ html: "<!-- SEMA-GOVERNED -->",
1598
+ css: "/* SEMA-GOVERNED */",
1599
+ },
1600
+ };
1601
+ }
1602
+ function criarPoliticaTimeoutResumoAgentContext() {
1603
+ return {
1604
+ regra: "Timeout definido pelo agente não é falha do Sema. Se `sema resumo`, `inspecionar`, `drift` ou `sync-ai-entrypoints` estourar por timeout local, aumente o timeout e tente de novo com escopo menor quando possível.",
1605
+ timeoutInicialSegundos: 120,
1606
+ escalonamentoSegundos: [120, 300, 600],
1607
+ timeoutDoAgenteNaoEhFalhaSema: true,
1608
+ ateQuandoTentar: "Tente de novo com timeouts maiores enquanto houver execução disponível; se o ambiente impedir continuar, pare bloqueado e não avance com código sem Sema.",
1609
+ porCapacidade: {
1610
+ fraca: "Se `resumo . --micro` estourar, tente `resumo <arquivo.sema> --micro`, depois repita com timeout maior. Timeout não autoriza editar.",
1611
+ media: "Prefira resumo escopado; se um gate Sema estourar, aumente timeout e repita antes de concluir falha.",
1612
+ forte: "Pode rodar projeto inteiro com timeout alto, mas deve distinguir lentidão de falha real e registrar evidência.",
1613
+ },
1614
+ };
1615
+ }
1578
1616
  function criarEntrypointsClientesIa() {
1579
1617
  return [
1580
1618
  {
@@ -1616,6 +1654,8 @@ function criarFailClosedAgentContext() {
1616
1654
  "Se o MCP remoto não tiver projeto sincronizado, use sema_chat_contexto e sema_sync/conteúdo inline; não peça para ler C:\\GitHub\\Sema.",
1617
1655
  "Se for criar ou corrigir .sema, use sema_exemplos antes de escrever sintaxe.",
1618
1656
  "Se a resposta humana estiver em PT-BR, preserve acentos e símbolos mesmo que a DSL use ASCII.",
1657
+ "Se um arquivo de código tiver SEMA-GOVERNED, consulte Sema e o contrato aplicável antes de editar.",
1658
+ "Se uma chamada Sema estourar por timeout local, aumente o timeout e tente de novo; timeout do agente não libera ação sem Sema.",
1619
1659
  ];
1620
1660
  }
1621
1661
  function criarAgentContextPack(guiaPorCapacidade) {
@@ -1727,7 +1767,7 @@ function criarAgentContextPack(guiaPorCapacidade) {
1727
1767
  ];
1728
1768
  return {
1729
1769
  nome: "Agent Context Pack",
1730
- versao: 2,
1770
+ versao: 3,
1731
1771
  objetivo: "Dar a agentes IA uma entrada curta, estruturada e auditável antes de abrir código cru ou inventar contexto.",
1732
1772
  ordemLeitura: [
1733
1773
  ARQUIVO_SEMA_BOOT,
@@ -1748,6 +1788,8 @@ function criarAgentContextPack(guiaPorCapacidade) {
1748
1788
  "Valide .sema alterado e rode drift antes de concluir.",
1749
1789
  "Quando faltar contrato aplicável, crie ou edite o contrato antes do código.",
1750
1790
  "Responda no idioma do usuário e preserve acentos, cedilha, pontuação e símbolos humanos.",
1791
+ "Mantenha o cabeçalho SEMA-GOVERNED em código gerado ou governado e volte ao contrato antes de editar.",
1792
+ "Se uma chamada Sema estourar por timeout local, aumente o timeout e tente novamente; não trate lentidão como sessão inativa.",
1751
1793
  ],
1752
1794
  proibicoes: [
1753
1795
  "Não inventar sintaxe Sema fora da gramática e dos exemplos oficiais.",
@@ -1756,12 +1798,16 @@ function criarAgentContextPack(guiaPorCapacidade) {
1756
1798
  "Não publicar, deployar ou remover capacidade sem contrato, drift e verificação.",
1757
1799
  "Não misturar repositório público e privado sem conferir docs de repositórios e AGENTS.md.",
1758
1800
  "Não usar a estética ASCII da DSL como desculpa para escrever PT-BR sem acentos.",
1801
+ "Não remover SEMA-GOVERNED nem substituir drift por comentário dentro do código.",
1802
+ "Não copiar o contrato inteiro para comentário de código; mantenha descrição humana curta.",
1803
+ "Não tratar timeout definido pelo agente como falha do Sema ou permissão para pular gate.",
1759
1804
  ],
1760
1805
  prioridades: [
1761
1806
  "Menor artefato suficiente primeiro.",
1762
1807
  "Contrato, índice e AGENTS antes de código cru.",
1763
1808
  "Exemplos oficiais antes de nova sintaxe.",
1764
1809
  "Diagnóstico estruturado antes de opinião livre.",
1810
+ "Retry progressivo em timeout antes de declarar bloqueio.",
1765
1811
  "Se risco ou escopo estiver ambíguo, parar e pedir contrato/contexto.",
1766
1812
  ],
1767
1813
  fontes,
@@ -1777,11 +1823,15 @@ function criarAgentContextPack(guiaPorCapacidade) {
1777
1823
  aliasesCapacidade: { ...ALIASES_CAPACIDADE_IA },
1778
1824
  entrypointsClientes: criarEntrypointsClientesIa(),
1779
1825
  politicaIdioma: criarPoliticaIdiomaAgentContext(),
1826
+ politicaCodigoGovernado: criarPoliticaCodigoGovernadoAgentContext(),
1827
+ politicaTimeoutResumo: criarPoliticaTimeoutResumoAgentContext(),
1780
1828
  failClosed: criarFailClosedAgentContext(),
1781
1829
  };
1782
1830
  }
1783
1831
  function renderizarSemaBoot(agentContextPack) {
1784
1832
  const politica = agentContextPack.politicaIdioma;
1833
+ const politicaCodigo = agentContextPack.politicaCodigoGovernado;
1834
+ const politicaTimeout = agentContextPack.politicaTimeoutResumo;
1785
1835
  return `# SEMA_BOOT
1786
1836
 
1787
1837
  Você está em um projeto governado por Sema. O contrato semântico vem antes de qualquer ação.
@@ -1800,6 +1850,26 @@ Você está em um projeto governado por Sema. O contrato semântico vem antes de
1800
1850
  - Média: leia este boot, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.curto.txt\`, \`SEMA_INDEX.json\` e a doc indicada pelo Sema.
1801
1851
  - Forte: leia este boot, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.md\`, \`SEMA_INDEX.json\`, \`AGENTS.md\` e rode os gates completos.
1802
1852
 
1853
+ ## Código governado
1854
+
1855
+ ${politicaCodigo.regra}
1856
+
1857
+ - Marcador: \`${politicaCodigo.marcador}\`.
1858
+ - IA fraca: ${politicaCodigo.porCapacidade.fraca}
1859
+ - IA média: ${politicaCodigo.porCapacidade.media}
1860
+ - IA forte: ${politicaCodigo.porCapacidade.forte}
1861
+
1862
+ ## Timeout e retry
1863
+
1864
+ ${politicaTimeout.regra}
1865
+
1866
+ - Timeout inicial recomendado para projeto inteiro: ${politicaTimeout.timeoutInicialSegundos}s.
1867
+ - Escalonamento: ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
1868
+ - IA fraca: ${politicaTimeout.porCapacidade.fraca}
1869
+ - IA média: ${politicaTimeout.porCapacidade.media}
1870
+ - IA forte: ${politicaTimeout.porCapacidade.forte}
1871
+ - ${politicaTimeout.ateQuandoTentar}
1872
+
1803
1873
  ## Idioma humano
1804
1874
 
1805
1875
  ${politica.regra}
@@ -1815,6 +1885,7 @@ ${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
1815
1885
  `;
1816
1886
  }
1817
1887
  function renderizarSemaSmallModel(agentContextPack) {
1888
+ const politicaTimeout = agentContextPack.politicaTimeoutResumo;
1818
1889
  return `# SEMA_SMALL_MODEL
1819
1890
 
1820
1891
  Leia isto primeiro se você tem pouco contexto, pouca memória, pouco tool use ou tendência a ignorar instruções longas.
@@ -1826,6 +1897,8 @@ Leia isto primeiro se você tem pouco contexto, pouca memória, pouco tool use o
1826
1897
  5. Se não houver contrato: crie ou edite o contrato antes do código.
1827
1898
  6. Se não conseguir chamar Sema: pare e declare bloqueio.
1828
1899
  7. Responda no idioma do usuário. Em PT-BR, use acentos e símbolos normais.
1900
+ 8. Se abrir código com \`${agentContextPack.politicaCodigoGovernado.marcador}\`: volte ao contrato, chame Sema e só então edite.
1901
+ 9. Se Sema estourar por timeout local: aumente o timeout e tente de novo. Não trate isso como falha do Sema.
1829
1902
 
1830
1903
  Ordem curta:
1831
1904
 
@@ -1835,6 +1908,14 @@ Ordem curta:
1835
1908
  - \`SEMA_INDEX.json\`
1836
1909
  - \`AGENTS.md\`
1837
1910
 
1911
+ Timeout:
1912
+
1913
+ - Timeout local do agente não é falha do Sema.
1914
+ - Projeto inteiro: comece com ${politicaTimeout.timeoutInicialSegundos}s ou mais.
1915
+ - Escalonamento: ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
1916
+ - Se o projeto inteiro for lento, escopar para \`sema resumo <arquivo.sema> --micro --para mudanca\`.
1917
+ - ${politicaTimeout.ateQuandoTentar}
1918
+
1838
1919
  Fail-closed:
1839
1920
 
1840
1921
  ${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
@@ -1845,6 +1926,14 @@ function renderizarDocumentoAgentesPorCapacidade(agentContextPack) {
1845
1926
 
1846
1927
  Sema deve funcionar em agentes fortes, médios e fracos. A diferença não é só tamanho de contexto; é disciplina operacional.
1847
1928
 
1929
+ ## Código Governado
1930
+
1931
+ Arquivos gerados ou governados pela Sema devem manter o marcador \`${agentContextPack.politicaCodigoGovernado.marcador}\`.
1932
+
1933
+ - Fraca: ${agentContextPack.politicaCodigoGovernado.porCapacidade.fraca}
1934
+ - Média: ${agentContextPack.politicaCodigoGovernado.porCapacidade.media}
1935
+ - Forte: ${agentContextPack.politicaCodigoGovernado.porCapacidade.forte}
1936
+
1848
1937
  ## Fraca
1849
1938
 
1850
1939
  Use para Copilot em modo simples, Cline/Roo com pouco contexto, modelos locais pequenos e agentes que ignoram instrução longa.
@@ -1870,6 +1959,17 @@ Use para Codex, Claude e agentes com tool use confiável.
1870
1959
  - Pode consumir AST/IR/drift completos.
1871
1960
  - Ainda deve respeitar contrato primeiro e falha fechada.
1872
1961
 
1962
+ ## Timeout e Retry
1963
+
1964
+ ${agentContextPack.politicaTimeoutResumo.regra}
1965
+
1966
+ - Timeout inicial para resumo de projeto inteiro: ${agentContextPack.politicaTimeoutResumo.timeoutInicialSegundos}s.
1967
+ - Escalonamento recomendado: ${agentContextPack.politicaTimeoutResumo.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
1968
+ - Fraca: ${agentContextPack.politicaTimeoutResumo.porCapacidade.fraca}
1969
+ - Média: ${agentContextPack.politicaTimeoutResumo.porCapacidade.media}
1970
+ - Forte: ${agentContextPack.politicaTimeoutResumo.porCapacidade.forte}
1971
+ - ${agentContextPack.politicaTimeoutResumo.ateQuandoTentar}
1972
+
1873
1973
  ## Idioma
1874
1974
 
1875
1975
  ${agentContextPack.politicaIdioma.regra}
@@ -1883,6 +1983,7 @@ ${agentContextPack.entrypointsClientes.map((cliente) => `- ${cliente.cliente}: $
1883
1983
  }
1884
1984
  function renderizarInstrucaoClienteSema(cliente, capacidade, agentContextPack) {
1885
1985
  const guia = agentContextPack.guiaPorCapacidade[capacidade];
1986
+ const politicaTimeout = agentContextPack.politicaTimeoutResumo;
1886
1987
  const tituloCliente = cliente === "generico" ? "agente" : cliente;
1887
1988
  return `# Sema para ${tituloCliente}
1888
1989
 
@@ -1901,6 +2002,17 @@ Ordem de leitura: ${guia.join(" -> ")}.
1901
2002
  Falha fechada:
1902
2003
  ${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
1903
2004
 
2005
+ Timeout:
2006
+ - Timeout local do agente não é falha do Sema.
2007
+ - Se uma chamada Sema estourar, aumente o timeout e tente de novo antes de declarar bloqueio.
2008
+ - Para projeto inteiro, comece com ${politicaTimeout.timeoutInicialSegundos}s ou mais; se for lento, escale ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
2009
+ - Se possível, reduza escopo para \`sema resumo <arquivo.sema> --micro --para mudanca\`.
2010
+
2011
+ Código governado:
2012
+ - Mantenha o marcador \`${agentContextPack.politicaCodigoGovernado.marcador}\` em código gerado ou governado.
2013
+ - Ao encontrar esse marcador, volte ao contrato .sema aplicável e chame Sema antes de editar.
2014
+ - Comentário de código é lembrete curto; não substitui drift, docs-impacto nem finalizar-mudanca.
2015
+
1904
2016
  Idioma:
1905
2017
  - Responda no idioma do usuário.
1906
2018
  - Em PT-BR, use acentos, cedilha, pontuação e símbolos normais.
@@ -2243,6 +2355,7 @@ Regras:
2243
2355
  - use este resumo como fonte compacta inicial
2244
2356
  - se a tarefa pedir mais contexto, suba para \`briefing.min.json\`, \`drift.json\` e depois \`ir.json\`
2245
2357
  - não saia editando software vivo sem olhar risco, lacuna e checks sugeridos
2358
+ - se abrir código com \`SEMA-GOVERNED\`, volte ao contrato e chame Sema antes de editar
2246
2359
  ${resumo.consumerFramework ? "- se for tarefa visual consumer, priorize `appRoutes`, `consumerSurfaces` e `consumerBridges` antes de abrir arquivos aleatórios" : ""}
2247
2360
 
2248
2361
  Contexto compacto:
@@ -2275,6 +2388,21 @@ function renderizarResumoProjetoMarkdown(geradoEm, modulos, guiaPorCapacidade) {
2275
2388
  `- Regras: ${agentContextPack.regrasObrigatorias.slice(0, 4).join(" | ")}`,
2276
2389
  `- Fontes brutas sob demanda: ${agentContextPack.fontes.map((fonte) => fonte.caminho).slice(0, 7).join(", ")}`,
2277
2390
  "",
2391
+ "## Código governado",
2392
+ "",
2393
+ `- Marcador: \`${agentContextPack.politicaCodigoGovernado.marcador}\``,
2394
+ `- Regra: ${agentContextPack.politicaCodigoGovernado.regra}`,
2395
+ `- IA fraca: ${agentContextPack.politicaCodigoGovernado.porCapacidade.fraca}`,
2396
+ `- IA média: ${agentContextPack.politicaCodigoGovernado.porCapacidade.media}`,
2397
+ `- IA forte: ${agentContextPack.politicaCodigoGovernado.porCapacidade.forte}`,
2398
+ "",
2399
+ "## Timeout e retry",
2400
+ "",
2401
+ `- Regra: ${agentContextPack.politicaTimeoutResumo.regra}`,
2402
+ `- Timeout inicial para projeto inteiro: ${agentContextPack.politicaTimeoutResumo.timeoutInicialSegundos}s`,
2403
+ `- Escalonamento: ${agentContextPack.politicaTimeoutResumo.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}`,
2404
+ `- Bloqueio: ${agentContextPack.politicaTimeoutResumo.ateQuandoTentar}`,
2405
+ "",
2278
2406
  "## Guia por capacidade",
2279
2407
  "",
2280
2408
  ];
@@ -2638,6 +2766,8 @@ async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escreverNaRaiz
2638
2766
  `MODO_CODIGO: ${modoVerificacaoCodigo}`,
2639
2767
  `FONTES_CONCLUSAO: ${resumirListaTexto(fontesConclusao, 4)}`,
2640
2768
  `ENTRADA_IA: ${entradaCanonica.porCapacidade.fraca.join(" -> ")}`,
2769
+ `TIMEOUT_SEMA: timeout local nao e falha; retry progressivo ${agentContextPack.politicaTimeoutResumo.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}; escopar arquivo se projeto inteiro for lento`,
2770
+ `CODIGO_GOVERNADO: ${agentContextPack.politicaCodigoGovernado.marcador} -> chamar Sema antes de editar codigo gerado`,
2641
2771
  `TOP_MODULOS: ${resumirListaTexto(modulos.map((modulo) => modulo.modulo), 3)}`,
2642
2772
  `TOP_RISCOS: ${resumirListaTexto(unicosOrdenados(modulos.flatMap((modulo) => modulo.riscosPrincipais)), 3)}`,
2643
2773
  `TOP_LACUNAS: ${resumirListaTexto(unicosOrdenados(modulos.flatMap((modulo) => modulo.lacunas)), 3)}`,
@@ -2656,6 +2786,8 @@ async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escreverNaRaiz
2656
2786
  : []),
2657
2787
  `FONTES_CONCLUSAO: ${resumirListaTexto(fontesConclusao, 6)}`,
2658
2788
  `ENTRADA_IA: ${entradaCanonica.porCapacidade.media.join(" -> ")}`,
2789
+ `TIMEOUT_SEMA: ${agentContextPack.politicaTimeoutResumo.regra} Escale ${agentContextPack.politicaTimeoutResumo.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")} antes de declarar bloqueio.`,
2790
+ `CODIGO_GOVERNADO: ${agentContextPack.politicaCodigoGovernado.marcador} -> docs-impacto e drift antes de alterar comportamento`,
2659
2791
  `TOP_MODULOS: ${resumirListaTexto(modulos.map((modulo) => modulo.modulo), 6)}`,
2660
2792
  `TOP_RISCOS: ${resumirListaTexto(unicosOrdenados(modulos.flatMap((modulo) => modulo.riscosPrincipais)), 6)}`,
2661
2793
  `TOP_LACUNAS: ${resumirListaTexto(unicosOrdenados(modulos.flatMap((modulo) => modulo.lacunas)), 6)}`,
@@ -2758,16 +2890,23 @@ Antes de escolher arquivo de código, leia \`${ARQUIVO_SEMA_BOOT}\` e \`agent-co
2758
2890
  - Em PT-BR, use acentos, cedilha, pontuação e símbolos normais.
2759
2891
  - A DSL \`.sema\` pode ser ASCII; texto humano não precisa ser.
2760
2892
 
2761
- ## Texto bruto sob demanda
2762
-
2893
+ ## Texto bruto sob demanda
2894
+
2763
2895
  - Abra \`AGENTS.md\` antes de editar código, contrato, docs operacionais, release ou deploy.
2764
- - Abra \`exemplos/\` antes de criar ou corrigir sintaxe \`.sema\`.
2896
+ - Abra \`exemplos/\` antes de criar ou corrigir sintaxe \`.sema\`.
2765
2897
  - Abra \`docs/sintaxe.md\` quando exemplos não bastarem para resolver a gramática.
2766
2898
  - Abra \`contratos/\` antes de qualquer implementação ou mudança de comportamento.
2767
-
2768
- ## Fechamento
2769
-
2770
- 1. Editar o arquivo \`.sema\`.
2899
+
2900
+ ## Timeout e retry
2901
+
2902
+ - Timeout local do agente não é falha do Sema.
2903
+ - Se uma chamada Sema estourar, aumente o timeout e tente de novo.
2904
+ - Se o projeto inteiro for lento, escopar para \`sema resumo "${contexto.arquivo}" --micro --para mudanca\`.
2905
+ - Se o ambiente impedir continuar, pare bloqueado e não avance com código sem Sema.
2906
+
2907
+ ## Fechamento
2908
+
2909
+ 1. Editar o arquivo \`.sema\`.
2771
2910
  2. Rodar \`sema formatar "${contexto.arquivo}"\`.
2772
2911
  3. Rodar \`sema validar "${contexto.arquivo}" --json\`.
2773
2912
  4. Rodar \`sema drift "${contexto.arquivo}" --json\`.
@@ -7098,6 +7237,7 @@ async function comandoAjudaIa() {
7098
7237
  "Use `sema sync-ai-entrypoints` para regenerar `AGENT_CONTEXT_PACK.json`, `SEMA_BRIEF.*` e `SEMA_INDEX.json` na raiz.",
7099
7238
  "Use `sema instalar-exemplos` para materializar `exemplos/` oficiais sem sobrescrever arquivos locais.",
7100
7239
  "Use `sema resumo <arquivo> --micro --para onboarding` para IA fraca.",
7240
+ "Se `sema resumo` ou outro gate estourar timeout local, aumente o timeout e tente de novo; timeout do agente nao e falha do Sema.",
7101
7241
  "Use `sema prompt-curto <arquivo> --curto --para mudanca` para colar contexto em modelo gratuito.",
7102
7242
  "Use `sema prompt-ia`, `sema prompt-ia-ui`, `sema prompt-ia-react` e `sema prompt-ia-sema-primeiro` conforme a tarefa.",
7103
7243
  "Use `sema exemplos-prompt-ia` para pegar modelos prontos de prompt.",
@@ -7117,6 +7257,7 @@ async function comandoAjudaIa() {
7117
7257
  "Peca `.sema` + arquitetura + React + TypeScript, ou use o modo `Sema primeiro`.",
7118
7258
  "Se o projeto ja existe, trate `importar` como rascunho e `drift` como juiz.",
7119
7259
  "IA fraca comeca no menor artefato que resolve a tarefa; nao enfie `ast.json` inteiro nela de bobeira.",
7260
+ "Timeout local e so limite do agente: escale e tente de novo antes de chamar Sema de inativo.",
7120
7261
  "Antes de editar software vivo, leia `briefing.min.json` ou `briefing.json` em vez de sair cavando arquivo na fe.",
7121
7262
  "Trate `route`, `worker`, `evento`, `fila`, `cron`, `webhook`, `cache`, `storage` e `policy` como superficies de primeira classe.",
7122
7263
  ]));