ozali 0.4.0 → 0.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 +21 -3
- package/cli/bin/ozali.mjs +16 -4
- package/cli/lib/commands.mjs +598 -28
- package/cli/lib/detect.mjs +9 -1
- package/cli/lib/util.mjs +23 -0
- package/cli/test/smoke.test.mjs +64 -0
- package/docs/deploy-cloud-gcloud.md +149 -0
- package/docs/deploy-cloud-vps.md +174 -0
- package/docs/guia-de-uso.md +6 -1
- package/docs/ideas/postgres-vs-mysql-engram-cloud.md +137 -0
- package/docs/team-history.md +52 -0
- package/package.json +1 -1
- package/skill/references/engram-convention.md +78 -0
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
# ozali
|
|
4
4
|
|
|
5
|
+
[](https://www.npmjs.com/package/ozali)
|
|
6
|
+
|
|
5
7
|
**Bootstrap de IA por equipo — calibra tus proyectos, genera una skill de ejecución con TDD/SDD, y mantiene memoria de equipo (Engram) con histórico aislado.**
|
|
6
8
|
|
|
7
9
|
</div>
|
|
@@ -59,7 +61,7 @@ git clone <repo> && node ozali/cli/bin/ozali.mjs init
|
|
|
59
61
|
```bash
|
|
60
62
|
ozali init # detecta agente, instala la skill, aísla el histórico, instala+configura Engram
|
|
61
63
|
ozali doctor # health-check read-only (fuente de verdad, Engram, Cloud, Strict TDD, runner…)
|
|
62
|
-
ozali update # actualiza la skill
|
|
64
|
+
ozali update # actualiza la instalación (skill ozali + ozali-jarvis + permisos) al paquete
|
|
63
65
|
ozali sync # lleva el histórico (docs + Engram) al repo de conocimiento de equipo
|
|
64
66
|
ozali audit # navega/audita la memoria de Engram del proyecto (o general)
|
|
65
67
|
```
|
|
@@ -69,6 +71,18 @@ ozali audit # navega/audita la memoria de Engram del proyecto (o general)
|
|
|
69
71
|
`--tui` para el navegador interactivo, `--search "<texto>"` para buscar y `--general` para forzar el
|
|
70
72
|
alcance. Sin Engram, audita el histórico local de `.ozali/docs/`.
|
|
71
73
|
|
|
74
|
+
### Actualizar a una versión nueva
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
pnpm add -g ozali@<versión> # actualiza el CLI global (pinea la versión por el cooldown de pnpm)
|
|
78
|
+
ozali update # en cada repo: refresca skill ozali + ozali-jarvis + permisos
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
`ozali update` también **crea ozali-jarvis** en repos inicializados con versiones anteriores. La skill
|
|
82
|
+
`cdk` la **regenera tu agente** (no el CLI): tras `ozali update`, abre el agente y vuelve a correr la
|
|
83
|
+
skill `ozali` para regenerar `cdk` con el contrato nuevo — tus docs por hito y el plan congelado se
|
|
84
|
+
conservan.
|
|
85
|
+
|
|
72
86
|
`init` también escribe un **perfil base de permisos** (`.claude/settings.json` para Claude Code,
|
|
73
87
|
`opencode.json` para opencode) para reducir confirmaciones: deja libres comandos seguros y bloquea
|
|
74
88
|
los destructivos. Es un template — tus reglas se conservan al re-correr `init`. Como Claude Code
|
|
@@ -76,8 +90,10 @@ los destructivos. Es un template — tus reglas se conservan al re-correr `init`
|
|
|
76
90
|
confiable (`hasTrustDialogAccepted` en `~/.claude.json`); usa `--no-trust` para omitirlo.
|
|
77
91
|
|
|
78
92
|
`init` también **instala Engram** y registra su MCP con `engram setup <agente>`: en modo
|
|
79
|
-
interactivo te pregunta (default sí), y con `--yes` lo instala automáticamente.
|
|
80
|
-
|
|
93
|
+
interactivo te pregunta (default sí), y con `--yes` lo instala automáticamente. En **Linux**
|
|
94
|
+
descarga el **binario precompilado** correcto según tu arquitectura (amd64/arm64) a `~/.local/bin`
|
|
95
|
+
(sin sudo); en **macOS** usa brew → `go install` con el binario como fallback; en **Windows**
|
|
96
|
+
usa `go install`. Si algún paso falla, imprime instrucciones específicas de tu SO. Si prefieres no
|
|
81
97
|
instalarlo, pasa `--no-engram` (arranca en modo `docs`). Opcionalmente habilita **Engram Cloud**
|
|
82
98
|
(réplica de equipo opt-in) además del git-sync.
|
|
83
99
|
|
|
@@ -105,6 +121,8 @@ Claude Code y opencode (perfiles de permisos para ambos en
|
|
|
105
121
|
| Uso previsto (modelo mental) | [docs/intended-usage.md](docs/intended-usage.md) |
|
|
106
122
|
| Seguridad del instalador (npx/pnpm) | [docs/security.md](docs/security.md) |
|
|
107
123
|
| Histórico aislado y memoria de equipo | [docs/team-history.md](docs/team-history.md) |
|
|
124
|
+
| Desplegar Engram Cloud (VPS) | [docs/deploy-cloud-vps.md](docs/deploy-cloud-vps.md) |
|
|
125
|
+
| Desplegar Engram Cloud (Google Cloud) | [docs/deploy-cloud-gcloud.md](docs/deploy-cloud-gcloud.md) |
|
|
108
126
|
| Skill bootstrap | [skill/SKILL.md](skill/SKILL.md) |
|
|
109
127
|
| Calibración de testing + TDD | [skill/references/calibration-blueprint.md](skill/references/calibration-blueprint.md) |
|
|
110
128
|
| Blueprint de agentes | [skill/references/agents-blueprint.md](skill/references/agents-blueprint.md) |
|
package/cli/bin/ozali.mjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Seguridad: sin dependencias ni scripts de instalación. Ejecuta seguro con
|
|
4
4
|
// `pnpm dlx ozali` o `npx --ignore-scripts ozali`. Ver docs/security.md.
|
|
5
5
|
import { c, err, pkgVersion } from "../lib/util.mjs";
|
|
6
|
-
import { init, doctor, update, sync, audit } from "../lib/commands.mjs";
|
|
6
|
+
import { init, doctor, update, sync, audit, cloud } from "../lib/commands.mjs";
|
|
7
7
|
|
|
8
8
|
const HELP = `
|
|
9
9
|
${c.bold("ozali")} ${c.dim("v" + pkgVersion())} — bootstrap de IA por equipo (TDD/SDD + memoria Engram)
|
|
@@ -15,9 +15,10 @@ ${c.bold("Comandos:")}
|
|
|
15
15
|
init Detecta el agente (Claude Code/opencode), instala la skill ozali,
|
|
16
16
|
aísla el histórico, configura Engram y el repo de conocimiento.
|
|
17
17
|
doctor Health-check read-only del proyecto (fuente de verdad, Engram, TDD…).
|
|
18
|
-
update Actualiza la skill ozali
|
|
18
|
+
update Actualiza la instalación (skill ozali + ozali-jarvis + permisos) al paquete.
|
|
19
19
|
sync Sincroniza el histórico (docs + Engram) con el repo de conocimiento.
|
|
20
20
|
audit Navega/audita la memoria de Engram del proyecto (o general).
|
|
21
|
+
cloud Gestiona Engram Cloud: status, upgrade, repair, dashboard, config.
|
|
21
22
|
|
|
22
23
|
${c.bold("Opciones comunes:")}
|
|
23
24
|
--yes, -y No interactivo: usa defaults.
|
|
@@ -27,13 +28,17 @@ ${c.bold("Opciones comunes:")}
|
|
|
27
28
|
--knowledge-repo <p> (init) Ruta del repo de conocimiento.
|
|
28
29
|
--no-engram (init) No usar Engram; arranca en modo docs.
|
|
29
30
|
--no-trust (init) No marcar el workspace como confiable en Claude Code.
|
|
30
|
-
--no-jarvis (init) No crear el orquestador ozali-jarvis.
|
|
31
|
+
--no-jarvis (init/update) No crear/refrescar el orquestador ozali-jarvis.
|
|
31
32
|
--import (sync) Importa del repo de conocimiento a local.
|
|
32
33
|
--push (sync) Hace push al remoto del repo de conocimiento.
|
|
33
34
|
--cloud (sync) Replica también a Engram Cloud (si está habilitado).
|
|
34
35
|
--general (audit) Auditoría general (todos los proyectos en Engram).
|
|
35
36
|
--tui (audit) Abre el navegador interactivo de Engram.
|
|
36
37
|
--search <q> (audit) Busca <q> en la memoria.
|
|
38
|
+
--dashboard (audit) Abre el dashboard de Engram Cloud en el navegador.
|
|
39
|
+
--conflicts (audit) Lista conflictos de memoria pendientes.
|
|
40
|
+
--judged (audit --conflicts) Muestra conflictos ya juzgados.
|
|
41
|
+
--stats (audit --conflicts) Estadísticas de conflictos.
|
|
37
42
|
-h, --help Esta ayuda. -v, --version Versión.
|
|
38
43
|
|
|
39
44
|
${c.bold("Instalación segura:")}
|
|
@@ -57,6 +62,10 @@ function parseArgs(argv) {
|
|
|
57
62
|
else if (a === "--general") opts.general = true;
|
|
58
63
|
else if (a === "--tui") opts.tui = true;
|
|
59
64
|
else if (a === "--search") opts.search = argv[++i];
|
|
65
|
+
else if (a === "--dashboard") opts.dashboard = true;
|
|
66
|
+
else if (a === "--conflicts") opts.conflicts = true;
|
|
67
|
+
else if (a === "--judged") opts.judged = true;
|
|
68
|
+
else if (a === "--stats") opts.stats = true;
|
|
60
69
|
else if (a === "--agent") opts.agent = argv[++i];
|
|
61
70
|
else if (a === "--scope") opts.scope = argv[++i];
|
|
62
71
|
else if (a === "--knowledge-repo") opts.knowledgeRepo = argv[++i];
|
|
@@ -75,12 +84,15 @@ async function main() {
|
|
|
75
84
|
if (!cmd || opts.help || cmd === "help") { console.log(HELP); return 0; }
|
|
76
85
|
|
|
77
86
|
const cwd = process.cwd();
|
|
87
|
+
// Banner de versión: confirma qué versión de ozali está corriendo en cada comando.
|
|
88
|
+
console.log(`${c.bold("ozali")} ${c.dim("v" + pkgVersion())}`);
|
|
78
89
|
switch (cmd) {
|
|
79
90
|
case "init": return await init(cwd, opts);
|
|
80
91
|
case "doctor": return doctor(cwd);
|
|
81
|
-
case "update": return update(cwd);
|
|
92
|
+
case "update": return update(cwd, opts);
|
|
82
93
|
case "sync": return sync(cwd, opts);
|
|
83
94
|
case "audit": return await audit(cwd, opts);
|
|
95
|
+
case "cloud": return await cloud(cwd, opts);
|
|
84
96
|
default:
|
|
85
97
|
err(`comando desconocido "${cmd}". Usa ${c.bold("ozali --help")}.`);
|
|
86
98
|
return 1;
|