@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.
Files changed (281) hide show
  1. package/README.md +265 -217
  2. package/dist/agentContextPack.js +14 -10
  3. package/dist/agentEntryPoints.d.ts +5 -0
  4. package/dist/agentEntryPoints.js +592 -568
  5. package/dist/angular-consumer-standalone.js +1 -1
  6. package/dist/bin.d.ts +6 -0
  7. package/dist/bin.js +130 -0
  8. package/dist/cliArgs.js +4 -4
  9. package/dist/cliControlError.d.ts +12 -0
  10. package/dist/cliControlError.js +47 -0
  11. package/dist/cliGrammar.d.ts +11 -0
  12. package/dist/cliGrammar.js +551 -0
  13. package/dist/cliHelp.d.ts +13 -0
  14. package/dist/cliHelp.js +19 -0
  15. package/dist/cliHelpTexto.d.ts +3 -0
  16. package/dist/cliHelpTexto.js +168 -0
  17. package/dist/cliRuntime.d.ts +2 -0
  18. package/dist/cliRuntime.js +31 -0
  19. package/dist/comandos.js +9 -22
  20. package/dist/contexto.js +5 -5
  21. package/dist/dev/index.d.ts +1 -0
  22. package/dist/dev/index.js +51 -9
  23. package/dist/discovery/catalog.js +3 -3
  24. package/dist/distribuicao/filesystemGlobal.d.ts +63 -0
  25. package/dist/distribuicao/filesystemGlobal.js +701 -0
  26. package/dist/distribuicao/index.d.ts +7 -0
  27. package/dist/distribuicao/index.js +227 -0
  28. package/dist/distribuicao/launcherGlobal.d.ts +53 -0
  29. package/dist/distribuicao/launcherGlobal.js +643 -0
  30. package/dist/distribuicao/launcherWindows.d.ts +28 -0
  31. package/dist/distribuicao/launcherWindows.js +326 -0
  32. package/dist/distribuicao/lockContextGlobal.d.ts +10 -0
  33. package/dist/distribuicao/lockContextGlobal.js +17 -0
  34. package/dist/distribuicao/lockGlobal.d.ts +6 -0
  35. package/dist/distribuicao/lockGlobal.js +520 -0
  36. package/dist/distribuicao/skillGlobal.d.ts +48 -0
  37. package/dist/distribuicao/skillGlobal.js +652 -0
  38. package/dist/distribuicao/skillIntentPolicy.d.ts +21 -0
  39. package/dist/distribuicao/skillIntentPolicy.js +115 -0
  40. package/dist/distribuicao/tipos.d.ts +50 -0
  41. package/dist/distribuicao/tipos.js +10 -0
  42. package/dist/distribuicao/versaoSemantica.d.ts +3 -0
  43. package/dist/distribuicao/versaoSemantica.js +62 -0
  44. package/dist/docs.part01.d.ts +4 -1
  45. package/dist/docs.part01.js +8 -0
  46. package/dist/docs.part02.js +9 -1
  47. package/dist/drift.part01.d.ts +33 -25
  48. package/dist/drift.part01.js +2 -1
  49. package/dist/drift.part04.d.ts +26 -5
  50. package/dist/drift.part04.js +123 -19
  51. package/dist/drift.part05.d.ts +2 -2
  52. package/dist/drift.part05.js +8 -6
  53. package/dist/drift.part06.d.ts +2 -2
  54. package/dist/drift.part06.js +113 -26
  55. package/dist/drift.part07.d.ts +11 -11
  56. package/dist/drift.part07.js +261 -265
  57. package/dist/drift.part08.d.ts +2 -2
  58. package/dist/drift.part08.js +35 -26
  59. package/dist/drift.part09.d.ts +2 -2
  60. package/dist/drift.part09.js +10 -3
  61. package/dist/drift.part11.js +261 -58
  62. package/dist/drift.part12.d.ts +1 -1
  63. package/dist/drift.part12.js +193 -21
  64. package/dist/drift.part13.d.ts +20 -39
  65. package/dist/drift.part13.js +601 -647
  66. package/dist/drift.part14.js +23 -7
  67. package/dist/driftCacheCas.d.ts +43 -0
  68. package/dist/driftCacheCas.js +351 -0
  69. package/dist/driftCacheFilesystem.d.ts +64 -0
  70. package/dist/driftCacheFilesystem.js +313 -0
  71. package/dist/driftCacheModes.d.ts +38 -0
  72. package/dist/driftCacheModes.js +147 -0
  73. package/dist/driftCacheStore.d.ts +80 -0
  74. package/dist/driftCacheStore.js +603 -0
  75. package/dist/driftCatalogo.d.ts +2 -28
  76. package/dist/driftCatalogo.js +143 -284
  77. package/dist/driftEscopo.d.ts +1 -3
  78. package/dist/driftEscopo.js +235 -151
  79. package/dist/driftEscopoReferencias.d.ts +5 -1
  80. package/dist/driftEscopoReferencias.js +375 -28
  81. package/dist/driftOrcamento.d.ts +0 -6
  82. package/dist/driftOrcamento.js +2 -1
  83. package/dist/execucoesExternas.js +19 -5
  84. package/dist/exemplosOficiais.d.ts +2 -1
  85. package/dist/exemplosOficiais.js +9 -3
  86. package/dist/geracaoCore.d.ts +1 -0
  87. package/dist/geracaoCore.js +6 -6
  88. package/dist/iaPrompts.d.ts +3 -3
  89. package/dist/iaPrompts.js +312 -313
  90. package/dist/importador.part01.d.ts +1 -1
  91. package/dist/importador.part06.d.ts +2 -0
  92. package/dist/importador.part06.js +87 -1
  93. package/dist/importador.part09.js +7 -1
  94. package/dist/index.d.ts +4 -1
  95. package/dist/index.js +6 -25
  96. package/dist/index.part01.d.ts +20 -28
  97. package/dist/index.part01.js +16 -237
  98. package/dist/index.part02.js +36 -22
  99. package/dist/index.part03.d.ts +24 -2
  100. package/dist/index.part03.js +83 -19
  101. package/dist/index.part04.d.ts +10 -2
  102. package/dist/index.part04.js +152 -123
  103. package/dist/index.part05.js +80 -78
  104. package/dist/index.part06.js +34 -17
  105. package/dist/index.part07.d.ts +8 -2
  106. package/dist/index.part07.js +153 -7
  107. package/dist/index.part08.d.ts +1 -1
  108. package/dist/index.part08.js +25 -30
  109. package/dist/initCommand.d.ts +1 -0
  110. package/dist/initCommand.js +20 -4
  111. package/dist/initTemplatesBase.js +6 -4
  112. package/dist/pipelineConteudo/command.d.ts +1 -0
  113. package/dist/pipelineConteudo/command.js +9 -2
  114. package/dist/pipelineConteudo/help.d.ts +2 -0
  115. package/dist/pipelineConteudo/help.js +33 -0
  116. package/dist/profileAuthorCommand.js +3 -7
  117. package/dist/profileCommand.js +3 -7
  118. package/dist/projetoCarregar.js +35 -17
  119. package/dist/projetoCatalogo.d.ts +1 -0
  120. package/dist/projetoCatalogo.js +64 -25
  121. package/dist/projetoConfig.js +2 -0
  122. package/dist/projetoLegado.js +18 -0
  123. package/dist/projetoOrigens.d.ts +2 -0
  124. package/dist/projetoOrigens.js +65 -9
  125. package/dist/projetoTipos.d.ts +1 -0
  126. package/dist/resultadoCli.d.ts +20 -0
  127. package/dist/resultadoCli.js +57 -0
  128. package/dist/saidaCli.d.ts +35 -0
  129. package/dist/saidaCli.js +118 -0
  130. package/dist/sistemasInterativos/acceptanceEvidence.d.ts +22 -0
  131. package/dist/sistemasInterativos/acceptanceEvidence.js +345 -0
  132. package/dist/sistemasInterativos/engineObservation.d.ts +12 -0
  133. package/dist/sistemasInterativos/engineObservation.js +438 -0
  134. package/dist/sistemasInterativos/jobOrchestration.d.ts +2 -0
  135. package/dist/sistemasInterativos/jobOrchestration.js +204 -0
  136. package/dist/sistemasInterativos/operationPrimitives.d.ts +21 -0
  137. package/dist/sistemasInterativos/operationPrimitives.js +194 -0
  138. package/dist/sistemasInterativos/operations.d.ts +4 -39
  139. package/dist/sistemasInterativos/operations.js +5 -1164
  140. package/dist/skillCommand.d.ts +5 -0
  141. package/dist/skillCommand.js +88 -0
  142. package/dist/tipos.d.ts +1 -1
  143. package/dist/typescript-http-modelos.d.ts +1 -1
  144. package/dist/typescript-http-rotas.d.ts +1 -0
  145. package/dist/typescript-http-rotas.js +93 -0
  146. package/dist/typescript-http.d.ts +1 -1
  147. package/dist/typescript-http.js +1 -1
  148. package/dist/verificacaoCache.d.ts +25 -0
  149. package/dist/verificacaoCache.js +80 -0
  150. package/docs/README.md +34 -30
  151. package/docs/ai-integration.md +25 -12
  152. package/docs/ai-onboarding.md +37 -18
  153. package/docs/ai-workflow.md +9 -7
  154. package/docs/cli.md +125 -7
  155. package/docs/commands.md +41 -20
  156. package/docs/deploy.md +21 -8
  157. package/docs/descoberta-capacidades.md +106 -106
  158. package/docs/documentation.md +49 -39
  159. package/docs/drift-cache.md +108 -0
  160. package/docs/getting-started.md +43 -18
  161. package/docs/pipeline-conteudo.md +246 -246
  162. package/docs/profiles.md +54 -54
  163. package/docs/repositories.md +19 -2
  164. package/docs/rollback.md +15 -8
  165. package/docs/security.md +25 -3
  166. package/docs/sistemas-interativos.md +379 -374
  167. package/docs/syntax.md +14 -0
  168. package/docs/testing.md +139 -40
  169. package/exemplos/express_crud.sema +139 -0
  170. package/exemplos/fastify_crud.sema +146 -0
  171. package/exemplos/pipeline-conteudo/README.md +44 -44
  172. package/exemplos/pipeline-conteudo/alvos.json +23 -23
  173. package/exemplos/pipeline-conteudo/definicao.json +136 -136
  174. package/exemplos/profile_simulation.sema +211 -211
  175. package/exemplos/sistemas-interativos/README.md +100 -100
  176. package/exemplos/sistemas-interativos/advanced/acceptance-context-evaluate-valid.json +5 -5
  177. package/exemplos/sistemas-interativos/advanced/acceptance-lock-valid.json +16 -16
  178. package/exemplos/sistemas-interativos/advanced/asset-provenance-valid.json +32 -32
  179. package/exemplos/sistemas-interativos/advanced/autonomy-repair-valid.json +93 -93
  180. package/exemplos/sistemas-interativos/advanced/control-run-definition-valid.json +78 -78
  181. package/exemplos/sistemas-interativos/advanced/control-run-valid.json +27 -27
  182. package/exemplos/sistemas-interativos/advanced/distributed-workers-valid.json +79 -79
  183. package/exemplos/sistemas-interativos/advanced/editor-state-valid.json +42 -42
  184. package/exemplos/sistemas-interativos/advanced/engine-snapshot-after-valid.json +32 -32
  185. package/exemplos/sistemas-interativos/advanced/engine-snapshot-before-valid.json +23 -23
  186. package/exemplos/sistemas-interativos/advanced/job-orchestration-valid.json +39 -39
  187. package/exemplos/sistemas-interativos/advanced/multimodal-evidence-valid.json +46 -46
  188. package/exemplos/sistemas-interativos/advanced/multiplayer-authority-valid.json +39 -39
  189. package/exemplos/sistemas-interativos/advanced/playtest-fuzz-valid.json +37 -37
  190. package/exemplos/sistemas-interativos/advanced/portability-valid.json +104 -104
  191. package/exemplos/sistemas-interativos/advanced/temporal-evidence-valid.json +27 -27
  192. package/exemplos/sistemas-interativos/advanced/temporal-valid.json +118 -118
  193. package/exemplos/sistemas-interativos/experience-ir-valid.json +459 -459
  194. package/exemplos/sistemas-interativos/game-2d.json +83 -83
  195. package/exemplos/sistemas-interativos/game-3d-human.json +81 -81
  196. package/exemplos/sistemas-interativos/game-pixel-16-bit.json +97 -97
  197. package/exemplos/sistemas-interativos/game-pixel-8-bit.json +94 -94
  198. package/exemplos/sistemas-interativos/game-xr-human.json +80 -80
  199. package/exemplos/sistemas-interativos/hybrid-2-5d.json +108 -108
  200. package/exemplos/sistemas-interativos/protocol-mutating-rollback-valid.json +75 -75
  201. package/exemplos/sistemas-interativos/protocol-read-only-valid.json +58 -58
  202. package/exemplos/sistemas-interativos/simulation-2d-controlled.json +97 -97
  203. package/exemplos/sistemas-interativos/simulation-3d-calibrated-autonomous.json +141 -141
  204. package/exemplos/sistemas-interativos/simulation-headless-autonomous-batch.json +112 -112
  205. package/exemplos/sistemas-interativos/simulation-pixel-16-bit.json +103 -103
  206. package/exemplos/sistemas-interativos/simulation-text-controlled.json +95 -95
  207. package/node_modules/@sema/gerador-cpp/package.json +1 -1
  208. package/node_modules/@sema/gerador-dotnet/package.json +1 -1
  209. package/node_modules/@sema/gerador-lua/dist/index.js +51 -51
  210. package/node_modules/@sema/gerador-php/dist/index.js +113 -113
  211. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js +37 -38
  212. package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +1 -0
  213. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +1 -0
  214. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +1 -0
  215. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.d.ts +7 -0
  216. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js +33 -10
  217. package/package.json +9 -4
  218. package/scripts/postinstall.mjs +148 -0
  219. package/skills/sema/SKILL.md +199 -0
  220. package/skills/sema/agents/openai.yaml +4 -0
  221. package/dist/driftCache.d.ts +0 -49
  222. package/dist/driftCache.js +0 -311
  223. package/dist/driftCacheIncremental.d.ts +0 -98
  224. package/dist/driftCacheIncremental.js +0 -596
  225. package/dist/driftCatalogoPersistente.d.ts +0 -8
  226. package/dist/driftCatalogoPersistente.js +0 -77
  227. package/node_modules/@sema/gerador-cpp/dist/index.js.map +0 -1
  228. package/node_modules/@sema/gerador-css/dist/index.js.map +0 -1
  229. package/node_modules/@sema/gerador-css/dist/index.part01.js.map +0 -1
  230. package/node_modules/@sema/gerador-css/dist/index.part02.js.map +0 -1
  231. package/node_modules/@sema/gerador-dart/dist/index.js.map +0 -1
  232. package/node_modules/@sema/gerador-dotnet/dist/index.js.map +0 -1
  233. package/node_modules/@sema/gerador-html/dist/index.js.map +0 -1
  234. package/node_modules/@sema/gerador-javascript/dist/index.js.map +0 -1
  235. package/node_modules/@sema/gerador-lua/dist/index.js.map +0 -1
  236. package/node_modules/@sema/gerador-php/dist/index.js.map +0 -1
  237. package/node_modules/@sema/gerador-python/dist/index.js.map +0 -1
  238. package/node_modules/@sema/gerador-python/dist/index.part01.js.map +0 -1
  239. package/node_modules/@sema/gerador-python/dist/index.part02.js.map +0 -1
  240. package/node_modules/@sema/gerador-typescript/dist/index.js.map +0 -1
  241. package/node_modules/@sema/gerador-typescript/dist/index.part01.js.map +0 -1
  242. package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +0 -1
  243. package/node_modules/@sema/gerador-typescript/dist/index.part03.js.map +0 -1
  244. package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +0 -1
  245. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +0 -1
  246. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +0 -1
  247. package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js.map +0 -1
  248. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +0 -1
  249. package/node_modules/@sema/nucleo/dist/formatador/index.part01.js.map +0 -1
  250. package/node_modules/@sema/nucleo/dist/formatador/index.part02.js.map +0 -1
  251. package/node_modules/@sema/nucleo/dist/index.js.map +0 -1
  252. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +0 -1
  253. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +0 -1
  254. package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js.map +0 -1
  255. package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js.map +0 -1
  256. package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +0 -1
  257. package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +0 -1
  258. package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +0 -1
  259. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +0 -1
  260. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +0 -1
  261. package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js.map +0 -1
  262. package/node_modules/@sema/nucleo/dist/parser/parser.part01.js.map +0 -1
  263. package/node_modules/@sema/nucleo/dist/parser/parser.part02.js.map +0 -1
  264. package/node_modules/@sema/nucleo/dist/parser/parser.part03.js.map +0 -1
  265. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +0 -1
  266. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +0 -1
  267. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +0 -1
  268. package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js.map +0 -1
  269. package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js.map +0 -1
  270. package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js.map +0 -1
  271. package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js.map +0 -1
  272. package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js.map +0 -1
  273. package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js.map +0 -1
  274. package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js.map +0 -1
  275. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +0 -1
  276. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js.map +0 -1
  277. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js.map +0 -1
  278. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js.map +0 -1
  279. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +0 -1
  280. package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +0 -1
  281. 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 {};