@semacode/cli 1.5.31 → 1.5.32
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 +294 -0
- package/AGENT_CONTEXT_PACK.json +164 -0
- package/LICENSE +22 -0
- package/README.md +85 -144
- package/SEMA_BRIEF.curto.txt +11 -0
- package/SEMA_BRIEF.md +616 -0
- package/SEMA_BRIEF.micro.txt +9 -0
- package/SEMA_INDEX.json +9393 -0
- package/dist/billing/index.d.ts +46 -0
- package/dist/billing/index.js +143 -0
- package/dist/billing/index.js.map +1 -0
- package/dist/controleComercialSupabase.d.ts +7 -0
- package/dist/controleComercialSupabase.js +6 -0
- package/dist/controleComercialSupabase.js.map +1 -0
- package/dist/controleComercialSupabaseAdmin.d.ts +7 -0
- package/dist/controleComercialSupabaseAdmin.js +138 -0
- package/dist/controleComercialSupabaseAdmin.js.map +1 -0
- package/dist/controleComercialSupabaseCadastro.d.ts +4 -0
- package/dist/controleComercialSupabaseCadastro.js +85 -0
- package/dist/controleComercialSupabaseCadastro.js.map +1 -0
- package/dist/controleComercialSupabaseConstantes.d.ts +28 -0
- package/dist/controleComercialSupabaseConstantes.js +44 -0
- package/dist/controleComercialSupabaseConstantes.js.map +1 -0
- package/dist/controleComercialSupabaseConsumo.d.ts +2 -0
- package/dist/controleComercialSupabaseConsumo.js +77 -0
- package/dist/controleComercialSupabaseConsumo.js.map +1 -0
- package/dist/controleComercialSupabaseConta.d.ts +11 -0
- package/dist/controleComercialSupabaseConta.js +157 -0
- package/dist/controleComercialSupabaseConta.js.map +1 -0
- package/dist/controleComercialSupabaseProfiles.d.ts +4 -0
- package/dist/controleComercialSupabaseProfiles.js +55 -0
- package/dist/controleComercialSupabaseProfiles.js.map +1 -0
- package/dist/controleComercialSupabaseTipos.d.ts +3 -0
- package/dist/controleComercialSupabaseTipos.js +2 -0
- package/dist/controleComercialSupabaseTipos.js.map +1 -0
- package/dist/controleComercialSupabaseTiposAdmin.d.ts +152 -0
- package/dist/controleComercialSupabaseTiposAdmin.js +2 -0
- package/dist/controleComercialSupabaseTiposAdmin.js.map +1 -0
- package/dist/controleComercialSupabaseTiposBase.d.ts +169 -0
- package/dist/controleComercialSupabaseTiposBase.js +2 -0
- package/dist/controleComercialSupabaseTiposBase.js.map +1 -0
- package/dist/controleComercialSupabaseTiposConta.d.ts +220 -0
- package/dist/controleComercialSupabaseTiposConta.js +2 -0
- package/dist/controleComercialSupabaseTiposConta.js.map +1 -0
- package/dist/index.js +222 -46
- package/dist/index.js.map +1 -1
- package/dist/runnerValidacaoRemota.d.ts +9 -0
- package/dist/runnerValidacaoRemota.js +9 -0
- package/dist/runnerValidacaoRemota.js.map +1 -0
- package/dist/runnerValidacaoRemotaBateria.d.ts +10 -0
- package/dist/runnerValidacaoRemotaBateria.js +115 -0
- package/dist/runnerValidacaoRemotaBateria.js.map +1 -0
- package/dist/runnerValidacaoRemotaCli.d.ts +4 -0
- package/dist/runnerValidacaoRemotaCli.js +86 -0
- package/dist/runnerValidacaoRemotaCli.js.map +1 -0
- package/dist/runnerValidacaoRemotaComandos.d.ts +7 -0
- package/dist/runnerValidacaoRemotaComandos.js +123 -0
- package/dist/runnerValidacaoRemotaComandos.js.map +1 -0
- package/dist/runnerValidacaoRemotaEscopo.d.ts +4 -0
- package/dist/runnerValidacaoRemotaEscopo.js +79 -0
- package/dist/runnerValidacaoRemotaEscopo.js.map +1 -0
- package/dist/runnerValidacaoRemotaExecucao.d.ts +2 -0
- package/dist/runnerValidacaoRemotaExecucao.js +102 -0
- package/dist/runnerValidacaoRemotaExecucao.js.map +1 -0
- package/dist/runnerValidacaoRemotaRelatorio.d.ts +3 -0
- package/dist/runnerValidacaoRemotaRelatorio.js +93 -0
- package/dist/runnerValidacaoRemotaRelatorio.js.map +1 -0
- package/dist/runnerValidacaoRemotaServidor.d.ts +3 -0
- package/dist/runnerValidacaoRemotaServidor.js +157 -0
- package/dist/runnerValidacaoRemotaServidor.js.map +1 -0
- package/dist/runnerValidacaoRemotaSnapshot.d.ts +10 -0
- package/dist/runnerValidacaoRemotaSnapshot.js +217 -0
- package/dist/runnerValidacaoRemotaSnapshot.js.map +1 -0
- package/dist/runnerValidacaoRemotaTipos.d.ts +158 -0
- package/dist/runnerValidacaoRemotaTipos.js +35 -0
- package/dist/runnerValidacaoRemotaTipos.js.map +1 -0
- package/dist/runnerValidacaoRemotaUtil.d.ts +3 -0
- package/dist/runnerValidacaoRemotaUtil.js +18 -0
- package/dist/runnerValidacaoRemotaUtil.js.map +1 -0
- package/dist/runnerValidacaoRemotaWorkspace.d.ts +2 -0
- package/dist/runnerValidacaoRemotaWorkspace.js +110 -0
- package/dist/runnerValidacaoRemotaWorkspace.js.map +1 -0
- package/docs/AGENT_STARTER.md +109 -0
- package/docs/api.md +82 -0
- package/docs/cli.md +93 -0
- package/docs/como-ensinar-a-sema-para-ia.md +30 -0
- package/docs/deploy.md +45 -0
- package/docs/documentacao.md +88 -0
- package/docs/env.md +115 -0
- package/docs/extensao-vscode.md +42 -0
- package/docs/fluxo-pratico-ia-sema.md +187 -0
- package/docs/instalacao-e-primeiro-uso.md +48 -0
- package/docs/integracao-com-ia.md +24 -0
- package/docs/mcp.md +48 -0
- package/docs/pagamento-ponta-a-ponta.md +171 -0
- package/docs/persistencia-vendor-first.md +151 -0
- package/docs/prompt-base-ia-sema.md +111 -0
- package/docs/repositories.md +69 -0
- package/docs/rollback.md +24 -0
- package/docs/seguranca.md +126 -0
- package/docs/sintaxe.md +218 -0
- package/exemplos/profile_conversas.sema +165 -0
- package/llms-full.txt +35 -0
- package/llms.txt +18 -0
- package/node_modules/@sema/gerador-css/package.json +7 -14
- package/node_modules/@sema/gerador-dart/package.json +7 -14
- package/node_modules/@sema/gerador-html/package.json +7 -14
- package/node_modules/@sema/gerador-javascript/package.json +7 -14
- package/node_modules/@sema/gerador-lua/package.json +7 -14
- package/node_modules/@sema/gerador-python/package.json +7 -14
- package/node_modules/@sema/gerador-typescript/package.json +7 -14
- package/node_modules/@sema/nucleo/package.json +7 -10
- package/node_modules/@sema/padroes/package.json +7 -10
- package/package.json +75 -74
- package/exemplos/.prepack-generated +0 -1
- package/node_modules/@sema/gerador-css/src/index.ts +0 -605
- package/node_modules/@sema/gerador-css/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-css/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-dart/src/index.ts +0 -52
- package/node_modules/@sema/gerador-dart/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-dart/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-html/src/index.ts +0 -185
- package/node_modules/@sema/gerador-html/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-html/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-javascript/src/index.ts +0 -461
- package/node_modules/@sema/gerador-javascript/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-javascript/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-lua/src/index.ts +0 -359
- package/node_modules/@sema/gerador-lua/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-lua/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-python/src/index.ts +0 -850
- package/node_modules/@sema/gerador-python/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-python/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-typescript/src/index.ts +0 -876
- package/node_modules/@sema/gerador-typescript/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-typescript/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/nucleo/src/ast/tipos.ts +0 -207
- package/node_modules/@sema/nucleo/src/diagnosticos/index.ts +0 -43
- package/node_modules/@sema/nucleo/src/diagnosticos/melhorador.ts +0 -130
- package/node_modules/@sema/nucleo/src/formatador/index.ts +0 -530
- package/node_modules/@sema/nucleo/src/index.ts +0 -184
- package/node_modules/@sema/nucleo/src/ir/conversor.ts +0 -1037
- package/node_modules/@sema/nucleo/src/ir/modelos.ts +0 -403
- package/node_modules/@sema/nucleo/src/lexer/lexer.ts +0 -166
- package/node_modules/@sema/nucleo/src/lexer/tokens.ts +0 -79
- package/node_modules/@sema/nucleo/src/parser/gramatica.ebnf +0 -41
- package/node_modules/@sema/nucleo/src/parser/parser.ts +0 -936
- package/node_modules/@sema/nucleo/src/persistencia/contratos.ts +0 -379
- package/node_modules/@sema/nucleo/src/semantico/analisador.ts +0 -3126
- package/node_modules/@sema/nucleo/src/semantico/estruturas.ts +0 -665
- package/node_modules/@sema/nucleo/src/semantico/seguranca.ts +0 -362
- package/node_modules/@sema/nucleo/src/util/arquivos.ts +0 -28
- package/node_modules/@sema/nucleo/tsconfig.json +0 -9
- package/node_modules/@sema/nucleo/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/padroes/src/index.ts +0 -382
- package/node_modules/@sema/padroes/tsconfig.json +0 -9
- package/node_modules/@sema/padroes/tsconfig.tsbuildinfo +0 -1
package/docs/sintaxe.md
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# Sintaxe Canonica
|
|
2
|
+
|
|
3
|
+
<!-- sema:i18n -->
|
|
4
|
+
> EN: English first. The canonical operational body below may still be in Portuguese until full translation lands.
|
|
5
|
+
> PT: Português depois, com acentos preservados.
|
|
6
|
+
> ES: Español al final; não traduza comandos, rotas nem sómbolos `.sema` sem contrato.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
A Sema usa blocos declarativos previsiveis para reduzir ambiguidade no parser, na IR, no drift e no contexto de IA. A escrita humana pode ser legivel, mas o alvo principal da sintaxe e gerar contrato consumivel por agente.
|
|
10
|
+
|
|
11
|
+
## Regras basicas
|
|
12
|
+
|
|
13
|
+
- um arquivo `.sema` contem um `module` principal
|
|
14
|
+
- cada bloco abre com palavra-chave e fecha com `}`
|
|
15
|
+
- campos usam `nome: valor`
|
|
16
|
+
- blocos declarativos podem aparecer aninhados quando o contrato exigir
|
|
17
|
+
- `tests` usa blocos `caso`
|
|
18
|
+
|
|
19
|
+
## Blocos de primeira classe
|
|
20
|
+
|
|
21
|
+
- `module`
|
|
22
|
+
- `use`
|
|
23
|
+
- `database`
|
|
24
|
+
- `type`
|
|
25
|
+
- `entity`
|
|
26
|
+
- `enum`
|
|
27
|
+
- `state`
|
|
28
|
+
- `task`
|
|
29
|
+
- `flow`
|
|
30
|
+
- `route`
|
|
31
|
+
- `worker`
|
|
32
|
+
- `evento`
|
|
33
|
+
- `fila`
|
|
34
|
+
- `cron`
|
|
35
|
+
- `webhook`
|
|
36
|
+
- `cache`
|
|
37
|
+
- `storage`
|
|
38
|
+
- `policy`
|
|
39
|
+
- `tests`
|
|
40
|
+
- `docs`
|
|
41
|
+
- `comments`
|
|
42
|
+
|
|
43
|
+
## Subblocos comuns
|
|
44
|
+
|
|
45
|
+
- `input`
|
|
46
|
+
- `output`
|
|
47
|
+
- `rules`
|
|
48
|
+
- `effects`
|
|
49
|
+
- `auth`
|
|
50
|
+
- `authz`
|
|
51
|
+
- `dados`
|
|
52
|
+
- `audit`
|
|
53
|
+
- `segredos`
|
|
54
|
+
- `forbidden`
|
|
55
|
+
- `impl`
|
|
56
|
+
- `vinculos`
|
|
57
|
+
- `execucao`
|
|
58
|
+
- `guarantees`
|
|
59
|
+
- `error`
|
|
60
|
+
- `fields`
|
|
61
|
+
- `invariants`
|
|
62
|
+
- `transitions`
|
|
63
|
+
- `given`
|
|
64
|
+
- `when`
|
|
65
|
+
- `expect`
|
|
66
|
+
|
|
67
|
+
## Tipos primitivos
|
|
68
|
+
|
|
69
|
+
Tipos primitivos reconhecidos diretamente:
|
|
70
|
+
|
|
71
|
+
- `Texto`
|
|
72
|
+
- `Numero`
|
|
73
|
+
- `Inteiro`
|
|
74
|
+
- `Decimal`
|
|
75
|
+
- `Booleano`
|
|
76
|
+
- `Data`
|
|
77
|
+
- `Timestamp`
|
|
78
|
+
- `Objeto`
|
|
79
|
+
- `Id`
|
|
80
|
+
- `Email`
|
|
81
|
+
- `Json`
|
|
82
|
+
|
|
83
|
+
`Timestamp` e `Objeto` funcionam como aliases primitivos suportados e preservam o texto original na IR.
|
|
84
|
+
|
|
85
|
+
## Tipos compostos
|
|
86
|
+
|
|
87
|
+
```sema
|
|
88
|
+
input {
|
|
89
|
+
ids: Lista<Id> required
|
|
90
|
+
metadata: Mapa<Texto, Texto>
|
|
91
|
+
responsavel: Opcional<Usuario>
|
|
92
|
+
chave_publica: Texto|Id
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Formas suportadas:
|
|
97
|
+
|
|
98
|
+
- `Lista<T>`
|
|
99
|
+
- `Mapa<K, V>`
|
|
100
|
+
- `Opcional<T>`
|
|
101
|
+
- `T1|T2`
|
|
102
|
+
- `T?`
|
|
103
|
+
|
|
104
|
+
## Predicados normalizados
|
|
105
|
+
|
|
106
|
+
Predicados escritos em contrato preservam o texto original em `predicado`. Quando a CLI reconhece uma forma comum, a expressao estruturada pode expor também `predicadoCanonico`.
|
|
107
|
+
|
|
108
|
+
Exemplo:
|
|
109
|
+
|
|
110
|
+
```sema
|
|
111
|
+
rules {
|
|
112
|
+
email deve_ser email_valido
|
|
113
|
+
nome deve_ser preenchido
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Na IR, `email_valido` continua existindo como escrito e pode receber uma normalizacao como `valid_email`; `preenchido` pode receber `filled`. Esse campo e opcional e serve a agente/automacao, não muda a sintaxe pública.
|
|
118
|
+
|
|
119
|
+
## Persistência vendor-first
|
|
120
|
+
|
|
121
|
+
O bloco `database` modela banco e recursos persistidos sem apagar as diferenças entre engines.
|
|
122
|
+
|
|
123
|
+
Estrutura base:
|
|
124
|
+
|
|
125
|
+
```sema
|
|
126
|
+
database principal_postgres {
|
|
127
|
+
engine: postgres
|
|
128
|
+
consistency: forte
|
|
129
|
+
durability: alta
|
|
130
|
+
transaction_model: mvcc
|
|
131
|
+
query_model: sql
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Recursos canonicamente suportados:
|
|
136
|
+
|
|
137
|
+
- `table`
|
|
138
|
+
- `index`
|
|
139
|
+
- `relationship`
|
|
140
|
+
- `query`
|
|
141
|
+
- `retention`
|
|
142
|
+
- `lock`
|
|
143
|
+
- `replication`
|
|
144
|
+
- `collection`
|
|
145
|
+
- `document`
|
|
146
|
+
- `keyspace`
|
|
147
|
+
- `stream`
|
|
148
|
+
- `capabilities`
|
|
149
|
+
|
|
150
|
+
Exemplo relacional:
|
|
151
|
+
|
|
152
|
+
```sema
|
|
153
|
+
database principal_postgres {
|
|
154
|
+
engine: postgres
|
|
155
|
+
schema: public
|
|
156
|
+
capabilities {
|
|
157
|
+
joins
|
|
158
|
+
views
|
|
159
|
+
foreign_keys
|
|
160
|
+
}
|
|
161
|
+
table pedidos {
|
|
162
|
+
entity: Pedido
|
|
163
|
+
}
|
|
164
|
+
relationship pedido_cliente {
|
|
165
|
+
from: Pedido
|
|
166
|
+
to: Cliente
|
|
167
|
+
}
|
|
168
|
+
query buscar_pedidos {
|
|
169
|
+
mode: sql
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Exemplo documental:
|
|
175
|
+
|
|
176
|
+
```sema
|
|
177
|
+
database principal_mongodb {
|
|
178
|
+
engine: mongodb
|
|
179
|
+
query_model: documento
|
|
180
|
+
collection pedidos {
|
|
181
|
+
collection: pedidos
|
|
182
|
+
}
|
|
183
|
+
document pedido_snapshot {
|
|
184
|
+
entity: PedidoSnapshot
|
|
185
|
+
}
|
|
186
|
+
query pipeline_pedido {
|
|
187
|
+
mode: pipeline
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Exemplo key-value:
|
|
193
|
+
|
|
194
|
+
```sema
|
|
195
|
+
database principal_redis {
|
|
196
|
+
engine: redis
|
|
197
|
+
query_model: chave_valor
|
|
198
|
+
keyspace cache_pedidos {
|
|
199
|
+
ttl: "300s"
|
|
200
|
+
}
|
|
201
|
+
stream eventos_pedido {
|
|
202
|
+
surface: fila
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Compatibilidade declarada
|
|
208
|
+
|
|
209
|
+
O IR de persistência calcula compatibilidade por recurso com quatro estados:
|
|
210
|
+
|
|
211
|
+
- `nativo`
|
|
212
|
+
- `adaptado`
|
|
213
|
+
- `parcial`
|
|
214
|
+
- `invalido`
|
|
215
|
+
|
|
216
|
+
Isso existe para deixar explícito quando um contrato está pedindo de um banco algo que ele não entrega do mesmo jeito.
|
|
217
|
+
|
|
218
|
+
O mesmo principio vale para runtime de orquestração. Superfícies como `webhook`, `cron`, `worker`, `evento` e `fila` podem ser medidas contra famílias como `n8n`, mas o contrato continua canonicamente modelado em Sema, sem rebaixar a linguagem para a sintaxe do adapter alvo.
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
module exemplos.profile_conversas {
|
|
2
|
+
docs {
|
|
3
|
+
resumo: "Exemplo oficial do profile Conversas: bot comercial para atendimento de cliente com tom persuasivo, estado visivel do turno, customer_reply como unica saida ao cliente, deduplicacao, limites de promessa, memoria curta e escalacao humana. Contrato primeiro: criar, editar ou remover contrato antes de qualquer acao."
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
type PoliticaTomConversa {
|
|
7
|
+
fields {
|
|
8
|
+
tom: Texto
|
|
9
|
+
formalidade: Texto
|
|
10
|
+
intensidade_persuasiva: Texto
|
|
11
|
+
proibicoes: Lista
|
|
12
|
+
}
|
|
13
|
+
invariants {
|
|
14
|
+
tom existe
|
|
15
|
+
formalidade existe
|
|
16
|
+
intensidade_persuasiva existe
|
|
17
|
+
proibicoes existe
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
type ContextoClienteConversa {
|
|
22
|
+
fields {
|
|
23
|
+
etapa: Texto
|
|
24
|
+
intencao_detectada: Texto
|
|
25
|
+
sentimento: Texto
|
|
26
|
+
objecoes: Lista
|
|
27
|
+
historico_resumido: Texto
|
|
28
|
+
ultima_mensagem_cliente: Texto
|
|
29
|
+
ultima_resposta_visivel: Texto
|
|
30
|
+
fatos_coletados: Lista
|
|
31
|
+
proxima_acao_esperada: Texto
|
|
32
|
+
}
|
|
33
|
+
invariants {
|
|
34
|
+
etapa existe
|
|
35
|
+
intencao_detectada existe
|
|
36
|
+
sentimento existe
|
|
37
|
+
historico_resumido existe
|
|
38
|
+
ultima_mensagem_cliente existe
|
|
39
|
+
ultima_resposta_visivel existe
|
|
40
|
+
fatos_coletados existe
|
|
41
|
+
proxima_acao_esperada existe
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
type EstadoTurnoConversa {
|
|
46
|
+
fields {
|
|
47
|
+
conversation_id: Id
|
|
48
|
+
evento_id: Id
|
|
49
|
+
canal: Texto
|
|
50
|
+
mensagem_cliente_visivel: Texto
|
|
51
|
+
resposta_anterior_visivel: Texto
|
|
52
|
+
etapa_atual: Texto
|
|
53
|
+
pergunta_anterior: Texto
|
|
54
|
+
confirmacao_curta: Booleano
|
|
55
|
+
dedupe_key: Texto
|
|
56
|
+
origem_estado: Texto
|
|
57
|
+
}
|
|
58
|
+
invariants {
|
|
59
|
+
conversation_id existe
|
|
60
|
+
evento_id existe
|
|
61
|
+
canal existe
|
|
62
|
+
mensagem_cliente_visivel existe
|
|
63
|
+
resposta_anterior_visivel existe
|
|
64
|
+
etapa_atual existe
|
|
65
|
+
dedupe_key existe
|
|
66
|
+
origem_estado existe
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
task responder_cliente_vendas {
|
|
71
|
+
input {
|
|
72
|
+
mensagem_cliente: Texto required
|
|
73
|
+
contexto: ContextoClienteConversa required
|
|
74
|
+
politica: PoliticaTomConversa required
|
|
75
|
+
estado_turno: EstadoTurnoConversa required
|
|
76
|
+
conhecimento_autorizado: Lista required
|
|
77
|
+
}
|
|
78
|
+
output {
|
|
79
|
+
resposta_cliente: Texto
|
|
80
|
+
customer_reply: Texto
|
|
81
|
+
proxima_acao: Texto
|
|
82
|
+
escalar_humano: Booleano
|
|
83
|
+
dedupe_key: Texto
|
|
84
|
+
}
|
|
85
|
+
rules {
|
|
86
|
+
mensagem_cliente deve_ser preenchida
|
|
87
|
+
contexto deve_ser valido
|
|
88
|
+
politica deve_ser com_tom_comercial_persuasivo
|
|
89
|
+
estado_turno deve_ser origem_conversa_visivel
|
|
90
|
+
estado_turno deve_ser deduplicado_por_evento
|
|
91
|
+
conhecimento_autorizado deve_ser nao_vazio
|
|
92
|
+
estado_turno.confirmacao_curta deve_ser interpretada_contra_pergunta_anterior
|
|
93
|
+
}
|
|
94
|
+
effects {
|
|
95
|
+
auditoria conversa_cliente criticidade = alta
|
|
96
|
+
evento resposta_bot_preparada criticidade = media
|
|
97
|
+
}
|
|
98
|
+
authz {
|
|
99
|
+
escopo: sema.conversas.responder
|
|
100
|
+
tenant: obrigatorio
|
|
101
|
+
}
|
|
102
|
+
dados {
|
|
103
|
+
classificacao_padrao: interno
|
|
104
|
+
redacao_log: parcial
|
|
105
|
+
}
|
|
106
|
+
audit {
|
|
107
|
+
evento: exemplos.conversas.resposta
|
|
108
|
+
ator: auth.agente
|
|
109
|
+
correlacao: conversation_id
|
|
110
|
+
retencao: "30d"
|
|
111
|
+
motivo: obrigatorio
|
|
112
|
+
}
|
|
113
|
+
forbidden {
|
|
114
|
+
promessa_sem_base
|
|
115
|
+
inventar_preco_ou_prazo
|
|
116
|
+
insistencia_agressiva
|
|
117
|
+
ignorar_objecao_cliente
|
|
118
|
+
reiniciar_conversa_apos_confirmacao_curta
|
|
119
|
+
repetir_saudacao_apos_contexto_existente
|
|
120
|
+
enviar_json_interno_ao_cliente
|
|
121
|
+
responder_mais_de_uma_vez_o_mesmo_inbound
|
|
122
|
+
voz_generica_de_ia
|
|
123
|
+
}
|
|
124
|
+
impl {
|
|
125
|
+
ts: cli.src.index.validarProfileSemantico
|
|
126
|
+
}
|
|
127
|
+
vinculos {
|
|
128
|
+
arquivo: "pacotes/cli/src/index.ts"
|
|
129
|
+
simbolo: cli.src.index.validarProfileSemantico
|
|
130
|
+
}
|
|
131
|
+
execucao {
|
|
132
|
+
idempotencia: verdadeiro
|
|
133
|
+
timeout: "10s"
|
|
134
|
+
retry: "nenhum"
|
|
135
|
+
criticidade_operacional: alta
|
|
136
|
+
}
|
|
137
|
+
guarantees {
|
|
138
|
+
resposta_cliente existe
|
|
139
|
+
resposta_cliente deve_ser aderente_ao_tom
|
|
140
|
+
resposta_cliente deve_ser responder_objecao
|
|
141
|
+
customer_reply existe
|
|
142
|
+
customer_reply deve_ser unica_saida_visivel
|
|
143
|
+
proxima_acao existe
|
|
144
|
+
proxima_acao deve_ser clara
|
|
145
|
+
escalar_humano existe
|
|
146
|
+
dedupe_key existe
|
|
147
|
+
}
|
|
148
|
+
tests {
|
|
149
|
+
caso "lead indeciso recebe resposta com proxima acao" {
|
|
150
|
+
given {
|
|
151
|
+
mensagem_cliente: "Ainda estou comparando opcoes."
|
|
152
|
+
contexto: "etapa comparacao, intencao comprar, sentimento INDECISO, objecao confianca, ultima mensagem Ainda estou comparando opcoes, ultima resposta visivel vazia"
|
|
153
|
+
politica: "tom comercial persuasivo, formalidade media, proibido prometer preco ou prazo sem base"
|
|
154
|
+
estado_turno: "conversation_id c1 evento_id msg1 canal WHATSAPP mensagem_cliente_visivel Ainda estou comparando opcoes resposta_anterior_visivel vazia etapa_atual comparacao dedupe_key msg1 origem_estado conversa_visivel"
|
|
155
|
+
conhecimento_autorizado: "pode oferecer diagnostico rapido"
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
expect {
|
|
159
|
+
sucesso: verdadeiro
|
|
160
|
+
escalar_humano: falso
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
package/llms-full.txt
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
Sema is an AI-first semantic language and tooling stack for explicit software intent, drift analysis, and safer intervention in live backend systems.
|
|
2
|
+
|
|
3
|
+
This repository is not optimized for human-first reading. It is optimized for AI agents that need compressed, canonical semantic context.
|
|
4
|
+
|
|
5
|
+
Canonical entrypoints in the repository root:
|
|
6
|
+
1. `llms.txt`
|
|
7
|
+
2. `AGENT_CONTEXT_PACK.json`
|
|
8
|
+
3. `SEMA_BRIEF.md`
|
|
9
|
+
4. `SEMA_INDEX.json`
|
|
10
|
+
5. `AGENTS.md`
|
|
11
|
+
6. `README.md`
|
|
12
|
+
7. `docs/AGENT_STARTER.md`
|
|
13
|
+
|
|
14
|
+
Capacity routing:
|
|
15
|
+
- small/free AI: `llms.txt` -> `AGENT_CONTEXT_PACK.json` -> `SEMA_BRIEF.micro.txt` -> `SEMA_INDEX.json` -> `AGENTS.md`
|
|
16
|
+
- medium AI: `llms.txt` -> `AGENT_CONTEXT_PACK.json` -> `SEMA_BRIEF.curto.txt` -> `SEMA_INDEX.json` -> `AGENTS.md` -> `README.md`
|
|
17
|
+
- large/tool-using AI: `llms-full.txt` -> `AGENT_CONTEXT_PACK.json` -> `SEMA_BRIEF.md` -> `SEMA_INDEX.json` -> `AGENTS.md` -> `README.md`
|
|
18
|
+
|
|
19
|
+
Source-of-truth order:
|
|
20
|
+
1. root Sema artifacts
|
|
21
|
+
2. CLI JSON outputs
|
|
22
|
+
3. official docs
|
|
23
|
+
4. official examples
|
|
24
|
+
5. raw implementation code
|
|
25
|
+
|
|
26
|
+
Useful commands:
|
|
27
|
+
- `sema resumo <arquivo-ou-pasta> --micro --para mudanca`
|
|
28
|
+
- `sema prompt-curto <arquivo-ou-pasta> --curto --para review`
|
|
29
|
+
- `sema drift <arquivo-ou-pasta> --json`
|
|
30
|
+
- `sema contexto-ia <arquivo.sema> --saida ./.tmp/contexto --json`
|
|
31
|
+
- `sema validar <arquivo-ou-pasta> --json`
|
|
32
|
+
- `sema verificar <arquivo-ou-pasta> --json`
|
|
33
|
+
|
|
34
|
+
Do not ask the model to infer semantics that are already available in Sema artifacts.
|
|
35
|
+
Do not start from raw source code if `AGENT_CONTEXT_PACK`, `SEMA_BRIEF`, `SEMA_INDEX`, `drift`, or `briefing` are available.
|
package/llms.txt
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Sema is an AI-first semantic language and tooling stack for backend intent.
|
|
2
|
+
|
|
3
|
+
This repository is not human-first. Use the canonical AI entrypoints before raw code.
|
|
4
|
+
|
|
5
|
+
Read in this order:
|
|
6
|
+
1. AGENT_CONTEXT_PACK.json
|
|
7
|
+
2. SEMA_BRIEF.micro.txt or SEMA_BRIEF.md
|
|
8
|
+
3. SEMA_INDEX.json
|
|
9
|
+
4. AGENTS.md
|
|
10
|
+
5. README.md
|
|
11
|
+
|
|
12
|
+
Capacity routing:
|
|
13
|
+
- small models: llms.txt -> AGENT_CONTEXT_PACK.json -> SEMA_BRIEF.micro.txt -> SEMA_INDEX.json -> AGENTS.md
|
|
14
|
+
- medium models: llms.txt -> AGENT_CONTEXT_PACK.json -> SEMA_BRIEF.curto.txt -> SEMA_INDEX.json -> AGENTS.md -> README.md
|
|
15
|
+
- large models: llms-full.txt -> AGENT_CONTEXT_PACK.json -> SEMA_BRIEF.md -> SEMA_INDEX.json -> AGENTS.md -> README.md
|
|
16
|
+
|
|
17
|
+
Prefer Sema artifacts over raw source code when both exist.
|
|
18
|
+
Prefer `drift`, `briefing`, `ir`, and `diagnosticos` over guesswork.
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@sema/gerador-css",
|
|
3
|
-
"version": "1.5.29",
|
|
4
|
-
"type": "module",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts"
|
|
7
|
-
|
|
8
|
-
"build": "tsc -p tsconfig.json"
|
|
9
|
-
},
|
|
10
|
-
"dependencies": {
|
|
11
|
-
"@sema/nucleo": "file:../nucleo",
|
|
12
|
-
"@sema/padroes": "file:../padroes"
|
|
13
|
-
}
|
|
14
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@sema/gerador-css",
|
|
3
|
+
"version": "1.5.29",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts"
|
|
7
|
+
}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@sema/gerador-dart",
|
|
3
|
-
"version": "1.5.29",
|
|
4
|
-
"type": "module",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts"
|
|
7
|
-
|
|
8
|
-
"build": "tsc -p tsconfig.json"
|
|
9
|
-
},
|
|
10
|
-
"dependencies": {
|
|
11
|
-
"@sema/nucleo": "file:../nucleo",
|
|
12
|
-
"@sema/padroes": "file:../padroes"
|
|
13
|
-
}
|
|
14
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@sema/gerador-dart",
|
|
3
|
+
"version": "1.5.29",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts"
|
|
7
|
+
}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@sema/gerador-html",
|
|
3
|
-
"version": "1.5.29",
|
|
4
|
-
"type": "module",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts"
|
|
7
|
-
|
|
8
|
-
"build": "tsc -p tsconfig.json"
|
|
9
|
-
},
|
|
10
|
-
"dependencies": {
|
|
11
|
-
"@sema/nucleo": "file:../nucleo",
|
|
12
|
-
"@sema/padroes": "file:../padroes"
|
|
13
|
-
}
|
|
14
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@sema/gerador-html",
|
|
3
|
+
"version": "1.5.29",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts"
|
|
7
|
+
}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@sema/gerador-javascript",
|
|
3
|
-
"version": "1.5.29",
|
|
4
|
-
"type": "module",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts"
|
|
7
|
-
|
|
8
|
-
"build": "tsc -p tsconfig.json"
|
|
9
|
-
},
|
|
10
|
-
"dependencies": {
|
|
11
|
-
"@sema/nucleo": "file:../nucleo",
|
|
12
|
-
"@sema/padroes": "file:../padroes"
|
|
13
|
-
}
|
|
14
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@sema/gerador-javascript",
|
|
3
|
+
"version": "1.5.29",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts"
|
|
7
|
+
}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@sema/gerador-lua",
|
|
3
|
-
"version": "1.5.29",
|
|
4
|
-
"type": "module",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts"
|
|
7
|
-
|
|
8
|
-
"build": "tsc -p tsconfig.json"
|
|
9
|
-
},
|
|
10
|
-
"dependencies": {
|
|
11
|
-
"@sema/nucleo": "file:../nucleo",
|
|
12
|
-
"@sema/padroes": "file:../padroes"
|
|
13
|
-
}
|
|
14
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@sema/gerador-lua",
|
|
3
|
+
"version": "1.5.29",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts"
|
|
7
|
+
}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@sema/gerador-python",
|
|
3
|
-
"version": "1.5.29",
|
|
4
|
-
"type": "module",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts"
|
|
7
|
-
|
|
8
|
-
"build": "tsc -p tsconfig.json"
|
|
9
|
-
},
|
|
10
|
-
"dependencies": {
|
|
11
|
-
"@sema/nucleo": "file:../nucleo",
|
|
12
|
-
"@sema/padroes": "file:../padroes"
|
|
13
|
-
}
|
|
14
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@sema/gerador-python",
|
|
3
|
+
"version": "1.5.29",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts"
|
|
7
|
+
}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@sema/gerador-typescript",
|
|
3
|
-
"version": "1.5.29",
|
|
4
|
-
"type": "module",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts"
|
|
7
|
-
|
|
8
|
-
"build": "tsc -p tsconfig.json"
|
|
9
|
-
},
|
|
10
|
-
"dependencies": {
|
|
11
|
-
"@sema/nucleo": "file:../nucleo",
|
|
12
|
-
"@sema/padroes": "file:../padroes"
|
|
13
|
-
}
|
|
14
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@sema/gerador-typescript",
|
|
3
|
+
"version": "1.5.29",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts"
|
|
7
|
+
}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@sema/nucleo",
|
|
3
|
-
"version": "1.5.29",
|
|
4
|
-
"type": "module",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts"
|
|
7
|
-
|
|
8
|
-
"build": "tsc -p tsconfig.json"
|
|
9
|
-
}
|
|
10
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@sema/nucleo",
|
|
3
|
+
"version": "1.5.29",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts"
|
|
7
|
+
}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@sema/padroes",
|
|
3
|
-
"version": "1.5.29",
|
|
4
|
-
"type": "module",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts"
|
|
7
|
-
|
|
8
|
-
"build": "tsc -p tsconfig.json"
|
|
9
|
-
}
|
|
10
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@sema/padroes",
|
|
3
|
+
"version": "1.5.29",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts"
|
|
7
|
+
}
|