chati-dev 3.2.2 → 3.2.4

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 CHANGED
@@ -133,7 +133,7 @@ The system saves your full session state — pipeline position, current agent, d
133
133
  | **Session Lock** | Once activated, you stay inside the system. No accidentally "falling out" into generic AI mode |
134
134
  | **Multi-Terminal** | Autonomous agents run in parallel in separate terminals. Detail, Architect, and UX agents work simultaneously |
135
135
  | **Memory System** | The system learns from mistakes. Gotchas are captured automatically and recalled when relevant |
136
- | **Execution Profiles** | Three profiles — explore (read-only), guided (default), autonomous (gate >= 90%) — with safety net and circuit breaker |
136
+ | **Execution Profiles** | Three profiles — explore (read-only), guided (default), autonomous (gate >= 95%) — with safety net and circuit breaker |
137
137
  | **IDE-Agnostic** | Works with Claude Code, VS Code, Cursor, Gemini CLI, Codex CLI, and AntiGravity |
138
138
  | **4 Languages** | Interface supports English, Portuguese, Spanish, and French. Artifacts are always generated in English |
139
139
  | **Supply Chain Security** | Every file is cryptographically signed (Ed25519). Tampered packages are blocked on install |
@@ -189,7 +189,7 @@ Three profiles control how much autonomy agents have:
189
189
  |---------|----------|-------------|
190
190
  | **explore** | Read-only. Agents analyze but don't modify files | Understanding a new codebase |
191
191
  | **guided** | Default. Agents propose changes, you approve | Normal development workflow |
192
- | **autonomous** | Agents execute without confirmation (quality gates >= 90%) | Trusted pipelines with high quality scores |
192
+ | **autonomous** | Agents execute without confirmation (quality gates >= 95%) | Trusted pipelines with high quality scores |
193
193
 
194
194
  The system starts in `guided` mode. Transition to `autonomous` requires both QA gates scoring >= 95%. A safety net with 5 triggers (stuck loop, quality drop, scope creep, error cascade, user override) automatically reverts to guided mode when needed.
195
195
 
@@ -418,9 +418,9 @@ The installer and agent interactions support 4 languages:
418
418
  | Language | Code | Status |
419
419
  |----------|------|--------|
420
420
  | **English** | `en` | Default |
421
- | **Portugues** | `pt` | Full support |
422
- | **Espanol** | `es` | Full support |
423
- | **Francais** | `fr` | Full support |
421
+ | **Português** | `pt` | Full support |
422
+ | **Español** | `es` | Full support |
423
+ | **Français** | `fr` | Full support |
424
424
 
425
425
  Artifacts are always generated in English for portability and team collaboration.
426
426
 
@@ -1,8 +1,8 @@
1
1
  # chati.dev Configuration
2
- version: "3.2.2"
2
+ version: "3.2.4"
3
3
  installed_at: "2026-02-07T10:00:00Z"
4
4
  updated_at: "2026-02-20T00:00:00Z"
5
- installer_version: "3.2.2"
5
+ installer_version: "3.2.4"
6
6
  project_type: greenfield
7
7
  language: en
8
8
  ides: [claude-code]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chati-dev",
3
- "version": "3.2.2",
3
+ "version": "3.2.4",
4
4
  "description": "AI-Powered Multi-Agent Orchestration System — Structured vibe coding for Full Stack Development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -103,11 +103,6 @@ function buildReplacementConfig(provider) {
103
103
  ['/model haiku', `/model ${minimal}`],
104
104
  ];
105
105
 
106
- // Codex CLI uses $chati for skill invocation, not /chati
107
- if (provider === 'codex') {
108
- strings.push(['/chati', '$chati']);
109
- }
110
-
111
106
  // --- Regex patterns for model names in structured contexts ---
112
107
  const patterns = [
113
108
  // Identity section: **Model**: opus | ...
@@ -175,6 +170,15 @@ function buildReplacementConfig(provider) {
175
170
  { pattern: /Update CLAUDE\.md/g, replacement: `Update ${contextFile}` },
176
171
  ];
177
172
 
173
+ // Codex CLI uses $chati for skill invocation, not /chati.
174
+ // Lookbehind prevents replacing /chati in file paths (e.g., orchestrator/chati.md).
175
+ if (provider === 'codex') {
176
+ patterns.push({
177
+ pattern: /(?<![/\w])\/chati/g,
178
+ replacement: '$$chati',
179
+ });
180
+ }
181
+
178
182
  return { strings, patterns };
179
183
  }
180
184
 
@@ -482,13 +482,39 @@ export function generateAllGeminiHooks() {
482
482
  /**
483
483
  * Generate .gemini/settings.json content with hook configuration.
484
484
  *
485
+ * Gemini CLI expects hooks as an object keyed by event name, where each
486
+ * event contains an array of hook groups. Each group has an optional
487
+ * `matcher` and a `hooks` array with `{ name, type, command }` entries.
488
+ *
485
489
  * @returns {string} JSON string for .gemini/settings.json
486
490
  */
487
491
  export function generateGeminiSettings() {
488
- const hooks = Object.entries(HOOK_MAP).map(([name, config]) => ({
489
- path: `.gemini/hooks/${name}.js`,
490
- event: config.event,
491
- }));
492
+ // Group hooks by event
493
+ const eventGroups = {};
494
+ for (const [name, config] of Object.entries(HOOK_MAP)) {
495
+ if (!eventGroups[config.event]) {
496
+ eventGroups[config.event] = [];
497
+ }
498
+ eventGroups[config.event].push({
499
+ name,
500
+ type: 'command',
501
+ command: `node .gemini/hooks/${name}.js`,
502
+ description: config.description,
503
+ });
504
+ }
505
+
506
+ // Build the settings object: each event → array of hook groups
507
+ const hooks = {};
508
+ for (const [event, hookList] of Object.entries(eventGroups)) {
509
+ // Tool events (BeforeTool) use matcher; lifecycle events don't
510
+ const isToolEvent = event.includes('Tool');
511
+ hooks[event] = [
512
+ {
513
+ ...(isToolEvent ? { matcher: '.*' } : {}),
514
+ hooks: hookList,
515
+ },
516
+ ];
517
+ }
492
518
 
493
519
  return JSON.stringify({ hooks }, null, 2) + '\n';
494
520
  }