@cristiancorreau/forge 2.9.7 → 2.9.9

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.
@@ -6,6 +6,23 @@
6
6
  import { createCliRenderer, BoxRenderable, Text, SelectRenderable, InputRenderable, t, fg, bold as otBold, dim as otDim, } from '@opentui/core';
7
7
  import { detectStack } from '../lib/detect.js';
8
8
  import { VERSION } from '../version.js';
9
+ /**
10
+ * Restore the terminal to a sane state. OpenTUI enables alt-screen, mouse
11
+ * reporting, focus tracking and bracketed paste on `createCliRenderer`; if those
12
+ * modes leak into the shell they show up as ANSI garbage. Always emit the reset
13
+ * sequences after destroying the renderer as a safeguard.
14
+ */
15
+ function restoreTerminal() {
16
+ try {
17
+ process.stdout.write('\x1b[?1000l\x1b[?1002l\x1b[?1003l\x1b[?1006l' + // disable mouse reporting
18
+ '\x1b[?1004l' + // disable focus tracking
19
+ '\x1b[?2004l' + // disable bracketed paste
20
+ '\x1b[?1049l' + // leave alt screen
21
+ '\x1b[?25h' // show cursor
22
+ );
23
+ }
24
+ catch { }
25
+ }
9
26
  // ─── Palette ─────────────────────────────────────────────────────────────────
10
27
  const C = {
11
28
  cyan: '#00e5ff',
@@ -279,96 +296,109 @@ export async function runOpenTUIWizard() {
279
296
  }
280
297
  // ─── Wizard steps ─────────────────────────────────────────────────────────────
281
298
  const ans = { testing: detected.testing ?? [], detected: !!(detected.language || detected.backend) };
282
- await showWelcome();
283
- ans.name = await askInput('Project name', 'Enter a name for your project');
284
- if (!ans.name)
285
- ans.name = 'My Project';
286
- ans.slug = toSlug(ans.name);
287
- currentStep = 1;
288
- ans.language = await askSelect('Language', 'Primary programming language', [
289
- o('TypeScript', 'typescript', 'Recommended'), o('Python', 'python', ''),
290
- o('Ruby', 'ruby', ''), o('Go', 'go', ''), o('PHP', 'php', ''),
291
- ], detected.language ?? 'typescript');
292
- currentStep = 2;
293
- ans.mode = await askSelect('Project mode', 'Determines agents and guardrails', [
294
- o('startup', 'startup', 'Minimal small team'),
295
- o('standard', 'standard', 'CI/CD, code review, testing'),
296
- o('enterprise', 'enterprise', 'Compliance, multi-team, audits'),
297
- ], 'standard');
298
- currentStep = 3;
299
- const backendOpts = BACKENDS[ans.language] ?? [o('None', 'none', '')];
300
- const backend = await askSelect('Backend framework', 'Select backend (or None)', backendOpts, detected.backend ?? 'none');
301
- ans.backend = backend === 'none' ? undefined : backend;
302
- currentStep = 4;
303
- const frontend = await askSelect('Frontend framework', 'Select frontend (or None)', FRONTENDS, detected.frontend ?? 'none');
304
- ans.frontend = frontend === 'none' ? undefined : frontend;
305
- currentStep = 5;
306
- const database = await askSelect('Database', 'Select primary database', DATABASES, detected.database ?? 'postgresql');
307
- ans.database = database === 'none' ? undefined : database;
308
- currentStep = 6;
309
- if (ans.database) {
310
- const ormOpts = ORMS[ans.language] ?? [o('None', 'none', '')];
311
- const orm = await askSelect('ORM / query builder', 'Select ORM', ormOpts, detected.orm ?? 'none');
312
- ans.orm = orm === 'none' ? undefined : orm;
313
- }
314
- currentStep = 7;
315
- const pmOpts = PKG[ans.language] ?? [o('npm', 'npm', '')];
316
- ans.packageManager = await askSelect('Package manager', 'Select package manager', pmOpts, detected.packageManager ?? 'pnpm');
317
- currentStep = 8;
318
- const testOpts = TESTING[ans.language] ?? [o('None', 'none', 'Skip')];
319
- const test = await askSelect('Testing', 'Select primary testing framework', testOpts, (detected.testing ?? [])[0] ?? 'none');
320
- ans.testing = test === 'none' ? [] : [test];
321
- currentStep = 9;
322
- ans.runtime = await askSelect('AI Runtime', 'Primary AI coding assistant', RUNTIMES, 'claude-code');
323
- currentStep = 10;
324
- // ── Confirm ──
325
- renderSteps();
326
- clearContent();
327
- // Each row is an array of parts (string literals + leaf StyledTexts).
328
- const summaryRows = [
329
- boldCol(C.white, 'Configuration summary'),
330
- '',
331
- [' ', fg(C.muted)('Name:'), ' ', fg(C.yellow)(ans.name)],
332
- [' ', fg(C.muted)('Language:'), ' ' + ans.language + ' ', fg(C.muted)('Mode:'), ' ' + ans.mode],
333
- ];
334
- if (ans.backend)
335
- summaryRows.push([' ', fg(C.muted)('Backend:'), ' ' + ans.backend]);
336
- if (ans.frontend)
337
- summaryRows.push([' ', fg(C.muted)('Frontend:'), ' ' + ans.frontend]);
338
- if (ans.database)
339
- summaryRows.push([' ', fg(C.muted)('Database:'), ' ' + ans.database + (ans.orm ? ' + ' + ans.orm : '')]);
340
- if (ans.testing?.length)
341
- summaryRows.push([' ', fg(C.muted)('Testing:'), ' ' + ans.testing.join(', ')]);
342
- summaryRows.push([' ', fg(C.muted)('Runtime:'), ' ' + ans.runtime]);
343
- const confirmed = await askSelect('', 'Install with this configuration?', [
344
- o('✔ Yes, install forge', 'yes', ''),
345
- o(' Cancel', 'no', ''),
346
- ], undefined, summaryRows) === 'yes';
347
- if (!confirmed) {
299
+ try {
300
+ await showWelcome();
301
+ ans.name = await askInput('Project name', 'Enter a name for your project');
302
+ if (!ans.name)
303
+ ans.name = 'My Project';
304
+ ans.slug = toSlug(ans.name);
305
+ currentStep = 1;
306
+ ans.language = await askSelect('Language', 'Primary programming language', [
307
+ o('TypeScript', 'typescript', 'Recommended'), o('Python', 'python', ''),
308
+ o('Ruby', 'ruby', ''), o('Go', 'go', ''), o('PHP', 'php', ''),
309
+ ], detected.language ?? 'typescript');
310
+ currentStep = 2;
311
+ ans.mode = await askSelect('Project mode', 'Determines agents and guardrails', [
312
+ o('startup', 'startup', 'Minimal small team'),
313
+ o('standard', 'standard', 'CI/CD, code review, testing'),
314
+ o('enterprise', 'enterprise', 'Compliance, multi-team, audits'),
315
+ ], 'standard');
316
+ currentStep = 3;
317
+ const backendOpts = BACKENDS[ans.language] ?? [o('None', 'none', '')];
318
+ const backend = await askSelect('Backend framework', 'Select backend (or None)', backendOpts, detected.backend ?? 'none');
319
+ ans.backend = backend === 'none' ? undefined : backend;
320
+ currentStep = 4;
321
+ const frontend = await askSelect('Frontend framework', 'Select frontend (or None)', FRONTENDS, detected.frontend ?? 'none');
322
+ ans.frontend = frontend === 'none' ? undefined : frontend;
323
+ currentStep = 5;
324
+ const database = await askSelect('Database', 'Select primary database', DATABASES, detected.database ?? 'postgresql');
325
+ ans.database = database === 'none' ? undefined : database;
326
+ currentStep = 6;
327
+ if (ans.database) {
328
+ const ormOpts = ORMS[ans.language] ?? [o('None', 'none', '')];
329
+ const orm = await askSelect('ORM / query builder', 'Select ORM', ormOpts, detected.orm ?? 'none');
330
+ ans.orm = orm === 'none' ? undefined : orm;
331
+ }
332
+ currentStep = 7;
333
+ const pmOpts = PKG[ans.language] ?? [o('npm', 'npm', '')];
334
+ ans.packageManager = await askSelect('Package manager', 'Select package manager', pmOpts, detected.packageManager ?? 'pnpm');
335
+ currentStep = 8;
336
+ const testOpts = TESTING[ans.language] ?? [o('None', 'none', 'Skip')];
337
+ const test = await askSelect('Testing', 'Select primary testing framework', testOpts, (detected.testing ?? [])[0] ?? 'none');
338
+ ans.testing = test === 'none' ? [] : [test];
339
+ currentStep = 9;
340
+ ans.runtime = await askSelect('AI Runtime', 'Primary AI coding assistant', RUNTIMES, 'claude-code');
341
+ currentStep = 10;
342
+ // ── Confirm ──
343
+ renderSteps();
344
+ clearContent();
345
+ // Each row is an array of parts (string literals + leaf StyledTexts).
346
+ const summaryRows = [
347
+ boldCol(C.white, 'Configuration summary'),
348
+ '',
349
+ [' ', fg(C.muted)('Name:'), ' ', fg(C.yellow)(ans.name)],
350
+ [' ', fg(C.muted)('Language:'), ' ' + ans.language + ' ', fg(C.muted)('Mode:'), ' ' + ans.mode],
351
+ ];
352
+ if (ans.backend)
353
+ summaryRows.push([' ', fg(C.muted)('Backend:'), ' ' + ans.backend]);
354
+ if (ans.frontend)
355
+ summaryRows.push([' ', fg(C.muted)('Frontend:'), ' ' + ans.frontend]);
356
+ if (ans.database)
357
+ summaryRows.push([' ', fg(C.muted)('Database:'), ' ' + ans.database + (ans.orm ? ' + ' + ans.orm : '')]);
358
+ if (ans.testing?.length)
359
+ summaryRows.push([' ', fg(C.muted)('Testing:'), ' ' + ans.testing.join(', ')]);
360
+ summaryRows.push([' ', fg(C.muted)('Runtime:'), ' ' + ans.runtime]);
361
+ const confirmed = await askSelect('', 'Install with this configuration?', [
362
+ o(' Yes, install forge', 'yes', ''),
363
+ o('✗ Cancel', 'no', ''),
364
+ ], undefined, summaryRows) === 'yes';
365
+ if (!confirmed) {
366
+ renderer.destroy();
367
+ restoreTerminal();
368
+ return null;
369
+ }
370
+ // Done
371
+ renderSteps();
372
+ clearContent();
373
+ contentPanel.add(Text({ id: 'q-label',
374
+ content: buildLines(['', boldCol(C.green, '✔ Configuration complete'), dimLeaf('Installing forge...')]),
375
+ }));
376
+ await new Promise(r => setTimeout(r, 500));
348
377
  renderer.destroy();
349
- return null;
378
+ restoreTerminal();
379
+ const profiles = [];
380
+ if (ans.backend && PROFILE_MAP[ans.backend])
381
+ profiles.push(PROFILE_MAP[ans.backend]);
382
+ if (ans.frontend && PROFILE_MAP[ans.frontend])
383
+ profiles.push(PROFILE_MAP[ans.frontend]);
384
+ return {
385
+ name: ans.name, slug: ans.slug, description: '', language: ans.language,
386
+ mode: ans.mode, backend: ans.backend, frontend: ans.frontend,
387
+ database: ans.database, orm: ans.orm, packageManager: ans.packageManager,
388
+ testing: ans.testing, profiles: [...new Set(profiles)],
389
+ // Default skills (the OpenTUI wizard doesn't ask for them yet).
390
+ skills: ['spec', 'new-feature', 'security-audit'],
391
+ runtime: ans.runtime, detected: ans.detected,
392
+ };
393
+ }
394
+ catch (err) {
395
+ // Never leave the terminal in raw mode if a step throws.
396
+ try {
397
+ renderer.destroy();
398
+ }
399
+ catch { }
400
+ restoreTerminal();
401
+ throw err;
350
402
  }
351
- // Done
352
- renderSteps();
353
- clearContent();
354
- contentPanel.add(Text({ id: 'q-label',
355
- content: buildLines(['', boldCol(C.green, '✔ Configuration complete'), dimLeaf('Installing forge...')]),
356
- }));
357
- await new Promise(r => setTimeout(r, 500));
358
- renderer.destroy();
359
- const profiles = [];
360
- if (ans.backend && PROFILE_MAP[ans.backend])
361
- profiles.push(PROFILE_MAP[ans.backend]);
362
- if (ans.frontend && PROFILE_MAP[ans.frontend])
363
- profiles.push(PROFILE_MAP[ans.frontend]);
364
- return {
365
- name: ans.name, slug: ans.slug, description: '', language: ans.language,
366
- mode: ans.mode, backend: ans.backend, frontend: ans.frontend,
367
- database: ans.database, orm: ans.orm, packageManager: ans.packageManager,
368
- testing: ans.testing, profiles: [...new Set(profiles)],
369
- // Default skills (the OpenTUI wizard doesn't ask for them yet).
370
- skills: ['spec', 'new-feature', 'security-audit'],
371
- runtime: ans.runtime, detected: ans.detected,
372
- };
373
403
  }
374
404
  //# sourceMappingURL=wizard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/tui/wizard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/tui/wizard.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Single source of truth for the CLI version (kept in sync with package.json). */
2
- export declare const VERSION = "2.9.7";
2
+ export declare const VERSION = "2.9.9";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Single source of truth for the CLI version (kept in sync with package.json). */
2
- export const VERSION = '2.9.7';
2
+ export const VERSION = '2.9.9';
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cristiancorreau/forge",
3
- "version": "2.9.7",
3
+ "version": "2.9.9",
4
4
  "description": "Agentic development framework — multi-runtime support for Claude Code, OpenCode, Codex and Kiro",
5
5
  "author": "Cristian Correa <cristian@socialweb.cl>",
6
6
  "license": "Apache-2.0",
@@ -44,7 +44,7 @@
44
44
  "typescript": "^5.4.0"
45
45
  },
46
46
  "engines": {
47
- "node": ">=18.0.0"
47
+ "node": ">=20.0.0"
48
48
  },
49
49
  "dependencies": {
50
50
  "@clack/prompts": "^0.9.1",
@@ -1,43 +0,0 @@
1
- # .codex/codex.yaml — Forge v2 hooks para Codex CLI
2
- #
3
- # Generar con: cp adapters/codex/hooks/codex.yaml.tpl .codex/codex.yaml
4
- # O usar: bash scripts/setup-codex.sh
5
- #
6
- # SOPORTE DE HOOKS EN CODEX CLI (estado a 2025):
7
- # onStart — se ejecuta al inicio de cada sesión de Codex. Equivalente
8
- # al hook SessionStart / UserPromptSubmit de Claude Code.
9
- # onFinish — se ejecuta al finalizar cada sesión de Codex. Equivalente
10
- # al hook Stop de Claude Code.
11
- # onDiff — se ejecuta cuando Codex aplica cambios al filesystem.
12
- # No tiene equivalente directo en Claude Code.
13
- #
14
- # NO SOPORTADO en Codex CLI (a diferencia de Claude Code):
15
- # - PreToolUse: Codex no puede interceptar herramientas individuales
16
- # antes de ejecutarlas. Las reglas de pre-bash-check.py y
17
- # pre-edit-check.py NO tienen equivalente automático en Codex.
18
- # Esas reglas están embebidas en AGENTS.md como instrucciones de texto
19
- # para que el agente las respete voluntariamente.
20
- # - PostToolUse: tampoco soportado.
21
- #
22
- # IMPLICACIÓN: La capa de seguridad de Codex es instruccional (AGENTS.md),
23
- # no mecánica (hooks que bloquean). Para proyectos de alto riesgo, preferir
24
- # Claude Code que sí puede bloquear comandos destructivos antes de ejecutarlos.
25
-
26
- model: o4-mini # Cambiar según preferencia: o4-mini | o3 | gpt-4o
27
-
28
- hooks:
29
- # Ejecutado al inicio de cada sesión.
30
- # Equivalent: Claude Code SessionStart / UserPromptSubmit hook.
31
- # Verifica herramientas disponibles, branch, cambios sin commitear,
32
- # project.yaml y variables de entorno de producción activas.
33
- onStart: bash .codex/forge-codex-start.sh
34
-
35
- # Ejecutado al finalizar cada sesión.
36
- # Equivalent: Claude Code Stop hook (post-turn-check.sh).
37
- # Detecta archivos modificados y corre type-check / syntax-check.
38
- onFinish: bash .codex/forge-codex-finish.sh
39
-
40
- # onDiff: no configurado por defecto.
41
- # Se puede usar para correr linters en los archivos cambiados.
42
- # Ejemplo: onDiff: bash -c 'echo "$CODEX_DIFF_FILES" | xargs eslint --fix'
43
- # onDiff: ""
@@ -1,158 +0,0 @@
1
- #!/usr/bin/env bash
2
- # Forge v2 — Codex onFinish hook: forge-codex-finish.sh
3
- #
4
- # Se ejecuta al finalizar cada sesión de Codex CLI.
5
- # Equivalente al hook post-turn-check.sh de Claude Code (Stop event).
6
- #
7
- # DIFERENCIAS vs Claude Code:
8
- # - Claude Code: post-turn-check.sh corre después de CADA turno del agente.
9
- # - Codex CLI: forge-codex-finish.sh corre al FINALIZAR la sesión completa,
10
- # no después de cada mensaje individual. Codex no tiene un equivalente
11
- # granular de "Stop por turno".
12
- # - Claude Code Stop hook: puede imprimir al contexto del agente (el output
13
- # se muestra como resultado del hook).
14
- # - Codex CLI onFinish: el output se muestra en la terminal del usuario,
15
- # pero puede no ser visible en el contexto del agente dependiendo de la
16
- # versión de Codex.
17
- #
18
- # LIMITACIONES de Codex vs Claude Code:
19
- # - No hay PreToolUse/PostToolUse hooks para interceptar herramientas individuales.
20
- # - Los checks de este script son post-sesión, no post-turno.
21
- #
22
- # Instalación: este script debe copiarse o enlazarse en .codex/forge-codex-finish.sh
23
- # El setup-codex.sh lo hace automáticamente.
24
-
25
- set -uo pipefail
26
-
27
- # ---------------------------------------------------------------------------
28
- # Step 1 — Find modified files
29
- # ---------------------------------------------------------------------------
30
- MODIFIED=$(git diff --name-only HEAD 2>/dev/null || echo "")
31
- STAGED=$(git diff --name-only --cached 2>/dev/null || echo "")
32
- ALL_CHANGED="$MODIFIED $STAGED"
33
-
34
- if [ -z "$(echo "$ALL_CHANGED" | tr -d '[:space:]')" ]; then
35
- exit 0
36
- fi
37
-
38
- # ---------------------------------------------------------------------------
39
- # Step 2 — Read project config
40
- # ---------------------------------------------------------------------------
41
- PKG_MGR=""
42
- CUSTOM_CHECK=""
43
-
44
- if [ -f "project.yaml" ]; then
45
- PKG_MGR=$(python3 -c "
46
- import yaml, sys
47
- try:
48
- d = yaml.safe_load(open('project.yaml'))
49
- print(d.get('stack', {}).get('package_manager', ''))
50
- except:
51
- print('')
52
- " 2>/dev/null || echo "")
53
-
54
- CUSTOM_CHECK=$(python3 -c "
55
- import yaml, sys
56
- try:
57
- d = yaml.safe_load(open('project.yaml'))
58
- print(d.get('scripts', {}).get('check', ''))
59
- except:
60
- print('')
61
- " 2>/dev/null || echo "")
62
- fi
63
-
64
- CHECK_OUTPUT=""
65
-
66
- # ---------------------------------------------------------------------------
67
- # Step 3 — Run checks
68
- # ---------------------------------------------------------------------------
69
-
70
- # Helper: check if any changed file matches a glob pattern
71
- files_matching() {
72
- local pattern="$1"
73
- echo "$ALL_CHANGED" | tr ' ' '\n' | grep -E "$pattern" 2>/dev/null || true
74
- }
75
-
76
- if [ -n "$CUSTOM_CHECK" ]; then
77
- # Run user-defined check command
78
- CHECK_OUTPUT=$(eval "$CUSTOM_CHECK" 2>&1 | head -20 || true)
79
-
80
- else
81
- # Auto-detect by file type
82
-
83
- # TypeScript / JavaScript
84
- TS_FILES=$(files_matching '\.(ts|tsx)$')
85
- if [ -n "$TS_FILES" ]; then
86
- if [ -f "turbo.json" ] && command -v pnpm &>/dev/null; then
87
- TSC_OUTPUT=$(pnpm turbo typecheck 2>&1 | head -20 || pnpm tsc --noEmit 2>&1 | head -20 || true)
88
- elif command -v pnpm &>/dev/null; then
89
- TSC_OUTPUT=$(pnpm tsc --noEmit 2>&1 | head -20 || true)
90
- elif command -v npx &>/dev/null; then
91
- TSC_OUTPUT=$(npx tsc --noEmit 2>&1 | head -20 || true)
92
- else
93
- TSC_OUTPUT=""
94
- fi
95
- if [ -n "${TSC_OUTPUT:-}" ]; then
96
- CHECK_OUTPUT="${CHECK_OUTPUT:+$CHECK_OUTPUT$'\n'}[tsc] $TSC_OUTPUT"
97
- fi
98
- fi
99
-
100
- # PHP
101
- PHP_FILES=$(files_matching '\.php$')
102
- if [ -n "$PHP_FILES" ] && [ -f "composer.json" ]; then
103
- if command -v composer &>/dev/null; then
104
- PHP_OUTPUT=$(composer validate --no-check-publish 2>&1 | head -10 || true)
105
- if [ -n "$PHP_OUTPUT" ]; then
106
- CHECK_OUTPUT="${CHECK_OUTPUT:+$CHECK_OUTPUT$'\n'}[composer] $PHP_OUTPUT"
107
- fi
108
- fi
109
- fi
110
-
111
- # Python
112
- PY_FILES=$(files_matching '\.py$')
113
- if [ -n "$PY_FILES" ]; then
114
- PY_OUTPUT=""
115
- while IFS= read -r f; do
116
- [ -z "$f" ] && continue
117
- [ -f "$f" ] || continue
118
- RESULT=$(python3 -m py_compile "$f" 2>&1 || true)
119
- if [ -n "$RESULT" ]; then
120
- PY_OUTPUT="${PY_OUTPUT:+$PY_OUTPUT$'\n'}$f: $RESULT"
121
- fi
122
- done <<< "$PY_FILES"
123
- if [ -n "$PY_OUTPUT" ]; then
124
- CHECK_OUTPUT="${CHECK_OUTPUT:+$CHECK_OUTPUT$'\n'}[python] $PY_OUTPUT"
125
- fi
126
- fi
127
-
128
- # Ruby
129
- RB_FILES=$(files_matching '\.rb$')
130
- if [ -n "$RB_FILES" ] && [ -f "Gemfile" ]; then
131
- RB_OUTPUT=""
132
- if command -v bundle &>/dev/null; then
133
- while IFS= read -r f; do
134
- [ -z "$f" ] && continue
135
- [ -f "$f" ] || continue
136
- RESULT=$(bundle exec ruby -c "$f" 2>&1 | head -10 || true)
137
- if [ -n "$RESULT" ]; then
138
- RB_OUTPUT="${RB_OUTPUT:+$RB_OUTPUT$'\n'}$f: $RESULT"
139
- fi
140
- done <<< "$RB_FILES"
141
- fi
142
- if [ -n "$RB_OUTPUT" ]; then
143
- CHECK_OUTPUT="${CHECK_OUTPUT:+$CHECK_OUTPUT$'\n'}[ruby] $RB_OUTPUT"
144
- fi
145
- fi
146
- fi
147
-
148
- # ---------------------------------------------------------------------------
149
- # Step 4 — Report
150
- # ---------------------------------------------------------------------------
151
- if [ -n "$CHECK_OUTPUT" ]; then
152
- echo "── Forge Codex post-session check ───────────"
153
- echo "$CHECK_OUTPUT"
154
- echo "─────────────────────────────────────────────"
155
- fi
156
-
157
- # Siempre exit 0 — este hook nunca bloquea.
158
- exit 0