@ingeniomaps/cauce 0.6.0 → 0.6.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/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,19 @@ 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.6.1] - 2026-08-15
|
|
12
|
+
|
|
13
|
+
### Corregido
|
|
14
|
+
|
|
15
|
+
- **El bridge de Antigravity negaba cada llamada a herramienta.** Resolvía la raíz ops subiendo por el
|
|
16
|
+
árbol, y en sidecar es un *hermano* de los repos de producto: no la encontraba y, como falla cerrado,
|
|
17
|
+
bloqueaba todo. Ahora `automation install` le deja escrito dónde quedó, con el recorrido hacia arriba
|
|
18
|
+
como respaldo.
|
|
19
|
+
- **`automation install antigravity` copiaba el plugin y lo dejaba inerte.** Antigravity exige un
|
|
20
|
+
registro explícito —`agy plugin install`—, así que los archivos quedaban en su lugar, `doctor` daba
|
|
21
|
+
verde y no se ejecutaba nada. `install` ahora dice el comando exacto y `doctor` avisa si falta, sin
|
|
22
|
+
tocar por su cuenta la configuración global del usuario.
|
|
23
|
+
|
|
11
24
|
## [0.6.0] - 2026-08-15
|
|
12
25
|
|
|
13
26
|
### Cambiado
|
|
@@ -11,7 +11,22 @@ function readInput() {
|
|
|
11
11
|
} catch { return {} }
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
// Dónde quedó la raíz ops respecto de la carpeta que Antigravity abre. Lo completa
|
|
15
|
+
// `automation install`, que es el único momento en que se sabe: en modo sidecar la raíz ops es un
|
|
16
|
+
// hermano de los repos de producto, y ninguna búsqueda hacia arriba la encuentra. Sin esto el bridge
|
|
17
|
+
// no hallaba `ops.config.json` y, como falla cerrado, negaba cada llamada a herramienta.
|
|
18
|
+
const OPS_DIR = '{{OPS_DIR}}'
|
|
19
|
+
|
|
20
|
+
function declaredRoot() {
|
|
21
|
+
// El plugin vive en <raíz-de-instalación>/.agents/plugins/cauce/.
|
|
22
|
+
const installed = path.resolve(__dirname, '..', '..', '..')
|
|
23
|
+
const root = OPS_DIR.startsWith('{{') ? installed : path.join(installed, OPS_DIR)
|
|
24
|
+
return fs.existsSync(path.join(root, 'ops.config.json')) ? root : ''
|
|
25
|
+
}
|
|
26
|
+
|
|
14
27
|
function findRoot(input) {
|
|
28
|
+
const declared = declaredRoot()
|
|
29
|
+
if (declared) return declared
|
|
15
30
|
const args = input.toolCall && input.toolCall.args || {}
|
|
16
31
|
const starts = [args.Cwd, process.cwd(), ...(input.workspacePaths || [])].filter(Boolean)
|
|
17
32
|
for (const start of starts) {
|
|
@@ -48,5 +48,13 @@
|
|
|
48
48
|
"checkpointing": false,
|
|
49
49
|
"nativeSkills": true
|
|
50
50
|
},
|
|
51
|
-
"roleSkills": ".agents/plugins/cauce/skills"
|
|
51
|
+
"roleSkills": ".agents/plugins/cauce/skills",
|
|
52
|
+
"activation": {
|
|
53
|
+
"hint": "agy plugin install .agents/plugins/cauce",
|
|
54
|
+
"verify": [
|
|
55
|
+
"plugin",
|
|
56
|
+
"list"
|
|
57
|
+
],
|
|
58
|
+
"expect": "cauce"
|
|
59
|
+
}
|
|
52
60
|
}
|
|
@@ -182,6 +182,15 @@ function installRoleSkills(root, runner, output) {
|
|
|
182
182
|
return roles.length
|
|
183
183
|
}
|
|
184
184
|
|
|
185
|
+
// Runners que además de los archivos necesitan un registro propio para que el wiring cuente. Copiar
|
|
186
|
+
// y quedarse ahí deja un plugin inerte: los archivos están, `doctor` da verde y nada se ejecuta.
|
|
187
|
+
function activated(runner) {
|
|
188
|
+
if (!runner.activation) return true
|
|
189
|
+
const result = spawnSync(runner.command, runner.activation.verify, { encoding: 'utf8' })
|
|
190
|
+
if (result.status !== 0) return null
|
|
191
|
+
return `${result.stdout || ''}`.includes(runner.activation.expect)
|
|
192
|
+
}
|
|
193
|
+
|
|
185
194
|
function hasHooks(config) {
|
|
186
195
|
if (config.hooks && Object.keys(config.hooks).length) return true
|
|
187
196
|
const events = [
|
|
@@ -423,6 +432,10 @@ function doctor(root, name, output = console) {
|
|
|
423
432
|
['-c', 'command -v "$1" >/dev/null 2>&1', 'runner-doctor', runner.command],
|
|
424
433
|
)
|
|
425
434
|
if (executable.status !== 0) warnings.push(`${runner.command}: CLI no encontrado en PATH`)
|
|
435
|
+
else if (activated(runner) === false) {
|
|
436
|
+
warnings.push(`el plugin está copiado pero no registrado, así que no se ejecuta. `
|
|
437
|
+
+ `Corré desde ${paths.install}: ${runner.activation.hint}`)
|
|
438
|
+
}
|
|
426
439
|
for (const warning of warnings) output.warn(`⚠ ${name}: ${warning}`)
|
|
427
440
|
for (const error of errors) output.error(`✗ ${name}: ${error}`)
|
|
428
441
|
return { runner, errors, warnings }
|
|
@@ -516,6 +529,10 @@ function install(root, name, output = console, options = {}) {
|
|
|
516
529
|
}
|
|
517
530
|
}
|
|
518
531
|
installRoleSkills(root, runner, output)
|
|
532
|
+
if (runner.activation && activated(runner) !== true) {
|
|
533
|
+
output.log(` ${name}: falta registrarlo para que corra. Desde ${paths.install}:`)
|
|
534
|
+
output.log(` ${runner.activation.hint}`)
|
|
535
|
+
}
|
|
519
536
|
M.write(root, undefined, entregado)
|
|
520
537
|
return runner
|
|
521
538
|
}
|