chati-dev 4.5.2 → 4.5.3
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/framework/config.yaml +2 -2
- package/framework/context/root.md +1 -1
- package/framework/manifest.json +4 -4
- package/framework/manifest.sig +1 -1
- package/package.json +1 -1
- package/src/config/framework-adapter.js +5 -0
- package/src/installer/core.js +13 -1
- package/src/installer/templates.js +34 -0
- package/src/wizard/feedback.js +1 -1
- package/src/wizard/index.js +1 -0
package/framework/config.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Chati.dev System Context
|
|
2
2
|
|
|
3
3
|
## Framework
|
|
4
|
-
- **Version**: 4.5.
|
|
4
|
+
- **Version**: 4.5.3
|
|
5
5
|
- **Agents**: Specialized discovery and planning agents feeding provider-neutral RAIL execution and a sealed release lane
|
|
6
6
|
- **Constitution**: 25 Articles + Preamble
|
|
7
7
|
- **Quality**: 5 pipeline gates + 3-tier verdicts + Fault Vector Protocol (Article XXII)
|
package/framework/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"createdAt": "2026-08-27T07:
|
|
2
|
+
"createdAt": "2026-08-27T07:35:51.100Z",
|
|
3
3
|
"files": {
|
|
4
4
|
"agents/build/dev.md": {
|
|
5
5
|
"hash": "5c8da2eee3357bbe84a6c468c76fe60a0c77357575503c3797aa94128282c565",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"type": "md"
|
|
98
98
|
},
|
|
99
99
|
"config.yaml": {
|
|
100
|
-
"hash": "
|
|
100
|
+
"hash": "49815a639e15886001dbcd8fcf778212e29b28dc14e960cbce1e6bef9cf60c0e",
|
|
101
101
|
"size": 2841,
|
|
102
102
|
"type": "yaml"
|
|
103
103
|
},
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
"type": "md"
|
|
123
123
|
},
|
|
124
124
|
"context/root.md": {
|
|
125
|
-
"hash": "
|
|
125
|
+
"hash": "51499195d5281ee92d6414f65c7847fda86cf4a4faea006403f5b1d5b6a575ad",
|
|
126
126
|
"size": 1217,
|
|
127
127
|
"type": "md"
|
|
128
128
|
},
|
|
@@ -1347,5 +1347,5 @@
|
|
|
1347
1347
|
"type": "yaml"
|
|
1348
1348
|
}
|
|
1349
1349
|
},
|
|
1350
|
-
"version": "4.5.
|
|
1350
|
+
"version": "4.5.3"
|
|
1351
1351
|
}
|
package/framework/manifest.sig
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
6nwMwMBZREoj26RzRPuaKZahTh6Vxi/THZcqOmJpLZ+F07b60aSvXLp6vVyRDPnCw6XizfMHx81hdg0iQzcVDw==
|
package/package.json
CHANGED
|
@@ -58,6 +58,11 @@ const PROVIDER_META = {
|
|
|
58
58
|
contextFile: 'AGENTS.md',
|
|
59
59
|
localFile: 'AGENTS.override.md',
|
|
60
60
|
},
|
|
61
|
+
grok: {
|
|
62
|
+
cliName: 'Grok CLI',
|
|
63
|
+
contextFile: 'AGENTS.md',
|
|
64
|
+
localFile: '.grok/session-lock.md',
|
|
65
|
+
},
|
|
61
66
|
};
|
|
62
67
|
|
|
63
68
|
// ---------------------------------------------------------------------------
|
package/src/installer/core.js
CHANGED
|
@@ -4,7 +4,7 @@ import { fileURLToPath } from 'url';
|
|
|
4
4
|
import { createRequire } from 'module';
|
|
5
5
|
import { IDE_CONFIGS, IDE_TO_PROVIDER } from '../config/ide-configs.js';
|
|
6
6
|
import { generateClaudeMCPConfig } from '../config/mcp-configs.js';
|
|
7
|
-
import { generateSessionYaml, generateConfigYaml, generateClaudeMd, generateClaudeLocalMd, generateCodexSkill, generateGeminiRouter, generateGeminiSessionLock, generateAgentsOverrideMd, generateCodexConstitutionGuardRules, generateCodexReadProtectionRules } from './templates.js';
|
|
7
|
+
import { generateSessionYaml, generateConfigYaml, generateClaudeMd, generateClaudeLocalMd, generateCodexSkill, generateGeminiRouter, generateGrokRouter, generateGeminiSessionLock, generateAgentsOverrideMd, generateCodexConstitutionGuardRules, generateCodexReadProtectionRules } from './templates.js';
|
|
8
8
|
import { generateContextFiles } from '../config/context-file-generator.js';
|
|
9
9
|
import { adaptFrameworkFile, ADAPTABLE_FILES } from '../config/framework-adapter.js';
|
|
10
10
|
import { generateClaudeSettings } from '../config/claude-settings-generator.js';
|
|
@@ -487,6 +487,9 @@ Parse the JSON output. This single command already handled: license validation,
|
|
|
487
487
|
writeFileSync(join(geminiHooksDir, filename), hookContent, 'utf-8');
|
|
488
488
|
}
|
|
489
489
|
writeFileSync(join(targetDir, '.gemini', 'settings.json'), generateGeminiSettings(), 'utf-8');
|
|
490
|
+
} else if (ideKey === 'grok-cli') {
|
|
491
|
+
writeFileSync(join(targetDir, '.grok', 'commands', 'chati.md'), generateGrokRouter({ orchestratorPath }), 'utf-8');
|
|
492
|
+
writeFileSync(join(targetDir, '.grok', 'session-lock.md'), generateClaudeLocalMd(), 'utf-8');
|
|
490
493
|
} else {
|
|
491
494
|
// VS Code, Cursor, AntiGravity — generic rules file
|
|
492
495
|
if (config.rulesFile) {
|
|
@@ -591,6 +594,15 @@ export function updateGitignore(targetDir, selectedIDEs) {
|
|
|
591
594
|
);
|
|
592
595
|
}
|
|
593
596
|
|
|
597
|
+
if (selectedIDEs.includes('grok-cli')) {
|
|
598
|
+
block.push(
|
|
599
|
+
'',
|
|
600
|
+
'# Grok provider framework files',
|
|
601
|
+
'.grok/commands/',
|
|
602
|
+
'.grok/session-lock.md',
|
|
603
|
+
);
|
|
604
|
+
}
|
|
605
|
+
|
|
594
606
|
block.push('', END_MARKER);
|
|
595
607
|
|
|
596
608
|
const newBlock = block.join('\n');
|
|
@@ -94,6 +94,15 @@ export const PROVIDER_MODEL_MAPS = {
|
|
|
94
94
|
dev: 'codex', 'qa-implementation': 'codex', 'qa-visual': 'codex', devops: 'mini',
|
|
95
95
|
},
|
|
96
96
|
},
|
|
97
|
+
grok: {
|
|
98
|
+
deep: 'grok-4.6', light: 'grok-4.5', minimal: 'grok-4.3',
|
|
99
|
+
agents: {
|
|
100
|
+
orchestrator: 'grok-4.5', 'greenfield-wu': 'grok-4.3', 'brownfield-wu': 'grok-4.6',
|
|
101
|
+
brief: 'grok-4.5', detail: 'grok-4.6', architect: 'grok-4.6', ux: 'grok-4.5',
|
|
102
|
+
phases: 'grok-4.5', tasks: 'grok-4.5', 'qa-planning': 'grok-4.6',
|
|
103
|
+
dev: 'grok-4.6', 'qa-implementation': 'grok-4.6', 'qa-visual': 'grok-4.6', devops: 'grok-4.5',
|
|
104
|
+
},
|
|
105
|
+
},
|
|
97
106
|
};
|
|
98
107
|
|
|
99
108
|
/**
|
|
@@ -267,6 +276,31 @@ User input: {{args}}
|
|
|
267
276
|
`;
|
|
268
277
|
}
|
|
269
278
|
|
|
279
|
+
/**
|
|
280
|
+
* Generate Grok CLI native markdown command (.grok/commands/chati.md).
|
|
281
|
+
*/
|
|
282
|
+
export function generateGrokRouter(options = {}) {
|
|
283
|
+
const orchPath = options.orchestratorPath || '.chati.dev/orchestrator/chati.md';
|
|
284
|
+
return `# Chati.dev Orchestrator
|
|
285
|
+
|
|
286
|
+
Read \`.chati/session.yaml\` and use its \`language\` for every response.
|
|
287
|
+
If the field is absent, default to English.
|
|
288
|
+
|
|
289
|
+
The orchestrator and agent files are pre-configured for Grok CLI. Read and
|
|
290
|
+
execute the full orchestrator at \`${orchPath}\`.
|
|
291
|
+
|
|
292
|
+
Load this context:
|
|
293
|
+
- \`.chati/session.yaml\`
|
|
294
|
+
- \`AGENTS.md\`
|
|
295
|
+
- \`artifacts/handoffs/\`
|
|
296
|
+
- \`.chati.dev/config.yaml\`
|
|
297
|
+
|
|
298
|
+
Never create or reference \`CLAUDE.md\`, \`CLAUDE.local.md\`, or \`.claude/\`.
|
|
299
|
+
|
|
300
|
+
User input: $ARGUMENTS
|
|
301
|
+
`;
|
|
302
|
+
}
|
|
303
|
+
|
|
270
304
|
/**
|
|
271
305
|
* Generate CLAUDE.local.md content (runtime state — auto-gitignored, never committed)
|
|
272
306
|
*/
|
package/src/wizard/feedback.js
CHANGED
|
@@ -50,7 +50,7 @@ export function showQuickStart(title, steps) {
|
|
|
50
50
|
console.log(` ${dim(`${i + 1}.`)} ${step}`);
|
|
51
51
|
});
|
|
52
52
|
console.log();
|
|
53
|
-
console.log(`${dim('Documentation:')} chati.dev/constitution.md`);
|
|
53
|
+
console.log(`${dim('Documentation:')} .chati.dev/constitution.md`);
|
|
54
54
|
console.log(`${dim('Session:')} .chati/session.yaml`);
|
|
55
55
|
}
|
|
56
56
|
|
package/src/wizard/index.js
CHANGED
|
@@ -158,6 +158,7 @@ export async function runWizard(targetDir, options = {}) {
|
|
|
158
158
|
'claude-code': 'Created .claude/commands/ (thin router)',
|
|
159
159
|
'gemini-cli': 'Created .gemini/commands/ (TOML command)',
|
|
160
160
|
'codex-cli': 'Created .agents/skills/chati/ (Codex skill)',
|
|
161
|
+
'grok-cli': 'Created .grok/commands/ (native markdown command)',
|
|
161
162
|
};
|
|
162
163
|
for (const cliIDE of selectedCLIIDEs) {
|
|
163
164
|
showStep(commandStepMap[cliIDE] || t('installer.created_commands'));
|