@semacode/cli 2.3.1 → 3.5.0
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/README.md +265 -217
- package/dist/agentContextPack.js +14 -10
- package/dist/agentEntryPoints.d.ts +5 -0
- package/dist/agentEntryPoints.js +592 -568
- package/dist/angular-consumer-standalone.js +1 -1
- package/dist/bin.d.ts +6 -0
- package/dist/bin.js +130 -0
- package/dist/cliArgs.js +4 -4
- package/dist/cliControlError.d.ts +12 -0
- package/dist/cliControlError.js +47 -0
- package/dist/cliGrammar.d.ts +11 -0
- package/dist/cliGrammar.js +551 -0
- package/dist/cliHelp.d.ts +13 -0
- package/dist/cliHelp.js +19 -0
- package/dist/cliHelpTexto.d.ts +3 -0
- package/dist/cliHelpTexto.js +168 -0
- package/dist/cliRuntime.d.ts +2 -0
- package/dist/cliRuntime.js +31 -0
- package/dist/comandos.js +9 -22
- package/dist/contexto.js +5 -5
- package/dist/dev/index.d.ts +1 -0
- package/dist/dev/index.js +51 -9
- package/dist/discovery/catalog.js +3 -3
- package/dist/distribuicao/filesystemGlobal.d.ts +63 -0
- package/dist/distribuicao/filesystemGlobal.js +701 -0
- package/dist/distribuicao/index.d.ts +7 -0
- package/dist/distribuicao/index.js +227 -0
- package/dist/distribuicao/launcherGlobal.d.ts +53 -0
- package/dist/distribuicao/launcherGlobal.js +643 -0
- package/dist/distribuicao/launcherWindows.d.ts +28 -0
- package/dist/distribuicao/launcherWindows.js +326 -0
- package/dist/distribuicao/lockContextGlobal.d.ts +10 -0
- package/dist/distribuicao/lockContextGlobal.js +17 -0
- package/dist/distribuicao/lockGlobal.d.ts +6 -0
- package/dist/distribuicao/lockGlobal.js +520 -0
- package/dist/distribuicao/skillGlobal.d.ts +48 -0
- package/dist/distribuicao/skillGlobal.js +652 -0
- package/dist/distribuicao/skillIntentPolicy.d.ts +21 -0
- package/dist/distribuicao/skillIntentPolicy.js +115 -0
- package/dist/distribuicao/tipos.d.ts +50 -0
- package/dist/distribuicao/tipos.js +10 -0
- package/dist/distribuicao/versaoSemantica.d.ts +3 -0
- package/dist/distribuicao/versaoSemantica.js +62 -0
- package/dist/docs.part01.d.ts +4 -1
- package/dist/docs.part01.js +8 -0
- package/dist/docs.part02.js +9 -1
- package/dist/drift.part01.d.ts +33 -25
- package/dist/drift.part01.js +2 -1
- package/dist/drift.part04.d.ts +26 -5
- package/dist/drift.part04.js +123 -19
- package/dist/drift.part05.d.ts +2 -2
- package/dist/drift.part05.js +8 -6
- package/dist/drift.part06.d.ts +2 -2
- package/dist/drift.part06.js +113 -26
- package/dist/drift.part07.d.ts +11 -11
- package/dist/drift.part07.js +261 -265
- package/dist/drift.part08.d.ts +2 -2
- package/dist/drift.part08.js +35 -26
- package/dist/drift.part09.d.ts +2 -2
- package/dist/drift.part09.js +10 -3
- package/dist/drift.part11.js +261 -58
- package/dist/drift.part12.d.ts +1 -1
- package/dist/drift.part12.js +193 -21
- package/dist/drift.part13.d.ts +20 -39
- package/dist/drift.part13.js +601 -647
- package/dist/drift.part14.js +23 -7
- package/dist/driftCacheCas.d.ts +43 -0
- package/dist/driftCacheCas.js +351 -0
- package/dist/driftCacheFilesystem.d.ts +64 -0
- package/dist/driftCacheFilesystem.js +313 -0
- package/dist/driftCacheModes.d.ts +38 -0
- package/dist/driftCacheModes.js +147 -0
- package/dist/driftCacheStore.d.ts +80 -0
- package/dist/driftCacheStore.js +603 -0
- package/dist/driftCatalogo.d.ts +2 -28
- package/dist/driftCatalogo.js +143 -284
- package/dist/driftEscopo.d.ts +1 -3
- package/dist/driftEscopo.js +235 -151
- package/dist/driftEscopoReferencias.d.ts +5 -1
- package/dist/driftEscopoReferencias.js +375 -28
- package/dist/driftOrcamento.d.ts +0 -6
- package/dist/driftOrcamento.js +2 -1
- package/dist/execucoesExternas.js +19 -5
- package/dist/exemplosOficiais.d.ts +2 -1
- package/dist/exemplosOficiais.js +9 -3
- package/dist/geracaoCore.d.ts +1 -0
- package/dist/geracaoCore.js +6 -6
- package/dist/iaPrompts.d.ts +3 -3
- package/dist/iaPrompts.js +312 -313
- package/dist/importador.part01.d.ts +1 -1
- package/dist/importador.part06.d.ts +2 -0
- package/dist/importador.part06.js +87 -1
- package/dist/importador.part09.js +7 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +6 -25
- package/dist/index.part01.d.ts +20 -28
- package/dist/index.part01.js +16 -237
- package/dist/index.part02.js +36 -22
- package/dist/index.part03.d.ts +24 -2
- package/dist/index.part03.js +83 -19
- package/dist/index.part04.d.ts +10 -2
- package/dist/index.part04.js +152 -123
- package/dist/index.part05.js +80 -78
- package/dist/index.part06.js +34 -17
- package/dist/index.part07.d.ts +8 -2
- package/dist/index.part07.js +153 -7
- package/dist/index.part08.d.ts +1 -1
- package/dist/index.part08.js +25 -30
- package/dist/initCommand.d.ts +1 -0
- package/dist/initCommand.js +20 -4
- package/dist/initTemplatesBase.js +6 -4
- package/dist/pipelineConteudo/command.d.ts +1 -0
- package/dist/pipelineConteudo/command.js +9 -2
- package/dist/pipelineConteudo/help.d.ts +2 -0
- package/dist/pipelineConteudo/help.js +33 -0
- package/dist/profileAuthorCommand.js +3 -7
- package/dist/profileCommand.js +3 -7
- package/dist/projetoCarregar.js +35 -17
- package/dist/projetoCatalogo.d.ts +1 -0
- package/dist/projetoCatalogo.js +64 -25
- package/dist/projetoConfig.js +2 -0
- package/dist/projetoLegado.js +18 -0
- package/dist/projetoOrigens.d.ts +2 -0
- package/dist/projetoOrigens.js +65 -9
- package/dist/projetoTipos.d.ts +1 -0
- package/dist/resultadoCli.d.ts +20 -0
- package/dist/resultadoCli.js +57 -0
- package/dist/saidaCli.d.ts +35 -0
- package/dist/saidaCli.js +118 -0
- package/dist/sistemasInterativos/acceptanceEvidence.d.ts +22 -0
- package/dist/sistemasInterativos/acceptanceEvidence.js +345 -0
- package/dist/sistemasInterativos/engineObservation.d.ts +12 -0
- package/dist/sistemasInterativos/engineObservation.js +438 -0
- package/dist/sistemasInterativos/jobOrchestration.d.ts +2 -0
- package/dist/sistemasInterativos/jobOrchestration.js +204 -0
- package/dist/sistemasInterativos/operationPrimitives.d.ts +21 -0
- package/dist/sistemasInterativos/operationPrimitives.js +194 -0
- package/dist/sistemasInterativos/operations.d.ts +4 -39
- package/dist/sistemasInterativos/operations.js +5 -1164
- package/dist/skillCommand.d.ts +5 -0
- package/dist/skillCommand.js +88 -0
- package/dist/tipos.d.ts +1 -1
- package/dist/typescript-http-modelos.d.ts +1 -1
- package/dist/typescript-http-rotas.d.ts +1 -0
- package/dist/typescript-http-rotas.js +93 -0
- package/dist/typescript-http.d.ts +1 -1
- package/dist/typescript-http.js +1 -1
- package/dist/verificacaoCache.d.ts +25 -0
- package/dist/verificacaoCache.js +80 -0
- package/docs/README.md +34 -30
- package/docs/ai-integration.md +25 -12
- package/docs/ai-onboarding.md +37 -18
- package/docs/ai-workflow.md +9 -7
- package/docs/cli.md +125 -7
- package/docs/commands.md +41 -20
- package/docs/deploy.md +21 -8
- package/docs/descoberta-capacidades.md +106 -106
- package/docs/documentation.md +49 -39
- package/docs/drift-cache.md +108 -0
- package/docs/getting-started.md +43 -18
- package/docs/pipeline-conteudo.md +246 -246
- package/docs/profiles.md +54 -54
- package/docs/repositories.md +19 -2
- package/docs/rollback.md +15 -8
- package/docs/security.md +25 -3
- package/docs/sistemas-interativos.md +379 -374
- package/docs/syntax.md +14 -0
- package/docs/testing.md +139 -40
- package/exemplos/express_crud.sema +139 -0
- package/exemplos/fastify_crud.sema +146 -0
- 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_simulation.sema +211 -211
- 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/node_modules/@sema/gerador-cpp/package.json +1 -1
- package/node_modules/@sema/gerador-dotnet/package.json +1 -1
- 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/nucleo/dist/ir/conversor.part01.js +37 -38
- package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.d.ts +7 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js +33 -10
- package/package.json +9 -4
- package/scripts/postinstall.mjs +148 -0
- package/skills/sema/SKILL.md +199 -0
- package/skills/sema/agents/openai.yaml +4 -0
- package/dist/driftCache.d.ts +0 -49
- package/dist/driftCache.js +0 -311
- package/dist/driftCacheIncremental.d.ts +0 -98
- package/dist/driftCacheIncremental.js +0 -596
- package/dist/driftCatalogoPersistente.d.ts +0 -8
- package/dist/driftCatalogoPersistente.js +0 -77
- package/node_modules/@sema/gerador-cpp/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-css/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-css/dist/index.part01.js.map +0 -1
- package/node_modules/@sema/gerador-css/dist/index.part02.js.map +0 -1
- package/node_modules/@sema/gerador-dart/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-dotnet/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-html/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-javascript/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-lua/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-php/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-python/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-python/dist/index.part01.js.map +0 -1
- package/node_modules/@sema/gerador-python/dist/index.part02.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/dist/index.part01.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/dist/index.part03.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/index.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.part03.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +0 -1
- package/node_modules/@sema/padroes/dist/index.js.map +0 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { OpcoesAmbienteDistribuicaoGlobal, ResultadoDistribuicaoGlobal } from "./tipos.js";
|
|
2
|
+
export { sincronizarLauncherGlobal, statusLauncherGlobal, } from "./launcherGlobal.js";
|
|
3
|
+
export { ARQUIVOS_SKILL_SEMA_GERENCIADOS, NOME_RECIBO_SKILL_SEMA, sincronizarSkillGlobal, statusSkillGlobal, } from "./skillGlobal.js";
|
|
4
|
+
export { ESTADOS_DISTRIBUICAO_GLOBAL, } from "./tipos.js";
|
|
5
|
+
export type { CodigoDiagnosticoDistribuicaoGlobal, EstadoDistribuicaoGlobal, IdentificadorDestinoSkillGlobal, OpcoesAmbienteDistribuicaoGlobal, ResultadoDestinoSkillGlobal, ResultadoDistribuicaoGlobal, ResultadoLauncherGlobal, ResultadoSkillGlobal, } from "./tipos.js";
|
|
6
|
+
export declare function statusDistribuicaoGlobal(opcoes?: OpcoesAmbienteDistribuicaoGlobal): Promise<ResultadoDistribuicaoGlobal>;
|
|
7
|
+
export declare function sincronizarDistribuicaoGlobal(opcoes?: OpcoesAmbienteDistribuicaoGlobal): Promise<ResultadoDistribuicaoGlobal>;
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
// SEMA-GOVERNED: sema.produto.distribuicao_global
|
|
2
|
+
// Descrição: expõe status e sincronização separados ou combinados da distribuição global local.
|
|
3
|
+
import { capturarSnapshotLauncherGlobalTransacao, confirmarSnapshotLauncherGlobalTransacao, restaurarSnapshotLauncherGlobalTransacao, sincronizarLauncherGlobalTransacional, statusLauncherGlobal, } from "./launcherGlobal.js";
|
|
4
|
+
import { capturarSnapshotSkillGlobalTransacao, restaurarSnapshotSkillGlobalTransacao, sincronizarSkillGlobalTransacional, statusSkillGlobal, } from "./skillGlobal.js";
|
|
5
|
+
import { comLockDistribuicaoGlobal } from "./lockGlobal.js";
|
|
6
|
+
import { falhaParaResultado } from "./filesystemGlobal.js";
|
|
7
|
+
export { sincronizarLauncherGlobal, statusLauncherGlobal, } from "./launcherGlobal.js";
|
|
8
|
+
export { ARQUIVOS_SKILL_SEMA_GERENCIADOS, NOME_RECIBO_SKILL_SEMA, sincronizarSkillGlobal, statusSkillGlobal, } from "./skillGlobal.js";
|
|
9
|
+
export { ESTADOS_DISTRIBUICAO_GLOBAL, } from "./tipos.js";
|
|
10
|
+
function prioridadeEstado(estado) {
|
|
11
|
+
return {
|
|
12
|
+
READY: 0,
|
|
13
|
+
MISSING: 1,
|
|
14
|
+
STALE: 2,
|
|
15
|
+
BROKEN_TARGET: 3,
|
|
16
|
+
PERMISSION_DENIED: 4,
|
|
17
|
+
}[estado];
|
|
18
|
+
}
|
|
19
|
+
function combinar(launcher, skill) {
|
|
20
|
+
return {
|
|
21
|
+
estado: prioridadeEstado(launcher.estado) >= prioridadeEstado(skill.estado)
|
|
22
|
+
? launcher.estado
|
|
23
|
+
: skill.estado,
|
|
24
|
+
alterado: launcher.alterado || skill.alterado,
|
|
25
|
+
launcher,
|
|
26
|
+
skill,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function resultadoBloqueiaMutacao(resultado) {
|
|
30
|
+
return resultado.launcher.estado === "BROKEN_TARGET"
|
|
31
|
+
|| resultado.launcher.estado === "PERMISSION_DENIED"
|
|
32
|
+
|| resultado.skill.destinos.some((destino) => (destino.estado === "BROKEN_TARGET"
|
|
33
|
+
|| destino.estado === "PERMISSION_DENIED"));
|
|
34
|
+
}
|
|
35
|
+
function semAlteracao(resultado) {
|
|
36
|
+
return {
|
|
37
|
+
...resultado,
|
|
38
|
+
alterado: false,
|
|
39
|
+
launcher: { ...resultado.launcher, alterado: false },
|
|
40
|
+
skill: {
|
|
41
|
+
...resultado.skill,
|
|
42
|
+
alterado: false,
|
|
43
|
+
destinos: resultado.skill.destinos.map((destino) => ({ ...destino, alterado: false })),
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function falhaLock(atual, codigo, alterado) {
|
|
48
|
+
return {
|
|
49
|
+
estado: "BROKEN_TARGET",
|
|
50
|
+
alterado,
|
|
51
|
+
launcher: {
|
|
52
|
+
...atual.launcher,
|
|
53
|
+
estado: "BROKEN_TARGET",
|
|
54
|
+
alterado,
|
|
55
|
+
codigo,
|
|
56
|
+
recibo_valido: false,
|
|
57
|
+
independente_path: false,
|
|
58
|
+
},
|
|
59
|
+
skill: {
|
|
60
|
+
...atual.skill,
|
|
61
|
+
estado: "BROKEN_TARGET",
|
|
62
|
+
alterado,
|
|
63
|
+
destino_agents: "BROKEN_TARGET",
|
|
64
|
+
destino_claude: atual.skill.espelho_claude_detectado
|
|
65
|
+
? "BROKEN_TARGET"
|
|
66
|
+
: "NOT_DETECTED",
|
|
67
|
+
ownership_valido: false,
|
|
68
|
+
digest_alinhado: false,
|
|
69
|
+
destinos: atual.skill.destinos.map((destino) => ({
|
|
70
|
+
...destino,
|
|
71
|
+
estado: "BROKEN_TARGET",
|
|
72
|
+
alterado,
|
|
73
|
+
codigo,
|
|
74
|
+
})),
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function resultadoInteiramenteReady(resultado) {
|
|
79
|
+
return resultado.estado === "READY"
|
|
80
|
+
&& resultado.launcher.estado === "READY"
|
|
81
|
+
&& resultado.skill.estado === "READY"
|
|
82
|
+
&& resultado.skill.destinos.length > 0
|
|
83
|
+
&& resultado.skill.destinos.every((destino) => destino.estado === "READY");
|
|
84
|
+
}
|
|
85
|
+
function comAlteracoesConfirmadas(final, launcherSincronizado, skillSincronizada) {
|
|
86
|
+
const alteracoesSkill = new Map(skillSincronizada.destinos.map((destino) => [
|
|
87
|
+
destino.id,
|
|
88
|
+
destino.alterado,
|
|
89
|
+
]));
|
|
90
|
+
return combinar({
|
|
91
|
+
...final.launcher,
|
|
92
|
+
alterado: launcherSincronizado.alterado,
|
|
93
|
+
}, {
|
|
94
|
+
...final.skill,
|
|
95
|
+
alterado: skillSincronizada.alterado,
|
|
96
|
+
destinos: final.skill.destinos.map((destino) => ({
|
|
97
|
+
...destino,
|
|
98
|
+
alterado: alteracoesSkill.get(destino.id) ?? false,
|
|
99
|
+
})),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
function falhaRollback(anterior, componentes) {
|
|
103
|
+
const launcher = componentes.includes("launcher")
|
|
104
|
+
? {
|
|
105
|
+
...anterior.launcher,
|
|
106
|
+
estado: "BROKEN_TARGET",
|
|
107
|
+
alterado: true,
|
|
108
|
+
codigo: "ROLLBACK_FALHOU",
|
|
109
|
+
recibo_valido: false,
|
|
110
|
+
independente_path: false,
|
|
111
|
+
}
|
|
112
|
+
: { ...anterior.launcher, alterado: false };
|
|
113
|
+
const skill = componentes.includes("skill")
|
|
114
|
+
? {
|
|
115
|
+
...anterior.skill,
|
|
116
|
+
estado: "BROKEN_TARGET",
|
|
117
|
+
alterado: true,
|
|
118
|
+
destino_agents: "BROKEN_TARGET",
|
|
119
|
+
destino_claude: anterior.skill.espelho_claude_detectado
|
|
120
|
+
? "BROKEN_TARGET"
|
|
121
|
+
: "NOT_DETECTED",
|
|
122
|
+
ownership_valido: false,
|
|
123
|
+
digest_alinhado: false,
|
|
124
|
+
destinos: anterior.skill.destinos.map((destino) => ({
|
|
125
|
+
...destino,
|
|
126
|
+
estado: "BROKEN_TARGET",
|
|
127
|
+
alterado: true,
|
|
128
|
+
codigo: "ROLLBACK_FALHOU",
|
|
129
|
+
})),
|
|
130
|
+
}
|
|
131
|
+
: {
|
|
132
|
+
...anterior.skill,
|
|
133
|
+
alterado: false,
|
|
134
|
+
destinos: anterior.skill.destinos.map((destino) => ({ ...destino, alterado: false })),
|
|
135
|
+
};
|
|
136
|
+
return combinar(launcher, skill);
|
|
137
|
+
}
|
|
138
|
+
async function tentarRollback(snapshotLauncher, snapshotSkill) {
|
|
139
|
+
const falhas = [];
|
|
140
|
+
if (snapshotLauncher) {
|
|
141
|
+
try {
|
|
142
|
+
await restaurarSnapshotLauncherGlobalTransacao(snapshotLauncher);
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
falhas.push("launcher");
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (snapshotSkill) {
|
|
149
|
+
try {
|
|
150
|
+
await restaurarSnapshotSkillGlobalTransacao(snapshotSkill);
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
falhas.push("skill");
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return falhas;
|
|
157
|
+
}
|
|
158
|
+
export async function statusDistribuicaoGlobal(opcoes = {}) {
|
|
159
|
+
const [launcher, skill] = await Promise.all([
|
|
160
|
+
statusLauncherGlobal(opcoes),
|
|
161
|
+
statusSkillGlobal(opcoes),
|
|
162
|
+
]);
|
|
163
|
+
return combinar(launcher, skill);
|
|
164
|
+
}
|
|
165
|
+
async function sincronizarDistribuicaoGlobalSemLock(opcoes = {}) {
|
|
166
|
+
const diagnosticoInicial = await statusDistribuicaoGlobal(opcoes);
|
|
167
|
+
if (resultadoBloqueiaMutacao(diagnosticoInicial))
|
|
168
|
+
return semAlteracao(diagnosticoInicial);
|
|
169
|
+
let snapshotLauncher;
|
|
170
|
+
let snapshotSkill;
|
|
171
|
+
try {
|
|
172
|
+
[snapshotLauncher, snapshotSkill] = await Promise.all([
|
|
173
|
+
capturarSnapshotLauncherGlobalTransacao(opcoes),
|
|
174
|
+
capturarSnapshotSkillGlobalTransacao(opcoes),
|
|
175
|
+
]);
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
178
|
+
return semAlteracao(await statusDistribuicaoGlobal(opcoes));
|
|
179
|
+
}
|
|
180
|
+
const skill = await sincronizarSkillGlobalTransacional(snapshotSkill);
|
|
181
|
+
if (skill.estado !== "READY") {
|
|
182
|
+
const falhasRollback = await tentarRollback(undefined, snapshotSkill);
|
|
183
|
+
if (falhasRollback.length > 0) {
|
|
184
|
+
return falhaRollback(await statusDistribuicaoGlobal(opcoes), falhasRollback);
|
|
185
|
+
}
|
|
186
|
+
return semAlteracao(await statusDistribuicaoGlobal(opcoes));
|
|
187
|
+
}
|
|
188
|
+
const launcher = await sincronizarLauncherGlobalTransacional(snapshotLauncher);
|
|
189
|
+
if (launcher.estado !== "READY") {
|
|
190
|
+
const falhasRollback = await tentarRollback(snapshotLauncher, snapshotSkill);
|
|
191
|
+
if (falhasRollback.length > 0) {
|
|
192
|
+
return falhaRollback(await statusDistribuicaoGlobal(opcoes), falhasRollback);
|
|
193
|
+
}
|
|
194
|
+
return semAlteracao(await statusDistribuicaoGlobal(opcoes));
|
|
195
|
+
}
|
|
196
|
+
const final = await statusDistribuicaoGlobal(opcoes);
|
|
197
|
+
if (!resultadoInteiramenteReady(final)) {
|
|
198
|
+
const falhasRollback = await tentarRollback(snapshotLauncher, snapshotSkill);
|
|
199
|
+
if (falhasRollback.length > 0) {
|
|
200
|
+
return falhaRollback(await statusDistribuicaoGlobal(opcoes), falhasRollback);
|
|
201
|
+
}
|
|
202
|
+
return semAlteracao(await statusDistribuicaoGlobal(opcoes));
|
|
203
|
+
}
|
|
204
|
+
const launcherConfirmado = await confirmarSnapshotLauncherGlobalTransacao(snapshotLauncher);
|
|
205
|
+
if (launcherConfirmado.estado !== "READY") {
|
|
206
|
+
const falhasRollback = await tentarRollback(snapshotLauncher, snapshotSkill);
|
|
207
|
+
if (falhasRollback.length > 0) {
|
|
208
|
+
return falhaRollback(await statusDistribuicaoGlobal(opcoes), falhasRollback);
|
|
209
|
+
}
|
|
210
|
+
return semAlteracao(await statusDistribuicaoGlobal(opcoes));
|
|
211
|
+
}
|
|
212
|
+
return comAlteracoesConfirmadas(combinar(launcherConfirmado, final.skill), { ...launcher, alterado: launcher.alterado || launcherConfirmado.alterado }, skill);
|
|
213
|
+
}
|
|
214
|
+
export async function sincronizarDistribuicaoGlobal(opcoes = {}) {
|
|
215
|
+
try {
|
|
216
|
+
return await comLockDistribuicaoGlobal(opcoes, async ({ diretorioUsuario }) => (sincronizarDistribuicaoGlobalSemLock({ ...opcoes, diretorioUsuario })));
|
|
217
|
+
}
|
|
218
|
+
catch (erro) {
|
|
219
|
+
const falha = falhaParaResultado(erro);
|
|
220
|
+
if (["LOCK_PERDIDO", "LOCK_TIMEOUT", "CONTEUDO_NAO_GERENCIADO", "ROLLBACK_FALHOU"]
|
|
221
|
+
.includes(falha.codigo)) {
|
|
222
|
+
return falhaLock(await statusDistribuicaoGlobal(opcoes), falha.codigo, falha.codigo === "LOCK_PERDIDO" || falha.codigo === "ROLLBACK_FALHOU");
|
|
223
|
+
}
|
|
224
|
+
return semAlteracao(await statusDistribuicaoGlobal(opcoes));
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type ArtefatosLauncherWindows } from "./launcherWindows.js";
|
|
2
|
+
import type { OpcoesAmbienteDistribuicaoGlobal, ResultadoLauncherGlobal } from "./tipos.js";
|
|
3
|
+
interface CompanionAtual {
|
|
4
|
+
caminho: string;
|
|
5
|
+
identidade: {
|
|
6
|
+
dev: bigint;
|
|
7
|
+
ino: bigint;
|
|
8
|
+
};
|
|
9
|
+
conteudo: Buffer;
|
|
10
|
+
}
|
|
11
|
+
interface ReciboLauncherAtual {
|
|
12
|
+
versaoPacote: string;
|
|
13
|
+
executavelNode: string;
|
|
14
|
+
entrypoint: string;
|
|
15
|
+
nomeCompanion?: string;
|
|
16
|
+
}
|
|
17
|
+
interface AmbienteLauncher {
|
|
18
|
+
plataforma: NodeJS.Platform;
|
|
19
|
+
homeReal: string;
|
|
20
|
+
executavelNode: string;
|
|
21
|
+
raizPacote: string;
|
|
22
|
+
versaoPacote: string;
|
|
23
|
+
targetCli: string;
|
|
24
|
+
destino: string;
|
|
25
|
+
destinoPowerShell?: string;
|
|
26
|
+
destinoWrapper?: string;
|
|
27
|
+
destinoAnchor?: string;
|
|
28
|
+
destinoVirtual: ResultadoLauncherGlobal["destino_simbolico"];
|
|
29
|
+
conteudo: string;
|
|
30
|
+
windows?: ArtefatosLauncherWindows;
|
|
31
|
+
}
|
|
32
|
+
interface DiagnosticoLauncherInterno {
|
|
33
|
+
resultado: ResultadoLauncherGlobal;
|
|
34
|
+
recibo?: ReciboLauncherAtual;
|
|
35
|
+
companionAtual?: CompanionAtual;
|
|
36
|
+
}
|
|
37
|
+
export declare function statusLauncherGlobal(opcoes?: OpcoesAmbienteDistribuicaoGlobal): Promise<ResultadoLauncherGlobal>;
|
|
38
|
+
export declare function sincronizarLauncherGlobal(opcoes?: OpcoesAmbienteDistribuicaoGlobal): Promise<ResultadoLauncherGlobal>;
|
|
39
|
+
/** Snapshot opaco usado somente pelo coordenador para compensação local. */
|
|
40
|
+
export interface SnapshotLauncherGlobalTransacao {
|
|
41
|
+
readonly ambiente: AmbienteLauncher;
|
|
42
|
+
readonly diagnosticoAntes: DiagnosticoLauncherInterno;
|
|
43
|
+
readonly launcherAntes?: Buffer;
|
|
44
|
+
readonly powerShellAntes?: Buffer;
|
|
45
|
+
readonly wrapperAntes?: Buffer;
|
|
46
|
+
readonly anchorAntes?: Buffer;
|
|
47
|
+
readonly companionDesejadoExistia: boolean;
|
|
48
|
+
}
|
|
49
|
+
export declare function capturarSnapshotLauncherGlobalTransacao(opcoes?: OpcoesAmbienteDistribuicaoGlobal): Promise<SnapshotLauncherGlobalTransacao>;
|
|
50
|
+
export declare function sincronizarLauncherGlobalTransacional(snapshot: SnapshotLauncherGlobalTransacao): Promise<ResultadoLauncherGlobal>;
|
|
51
|
+
export declare function restaurarSnapshotLauncherGlobalTransacao(snapshot: SnapshotLauncherGlobalTransacao): Promise<void>;
|
|
52
|
+
export declare function confirmarSnapshotLauncherGlobalTransacao(snapshot: SnapshotLauncherGlobalTransacao): Promise<ResultadoLauncherGlobal>;
|
|
53
|
+
export {};
|