chati-dev 4.5.4 → 4.5.5

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
@@ -67,15 +67,14 @@ Open a terminal in your project directory:
67
67
  npx chati-dev init
68
68
  ```
69
69
 
70
- The wizard guides you through 4 steps:
70
+ The wizard guides you through these steps:
71
71
 
72
72
  | Step | What it asks |
73
73
  |------|-------------|
74
74
  | **Language** | English, Portuguese, Spanish, or French |
75
75
  | **Project Type** | Greenfield (new) or Brownfield (existing) |
76
- | **AI Providers** | Select any combination of Claude, Codex, and Grok |
77
- | **Primary Harness and Models** | Choose the main CLI and the exact signed-catalog models the project may use |
78
- | **Execution Profile** | Standard, or Focus AI internal with mandatory ClickUp tracking and completion metrics |
76
+ | **AI Providers** | Select any combination of Claude, Codex, and Grok; models are routed automatically within this provider pool |
77
+ | **Installation Mode** | Open public framework, or Internal with an authorized license and required company integrations |
79
78
  | **Confirm** | Review summary and proceed |
80
79
 
81
80
  ### 2. Activate the orchestrator
@@ -1,8 +1,8 @@
1
1
  # chati.dev Configuration
2
- version: "4.5.4"
2
+ version: "4.5.5"
3
3
  installed_at: "2026-02-07T10:00:00Z"
4
- updated_at: "2026-06-11T00:00:00Z"
5
- installer_version: "4.5.4"
4
+ updated_at: "2026-08-27T00:00:00Z"
5
+ installer_version: "4.5.5"
6
6
  project_type: greenfield
7
7
  language: en
8
8
  ides: [claude-code]
@@ -1,7 +1,7 @@
1
1
  # Chati.dev System Context
2
2
 
3
3
  ## Framework
4
- - **Version**: 4.5.4
4
+ - **Version**: 4.5.5
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)
@@ -1,5 +1,5 @@
1
1
  {
2
- "createdAt": "2026-08-27T07:55:29.821Z",
2
+ "createdAt": "2026-08-27T08:47:47.618Z",
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": "c031e5565adc3a1dcbfd2534e20b486fd9563158a36d10e2b1f2f73874eb76f4",
100
+ "hash": "46c9b387f94306f10f2d997d4434ee2dbf1d61f33ea5dc8dd3fec4222d4600a5",
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": "046ff16a4973c4d73d186849bd734914d6b90a9864d5bd41f435991b7004c8b2",
125
+ "hash": "833b0c98763b9d6b6418c33ca2b8333a67bb1ef177c71a9e58cc1c7b0ac2059c",
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.4"
1350
+ "version": "4.5.5"
1351
1351
  }
@@ -1 +1 @@
1
- 8t69CRtft7FLT0qSIiCVC7zuHbWVEVXvYtQTxm9B6/Ln3+J5UC0rlzl3mI69qD2P8tZPUNyCbdaWfLbwSyVaBw==
1
+ XENxdEvoK5ATS/SOccXjzQKNM31wPtbN4KdEjNsp8aZvUGdCU2OKZPDJUh1vFC+i4ZvElD0DSFR17EPrYkmPAw==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chati-dev",
3
- "version": "4.5.4",
3
+ "version": "4.5.5",
4
4
  "description": "AI-Powered Multi-Agent Orchestration System - Structured vibe coding for Full Stack Development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "catalog": {
3
- "snapshot_id": "chati-model-catalog-2026-08-27",
3
+ "snapshot_id": "chati-model-catalog-2026-08-27-v2",
4
4
  "published_at": "2026-08-27T00:00:00.000Z",
5
5
  "expires_at": "2026-11-25T00:00:00.000Z",
6
6
  "models": [
7
7
  {
8
8
  "provider_id": "anthropic",
9
- "model_id": "fable",
9
+ "model_id": "claude-fable-5",
10
10
  "actions": [
11
11
  "discovery",
12
12
  "planning",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  {
33
33
  "provider_id": "anthropic",
34
- "model_id": "claude-opus-4-8",
34
+ "model_id": "claude-opus-5",
35
35
  "actions": [
36
36
  "discovery",
37
37
  "planning",
@@ -122,7 +122,7 @@
122
122
  },
123
123
  {
124
124
  "provider_id": "openai",
125
- "model_id": "terra",
125
+ "model_id": "gpt-5.6-terra",
126
126
  "actions": [
127
127
  "discovery",
128
128
  "planning",
@@ -146,7 +146,7 @@
146
146
  },
147
147
  {
148
148
  "provider_id": "openai",
149
- "model_id": "luna",
149
+ "model_id": "gpt-5.6-luna",
150
150
  "actions": [
151
151
  "discovery",
152
152
  "planning",
@@ -163,21 +163,6 @@
163
163
  },
164
164
  "adjudication_priority": 30
165
165
  },
166
- {
167
- "provider_id": "openai",
168
- "model_id": "nano",
169
- "actions": [
170
- "discovery",
171
- "build"
172
- ],
173
- "tier": "utility",
174
- "natural_role": "classification, extraction and cleanup",
175
- "routing_priority": {
176
- "discovery": 35,
177
- "build": 40
178
- },
179
- "adjudication_priority": 5
180
- },
181
166
  {
182
167
  "provider_id": "xai",
183
168
  "model_id": "grok-4.6",
@@ -223,56 +208,8 @@
223
208
  },
224
209
  "adjudication_priority": 70,
225
210
  "highest_reasoning_configuration": "xhigh"
226
- },
227
- {
228
- "provider_id": "xai",
229
- "model_id": "grok-4.3",
230
- "actions": [
231
- "discovery",
232
- "planning",
233
- "build",
234
- "review"
235
- ],
236
- "tier": "worker",
237
- "natural_role": "cost-efficient parallel execution",
238
- "routing_priority": {
239
- "discovery": 65,
240
- "planning": 60,
241
- "build": 78,
242
- "review": 60
243
- },
244
- "adjudication_priority": 35
245
- },
246
- {
247
- "provider_id": "xai",
248
- "model_id": "grok-4.20",
249
- "actions": [
250
- "discovery",
251
- "build"
252
- ],
253
- "tier": "worker",
254
- "natural_role": "high-volume structured tasks",
255
- "routing_priority": {
256
- "discovery": 55,
257
- "build": 70
258
- },
259
- "adjudication_priority": 20
260
- },
261
- {
262
- "provider_id": "xai",
263
- "model_id": "grok-build-0.1",
264
- "actions": [
265
- "build"
266
- ],
267
- "tier": "specialist",
268
- "natural_role": "speed-first implementation in Grok Build",
269
- "routing_priority": {
270
- "build": 90,
271
- "dev": 92
272
- },
273
- "adjudication_priority": 10
274
211
  }
275
212
  ]
276
213
  },
277
- "signature": "rNiDCOiVFtrfGUrQWXw3dqR1cYAh/xZElyt0AfLXjhgykWzcw4o0NygK0ciHNXMDwhJUqhsp5fKIPpwli/YdDA=="
214
+ "signature": "trEytAQJkukerJTwpNvEQ4UO49b+Yth5jtuYNy9WXVSBvKpJCmfuv3tBWyhNgwYG9w3/oKpKDJqJQwIb/oiMAQ=="
278
215
  }
@@ -1,11 +1,11 @@
1
1
  {
2
- "snapshot_id": "chati-model-catalog-2026-08-27",
2
+ "snapshot_id": "chati-model-catalog-2026-08-27-v2",
3
3
  "published_at": "2026-08-27T00:00:00.000Z",
4
4
  "expires_at": "2026-11-25T00:00:00.000Z",
5
5
  "models": [
6
6
  {
7
7
  "provider_id": "anthropic",
8
- "model_id": "fable",
8
+ "model_id": "claude-fable-5",
9
9
  "actions": ["discovery", "planning", "build", "review", "adjudication"],
10
10
  "tier": "frontier",
11
11
  "natural_role": "architecture and design",
@@ -15,7 +15,7 @@
15
15
  },
16
16
  {
17
17
  "provider_id": "anthropic",
18
- "model_id": "claude-opus-4-8",
18
+ "model_id": "claude-opus-5",
19
19
  "actions": ["discovery", "planning", "build", "review", "adjudication"],
20
20
  "tier": "frontier",
21
21
  "natural_role": "quality rules and judgment-heavy work",
@@ -53,7 +53,7 @@
53
53
  },
54
54
  {
55
55
  "provider_id": "openai",
56
- "model_id": "terra",
56
+ "model_id": "gpt-5.6-terra",
57
57
  "actions": ["discovery", "planning", "build", "review", "adjudication"],
58
58
  "tier": "workhorse",
59
59
  "natural_role": "scoped implementation and efficient review",
@@ -63,22 +63,13 @@
63
63
  },
64
64
  {
65
65
  "provider_id": "openai",
66
- "model_id": "luna",
66
+ "model_id": "gpt-5.6-luna",
67
67
  "actions": ["discovery", "planning", "build", "review"],
68
68
  "tier": "worker",
69
69
  "natural_role": "low-cost workers and routine tasks",
70
70
  "routing_priority": { "discovery": 60, "planning": 55, "build": 72, "review": 60 },
71
71
  "adjudication_priority": 30
72
72
  },
73
- {
74
- "provider_id": "openai",
75
- "model_id": "nano",
76
- "actions": ["discovery", "build"],
77
- "tier": "utility",
78
- "natural_role": "classification, extraction and cleanup",
79
- "routing_priority": { "discovery": 35, "build": 40 },
80
- "adjudication_priority": 5
81
- },
82
73
  {
83
74
  "provider_id": "xai",
84
75
  "model_id": "grok-4.6",
@@ -98,33 +89,6 @@
98
89
  "routing_priority": { "discovery": 82, "planning": 84, "build": 98, "review": 82, "adjudication": 70, "dev": 98 },
99
90
  "adjudication_priority": 70,
100
91
  "highest_reasoning_configuration": "xhigh"
101
- },
102
- {
103
- "provider_id": "xai",
104
- "model_id": "grok-4.3",
105
- "actions": ["discovery", "planning", "build", "review"],
106
- "tier": "worker",
107
- "natural_role": "cost-efficient parallel execution",
108
- "routing_priority": { "discovery": 65, "planning": 60, "build": 78, "review": 60 },
109
- "adjudication_priority": 35
110
- },
111
- {
112
- "provider_id": "xai",
113
- "model_id": "grok-4.20",
114
- "actions": ["discovery", "build"],
115
- "tier": "worker",
116
- "natural_role": "high-volume structured tasks",
117
- "routing_priority": { "discovery": 55, "build": 70 },
118
- "adjudication_priority": 20
119
- },
120
- {
121
- "provider_id": "xai",
122
- "model_id": "grok-build-0.1",
123
- "actions": ["build"],
124
- "tier": "specialist",
125
- "natural_role": "speed-first implementation in Grok Build",
126
- "routing_priority": { "build": 90, "dev": 92 },
127
- "adjudication_priority": 10
128
92
  }
129
93
  ]
130
94
  }
@@ -1 +1 @@
1
- rNiDCOiVFtrfGUrQWXw3dqR1cYAh/xZElyt0AfLXjhgykWzcw4o0NygK0ciHNXMDwhJUqhsp5fKIPpwli/YdDA==
1
+ trEytAQJkukerJTwpNvEQ4UO49b+Yth5jtuYNy9WXVSBvKpJCmfuv3tBWyhNgwYG9w3/oKpKDJqJQwIb/oiMAQ==
@@ -1,7 +1,7 @@
1
1
  import { sha256 } from '@chati/core';
2
2
 
3
3
  const PROVIDER_BINDINGS = Object.freeze({
4
- claude: Object.freeze({ provider_id: 'anthropic', harness_id: 'claude', default_model: 'fable' }),
4
+ claude: Object.freeze({ provider_id: 'anthropic', harness_id: 'claude', default_model: 'claude-fable-5' }),
5
5
  codex: Object.freeze({ provider_id: 'openai', harness_id: 'codex', default_model: 'gpt-5.6-sol' }),
6
6
  grok: Object.freeze({ provider_id: 'xai', harness_id: 'grok', default_model: 'grok-4.6' }),
7
7
  });
@@ -3,7 +3,7 @@ import { existsSync, readFileSync } from 'fs';
3
3
  import { join, dirname, basename } from 'path';
4
4
  import { fileURLToPath } from 'url';
5
5
  import { logBanner } from '../utils/logger.js';
6
- import { WIZARD_BACK, stepLanguage, stepProjectType, stepProviderSelection, stepEditorSelection, stepModelSelection, stepInstallationMode, stepConfirmation, stepTermsOfUse } from './questions.js';
6
+ import { WIZARD_BACK, stepLanguage, stepProjectType, stepProviderSelection, stepInstallationMode, stepConfirmation, stepTermsOfUse } from './questions.js';
7
7
  import { createSpinner, showStep, showValidation, showQuickStart } from './feedback.js';
8
8
  import { installFramework } from '../installer/core.js';
9
9
  import { INSTALLATION_ARTIFACT_PATH, dryRunV2, installV2, reconfigureV2 } from '../installer-v2/index.js';
@@ -72,18 +72,19 @@ export async function runWizard(targetDir, options = {}) {
72
72
  let catalogResolution;
73
73
  let modelSelections;
74
74
  let installationMode;
75
- let selectedEditors;
75
+ // Editor rule files are a legacy programmatic integration. The interactive
76
+ // installer configures provider CLIs only, which are the actual runtimes.
77
+ const selectedEditors = options.editors || [];
76
78
  let config;
77
79
  let v2InstallationInput;
78
80
  let stage = 'project';
79
81
 
80
- const stageOrder = ['language', 'project', 'providers', 'mode', 'editors', 'confirm'];
82
+ const stageOrder = ['language', 'project', 'providers', 'mode', 'confirm'];
81
83
  const optionKey = {
82
84
  language: 'language',
83
85
  project: 'projectType',
84
86
  providers: 'providers',
85
87
  mode: 'installationMode',
86
- editors: 'editors',
87
88
  };
88
89
  const previousInteractiveStage = (current) => {
89
90
  for (let index = stageOrder.indexOf(current) - 1; index >= 0; index -= 1) {
@@ -127,9 +128,9 @@ export async function runWizard(targetDir, options = {}) {
127
128
  catalogResolution ??= options.signedCapabilityCatalogEnvelope
128
129
  ? { source: 'provided-signed', catalog: verifySignedCapabilityCatalog(options.signedCapabilityCatalogEnvelope, { publicKeyPem: options.catalogPublicKeyPem }) }
129
130
  : await resolveCapabilityCatalog({ projectDir: targetDir, catalogUrl: options.catalogUrl, fetchImpl: options.catalogFetch });
130
- modelSelections = options.modelSelections !== undefined
131
- ? options.modelSelections
132
- : await stepModelSelection(selectedProviders, catalogResolution.catalog);
131
+ // Provider selection defines the permitted routing pool. Model discovery
132
+ // and task-specific choice stay inside the control plane.
133
+ modelSelections = options.modelSelections;
133
134
  stage = 'mode';
134
135
  continue;
135
136
  }
@@ -152,19 +153,6 @@ export async function runWizard(targetDir, options = {}) {
152
153
  continue;
153
154
  }
154
155
  }
155
- stage = 'editors';
156
- continue;
157
- }
158
-
159
- if (stage === 'editors') {
160
- const value = options.editors !== undefined
161
- ? options.editors
162
- : await stepEditorSelection({ allowBack: previousInteractiveStage('editors') !== null });
163
- if (value === WIZARD_BACK) {
164
- stage = previousInteractiveStage('editors');
165
- continue;
166
- }
167
- selectedEditors = value;
168
156
  stage = 'confirm';
169
157
  continue;
170
158
  }
@@ -244,16 +244,12 @@ export async function stepIDESelection() {
244
244
  */
245
245
  export async function stepModelSelection(providers, capabilityCatalog) {
246
246
  const selections = {};
247
- const summary = [];
248
247
 
249
248
  for (const provider of providers) {
250
249
  const models = wizardModelSuggestions(provider, capabilityCatalog);
251
250
  selections[provider] = [...models];
252
- summary.push(`${PROVIDER_DISPLAY_NAMES[provider] || provider}: ${models.join(', ')}`);
253
251
  }
254
252
 
255
- p.note(summary.join('\n'), t('installer.model_routing_label'));
256
-
257
253
  return selections;
258
254
  }
259
255
 
@@ -282,7 +278,6 @@ export async function stepConfirmation(config, { allowBack = false } = {}) {
282
278
  [t('installer.project_label')]: `${projectName} (${projectType === 'greenfield' ? 'Greenfield' : 'Brownfield'})`,
283
279
  [t('installer.language_label')]: langName,
284
280
  [t('installer.providers_label')]: providersDisplay,
285
- [t('installer.model_routing_label')]: t('installer.model_routing_automatic'),
286
281
  [t('installer.installation_mode_label')]: installationMode === 'internal'
287
282
  ? t('installer.installation_mode_internal')
288
283
  : t('installer.installation_mode_open'),