@tacuchi/agent-workflow-cli 7.2.0 → 7.3.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 (85) hide show
  1. package/dist/application/project-tab-data.d.ts +119 -0
  2. package/dist/application/project-tab-data.d.ts.map +1 -0
  3. package/dist/application/project-tab-data.js +320 -0
  4. package/dist/application/project-tab-data.js.map +1 -0
  5. package/dist/cli/interactive-menu.d.ts +1 -1
  6. package/dist/cli/interactive-menu.d.ts.map +1 -1
  7. package/dist/cli/main.js +6 -0
  8. package/dist/cli/main.js.map +1 -1
  9. package/dist/cli/tui/app.d.ts.map +1 -1
  10. package/dist/cli/tui/app.js +116 -102
  11. package/dist/cli/tui/app.js.map +1 -1
  12. package/dist/cli/tui/components/command-palette.d.ts +39 -0
  13. package/dist/cli/tui/components/command-palette.d.ts.map +1 -0
  14. package/dist/cli/tui/components/command-palette.js +116 -0
  15. package/dist/cli/tui/components/command-palette.js.map +1 -0
  16. package/dist/cli/tui/components/header.d.ts +6 -0
  17. package/dist/cli/tui/components/header.d.ts.map +1 -1
  18. package/dist/cli/tui/components/header.js +8 -2
  19. package/dist/cli/tui/components/header.js.map +1 -1
  20. package/dist/cli/tui/components/host-chip.d.ts +28 -0
  21. package/dist/cli/tui/components/host-chip.d.ts.map +1 -0
  22. package/dist/cli/tui/components/host-chip.js +35 -0
  23. package/dist/cli/tui/components/host-chip.js.map +1 -0
  24. package/dist/cli/tui/components/keymap-bar.d.ts +8 -0
  25. package/dist/cli/tui/components/keymap-bar.d.ts.map +1 -1
  26. package/dist/cli/tui/components/keymap-bar.js +7 -1
  27. package/dist/cli/tui/components/keymap-bar.js.map +1 -1
  28. package/dist/cli/tui/components/page-head.d.ts +18 -0
  29. package/dist/cli/tui/components/page-head.d.ts.map +1 -0
  30. package/dist/cli/tui/components/page-head.js +14 -0
  31. package/dist/cli/tui/components/page-head.js.map +1 -0
  32. package/dist/cli/tui/components/pill.d.ts +16 -0
  33. package/dist/cli/tui/components/pill.d.ts.map +1 -0
  34. package/dist/cli/tui/components/pill.js +24 -0
  35. package/dist/cli/tui/components/pill.js.map +1 -0
  36. package/dist/cli/tui/components/tab-bar.d.ts +12 -0
  37. package/dist/cli/tui/components/tab-bar.d.ts.map +1 -1
  38. package/dist/cli/tui/components/tab-bar.js +11 -5
  39. package/dist/cli/tui/components/tab-bar.js.map +1 -1
  40. package/dist/cli/tui/components/toast-stack.d.ts +41 -0
  41. package/dist/cli/tui/components/toast-stack.d.ts.map +1 -0
  42. package/dist/cli/tui/components/toast-stack.js +61 -0
  43. package/dist/cli/tui/components/toast-stack.js.map +1 -0
  44. package/dist/cli/tui/hosts.d.ts +16 -0
  45. package/dist/cli/tui/hosts.d.ts.map +1 -0
  46. package/dist/cli/tui/hosts.js +31 -0
  47. package/dist/cli/tui/hosts.js.map +1 -0
  48. package/dist/cli/tui/tabs/mcp-tab.d.ts +22 -1
  49. package/dist/cli/tui/tabs/mcp-tab.d.ts.map +1 -1
  50. package/dist/cli/tui/tabs/mcp-tab.js +165 -129
  51. package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
  52. package/dist/cli/tui/tabs/plugins-tab.d.ts.map +1 -1
  53. package/dist/cli/tui/tabs/plugins-tab.js +78 -19
  54. package/dist/cli/tui/tabs/plugins-tab.js.map +1 -1
  55. package/dist/cli/tui/tabs/project-tab.d.ts +19 -0
  56. package/dist/cli/tui/tabs/project-tab.d.ts.map +1 -0
  57. package/dist/cli/tui/tabs/project-tab.js +188 -0
  58. package/dist/cli/tui/tabs/project-tab.js.map +1 -0
  59. package/dist/cli/tui/tabs/skills-tab.d.ts +17 -1
  60. package/dist/cli/tui/tabs/skills-tab.d.ts.map +1 -1
  61. package/dist/cli/tui/tabs/skills-tab.js +127 -224
  62. package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
  63. package/dist/cli/tui/tabs/status-tab.d.ts +13 -0
  64. package/dist/cli/tui/tabs/status-tab.d.ts.map +1 -1
  65. package/dist/cli/tui/tabs/status-tab.js +52 -66
  66. package/dist/cli/tui/tabs/status-tab.js.map +1 -1
  67. package/dist/cli/tui/tabs/update-tab.d.ts +12 -1
  68. package/dist/cli/tui/tabs/update-tab.d.ts.map +1 -1
  69. package/dist/cli/tui/tabs/update-tab.js +54 -49
  70. package/dist/cli/tui/tabs/update-tab.js.map +1 -1
  71. package/dist/cli/tui/theme.d.ts +84 -12
  72. package/dist/cli/tui/theme.d.ts.map +1 -1
  73. package/dist/cli/tui/theme.js +100 -16
  74. package/dist/cli/tui/theme.js.map +1 -1
  75. package/dist/cli/tui/tui-prefs.d.ts +15 -0
  76. package/dist/cli/tui/tui-prefs.d.ts.map +1 -0
  77. package/dist/cli/tui/tui-prefs.js +45 -0
  78. package/dist/cli/tui/tui-prefs.js.map +1 -0
  79. package/package.json +1 -1
  80. package/skills/agent-workflow/commands/doctor.md +1 -1
  81. package/skills/agent-workflow/doctrine/compact/SKILL.md +1 -1
  82. package/skills/agent-workflow/doctrine/session/references/branch-verification.md +1 -1
  83. package/skills/agent-workflow/doctrine/session/references/commits-policy.md +2 -2
  84. package/skills/agent-workflow/specialties/design-deliver/SKILL.md +1 -1
  85. package/skills/agent-workflow/standards/coding-standards/references/fe-be-integration.md +2 -2
@@ -0,0 +1,15 @@
1
+ import type { PathsService } from "../../application/paths-service.js";
2
+ import type { FileSystemPort } from "../../ports/file-system.js";
3
+ export type Density = "comfortable" | "compact";
4
+ export interface TuiPrefs {
5
+ density: Density;
6
+ }
7
+ export declare class TuiPrefsService {
8
+ private readonly fs;
9
+ private readonly paths;
10
+ constructor(fs: FileSystemPort, paths: PathsService);
11
+ private filePath;
12
+ load(): Promise<TuiPrefs>;
13
+ save(patch: Partial<TuiPrefs>): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=tui-prefs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui-prefs.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/tui-prefs.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;AAEhD,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAMD,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,EAAE,EAAE,cAAc,EAClB,KAAK,EAAE,YAAY;IAGtC,OAAO,CAAC,QAAQ;IAIV,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC;IAiBzB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAOpD"}
@@ -0,0 +1,45 @@
1
+ // Preferencias persistidas del TUI (density, layout, etc).
2
+ //
3
+ // Vive en `~/.config/agent-workflow/lib/config/tui-prefs.json` (relativo al
4
+ // userRoot del namespace activo). Si no existe se devuelven defaults. Las
5
+ // escrituras son atómicas: lee, mergea, escribe.
6
+ import { dirname, join } from "node:path";
7
+ const DEFAULTS = {
8
+ density: "comfortable",
9
+ };
10
+ export class TuiPrefsService {
11
+ fs;
12
+ paths;
13
+ constructor(fs, paths) {
14
+ this.fs = fs;
15
+ this.paths = paths;
16
+ }
17
+ filePath() {
18
+ return join(this.paths.userLibConfigDir(), "tui-prefs.json");
19
+ }
20
+ async load() {
21
+ const path = this.filePath();
22
+ if (!(await this.fs.exists(path)))
23
+ return { ...DEFAULTS };
24
+ try {
25
+ const raw = await this.fs.readText(path);
26
+ const parsed = JSON.parse(raw);
27
+ return {
28
+ density: parsed.density === "compact" || parsed.density === "comfortable"
29
+ ? parsed.density
30
+ : DEFAULTS.density,
31
+ };
32
+ }
33
+ catch {
34
+ return { ...DEFAULTS };
35
+ }
36
+ }
37
+ async save(patch) {
38
+ const current = await this.load();
39
+ const next = { ...current, ...patch };
40
+ const path = this.filePath();
41
+ await this.fs.mkdirp(dirname(path));
42
+ await this.fs.writeText(path, `${JSON.stringify(next, null, 2)}\n`);
43
+ }
44
+ }
45
+ //# sourceMappingURL=tui-prefs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui-prefs.js","sourceRoot":"","sources":["../../../src/cli/tui/tui-prefs.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,iDAAiD;AAEjD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAU1C,MAAM,QAAQ,GAAa;IACzB,OAAO,EAAE,aAAa;CACvB,CAAC;AAEF,MAAM,OAAO,eAAe;IAEP;IACA;IAFnB,YACmB,EAAkB,EAClB,KAAmB;QADnB,OAAE,GAAF,EAAE,CAAgB;QAClB,UAAK,GAAL,KAAK,CAAc;IACnC,CAAC;IAEI,QAAQ;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,CAAC;YACpD,OAAO;gBACL,OAAO,EACL,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa;oBAC9D,CAAC,CAAC,MAAM,CAAC,OAAO;oBAChB,CAAC,CAAC,QAAQ,CAAC,OAAO;aACvB,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAwB;QACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,IAAI,GAAa,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tacuchi/agent-workflow-cli",
3
- "version": "7.2.0",
3
+ "version": "7.3.0",
4
4
  "description": "Agnostic runtime CLI for session-lifecycle workflows. Auto-detects namespace from any `.<ns>/sessions/` dir in CWD; falls back to 'agent-workflow'. Bundles the universal `agent-workflow` skill (35 skills + 17 commands + 7 hooks template) in the tarball — `self install-skill --target <host>` (obligatory) copies it to the host's skill directory. Multi-empresa parametrization via `profile.json` cascade (flag → AW_PROFILE env → ~/.config/agent-workflow/profile.json → workspace → defaults). Hooks for Claude Code via `self install-hooks --target claude` (JSON merge into ~/.claude/settings.json with backup).",
5
5
  "type": "module",
6
6
  "bin": {
@@ -30,7 +30,7 @@ Default: si `agent-workflow workspace-mode` retorna `hub` → `--scope all`. Sin
30
30
  2. **Manifests**: `.claude-plugin/plugin.json` y `.codex-plugin/plugin.json` existen y la versión coincide entre ambos.
31
31
  3. **Hooks**: `hooks/hooks.json` y `codex-hooks/hooks.json` parsean como JSON válido y los `command` apuntan al CLI (`agent-workflow ...`) — no a scripts Python locales.
32
32
  4. **Skills**: el directorio `skills/` existe; cada subdir tiene un `SKILL.md` con frontmatter completo (`name`, `description`, `version` semver) y `name` coincide con directorio.
33
- 5. **MCP config** (si aplica): `.mcp.json` válido y env vars del DSN seteadas (qtc-dev only).
33
+ 5. **MCP config** (si aplica): `.mcp.json` válido y env vars del DSN seteadas (solo si el profile activo define `mcp_databases[]`).
34
34
  6. **runtime.json instalado** (agent-workflow only): `~/.workflow/agent-workflow/runtime.json` existe y matchea `config/agent-workflow-runtime.json`.
35
35
 
36
36
  ## Qué NO verifica (post-v6.3)
@@ -32,7 +32,7 @@ El camino post-compact lo coordinan los hooks `PreCompact` y `PostCompact` del p
32
32
  - **Slash explícito**: `/agent-workflow:compact`.
33
33
  - **NL del usuario**: "compactá", "guardá estado", "checkpoint", "vamos a compactar".
34
34
  - **Automático en SessionEnd hook**: al cerrar Claude Code/Codex, el hook escribe CHECKPOINT.md (no dispara `/compact` host porque la sesión ya termina).
35
- - **Automático en cierre de qtc-session**: el último paso de la skill `session` (closure) invoca `compact`.
35
+ - **Automático en cierre de sesión**: el último paso de la skill `session` (closure) invoca `compact`.
36
36
  - **AI auto-trigger por contexto >75%**: cuando el AI estima carga de contexto >75% del modelo activo (heurística manual, no medición exacta), disparar `AskUserQuestion` con spec de M11 (`../session/references/prompts-catalog.md#M11`). Header `context`, 3 opciones (Compact ahora / Seguir, compact después / Cerrar sesión). Si elige "Compact ahora" → continuar con los pasos 1-5 abajo. Si elige otra → respetar la elección y dejar nota informal en CHECKPOINT.md cuando corresponda. **Si la sesión está en `closure`**: skip M11 (closure ya dispara compact opcional). NO narrar la pregunta en texto plano.
37
37
 
38
38
  ## Acción
@@ -1,6 +1,6 @@
1
1
  # Verificación de rama de trabajo — Referencia canónica (agent-workflow)
2
2
 
3
- > Documento canónico de la familia agent-workflow para validación y orquestación de ramas. Referenciado por `skills/session/SKILL.md` y el hook PreToolUse (`agent-workflow hook branch-check`). Los flow plugins (qtc-dev, qtc-design, qtc-analyze) **no duplican** este flujo — apuntan acá.
3
+ > Documento canónico de la familia agent-workflow para validación y orquestación de ramas. Referenciado por `skills/session/SKILL.md` y el hook PreToolUse (`agent-workflow hook branch-check`). Los workflows especializados (`analyze-workflow`, `design-workflow`, `dev-workflow`) **no duplican** este flujo — apuntan acá.
4
4
 
5
5
  ## Contexto
6
6
 
@@ -90,9 +90,9 @@ Excepciones a recordar:
90
90
  - Hub mode con N>1 fuentes dirty → N questions tab-por-fuente.
91
91
  - Workspace marketplace / hub donde el workspace mismo (no las fuentes declaradas) tiene cambios: el AI **no** los commitea por iniciativa; sólo opera sobre las fuentes declaradas en `AW-PROJECT.Fuentes`.
92
92
 
93
- ## Regla 4 — interacción con release / release-scripts / graduation
93
+ ## Regla 4 — interacción con export-scripts / graduation
94
94
 
95
- Los skills `release` y `release-scripts` (qtc-dev) son solo lectura/reporte: nunca commitean ni mergean. Lo mismo aplica a `graduate` (agent-workflow) — graduar artefactos crea/mueve archivos, pero el commit del cambio queda para el flujo M1 (Regla 3) o para la solicitud explícita del usuario.
95
+ Los skills `export-scripts` y `graduate` (agent-workflow) son solo lectura/reporte: nunca commitean ni mergean — graduar artefactos crea/mueve archivos, pero el commit del cambio queda para el flujo M1 (Regla 3) o para la solicitud explícita del usuario.
96
96
 
97
97
  ## Regla 5 — bypass por mensaje literal
98
98
 
@@ -55,7 +55,7 @@ Producir `.workflow/sessions/<folder>/DELIVERY.md` (legacy: `ENTREGA.md`) con el
55
55
 
56
56
  ## Validation criteria
57
57
 
58
- - [cómo qtc-dev sabrá que la implementación cumple el spec]
58
+ - [cómo dev sabrá que la implementación cumple el spec]
59
59
 
60
60
  ## Out of scope
61
61
 
@@ -286,7 +286,7 @@ LIMIT p_tamanio;
286
286
  $$ LANGUAGE sql STABLE;
287
287
  ```
288
288
 
289
- Reglas qtc-dev/coding-standards/database-conventions.md siguen aplicando (header de 4 líneas, idempotencia, schema explícito, BEGIN/COMMIT en scripts).
289
+ Reglas de `agent-workflow:coding-standards/references/database-conventions.md` siguen aplicando (header de 4 líneas, idempotencia, schema explícito, BEGIN/COMMIT en scripts).
290
290
 
291
291
  ## Refs
292
292
 
@@ -296,5 +296,5 @@ Reglas qtc-dev/coding-standards/database-conventions.md siguen aplicando (header
296
296
  - `agent-workflow:implement/SKILL.md` — phased mode (Phase 0/1/2 + gate M6 entre phases; S7 design-review antes de Phase 0 desde planning closure).
297
297
  - `agent-workflow:refactor/SKILL.md` — Strangler Fig para refactors completos.
298
298
  - `agent-workflow:prompts-catalog#M6,S7` — gates phased (S7 design-review antes de Phase 0; M6 entre phases). M9 retirado v2.8+.
299
- - [JSON Merge Patch RFC 7396](https://datatracker.ietf.org/doc/html/rfc7396) — spec del comportamiento PATCH sparse (qtc-dev usa **convención simple sparse** en lugar del Content-Type RFC 7396, pero la semántica conceptual es idéntica salvo el caso "set to null intencional").
299
+ - [JSON Merge Patch RFC 7396](https://datatracker.ietf.org/doc/html/rfc7396) — spec del comportamiento PATCH sparse (agent-workflow usa **convención simple sparse** en lugar del Content-Type RFC 7396, pero la semántica conceptual es idéntica salvo el caso "set to null intencional").
300
300
  - [JSON Patch RFC 6902](https://datatracker.ietf.org/doc/html/rfc6902) — alternativa con array de operaciones; descartada por complejidad.