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 +3 -4
- package/framework/config.yaml +3 -3
- 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/installer-v2/model-catalog-envelope.json +6 -69
- package/src/installer-v2/model-catalog.json +5 -41
- package/src/installer-v2/model-catalog.sig +1 -1
- package/src/installer-v2/wizard-installation.js +1 -1
- package/src/wizard/index.js +8 -20
- package/src/wizard/questions.js +0 -5
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
|
|
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
|
-
| **
|
|
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
|
package/framework/config.yaml
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# chati.dev Configuration
|
|
2
|
-
version: "4.5.
|
|
2
|
+
version: "4.5.5"
|
|
3
3
|
installed_at: "2026-02-07T10:00:00Z"
|
|
4
|
-
updated_at: "2026-
|
|
5
|
-
installer_version: "4.5.
|
|
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
|
+
- **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)
|
package/framework/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"createdAt": "2026-08-
|
|
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": "
|
|
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": "
|
|
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.
|
|
1350
|
+
"version": "4.5.5"
|
|
1351
1351
|
}
|
package/framework/manifest.sig
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
XENxdEvoK5ATS/SOccXjzQKNM31wPtbN4KdEjNsp8aZvUGdCU2OKZPDJUh1vFC+i4ZvElD0DSFR17EPrYkmPAw==
|
package/package.json
CHANGED
|
@@ -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-
|
|
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": "
|
|
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-
|
|
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
|
-
|
|
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
|
});
|
package/src/wizard/index.js
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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', '
|
|
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
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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
|
}
|
package/src/wizard/questions.js
CHANGED
|
@@ -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'),
|