@semacode/cli 2.3.0 → 3.0.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.
Files changed (267) hide show
  1. package/LICENSE +39 -39
  2. package/README.md +112 -41
  3. package/dist/agentContextPack.js +14 -10
  4. package/dist/agentEntryPoints.d.ts +5 -0
  5. package/dist/agentEntryPoints.js +102 -91
  6. package/dist/angular-consumer-standalone.d.ts +3 -1
  7. package/dist/angular-consumer-standalone.js +12 -8
  8. package/dist/bin.d.ts +6 -0
  9. package/dist/bin.js +130 -0
  10. package/dist/cliArgs.js +4 -4
  11. package/dist/cliControlError.d.ts +12 -0
  12. package/dist/cliControlError.js +47 -0
  13. package/dist/cliGrammar.d.ts +11 -0
  14. package/dist/cliGrammar.js +551 -0
  15. package/dist/cliHelp.d.ts +13 -0
  16. package/dist/cliHelp.js +19 -0
  17. package/dist/cliHelpTexto.d.ts +3 -0
  18. package/dist/cliHelpTexto.js +168 -0
  19. package/dist/cliRuntime.d.ts +2 -0
  20. package/dist/cliRuntime.js +31 -0
  21. package/dist/comandos.js +9 -22
  22. package/dist/contexto.js +5 -5
  23. package/dist/dev/index.d.ts +1 -0
  24. package/dist/dev/index.js +51 -9
  25. package/dist/discovery/catalog.js +3 -3
  26. package/dist/distribuicao/filesystemGlobal.d.ts +63 -0
  27. package/dist/distribuicao/filesystemGlobal.js +701 -0
  28. package/dist/distribuicao/index.d.ts +7 -0
  29. package/dist/distribuicao/index.js +227 -0
  30. package/dist/distribuicao/launcherGlobal.d.ts +53 -0
  31. package/dist/distribuicao/launcherGlobal.js +643 -0
  32. package/dist/distribuicao/launcherWindows.d.ts +28 -0
  33. package/dist/distribuicao/launcherWindows.js +326 -0
  34. package/dist/distribuicao/lockContextGlobal.d.ts +10 -0
  35. package/dist/distribuicao/lockContextGlobal.js +17 -0
  36. package/dist/distribuicao/lockGlobal.d.ts +6 -0
  37. package/dist/distribuicao/lockGlobal.js +520 -0
  38. package/dist/distribuicao/skillGlobal.d.ts +48 -0
  39. package/dist/distribuicao/skillGlobal.js +652 -0
  40. package/dist/distribuicao/skillIntentPolicy.d.ts +21 -0
  41. package/dist/distribuicao/skillIntentPolicy.js +115 -0
  42. package/dist/distribuicao/tipos.d.ts +50 -0
  43. package/dist/distribuicao/tipos.js +10 -0
  44. package/dist/distribuicao/versaoSemantica.d.ts +3 -0
  45. package/dist/distribuicao/versaoSemantica.js +62 -0
  46. package/dist/drift.part01.d.ts +34 -2
  47. package/dist/drift.part01.js +3 -0
  48. package/dist/drift.part04.d.ts +12 -2
  49. package/dist/drift.part04.js +89 -15
  50. package/dist/drift.part05.d.ts +2 -1
  51. package/dist/drift.part05.js +9 -6
  52. package/dist/drift.part06.d.ts +2 -1
  53. package/dist/drift.part06.js +115 -24
  54. package/dist/drift.part07.d.ts +11 -10
  55. package/dist/drift.part07.js +261 -255
  56. package/dist/drift.part08.d.ts +2 -1
  57. package/dist/drift.part08.js +35 -25
  58. package/dist/drift.part11.js +279 -32
  59. package/dist/drift.part12.d.ts +1 -1
  60. package/dist/drift.part12.js +196 -11
  61. package/dist/drift.part13.d.ts +18 -2
  62. package/dist/drift.part13.js +654 -76
  63. package/dist/drift.part14.js +21 -7
  64. package/dist/driftCacheCas.d.ts +43 -0
  65. package/dist/driftCacheCas.js +351 -0
  66. package/dist/driftCacheFilesystem.d.ts +64 -0
  67. package/dist/driftCacheFilesystem.js +313 -0
  68. package/dist/driftCacheModes.d.ts +38 -0
  69. package/dist/driftCacheModes.js +147 -0
  70. package/dist/driftCacheStore.d.ts +80 -0
  71. package/dist/driftCacheStore.js +603 -0
  72. package/dist/driftCatalogo.d.ts +65 -0
  73. package/dist/driftCatalogo.js +516 -0
  74. package/dist/driftEscopo.d.ts +21 -0
  75. package/dist/driftEscopo.js +647 -0
  76. package/dist/driftEscopoReferencias.d.ts +8 -0
  77. package/dist/driftEscopoReferencias.js +612 -0
  78. package/dist/driftOrcamento.d.ts +6 -0
  79. package/dist/driftOrcamento.js +20 -3
  80. package/dist/geracaoCore.js +4 -6
  81. package/dist/iaPrompts.d.ts +3 -3
  82. package/dist/iaPrompts.js +13 -14
  83. package/dist/index.d.ts +4 -1
  84. package/dist/index.js +6 -25
  85. package/dist/index.part01.d.ts +21 -14
  86. package/dist/index.part01.js +20 -165
  87. package/dist/index.part02.js +57 -43
  88. package/dist/index.part03.d.ts +23 -1
  89. package/dist/index.part03.js +83 -8
  90. package/dist/index.part04.d.ts +10 -2
  91. package/dist/index.part04.js +48 -14
  92. package/dist/index.part05.d.ts +1 -1
  93. package/dist/index.part05.js +109 -30
  94. package/dist/index.part06.js +34 -16
  95. package/dist/index.part07.js +31 -27
  96. package/dist/index.part08.d.ts +1 -1
  97. package/dist/index.part08.js +23 -28
  98. package/dist/init/templates.part01.js +393 -393
  99. package/dist/init/templates.part02.js +189 -189
  100. package/dist/initCommand.js +5 -1
  101. package/dist/initTemplatesBackend.js +73 -73
  102. package/dist/initTemplatesBase.js +7 -5
  103. package/dist/initTemplatesFlutter.js +137 -137
  104. package/dist/initTemplatesRuntime.js +350 -350
  105. package/dist/initTemplatesWeb.js +309 -309
  106. package/dist/pipelineConteudo/command.d.ts +1 -0
  107. package/dist/pipelineConteudo/command.js +4 -32
  108. package/dist/pipelineConteudo/help.d.ts +2 -0
  109. package/dist/pipelineConteudo/help.js +33 -0
  110. package/dist/profileAuthorCommand.js +3 -7
  111. package/dist/profileCommand.js +3 -7
  112. package/dist/projeto.d.ts +1 -1
  113. package/dist/projetoCarregar.d.ts +2 -2
  114. package/dist/projetoCarregar.js +69 -28
  115. package/dist/projetoCatalogo.d.ts +8 -0
  116. package/dist/projetoCatalogo.js +164 -0
  117. package/dist/projetoOrigens.d.ts +2 -0
  118. package/dist/projetoOrigens.js +65 -9
  119. package/dist/projetoTipos.d.ts +15 -5
  120. package/dist/resultadoCli.d.ts +20 -0
  121. package/dist/resultadoCli.js +57 -0
  122. package/dist/saidaCli.d.ts +35 -0
  123. package/dist/saidaCli.js +118 -0
  124. package/dist/sistemasInterativos/acceptanceEvidence.d.ts +22 -0
  125. package/dist/sistemasInterativos/acceptanceEvidence.js +345 -0
  126. package/dist/sistemasInterativos/engineObservation.d.ts +12 -0
  127. package/dist/sistemasInterativos/engineObservation.js +438 -0
  128. package/dist/sistemasInterativos/jobOrchestration.d.ts +2 -0
  129. package/dist/sistemasInterativos/jobOrchestration.js +204 -0
  130. package/dist/sistemasInterativos/operationPrimitives.d.ts +21 -0
  131. package/dist/sistemasInterativos/operationPrimitives.js +194 -0
  132. package/dist/sistemasInterativos/operations.d.ts +4 -39
  133. package/dist/sistemasInterativos/operations.js +5 -1164
  134. package/dist/skillCommand.d.ts +5 -0
  135. package/dist/skillCommand.js +88 -0
  136. package/dist/sync/index.js +35 -35
  137. package/docs/README.md +11 -7
  138. package/docs/ai-integration.md +18 -11
  139. package/docs/ai-onboarding.md +81 -62
  140. package/docs/ai-workflow.md +10 -4
  141. package/docs/auth.md +26 -26
  142. package/docs/cli.md +197 -79
  143. package/docs/commands.md +30 -6
  144. package/docs/database.md +15 -15
  145. package/docs/deploy.md +54 -41
  146. package/docs/documentation.md +11 -10
  147. package/docs/drift-cache.md +108 -0
  148. package/docs/env.md +16 -16
  149. package/docs/frontend.md +41 -41
  150. package/docs/getting-started.md +82 -57
  151. package/docs/i18n.md +15 -15
  152. package/docs/repositories.md +60 -43
  153. package/docs/rollback.md +38 -31
  154. package/docs/security.md +54 -32
  155. package/docs/sistemas-interativos.md +27 -27
  156. package/docs/support.md +8 -8
  157. package/docs/testing.md +123 -17
  158. package/docs/vocabulary.md +29 -29
  159. package/exemplos/agendamento.sema +1 -1
  160. package/exemplos/assinatura.sema +1 -1
  161. package/exemplos/auditoria.sema +1 -1
  162. package/exemplos/autenticacao.sema +1 -1
  163. package/exemplos/author_obra_comum.sema +1 -1
  164. package/exemplos/author_tema_sensivel.sema +1 -1
  165. package/exemplos/automacao.sema +1 -1
  166. package/exemplos/cadastro_usuario.sema +1 -1
  167. package/exemplos/calculadora.sema +1 -1
  168. package/exemplos/crud_simples.sema +1 -1
  169. package/exemplos/estoque.sema +1 -1
  170. package/exemplos/exportacao.sema +1 -1
  171. package/exemplos/fila.sema +1 -1
  172. package/exemplos/integracao_externa.sema +1 -1
  173. package/exemplos/multi_tenant.sema +1 -1
  174. package/exemplos/notificacao.sema +1 -1
  175. package/exemplos/operacao_estrategia.sema +132 -132
  176. package/exemplos/operacao_estrategia_discovery.sema +220 -220
  177. package/exemplos/operacao_estrategia_fluxo.sema +114 -114
  178. package/exemplos/operacao_estrategia_gates.sema +106 -106
  179. package/exemplos/operacao_estrategia_quarentena.sema +133 -133
  180. package/exemplos/operacao_estrategia_rollout.sema +124 -124
  181. package/exemplos/pagamento.sema +1 -1
  182. package/exemplos/pagamento_dominio.sema +1 -1
  183. package/exemplos/pedido.sema +1 -1
  184. package/exemplos/permissao.sema +1 -1
  185. package/exemplos/persistencia_vendor_first.sema +1 -1
  186. package/exemplos/profile_conversas.sema +165 -165
  187. package/exemplos/profile_game.sema +1 -1
  188. package/exemplos/profile_legal.sema +1 -1
  189. package/exemplos/profile_ops.sema +1 -1
  190. package/exemplos/profile_research.sema +1 -1
  191. package/exemplos/profile_software.sema +1 -1
  192. package/exemplos/profile_workflow_n8n.sema +1 -1
  193. package/exemplos/relatorio.sema +1 -1
  194. package/exemplos/replica_analitica_erp.sema +1 -1
  195. package/exemplos/testes_embutidos.sema +1 -1
  196. package/exemplos/tratamento_erro.sema +1 -1
  197. package/exemplos/upload_arquivo.sema +1 -1
  198. package/exemplos/webhook.sema +1 -1
  199. package/node_modules/@sema/gerador-cpp/dist/index.js +176 -176
  200. package/node_modules/@sema/gerador-css/dist/index.part01.js +10 -10
  201. package/node_modules/@sema/gerador-css/dist/index.part02.js +460 -460
  202. package/node_modules/@sema/gerador-dotnet/dist/index.js +169 -169
  203. package/node_modules/@sema/gerador-html/dist/index.js +17 -17
  204. package/node_modules/@sema/gerador-python/dist/index.part02.js +3 -3
  205. package/node_modules/@sema/gerador-typescript/dist/index.part02.js +11 -11
  206. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +42 -42
  207. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +1 -0
  208. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +1 -0
  209. package/package.json +7 -2
  210. package/scripts/postinstall.mjs +148 -0
  211. package/skills/sema/SKILL.md +199 -0
  212. package/skills/sema/agents/openai.yaml +4 -0
  213. package/node_modules/@sema/gerador-cpp/dist/index.js.map +0 -1
  214. package/node_modules/@sema/gerador-css/dist/index.js.map +0 -1
  215. package/node_modules/@sema/gerador-css/dist/index.part01.js.map +0 -1
  216. package/node_modules/@sema/gerador-css/dist/index.part02.js.map +0 -1
  217. package/node_modules/@sema/gerador-dart/dist/index.js.map +0 -1
  218. package/node_modules/@sema/gerador-dotnet/dist/index.js.map +0 -1
  219. package/node_modules/@sema/gerador-html/dist/index.js.map +0 -1
  220. package/node_modules/@sema/gerador-javascript/dist/index.js.map +0 -1
  221. package/node_modules/@sema/gerador-lua/dist/index.js.map +0 -1
  222. package/node_modules/@sema/gerador-php/dist/index.js.map +0 -1
  223. package/node_modules/@sema/gerador-python/dist/index.js.map +0 -1
  224. package/node_modules/@sema/gerador-python/dist/index.part01.js.map +0 -1
  225. package/node_modules/@sema/gerador-python/dist/index.part02.js.map +0 -1
  226. package/node_modules/@sema/gerador-typescript/dist/index.js.map +0 -1
  227. package/node_modules/@sema/gerador-typescript/dist/index.part01.js.map +0 -1
  228. package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +0 -1
  229. package/node_modules/@sema/gerador-typescript/dist/index.part03.js.map +0 -1
  230. package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +0 -1
  231. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +0 -1
  232. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +0 -1
  233. package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js.map +0 -1
  234. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +0 -1
  235. package/node_modules/@sema/nucleo/dist/formatador/index.part01.js.map +0 -1
  236. package/node_modules/@sema/nucleo/dist/formatador/index.part02.js.map +0 -1
  237. package/node_modules/@sema/nucleo/dist/index.js.map +0 -1
  238. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +0 -1
  239. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +0 -1
  240. package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js.map +0 -1
  241. package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js.map +0 -1
  242. package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +0 -1
  243. package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +0 -1
  244. package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +0 -1
  245. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +0 -1
  246. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +0 -1
  247. package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js.map +0 -1
  248. package/node_modules/@sema/nucleo/dist/parser/parser.part01.js.map +0 -1
  249. package/node_modules/@sema/nucleo/dist/parser/parser.part02.js.map +0 -1
  250. package/node_modules/@sema/nucleo/dist/parser/parser.part03.js.map +0 -1
  251. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +0 -1
  252. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +0 -1
  253. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +0 -1
  254. package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js.map +0 -1
  255. package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js.map +0 -1
  256. package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js.map +0 -1
  257. package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js.map +0 -1
  258. package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js.map +0 -1
  259. package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js.map +0 -1
  260. package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js.map +0 -1
  261. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +0 -1
  262. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js.map +0 -1
  263. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js.map +0 -1
  264. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js.map +0 -1
  265. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +0 -1
  266. package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +0 -1
  267. 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 {};