@semacode/cli 2.3.0 → 2.3.1
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/LICENSE +39 -39
- package/README.md +251 -228
- package/dist/agentEntryPoints.js +551 -550
- package/dist/angular-consumer-standalone.d.ts +3 -1
- package/dist/angular-consumer-standalone.js +12 -8
- package/dist/drift.part01.d.ts +32 -2
- package/dist/drift.part01.js +2 -0
- package/dist/drift.part04.d.ts +3 -2
- package/dist/drift.part04.js +6 -3
- package/dist/drift.part05.d.ts +2 -1
- package/dist/drift.part05.js +4 -3
- package/dist/drift.part06.d.ts +2 -1
- package/dist/drift.part06.js +9 -5
- package/dist/drift.part07.d.ts +11 -10
- package/dist/drift.part07.js +40 -30
- package/dist/drift.part08.d.ts +2 -1
- package/dist/drift.part08.js +4 -3
- package/dist/drift.part11.js +71 -6
- package/dist/drift.part12.js +14 -1
- package/dist/drift.part13.d.ts +42 -7
- package/dist/drift.part13.js +660 -36
- package/dist/driftCache.d.ts +49 -0
- package/dist/driftCache.js +311 -0
- package/dist/driftCacheIncremental.d.ts +98 -0
- package/dist/driftCacheIncremental.js +596 -0
- package/dist/driftCatalogo.d.ts +91 -0
- package/dist/driftCatalogo.js +657 -0
- package/dist/driftCatalogoPersistente.d.ts +8 -0
- package/dist/driftCatalogoPersistente.js +77 -0
- package/dist/driftEscopo.d.ts +23 -0
- package/dist/driftEscopo.js +563 -0
- package/dist/driftEscopoReferencias.d.ts +4 -0
- package/dist/driftEscopoReferencias.js +265 -0
- package/dist/driftOrcamento.d.ts +12 -0
- package/dist/driftOrcamento.js +19 -3
- package/dist/execucoesExternas.js +5 -19
- package/dist/iaPrompts.js +310 -310
- package/dist/index.part01.d.ts +16 -1
- package/dist/index.part01.js +80 -4
- package/dist/index.part02.js +21 -21
- package/dist/index.part03.d.ts +2 -2
- package/dist/index.part03.js +14 -3
- package/dist/index.part04.d.ts +2 -2
- package/dist/index.part04.js +113 -101
- package/dist/index.part05.d.ts +1 -1
- package/dist/index.part05.js +99 -22
- package/dist/index.part06.js +3 -2
- package/dist/index.part07.js +24 -24
- package/dist/index.part08.js +1 -1
- package/dist/init/templates.part01.js +393 -393
- package/dist/init/templates.part02.js +189 -189
- package/dist/initTemplatesBackend.js +73 -73
- package/dist/initTemplatesBase.js +81 -81
- package/dist/initTemplatesFlutter.js +137 -137
- package/dist/initTemplatesRuntime.js +350 -350
- package/dist/initTemplatesWeb.js +309 -309
- package/dist/pipelineConteudo/command.js +1 -36
- package/dist/projeto.d.ts +1 -1
- package/dist/projetoCarregar.d.ts +2 -2
- package/dist/projetoCarregar.js +47 -24
- package/dist/projetoCatalogo.d.ts +7 -0
- package/dist/projetoCatalogo.js +125 -0
- package/dist/projetoTipos.d.ts +14 -5
- package/dist/sync/index.js +35 -35
- package/docs/README.md +34 -34
- package/docs/ai-integration.md +1 -7
- package/docs/ai-onboarding.md +62 -62
- package/docs/ai-workflow.md +4 -0
- package/docs/auth.md +26 -26
- package/docs/cli.md +79 -79
- package/docs/commands.md +16 -13
- package/docs/database.md +15 -15
- package/docs/deploy.md +41 -41
- package/docs/descoberta-capacidades.md +106 -106
- package/docs/documentation.md +37 -46
- package/docs/env.md +16 -16
- package/docs/frontend.md +41 -41
- package/docs/getting-started.md +57 -57
- package/docs/i18n.md +15 -15
- package/docs/pipeline-conteudo.md +246 -246
- package/docs/profiles.md +54 -54
- package/docs/repositories.md +43 -43
- package/docs/rollback.md +31 -31
- package/docs/security.md +32 -32
- package/docs/sistemas-interativos.md +373 -378
- package/docs/support.md +8 -8
- package/docs/testing.md +51 -44
- package/docs/vocabulary.md +29 -29
- package/exemplos/agendamento.sema +1 -1
- package/exemplos/assinatura.sema +1 -1
- package/exemplos/auditoria.sema +1 -1
- package/exemplos/autenticacao.sema +1 -1
- package/exemplos/author_obra_comum.sema +1 -1
- package/exemplos/author_tema_sensivel.sema +1 -1
- package/exemplos/automacao.sema +1 -1
- package/exemplos/cadastro_usuario.sema +1 -1
- package/exemplos/calculadora.sema +1 -1
- package/exemplos/crud_simples.sema +1 -1
- package/exemplos/estoque.sema +1 -1
- package/exemplos/exportacao.sema +1 -1
- package/exemplos/fila.sema +1 -1
- package/exemplos/integracao_externa.sema +1 -1
- package/exemplos/multi_tenant.sema +1 -1
- package/exemplos/notificacao.sema +1 -1
- package/exemplos/operacao_estrategia.sema +132 -132
- package/exemplos/operacao_estrategia_discovery.sema +220 -220
- package/exemplos/operacao_estrategia_fluxo.sema +114 -114
- package/exemplos/operacao_estrategia_gates.sema +106 -106
- package/exemplos/operacao_estrategia_quarentena.sema +133 -133
- package/exemplos/operacao_estrategia_rollout.sema +124 -124
- package/exemplos/pagamento.sema +1 -1
- package/exemplos/pagamento_dominio.sema +1 -1
- package/exemplos/pedido.sema +1 -1
- package/exemplos/permissao.sema +1 -1
- package/exemplos/persistencia_vendor_first.sema +1 -1
- package/exemplos/pipeline-conteudo/README.md +44 -44
- package/exemplos/pipeline-conteudo/alvos.json +23 -23
- package/exemplos/pipeline-conteudo/definicao.json +136 -136
- package/exemplos/profile_conversas.sema +165 -165
- package/exemplos/profile_game.sema +1 -1
- package/exemplos/profile_legal.sema +1 -1
- package/exemplos/profile_ops.sema +1 -1
- package/exemplos/profile_research.sema +1 -1
- package/exemplos/profile_simulation.sema +211 -211
- package/exemplos/profile_software.sema +1 -1
- package/exemplos/profile_workflow_n8n.sema +1 -1
- package/exemplos/relatorio.sema +1 -1
- package/exemplos/replica_analitica_erp.sema +1 -1
- package/exemplos/sistemas-interativos/README.md +100 -100
- package/exemplos/sistemas-interativos/advanced/acceptance-context-evaluate-valid.json +5 -5
- package/exemplos/sistemas-interativos/advanced/acceptance-lock-valid.json +16 -16
- package/exemplos/sistemas-interativos/advanced/asset-provenance-valid.json +32 -32
- package/exemplos/sistemas-interativos/advanced/autonomy-repair-valid.json +93 -93
- package/exemplos/sistemas-interativos/advanced/control-run-definition-valid.json +78 -78
- package/exemplos/sistemas-interativos/advanced/control-run-valid.json +27 -27
- package/exemplos/sistemas-interativos/advanced/distributed-workers-valid.json +79 -79
- package/exemplos/sistemas-interativos/advanced/editor-state-valid.json +42 -42
- package/exemplos/sistemas-interativos/advanced/engine-snapshot-after-valid.json +32 -32
- package/exemplos/sistemas-interativos/advanced/engine-snapshot-before-valid.json +23 -23
- package/exemplos/sistemas-interativos/advanced/job-orchestration-valid.json +39 -39
- package/exemplos/sistemas-interativos/advanced/multimodal-evidence-valid.json +46 -46
- package/exemplos/sistemas-interativos/advanced/multiplayer-authority-valid.json +39 -39
- package/exemplos/sistemas-interativos/advanced/playtest-fuzz-valid.json +37 -37
- package/exemplos/sistemas-interativos/advanced/portability-valid.json +104 -104
- package/exemplos/sistemas-interativos/advanced/temporal-evidence-valid.json +27 -27
- package/exemplos/sistemas-interativos/advanced/temporal-valid.json +118 -118
- package/exemplos/sistemas-interativos/experience-ir-valid.json +459 -459
- package/exemplos/sistemas-interativos/game-2d.json +83 -83
- package/exemplos/sistemas-interativos/game-3d-human.json +81 -81
- package/exemplos/sistemas-interativos/game-pixel-16-bit.json +97 -97
- package/exemplos/sistemas-interativos/game-pixel-8-bit.json +94 -94
- package/exemplos/sistemas-interativos/game-xr-human.json +80 -80
- package/exemplos/sistemas-interativos/hybrid-2-5d.json +108 -108
- package/exemplos/sistemas-interativos/protocol-mutating-rollback-valid.json +75 -75
- package/exemplos/sistemas-interativos/protocol-read-only-valid.json +58 -58
- package/exemplos/sistemas-interativos/simulation-2d-controlled.json +97 -97
- package/exemplos/sistemas-interativos/simulation-3d-calibrated-autonomous.json +141 -141
- package/exemplos/sistemas-interativos/simulation-headless-autonomous-batch.json +112 -112
- package/exemplos/sistemas-interativos/simulation-pixel-16-bit.json +103 -103
- package/exemplos/sistemas-interativos/simulation-text-controlled.json +95 -95
- package/exemplos/testes_embutidos.sema +1 -1
- package/exemplos/tratamento_erro.sema +1 -1
- package/exemplos/upload_arquivo.sema +1 -1
- package/exemplos/webhook.sema +1 -1
- package/node_modules/@sema/gerador-cpp/dist/index.js +176 -176
- package/node_modules/@sema/gerador-cpp/package.json +1 -1
- package/node_modules/@sema/gerador-css/dist/index.part01.js +10 -10
- package/node_modules/@sema/gerador-css/dist/index.part02.js +460 -460
- package/node_modules/@sema/gerador-dotnet/dist/index.js +169 -169
- package/node_modules/@sema/gerador-dotnet/package.json +1 -1
- package/node_modules/@sema/gerador-html/dist/index.js +17 -17
- package/node_modules/@sema/gerador-lua/dist/index.js +51 -51
- package/node_modules/@sema/gerador-php/dist/index.js +113 -113
- package/node_modules/@sema/gerador-python/dist/index.part02.js +3 -3
- package/node_modules/@sema/gerador-typescript/dist/index.part02.js +11 -11
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +42 -42
- package/package.json +3 -3
|
@@ -1,124 +1,124 @@
|
|
|
1
|
-
module exemplos.operacao_estrategia.rollout {
|
|
2
|
-
docs {
|
|
3
|
-
resumo: "Task oficial para ativar strategy com nova versao de modelo apos aprovacao manual."
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
enum StatusStrategy {
|
|
7
|
-
RASCUNHO,
|
|
8
|
-
ATIVA,
|
|
9
|
-
QUARENTENA,
|
|
10
|
-
DESATIVADA
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
enum StatusGate {
|
|
14
|
-
ABERTO,
|
|
15
|
-
FECHADO
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
task ativar_strategy_com_nova_versao {
|
|
19
|
-
docs {
|
|
20
|
-
resumo: "Promove a versao candidata aprovada e reabre a strategy so quando houver aprovacao manual e gate global devidamente controlado."
|
|
21
|
-
}
|
|
22
|
-
input {
|
|
23
|
-
strategy_id: Id required
|
|
24
|
-
versao_modelo_ativa: Texto required
|
|
25
|
-
versao_modelo_candidata: Texto required
|
|
26
|
-
strategy_status_atual: StatusStrategy required
|
|
27
|
-
gate_global_atual: StatusGate required
|
|
28
|
-
aprovacao_manual: Booleano required
|
|
29
|
-
}
|
|
30
|
-
output {
|
|
31
|
-
strategy_status: StatusStrategy
|
|
32
|
-
gate_global: StatusGate
|
|
33
|
-
versao_modelo_ativa: Texto
|
|
34
|
-
}
|
|
35
|
-
authz {
|
|
36
|
-
escopo: strategy.rollout.ativar
|
|
37
|
-
tenant: obrigatorio
|
|
38
|
-
}
|
|
39
|
-
dados {
|
|
40
|
-
classificacao_padrao: interno
|
|
41
|
-
redacao_log: obrigatoria
|
|
42
|
-
input {
|
|
43
|
-
strategy_id: interno
|
|
44
|
-
versao_modelo_ativa: interno
|
|
45
|
-
versao_modelo_candidata: interno
|
|
46
|
-
strategy_status_atual: interno
|
|
47
|
-
gate_global_atual: interno
|
|
48
|
-
aprovacao_manual: interno
|
|
49
|
-
}
|
|
50
|
-
output {
|
|
51
|
-
strategy_status: interno
|
|
52
|
-
gate_global: interno
|
|
53
|
-
versao_modelo_ativa: interno
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
audit {
|
|
57
|
-
evento: strategy.rollout.ativado
|
|
58
|
-
ator: sistema.strategy
|
|
59
|
-
correlacao: request_id
|
|
60
|
-
retencao: "180d"
|
|
61
|
-
motivo: obrigatorio
|
|
62
|
-
}
|
|
63
|
-
forbidden {
|
|
64
|
-
shell.exec
|
|
65
|
-
log.segredo
|
|
66
|
-
retorno.credencial
|
|
67
|
-
}
|
|
68
|
-
rules {
|
|
69
|
-
strategy_id existe
|
|
70
|
-
versao_modelo_ativa existe
|
|
71
|
-
versao_modelo_candidata existe
|
|
72
|
-
strategy_status_atual em [RASCUNHO, QUARENTENA]
|
|
73
|
-
gate_global_atual == FECHADO
|
|
74
|
-
aprovacao_manual == verdadeiro
|
|
75
|
-
}
|
|
76
|
-
effects {
|
|
77
|
-
persistencia strategy criticidade = alta
|
|
78
|
-
evento strategy_ativada criticidade = alta
|
|
79
|
-
auditoria rollout criticidade = alta
|
|
80
|
-
}
|
|
81
|
-
vinculos {
|
|
82
|
-
tabela: strategy
|
|
83
|
-
recurso: model_registry
|
|
84
|
-
evento: strategy_ativada
|
|
85
|
-
}
|
|
86
|
-
execucao {
|
|
87
|
-
idempotencia: verdadeiro
|
|
88
|
-
timeout: "15s"
|
|
89
|
-
retry: "nenhum"
|
|
90
|
-
compensacao: "reverter_para_versao_modelo_ativa_anterior"
|
|
91
|
-
criticidade_operacional: alta
|
|
92
|
-
}
|
|
93
|
-
state governanca_estrategia {
|
|
94
|
-
transitions {
|
|
95
|
-
QUARENTENA -> ATIVA
|
|
96
|
-
RASCUNHO -> ATIVA
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
guarantees {
|
|
100
|
-
strategy_status == ATIVA
|
|
101
|
-
gate_global == ABERTO
|
|
102
|
-
versao_modelo_ativa existe
|
|
103
|
-
}
|
|
104
|
-
tests {
|
|
105
|
-
caso "reativa strategy apos aprovacao do novo modelo" {
|
|
106
|
-
given {
|
|
107
|
-
strategy_id: "strategy_alpha"
|
|
108
|
-
versao_modelo_ativa: "modelo_2026_12"
|
|
109
|
-
versao_modelo_candidata: "modelo_2026_13"
|
|
110
|
-
strategy_status_atual: "QUARENTENA"
|
|
111
|
-
gate_global_atual: "FECHADO"
|
|
112
|
-
aprovacao_manual: verdadeiro
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
expect {
|
|
116
|
-
sucesso: verdadeiro
|
|
117
|
-
strategy_status: "ATIVA"
|
|
118
|
-
gate_global: "ABERTO"
|
|
119
|
-
versao_modelo_ativa: "modelo_2026_13"
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
1
|
+
module exemplos.operacao_estrategia.rollout {
|
|
2
|
+
docs {
|
|
3
|
+
resumo: "Task oficial para ativar strategy com nova versao de modelo apos aprovacao manual."
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
enum StatusStrategy {
|
|
7
|
+
RASCUNHO,
|
|
8
|
+
ATIVA,
|
|
9
|
+
QUARENTENA,
|
|
10
|
+
DESATIVADA
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
enum StatusGate {
|
|
14
|
+
ABERTO,
|
|
15
|
+
FECHADO
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
task ativar_strategy_com_nova_versao {
|
|
19
|
+
docs {
|
|
20
|
+
resumo: "Promove a versao candidata aprovada e reabre a strategy so quando houver aprovacao manual e gate global devidamente controlado."
|
|
21
|
+
}
|
|
22
|
+
input {
|
|
23
|
+
strategy_id: Id required
|
|
24
|
+
versao_modelo_ativa: Texto required
|
|
25
|
+
versao_modelo_candidata: Texto required
|
|
26
|
+
strategy_status_atual: StatusStrategy required
|
|
27
|
+
gate_global_atual: StatusGate required
|
|
28
|
+
aprovacao_manual: Booleano required
|
|
29
|
+
}
|
|
30
|
+
output {
|
|
31
|
+
strategy_status: StatusStrategy
|
|
32
|
+
gate_global: StatusGate
|
|
33
|
+
versao_modelo_ativa: Texto
|
|
34
|
+
}
|
|
35
|
+
authz {
|
|
36
|
+
escopo: strategy.rollout.ativar
|
|
37
|
+
tenant: obrigatorio
|
|
38
|
+
}
|
|
39
|
+
dados {
|
|
40
|
+
classificacao_padrao: interno
|
|
41
|
+
redacao_log: obrigatoria
|
|
42
|
+
input {
|
|
43
|
+
strategy_id: interno
|
|
44
|
+
versao_modelo_ativa: interno
|
|
45
|
+
versao_modelo_candidata: interno
|
|
46
|
+
strategy_status_atual: interno
|
|
47
|
+
gate_global_atual: interno
|
|
48
|
+
aprovacao_manual: interno
|
|
49
|
+
}
|
|
50
|
+
output {
|
|
51
|
+
strategy_status: interno
|
|
52
|
+
gate_global: interno
|
|
53
|
+
versao_modelo_ativa: interno
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
audit {
|
|
57
|
+
evento: strategy.rollout.ativado
|
|
58
|
+
ator: sistema.strategy
|
|
59
|
+
correlacao: request_id
|
|
60
|
+
retencao: "180d"
|
|
61
|
+
motivo: obrigatorio
|
|
62
|
+
}
|
|
63
|
+
forbidden {
|
|
64
|
+
shell.exec
|
|
65
|
+
log.segredo
|
|
66
|
+
retorno.credencial
|
|
67
|
+
}
|
|
68
|
+
rules {
|
|
69
|
+
strategy_id existe
|
|
70
|
+
versao_modelo_ativa existe
|
|
71
|
+
versao_modelo_candidata existe
|
|
72
|
+
strategy_status_atual em [RASCUNHO, QUARENTENA]
|
|
73
|
+
gate_global_atual == FECHADO
|
|
74
|
+
aprovacao_manual == verdadeiro
|
|
75
|
+
}
|
|
76
|
+
effects {
|
|
77
|
+
persistencia strategy criticidade = alta
|
|
78
|
+
evento strategy_ativada criticidade = alta
|
|
79
|
+
auditoria rollout criticidade = alta
|
|
80
|
+
}
|
|
81
|
+
vinculos {
|
|
82
|
+
tabela: strategy
|
|
83
|
+
recurso: model_registry
|
|
84
|
+
evento: strategy_ativada
|
|
85
|
+
}
|
|
86
|
+
execucao {
|
|
87
|
+
idempotencia: verdadeiro
|
|
88
|
+
timeout: "15s"
|
|
89
|
+
retry: "nenhum"
|
|
90
|
+
compensacao: "reverter_para_versao_modelo_ativa_anterior"
|
|
91
|
+
criticidade_operacional: alta
|
|
92
|
+
}
|
|
93
|
+
state governanca_estrategia {
|
|
94
|
+
transitions {
|
|
95
|
+
QUARENTENA -> ATIVA
|
|
96
|
+
RASCUNHO -> ATIVA
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
guarantees {
|
|
100
|
+
strategy_status == ATIVA
|
|
101
|
+
gate_global == ABERTO
|
|
102
|
+
versao_modelo_ativa existe
|
|
103
|
+
}
|
|
104
|
+
tests {
|
|
105
|
+
caso "reativa strategy apos aprovacao do novo modelo" {
|
|
106
|
+
given {
|
|
107
|
+
strategy_id: "strategy_alpha"
|
|
108
|
+
versao_modelo_ativa: "modelo_2026_12"
|
|
109
|
+
versao_modelo_candidata: "modelo_2026_13"
|
|
110
|
+
strategy_status_atual: "QUARENTENA"
|
|
111
|
+
gate_global_atual: "FECHADO"
|
|
112
|
+
aprovacao_manual: verdadeiro
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
expect {
|
|
116
|
+
sucesso: verdadeiro
|
|
117
|
+
strategy_status: "ATIVA"
|
|
118
|
+
gate_global: "ABERTO"
|
|
119
|
+
versao_modelo_ativa: "modelo_2026_13"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
package/exemplos/pagamento.sema
CHANGED
package/exemplos/pedido.sema
CHANGED
package/exemplos/permissao.sema
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
# Content pipeline example
|
|
2
|
-
|
|
3
|
-
This fixture proves that the pipeline core is independent from a platform,
|
|
4
|
-
brand, or media type. One definition creates a global editorial core and two
|
|
5
|
-
isolated target branches: a long-form document and a spoken audio episode.
|
|
6
|
-
The same AI-native plan can add any number of channels and formats without
|
|
7
|
-
making this experience the only delivery path.
|
|
8
|
-
|
|
9
|
-
Definition v1 declares exactly one output per stage. Each stage also selects an
|
|
10
|
-
`adapterPolicy`: `NONE`, `CONSTRAINTS`, or `CONFIRMATION`. Constraint gates are
|
|
11
|
-
satisfied only by independently signed observations bound to the produced
|
|
12
|
-
artifact, including an independently observed media type; producer metadata
|
|
13
|
-
is not evidence of its own correctness.
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
sema conteudo validar exemplos/pipeline-conteudo/definicao.json --json
|
|
17
|
-
sema conteudo planejar exemplos/pipeline-conteudo/definicao.json --alvos-arquivo exemplos/pipeline-conteudo/alvos.json --json
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
The example intentionally contains no private keys, signed policy, trust pins,
|
|
21
|
-
ledger checkpoint, or signed events. In a live run, an authorized policy
|
|
22
|
-
authority must sign a policy bound to the execution and complete target set
|
|
23
|
-
through `runId` and `targetSetDigest`, with explicit `issuedAt` and `expiresAt`
|
|
24
|
-
authorization bounds. Every event must be recorded within that interval, and
|
|
25
|
-
every append also supplies that policy envelope. Keep the
|
|
26
|
-
trust-root digest, current `revocationDigest`, and
|
|
27
|
-
required `expectedHead` outside the runner-controlled workspace. Generate
|
|
28
|
-
events in independently controlled producer, evaluator, and adapter processes;
|
|
29
|
-
never commit production private keys to a Sema workspace. The adapter's
|
|
30
|
-
`requiredMetadata + optionalMetadata` is the exact scalar public allowlist;
|
|
31
|
-
artifact metadata is unavailable in v1. The runner resolves credentials
|
|
32
|
-
externally from a strict `account:<alias>` reference.
|
|
33
|
-
|
|
34
|
-
Every gate declares separate deterministic-attester and semantic-AI quorums.
|
|
35
|
-
Use `content.evidence.attest:<evidenceType>` for ordinary attestations. Adapter
|
|
36
|
-
observations use the stricter
|
|
37
|
-
`content.adapter.attest:<adapterId>@<version>:<evidenceType>` capability and
|
|
38
|
-
signed adapter/version binding; a generic receipt capability is intentionally
|
|
39
|
-
insufficient.
|
|
40
|
-
|
|
41
|
-
The runner executes and resumes work from Sema's derived `nextActions`. It does
|
|
42
|
-
not calculate verdicts or edit completion state. Operational conditions remain
|
|
43
|
-
separate from gate verdicts, and every generated manifest is a non-authoritative
|
|
44
|
-
projection of the canonical ledger. There is no native human-review fallback.
|
|
1
|
+
# Content pipeline example
|
|
2
|
+
|
|
3
|
+
This fixture proves that the pipeline core is independent from a platform,
|
|
4
|
+
brand, or media type. One definition creates a global editorial core and two
|
|
5
|
+
isolated target branches: a long-form document and a spoken audio episode.
|
|
6
|
+
The same AI-native plan can add any number of channels and formats without
|
|
7
|
+
making this experience the only delivery path.
|
|
8
|
+
|
|
9
|
+
Definition v1 declares exactly one output per stage. Each stage also selects an
|
|
10
|
+
`adapterPolicy`: `NONE`, `CONSTRAINTS`, or `CONFIRMATION`. Constraint gates are
|
|
11
|
+
satisfied only by independently signed observations bound to the produced
|
|
12
|
+
artifact, including an independently observed media type; producer metadata
|
|
13
|
+
is not evidence of its own correctness.
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
sema conteudo validar exemplos/pipeline-conteudo/definicao.json --json
|
|
17
|
+
sema conteudo planejar exemplos/pipeline-conteudo/definicao.json --alvos-arquivo exemplos/pipeline-conteudo/alvos.json --json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
The example intentionally contains no private keys, signed policy, trust pins,
|
|
21
|
+
ledger checkpoint, or signed events. In a live run, an authorized policy
|
|
22
|
+
authority must sign a policy bound to the execution and complete target set
|
|
23
|
+
through `runId` and `targetSetDigest`, with explicit `issuedAt` and `expiresAt`
|
|
24
|
+
authorization bounds. Every event must be recorded within that interval, and
|
|
25
|
+
every append also supplies that policy envelope. Keep the
|
|
26
|
+
trust-root digest, current `revocationDigest`, and
|
|
27
|
+
required `expectedHead` outside the runner-controlled workspace. Generate
|
|
28
|
+
events in independently controlled producer, evaluator, and adapter processes;
|
|
29
|
+
never commit production private keys to a Sema workspace. The adapter's
|
|
30
|
+
`requiredMetadata + optionalMetadata` is the exact scalar public allowlist;
|
|
31
|
+
artifact metadata is unavailable in v1. The runner resolves credentials
|
|
32
|
+
externally from a strict `account:<alias>` reference.
|
|
33
|
+
|
|
34
|
+
Every gate declares separate deterministic-attester and semantic-AI quorums.
|
|
35
|
+
Use `content.evidence.attest:<evidenceType>` for ordinary attestations. Adapter
|
|
36
|
+
observations use the stricter
|
|
37
|
+
`content.adapter.attest:<adapterId>@<version>:<evidenceType>` capability and
|
|
38
|
+
signed adapter/version binding; a generic receipt capability is intentionally
|
|
39
|
+
insufficient.
|
|
40
|
+
|
|
41
|
+
The runner executes and resumes work from Sema's derived `nextActions`. It does
|
|
42
|
+
not calculate verdicts or edit completion state. Operational conditions remain
|
|
43
|
+
separate from gate verdicts, and every generated manifest is a non-authoritative
|
|
44
|
+
projection of the canonical ledger. There is no native human-review fallback.
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"targetId": "documento-principal",
|
|
4
|
-
"adapterId": "destination.document",
|
|
5
|
-
"accountScope": "account:publisher.site-a",
|
|
6
|
-
"formatProfileId": "long-form",
|
|
7
|
-
"locale": "pt-BR",
|
|
8
|
-
"metadata": {
|
|
9
|
-
"title": "Exemplo de conteúdo multiformato"
|
|
10
|
-
}
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"targetId": "episodio-audio",
|
|
14
|
-
"adapterId": "destination.audio-feed",
|
|
15
|
-
"accountScope": "account:publisher.feed-a",
|
|
16
|
-
"formatProfileId": "spoken-episode",
|
|
17
|
-
"locale": "pt-BR",
|
|
18
|
-
"metadata": {
|
|
19
|
-
"title": "Exemplo de conteúdo multiformato",
|
|
20
|
-
"description": "A mesma intenção editorial em um destino de áudio independente."
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
]
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"targetId": "documento-principal",
|
|
4
|
+
"adapterId": "destination.document",
|
|
5
|
+
"accountScope": "account:publisher.site-a",
|
|
6
|
+
"formatProfileId": "long-form",
|
|
7
|
+
"locale": "pt-BR",
|
|
8
|
+
"metadata": {
|
|
9
|
+
"title": "Exemplo de conteúdo multiformato"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"targetId": "episodio-audio",
|
|
14
|
+
"adapterId": "destination.audio-feed",
|
|
15
|
+
"accountScope": "account:publisher.feed-a",
|
|
16
|
+
"formatProfileId": "spoken-episode",
|
|
17
|
+
"locale": "pt-BR",
|
|
18
|
+
"metadata": {
|
|
19
|
+
"title": "Exemplo de conteúdo multiformato",
|
|
20
|
+
"description": "A mesma intenção editorial em um destino de áudio independente."
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
]
|