@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.
- package/AGENTS.md +3 -1
- package/AGENT_CONTEXT_PACK.json +98 -5
- package/README.md +3 -3
- package/SEMA_BRIEF.curto.txt +8 -5
- package/SEMA_BRIEF.md +34 -3
- package/SEMA_BRIEF.micro.txt +7 -4
- package/SEMA_INDEX.json +428 -128
- package/dist/index.js +262 -16
- package/dist/index.js.map +1 -1
- package/docs/AGENT_STARTER.md +10 -8
- package/docs/agentes-por-capacidade.md +32 -0
- package/docs/api.md +21 -21
- package/docs/cli.md +3 -3
- package/docs/env.md +22 -26
- package/docs/fluxo-pratico-ia-sema.md +4 -0
- package/docs/instalacao-e-primeiro-uso.md +3 -3
- package/docs/repositories.md +21 -21
- package/node_modules/@sema/gerador-css/dist/index.js +15 -7
- package/node_modules/@sema/gerador-css/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-dart/dist/index.js +11 -1
- package/node_modules/@sema/gerador-dart/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-html/dist/index.js +19 -7
- package/node_modules/@sema/gerador-html/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-javascript/dist/index.js +16 -2
- package/node_modules/@sema/gerador-javascript/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-lua/dist/index.js +19 -6
- package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-python/dist/index.js +25 -8
- package/node_modules/@sema/gerador-python/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-typescript/dist/index.js +32 -14
- package/node_modules/@sema/gerador-typescript/dist/index.js.map +1 -1
- 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
|
-
-
|
|
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
|
-
-
|
|
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
|
-
|
|
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:
|
|
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
|
|
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
|
-
##
|
|
2769
|
-
|
|
2770
|
-
|
|
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
|
]));
|