@ingeniomaps/cauce 0.8.2 → 0.9.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/CHANGELOG.md CHANGED
@@ -8,6 +8,17 @@ esa operación sea confiable en vez de sólo cómoda: acá se lee qué cambió a
8
8
  un cambio en el protocolo, en las reglas del sistema o en un guard es visible para el usuario y sube
9
9
  minor aunque no toque una sola línea de código.
10
10
 
11
+ ## [0.9.0] - 2026-08-15
12
+
13
+ ### Añadido
14
+
15
+ - `ops integration disable <raíz> <proveedor>`: el par que faltaba. Apagar **no desinstala** —
16
+ `integrations/<proveedor>/` puede tener snapshots y borradores de la empresa, y borrarlos para
17
+ desconectar una integración sería perder trabajo suyo. El andamiaje queda y volver a encender no
18
+ pierde nada.
19
+ - `integration enable` sólo pide lo que falta: reencender un proveedor ya configurado no manda a
20
+ completar un archivo que la empresa terminó hace meses.
21
+
11
22
  ## [0.8.2] - 2026-08-15
12
23
 
13
24
  ### Corregido
package/engine/cli/ops.js CHANGED
@@ -34,6 +34,7 @@ function usage() {
34
34
  ops archive <planning-dir> <NNN>
35
35
  ops integration list <ops-root>
36
36
  ops integration enable <ops-root> <provider>
37
+ ops integration disable <ops-root> <provider>
37
38
  ops integration check <ops-root> [provider]
38
39
  ops integration sync <ops-root> <provider> [--fixture <json>]
39
40
  ops integration promote <ops-root> <provider> <remote-key>
@@ -709,8 +710,38 @@ async function integration(action, rootArg, provider, key) {
709
710
  config.providers[provider].enabled = true
710
711
  F.atomicWriteJson(registry, config)
711
712
  console.log(`✓ ${provider}: conectado al proyecto y andamiaje en integrations/${provider}/.`)
712
- console.log(` Falta lo tuyo: completá integrations/${provider}/config.json y poné enabled: true ahí.`)
713
- console.log(` Hasta entonces "integration sync" se niega, que es lo correcto: no hay a dónde apuntar.`)
713
+ // Sólo se pide lo que falta: reencender un proveedor ya configurado no debería mandar a
714
+ // completar un archivo que la empresa terminó hace meses.
715
+ let listo = false
716
+ try {
717
+ const suyo = path.join(root, 'integrations', provider, 'config.json')
718
+ listo = JSON.parse(fs.readFileSync(suyo, 'utf8')).enabled === true
719
+ } catch { /* sin configurar */ }
720
+ if (listo) console.log(` Su configuración ya estaba completa: "integration sync" puede correr.`)
721
+ else {
722
+ console.log(` Falta lo tuyo: completá integrations/${provider}/config.json y poné enabled: true ahí.`)
723
+ console.log(` Hasta entonces "integration sync" se niega, que es lo correcto: no hay a dónde apuntar.`)
724
+ }
725
+ return
726
+ }
727
+ // Apagar no desinstala: `integrations/<proveedor>/` puede tener snapshots y borradores de la
728
+ // empresa, y borrarlos para desconectar una integración sería perder trabajo suyo. El andamiaje
729
+ // queda, callado, y volver a encenderlo no pierde nada.
730
+ if (action === 'disable') {
731
+ if (!provider) fail('Falta <provider>.', 2)
732
+ const registry = path.join(root, 'integrations', 'config.json')
733
+ let config
734
+ try { config = JSON.parse(fs.readFileSync(registry, 'utf8')) } catch (error) {
735
+ fail(`integrations/config.json ilegible: ${error.message}`)
736
+ }
737
+ if (!config.providers || !config.providers[provider]) fail(`${provider} no está en integrations/config.json.`)
738
+ config.providers[provider].enabled = false
739
+ F.atomicWriteJson(registry, config)
740
+ console.log(`✓ ${provider}: desconectado del proyecto. "integration sync" deja de correrlo.`)
741
+ const dir = path.join(root, 'integrations', provider)
742
+ if (fs.existsSync(dir)) {
743
+ console.log(` integrations/${provider}/ queda como está: ahí pueden vivir snapshots y borradores tuyos.`)
744
+ }
714
745
  return
715
746
  }
716
747
  if (action === 'check') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ingeniomaps/cauce",
3
- "version": "0.8.2",
3
+ "version": "0.9.0",
4
4
  "description": "Sistema portable de planificación y ejecución verificable para cualquier proyecto",
5
5
  "type": "commonjs",
6
6
  "bin": {