@semacode/cli 1.5.34 → 1.5.36

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 (32) hide show
  1. package/AGENTS.md +3 -1
  2. package/AGENT_CONTEXT_PACK.json +98 -5
  3. package/README.md +3 -3
  4. package/SEMA_BRIEF.curto.txt +8 -5
  5. package/SEMA_BRIEF.md +34 -3
  6. package/SEMA_BRIEF.micro.txt +7 -4
  7. package/SEMA_INDEX.json +428 -128
  8. package/dist/index.js +262 -16
  9. package/dist/index.js.map +1 -1
  10. package/docs/AGENT_STARTER.md +10 -8
  11. package/docs/agentes-por-capacidade.md +32 -0
  12. package/docs/api.md +21 -21
  13. package/docs/cli.md +3 -3
  14. package/docs/env.md +22 -26
  15. package/docs/fluxo-pratico-ia-sema.md +4 -0
  16. package/docs/instalacao-e-primeiro-uso.md +3 -3
  17. package/docs/repositories.md +21 -21
  18. package/node_modules/@sema/gerador-css/dist/index.js +15 -7
  19. package/node_modules/@sema/gerador-css/dist/index.js.map +1 -1
  20. package/node_modules/@sema/gerador-dart/dist/index.js +11 -1
  21. package/node_modules/@sema/gerador-dart/dist/index.js.map +1 -1
  22. package/node_modules/@sema/gerador-html/dist/index.js +19 -7
  23. package/node_modules/@sema/gerador-html/dist/index.js.map +1 -1
  24. package/node_modules/@sema/gerador-javascript/dist/index.js +16 -2
  25. package/node_modules/@sema/gerador-javascript/dist/index.js.map +1 -1
  26. package/node_modules/@sema/gerador-lua/dist/index.js +19 -6
  27. package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -1
  28. package/node_modules/@sema/gerador-python/dist/index.js +25 -8
  29. package/node_modules/@sema/gerador-python/dist/index.js.map +1 -1
  30. package/node_modules/@sema/gerador-typescript/dist/index.js +32 -14
  31. package/node_modules/@sema/gerador-typescript/dist/index.js.map +1 -1
  32. package/package.json +12 -16
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,89 @@ 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
+ }
1616
+ function criarPoliticaDesignVisualAgentContext() {
1617
+ return {
1618
+ regra: "Quando a tarefa envolve interface, app, site, dashboard, painel, formulário, landing, jogo ou artefato visual, o Sema governa também qualidade visual. Modernidade, identidade, responsividade, estados e evidência visual não são extras opcionais.",
1619
+ modernoObrigatorio: true,
1620
+ aplicarQuando: "site, app, dashboard, painel, admin, onboarding, formulário, modal, jogo, material visual ou qualquer entrega com UI.",
1621
+ proibicoes: [
1622
+ "interface_generica_2010",
1623
+ "formularios_sem_hierarquia_visual",
1624
+ "cards_cinzas_sem_identidade",
1625
+ "layout_sem_responsividade_real",
1626
+ "texto_estourando_ou_sobreposto",
1627
+ "sem_estados_de_hover_focus_loading_erro_vazio",
1628
+ "sem_assets_quando_o_dominio_pede_visual",
1629
+ "copiar_estetica_do_contrato_para_ui",
1630
+ ],
1631
+ porCapacidade: {
1632
+ fraca: "Use um padrão moderno seguro: hierarquia clara, espaçamento consistente, paleta com contraste, estados básicos, responsivo mobile/desktop e nada de formulário cinza genérico. Se não conseguir validar visualmente, pare e peça revisão.",
1633
+ media: "Defina intenção visual antes de codar: público, domínio, densidade, tokens, componentes, estados, responsividade e anti-2010. Rode ou peça screenshot/browser check quando houver UI.",
1634
+ forte: "Crie direção visual específica do domínio, use assets reais/gerados quando fizer sentido, refine microinterações e faça verificação visual em desktop/mobile com screenshot e correção de overlap.",
1635
+ },
1636
+ evidencias: {
1637
+ fraca: [
1638
+ "descrever padrão visual escolhido",
1639
+ "confirmar responsividade básica",
1640
+ "listar estados essenciais",
1641
+ ],
1642
+ media: [
1643
+ "registrar tokens e componentes usados",
1644
+ "validar desktop e mobile",
1645
+ "corrigir texto sobreposto",
1646
+ ],
1647
+ forte: [
1648
+ "screenshot desktop/mobile",
1649
+ "verificação de assets e renderização",
1650
+ "auditoria de contraste, hierarquia e estado vazio",
1651
+ ],
1652
+ },
1653
+ criteriosMinimos: [
1654
+ "não parecer template de 2010",
1655
+ "hierarquia visual clara",
1656
+ "paleta com contraste e identidade do domínio",
1657
+ "responsividade mobile e desktop",
1658
+ "estados de hover, focus, loading, erro e vazio quando aplicáveis",
1659
+ "texto sem overlap ou estouro",
1660
+ "componentes coerentes com o workflow real",
1661
+ ],
1662
+ };
1663
+ }
1578
1664
  function criarEntrypointsClientesIa() {
1579
1665
  return [
1580
1666
  {
@@ -1616,6 +1702,9 @@ function criarFailClosedAgentContext() {
1616
1702
  "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
1703
  "Se for criar ou corrigir .sema, use sema_exemplos antes de escrever sintaxe.",
1618
1704
  "Se a resposta humana estiver em PT-BR, preserve acentos e símbolos mesmo que a DSL use ASCII.",
1705
+ "Se um arquivo de código tiver SEMA-GOVERNED, consulte Sema e o contrato aplicável antes de editar.",
1706
+ "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.",
1707
+ "Se a tarefa tiver UI e você não conseguir garantir um padrão visual moderno mínimo, pare e peça revisão em vez de entregar interface genérica.",
1619
1708
  ];
1620
1709
  }
1621
1710
  function criarAgentContextPack(guiaPorCapacidade) {
@@ -1727,7 +1816,7 @@ function criarAgentContextPack(guiaPorCapacidade) {
1727
1816
  ];
1728
1817
  return {
1729
1818
  nome: "Agent Context Pack",
1730
- versao: 2,
1819
+ versao: 4,
1731
1820
  objetivo: "Dar a agentes IA uma entrada curta, estruturada e auditável antes de abrir código cru ou inventar contexto.",
1732
1821
  ordemLeitura: [
1733
1822
  ARQUIVO_SEMA_BOOT,
@@ -1748,20 +1837,29 @@ function criarAgentContextPack(guiaPorCapacidade) {
1748
1837
  "Valide .sema alterado e rode drift antes de concluir.",
1749
1838
  "Quando faltar contrato aplicável, crie ou edite o contrato antes do código.",
1750
1839
  "Responda no idioma do usuário e preserve acentos, cedilha, pontuação e símbolos humanos.",
1840
+ "Mantenha o cabeçalho SEMA-GOVERNED em código gerado ou governado e volte ao contrato antes de editar.",
1841
+ "Se uma chamada Sema estourar por timeout local, aumente o timeout e tente novamente; não trate lentidão como sessão inativa.",
1842
+ "Se a tarefa tiver UI, trate design moderno como requisito governado por capacidade.",
1751
1843
  ],
1752
1844
  proibicoes: [
1753
1845
  "Não inventar sintaxe Sema fora da gramática e dos exemplos oficiais.",
1754
1846
  "Não tratar README, texto livre ou código como fonte superior ao contrato.",
1755
1847
  "Não sincronizar segredos, .env, node_modules, builds, caches, uploads ou artefatos privados fora do escopo.",
1756
1848
  "Não publicar, deployar ou remover capacidade sem contrato, drift e verificação.",
1757
- "Não misturar repositório público e privado sem conferir docs de repositórios e AGENTS.md.",
1849
+ "Não assumir repositório público, GitHub Release pública ou leitura local pelo MCP; confira docs de repositórios e AGENTS.md.",
1758
1850
  "Não usar a estética ASCII da DSL como desculpa para escrever PT-BR sem acentos.",
1851
+ "Não remover SEMA-GOVERNED nem substituir drift por comentário dentro do código.",
1852
+ "Não copiar o contrato inteiro para comentário de código; mantenha descrição humana curta.",
1853
+ "Não tratar timeout definido pelo agente como falha do Sema ou permissão para pular gate.",
1854
+ "Não entregar interface genérica, cinza, com cara de template antigo ou sem estados visuais quando a tarefa envolve UI.",
1759
1855
  ],
1760
1856
  prioridades: [
1761
1857
  "Menor artefato suficiente primeiro.",
1762
1858
  "Contrato, índice e AGENTS antes de código cru.",
1763
1859
  "Exemplos oficiais antes de nova sintaxe.",
1764
1860
  "Diagnóstico estruturado antes de opinião livre.",
1861
+ "Retry progressivo em timeout antes de declarar bloqueio.",
1862
+ "Design visual por capacidade quando houver UI.",
1765
1863
  "Se risco ou escopo estiver ambíguo, parar e pedir contrato/contexto.",
1766
1864
  ],
1767
1865
  fontes,
@@ -1777,11 +1875,17 @@ function criarAgentContextPack(guiaPorCapacidade) {
1777
1875
  aliasesCapacidade: { ...ALIASES_CAPACIDADE_IA },
1778
1876
  entrypointsClientes: criarEntrypointsClientesIa(),
1779
1877
  politicaIdioma: criarPoliticaIdiomaAgentContext(),
1878
+ politicaCodigoGovernado: criarPoliticaCodigoGovernadoAgentContext(),
1879
+ politicaTimeoutResumo: criarPoliticaTimeoutResumoAgentContext(),
1880
+ politicaDesignVisual: criarPoliticaDesignVisualAgentContext(),
1780
1881
  failClosed: criarFailClosedAgentContext(),
1781
1882
  };
1782
1883
  }
1783
1884
  function renderizarSemaBoot(agentContextPack) {
1784
1885
  const politica = agentContextPack.politicaIdioma;
1886
+ const politicaCodigo = agentContextPack.politicaCodigoGovernado;
1887
+ const politicaTimeout = agentContextPack.politicaTimeoutResumo;
1888
+ const politicaDesign = agentContextPack.politicaDesignVisual;
1785
1889
  return `# SEMA_BOOT
1786
1890
 
1787
1891
  Você está em um projeto governado por Sema. O contrato semântico vem antes de qualquer ação.
@@ -1800,6 +1904,36 @@ Você está em um projeto governado por Sema. O contrato semântico vem antes de
1800
1904
  - Média: leia este boot, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.curto.txt\`, \`SEMA_INDEX.json\` e a doc indicada pelo Sema.
1801
1905
  - Forte: leia este boot, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.md\`, \`SEMA_INDEX.json\`, \`AGENTS.md\` e rode os gates completos.
1802
1906
 
1907
+ ## Código governado
1908
+
1909
+ ${politicaCodigo.regra}
1910
+
1911
+ - Marcador: \`${politicaCodigo.marcador}\`.
1912
+ - IA fraca: ${politicaCodigo.porCapacidade.fraca}
1913
+ - IA média: ${politicaCodigo.porCapacidade.media}
1914
+ - IA forte: ${politicaCodigo.porCapacidade.forte}
1915
+
1916
+ ## Design visual quando houver UI
1917
+
1918
+ ${politicaDesign.regra}
1919
+
1920
+ - Aplicar quando: ${politicaDesign.aplicarQuando}
1921
+ - IA fraca: ${politicaDesign.porCapacidade.fraca}
1922
+ - IA média: ${politicaDesign.porCapacidade.media}
1923
+ - IA forte: ${politicaDesign.porCapacidade.forte}
1924
+ - Proibido: ${politicaDesign.proibicoes.slice(0, 5).join(", ")}.
1925
+
1926
+ ## Timeout e retry
1927
+
1928
+ ${politicaTimeout.regra}
1929
+
1930
+ - Timeout inicial recomendado para projeto inteiro: ${politicaTimeout.timeoutInicialSegundos}s.
1931
+ - Escalonamento: ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
1932
+ - IA fraca: ${politicaTimeout.porCapacidade.fraca}
1933
+ - IA média: ${politicaTimeout.porCapacidade.media}
1934
+ - IA forte: ${politicaTimeout.porCapacidade.forte}
1935
+ - ${politicaTimeout.ateQuandoTentar}
1936
+
1803
1937
  ## Idioma humano
1804
1938
 
1805
1939
  ${politica.regra}
@@ -1815,6 +1949,8 @@ ${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
1815
1949
  `;
1816
1950
  }
1817
1951
  function renderizarSemaSmallModel(agentContextPack) {
1952
+ const politicaTimeout = agentContextPack.politicaTimeoutResumo;
1953
+ const politicaDesign = agentContextPack.politicaDesignVisual;
1818
1954
  return `# SEMA_SMALL_MODEL
1819
1955
 
1820
1956
  Leia isto primeiro se você tem pouco contexto, pouca memória, pouco tool use ou tendência a ignorar instruções longas.
@@ -1826,6 +1962,9 @@ Leia isto primeiro se você tem pouco contexto, pouca memória, pouco tool use o
1826
1962
  5. Se não houver contrato: crie ou edite o contrato antes do código.
1827
1963
  6. Se não conseguir chamar Sema: pare e declare bloqueio.
1828
1964
  7. Responda no idioma do usuário. Em PT-BR, use acentos e símbolos normais.
1965
+ 8. Se abrir código com \`${agentContextPack.politicaCodigoGovernado.marcador}\`: volte ao contrato, chame Sema e só então edite.
1966
+ 9. Se Sema estourar por timeout local: aumente o timeout e tente de novo. Não trate isso como falha do Sema.
1967
+ 10. Se a tarefa tiver UI: aplique design moderno mínimo, responsivo, com hierarquia clara e estados visuais. Não entregue formulário cinza genérico.
1829
1968
 
1830
1969
  Ordem curta:
1831
1970
 
@@ -1835,16 +1974,53 @@ Ordem curta:
1835
1974
  - \`SEMA_INDEX.json\`
1836
1975
  - \`AGENTS.md\`
1837
1976
 
1977
+ Timeout:
1978
+
1979
+ - Timeout local do agente não é falha do Sema.
1980
+ - Projeto inteiro: comece com ${politicaTimeout.timeoutInicialSegundos}s ou mais.
1981
+ - Escalonamento: ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
1982
+ - Se o projeto inteiro for lento, escopar para \`sema resumo <arquivo.sema> --micro --para mudanca\`.
1983
+ - ${politicaTimeout.ateQuandoTentar}
1984
+
1985
+ Design visual:
1986
+
1987
+ - ${politicaDesign.regra}
1988
+ - IA fraca: ${politicaDesign.porCapacidade.fraca}
1989
+ - Evidência mínima: ${politicaDesign.evidencias.fraca.join(", ")}.
1990
+ - Proibido: ${politicaDesign.proibicoes.slice(0, 5).join(", ")}.
1991
+
1838
1992
  Fail-closed:
1839
1993
 
1840
1994
  ${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
1841
1995
  `;
1842
1996
  }
1843
1997
  function renderizarDocumentoAgentesPorCapacidade(agentContextPack) {
1998
+ const politicaDesign = agentContextPack.politicaDesignVisual;
1844
1999
  return `# Agentes por capacidade
1845
2000
 
1846
2001
  Sema deve funcionar em agentes fortes, médios e fracos. A diferença não é só tamanho de contexto; é disciplina operacional.
1847
2002
 
2003
+ ## Código Governado
2004
+
2005
+ Arquivos gerados ou governados pela Sema devem manter o marcador \`${agentContextPack.politicaCodigoGovernado.marcador}\`.
2006
+
2007
+ - Fraca: ${agentContextPack.politicaCodigoGovernado.porCapacidade.fraca}
2008
+ - Média: ${agentContextPack.politicaCodigoGovernado.porCapacidade.media}
2009
+ - Forte: ${agentContextPack.politicaCodigoGovernado.porCapacidade.forte}
2010
+
2011
+ ## Design Visual
2012
+
2013
+ ${politicaDesign.regra}
2014
+
2015
+ - Fraca: ${politicaDesign.porCapacidade.fraca}
2016
+ Evidência: ${politicaDesign.evidencias.fraca.join(", ")}.
2017
+ - Média: ${politicaDesign.porCapacidade.media}
2018
+ Evidência: ${politicaDesign.evidencias.media.join(", ")}.
2019
+ - Forte: ${politicaDesign.porCapacidade.forte}
2020
+ Evidência: ${politicaDesign.evidencias.forte.join(", ")}.
2021
+ - Proibido: ${politicaDesign.proibicoes.join(", ")}.
2022
+ - Critérios mínimos: ${politicaDesign.criteriosMinimos.join(", ")}.
2023
+
1848
2024
  ## Fraca
1849
2025
 
1850
2026
  Use para Copilot em modo simples, Cline/Roo com pouco contexto, modelos locais pequenos e agentes que ignoram instrução longa.
@@ -1870,6 +2046,17 @@ Use para Codex, Claude e agentes com tool use confiável.
1870
2046
  - Pode consumir AST/IR/drift completos.
1871
2047
  - Ainda deve respeitar contrato primeiro e falha fechada.
1872
2048
 
2049
+ ## Timeout e Retry
2050
+
2051
+ ${agentContextPack.politicaTimeoutResumo.regra}
2052
+
2053
+ - Timeout inicial para resumo de projeto inteiro: ${agentContextPack.politicaTimeoutResumo.timeoutInicialSegundos}s.
2054
+ - Escalonamento recomendado: ${agentContextPack.politicaTimeoutResumo.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
2055
+ - Fraca: ${agentContextPack.politicaTimeoutResumo.porCapacidade.fraca}
2056
+ - Média: ${agentContextPack.politicaTimeoutResumo.porCapacidade.media}
2057
+ - Forte: ${agentContextPack.politicaTimeoutResumo.porCapacidade.forte}
2058
+ - ${agentContextPack.politicaTimeoutResumo.ateQuandoTentar}
2059
+
1873
2060
  ## Idioma
1874
2061
 
1875
2062
  ${agentContextPack.politicaIdioma.regra}
@@ -1883,6 +2070,8 @@ ${agentContextPack.entrypointsClientes.map((cliente) => `- ${cliente.cliente}: $
1883
2070
  }
1884
2071
  function renderizarInstrucaoClienteSema(cliente, capacidade, agentContextPack) {
1885
2072
  const guia = agentContextPack.guiaPorCapacidade[capacidade];
2073
+ const politicaTimeout = agentContextPack.politicaTimeoutResumo;
2074
+ const politicaDesign = agentContextPack.politicaDesignVisual;
1886
2075
  const tituloCliente = cliente === "generico" ? "agente" : cliente;
1887
2076
  return `# Sema para ${tituloCliente}
1888
2077
 
@@ -1901,6 +2090,23 @@ Ordem de leitura: ${guia.join(" -> ")}.
1901
2090
  Falha fechada:
1902
2091
  ${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
1903
2092
 
2093
+ Timeout:
2094
+ - Timeout local do agente não é falha do Sema.
2095
+ - Se uma chamada Sema estourar, aumente o timeout e tente de novo antes de declarar bloqueio.
2096
+ - Para projeto inteiro, comece com ${politicaTimeout.timeoutInicialSegundos}s ou mais; se for lento, escale ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
2097
+ - Se possível, reduza escopo para \`sema resumo <arquivo.sema> --micro --para mudanca\`.
2098
+
2099
+ Código governado:
2100
+ - Mantenha o marcador \`${agentContextPack.politicaCodigoGovernado.marcador}\` em código gerado ou governado.
2101
+ - Ao encontrar esse marcador, volte ao contrato .sema aplicável e chame Sema antes de editar.
2102
+ - Comentário de código é lembrete curto; não substitui drift, docs-impacto nem finalizar-mudanca.
2103
+
2104
+ Design visual:
2105
+ - Se houver UI, design moderno é requisito governado, não enfeite.
2106
+ - Capacidade ${capacidade}: ${politicaDesign.porCapacidade[capacidade]}
2107
+ - Evidências: ${politicaDesign.evidencias[capacidade].join(", ")}.
2108
+ - Proibido: ${politicaDesign.proibicoes.slice(0, 5).join(", ")}.
2109
+
1904
2110
  Idioma:
1905
2111
  - Responda no idioma do usuário.
1906
2112
  - Em PT-BR, use acentos, cedilha, pontuação e símbolos normais.
@@ -2243,6 +2449,7 @@ Regras:
2243
2449
  - use este resumo como fonte compacta inicial
2244
2450
  - se a tarefa pedir mais contexto, suba para \`briefing.min.json\`, \`drift.json\` e depois \`ir.json\`
2245
2451
  - não saia editando software vivo sem olhar risco, lacuna e checks sugeridos
2452
+ - se abrir código com \`SEMA-GOVERNED\`, volte ao contrato e chame Sema antes de editar
2246
2453
  ${resumo.consumerFramework ? "- se for tarefa visual consumer, priorize `appRoutes`, `consumerSurfaces` e `consumerBridges` antes de abrir arquivos aleatórios" : ""}
2247
2454
 
2248
2455
  Contexto compacto:
@@ -2275,6 +2482,30 @@ function renderizarResumoProjetoMarkdown(geradoEm, modulos, guiaPorCapacidade) {
2275
2482
  `- Regras: ${agentContextPack.regrasObrigatorias.slice(0, 4).join(" | ")}`,
2276
2483
  `- Fontes brutas sob demanda: ${agentContextPack.fontes.map((fonte) => fonte.caminho).slice(0, 7).join(", ")}`,
2277
2484
  "",
2485
+ "## Código governado",
2486
+ "",
2487
+ `- Marcador: \`${agentContextPack.politicaCodigoGovernado.marcador}\``,
2488
+ `- Regra: ${agentContextPack.politicaCodigoGovernado.regra}`,
2489
+ `- IA fraca: ${agentContextPack.politicaCodigoGovernado.porCapacidade.fraca}`,
2490
+ `- IA média: ${agentContextPack.politicaCodigoGovernado.porCapacidade.media}`,
2491
+ `- IA forte: ${agentContextPack.politicaCodigoGovernado.porCapacidade.forte}`,
2492
+ "",
2493
+ "## Design visual",
2494
+ "",
2495
+ `- Regra: ${agentContextPack.politicaDesignVisual.regra}`,
2496
+ `- Aplicar quando: ${agentContextPack.politicaDesignVisual.aplicarQuando}`,
2497
+ `- IA fraca: ${agentContextPack.politicaDesignVisual.porCapacidade.fraca}`,
2498
+ `- IA média: ${agentContextPack.politicaDesignVisual.porCapacidade.media}`,
2499
+ `- IA forte: ${agentContextPack.politicaDesignVisual.porCapacidade.forte}`,
2500
+ `- Proibido: ${agentContextPack.politicaDesignVisual.proibicoes.slice(0, 5).join(", ")}`,
2501
+ "",
2502
+ "## Timeout e retry",
2503
+ "",
2504
+ `- Regra: ${agentContextPack.politicaTimeoutResumo.regra}`,
2505
+ `- Timeout inicial para projeto inteiro: ${agentContextPack.politicaTimeoutResumo.timeoutInicialSegundos}s`,
2506
+ `- Escalonamento: ${agentContextPack.politicaTimeoutResumo.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}`,
2507
+ `- Bloqueio: ${agentContextPack.politicaTimeoutResumo.ateQuandoTentar}`,
2508
+ "",
2278
2509
  "## Guia por capacidade",
2279
2510
  "",
2280
2511
  ];
@@ -2638,6 +2869,9 @@ async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escreverNaRaiz
2638
2869
  `MODO_CODIGO: ${modoVerificacaoCodigo}`,
2639
2870
  `FONTES_CONCLUSAO: ${resumirListaTexto(fontesConclusao, 4)}`,
2640
2871
  `ENTRADA_IA: ${entradaCanonica.porCapacidade.fraca.join(" -> ")}`,
2872
+ `TIMEOUT_SEMA: timeout local nao e falha; retry progressivo ${agentContextPack.politicaTimeoutResumo.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}; escopar arquivo se projeto inteiro for lento`,
2873
+ `CODIGO_GOVERNADO: ${agentContextPack.politicaCodigoGovernado.marcador} -> chamar Sema antes de editar codigo gerado`,
2874
+ `DESIGN_VISUAL: se houver UI, moderno obrigatorio; fraca=padrao seguro responsivo; media=tokens+estados; forte=screenshot+assets+microinteracoes`,
2641
2875
  `TOP_MODULOS: ${resumirListaTexto(modulos.map((modulo) => modulo.modulo), 3)}`,
2642
2876
  `TOP_RISCOS: ${resumirListaTexto(unicosOrdenados(modulos.flatMap((modulo) => modulo.riscosPrincipais)), 3)}`,
2643
2877
  `TOP_LACUNAS: ${resumirListaTexto(unicosOrdenados(modulos.flatMap((modulo) => modulo.lacunas)), 3)}`,
@@ -2656,6 +2890,9 @@ async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escreverNaRaiz
2656
2890
  : []),
2657
2891
  `FONTES_CONCLUSAO: ${resumirListaTexto(fontesConclusao, 6)}`,
2658
2892
  `ENTRADA_IA: ${entradaCanonica.porCapacidade.media.join(" -> ")}`,
2893
+ `TIMEOUT_SEMA: ${agentContextPack.politicaTimeoutResumo.regra} Escale ${agentContextPack.politicaTimeoutResumo.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")} antes de declarar bloqueio.`,
2894
+ `CODIGO_GOVERNADO: ${agentContextPack.politicaCodigoGovernado.marcador} -> docs-impacto e drift antes de alterar comportamento`,
2895
+ `DESIGN_VISUAL: ${agentContextPack.politicaDesignVisual.regra} Fraca=${agentContextPack.politicaDesignVisual.porCapacidade.fraca} Media=${agentContextPack.politicaDesignVisual.porCapacidade.media} Forte=${agentContextPack.politicaDesignVisual.porCapacidade.forte}`,
2659
2896
  `TOP_MODULOS: ${resumirListaTexto(modulos.map((modulo) => modulo.modulo), 6)}`,
2660
2897
  `TOP_RISCOS: ${resumirListaTexto(unicosOrdenados(modulos.flatMap((modulo) => modulo.riscosPrincipais)), 6)}`,
2661
2898
  `TOP_LACUNAS: ${resumirListaTexto(unicosOrdenados(modulos.flatMap((modulo) => modulo.lacunas)), 6)}`,
@@ -2758,16 +2995,23 @@ Antes de escolher arquivo de código, leia \`${ARQUIVO_SEMA_BOOT}\` e \`agent-co
2758
2995
  - Em PT-BR, use acentos, cedilha, pontuação e símbolos normais.
2759
2996
  - A DSL \`.sema\` pode ser ASCII; texto humano não precisa ser.
2760
2997
 
2761
- ## Texto bruto sob demanda
2762
-
2998
+ ## Texto bruto sob demanda
2999
+
2763
3000
  - Abra \`AGENTS.md\` antes de editar código, contrato, docs operacionais, release ou deploy.
2764
- - Abra \`exemplos/\` antes de criar ou corrigir sintaxe \`.sema\`.
3001
+ - Abra \`exemplos/\` antes de criar ou corrigir sintaxe \`.sema\`.
2765
3002
  - Abra \`docs/sintaxe.md\` quando exemplos não bastarem para resolver a gramática.
2766
3003
  - Abra \`contratos/\` antes de qualquer implementação ou mudança de comportamento.
2767
-
2768
- ## Fechamento
2769
-
2770
- 1. Editar o arquivo \`.sema\`.
3004
+
3005
+ ## Timeout e retry
3006
+
3007
+ - Timeout local do agente não é falha do Sema.
3008
+ - Se uma chamada Sema estourar, aumente o timeout e tente de novo.
3009
+ - Se o projeto inteiro for lento, escopar para \`sema resumo "${contexto.arquivo}" --micro --para mudanca\`.
3010
+ - Se o ambiente impedir continuar, pare bloqueado e não avance com código sem Sema.
3011
+
3012
+ ## Fechamento
3013
+
3014
+ 1. Editar o arquivo \`.sema\`.
2771
3015
  2. Rodar \`sema formatar "${contexto.arquivo}"\`.
2772
3016
  3. Rodar \`sema validar "${contexto.arquivo}" --json\`.
2773
3017
  4. Rodar \`sema drift "${contexto.arquivo}" --json\`.
@@ -7098,6 +7342,7 @@ async function comandoAjudaIa() {
7098
7342
  "Use `sema sync-ai-entrypoints` para regenerar `AGENT_CONTEXT_PACK.json`, `SEMA_BRIEF.*` e `SEMA_INDEX.json` na raiz.",
7099
7343
  "Use `sema instalar-exemplos` para materializar `exemplos/` oficiais sem sobrescrever arquivos locais.",
7100
7344
  "Use `sema resumo <arquivo> --micro --para onboarding` para IA fraca.",
7345
+ "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
7346
  "Use `sema prompt-curto <arquivo> --curto --para mudanca` para colar contexto em modelo gratuito.",
7102
7347
  "Use `sema prompt-ia`, `sema prompt-ia-ui`, `sema prompt-ia-react` e `sema prompt-ia-sema-primeiro` conforme a tarefa.",
7103
7348
  "Use `sema exemplos-prompt-ia` para pegar modelos prontos de prompt.",
@@ -7117,6 +7362,7 @@ async function comandoAjudaIa() {
7117
7362
  "Peca `.sema` + arquitetura + React + TypeScript, ou use o modo `Sema primeiro`.",
7118
7363
  "Se o projeto ja existe, trate `importar` como rascunho e `drift` como juiz.",
7119
7364
  "IA fraca comeca no menor artefato que resolve a tarefa; nao enfie `ast.json` inteiro nela de bobeira.",
7365
+ "Timeout local e so limite do agente: escale e tente de novo antes de chamar Sema de inativo.",
7120
7366
  "Antes de editar software vivo, leia `briefing.min.json` ou `briefing.json` em vez de sair cavando arquivo na fe.",
7121
7367
  "Trate `route`, `worker`, `evento`, `fila`, `cron`, `webhook`, `cache`, `storage` e `policy` como superficies de primeira classe.",
7122
7368
  ]));