@atlasnomos/atlas 1.1.8 → 1.1.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlasnomos/atlas",
3
- "version": "1.1.8",
3
+ "version": "1.1.9",
4
4
  "description": "Production-grade AI governance kernel for autonomous agents with fail-closed security and cryptographic audit trails",
5
5
  "main": "atlas.js",
6
6
  "bin": {
@@ -69,13 +69,13 @@ class InitCommand {
69
69
  "default_provider": keys.OPENROUTER_API_KEY ? "openrouter" : "anthropic",
70
70
  "roles": {
71
71
  "planner": {
72
- "model": "anthropic/claude-3-sonnet",
72
+ "model": "anthropic/claude-3.5-sonnet",
73
73
  "temperature": 0.1,
74
74
  "max_tokens": 4096,
75
75
  "risk_limit": 1
76
76
  },
77
77
  "generator": {
78
- "model": "anthropic/claude-3-sonnet",
78
+ "model": "anthropic/claude-3.5-sonnet",
79
79
  "temperature": 0.2,
80
80
  "max_tokens": 4096,
81
81
  "risk_limit": 2
@@ -87,7 +87,7 @@ class InitCommand {
87
87
  "risk_limit": 1
88
88
  },
89
89
  "fixer": {
90
- "model": "anthropic/claude-3-sonnet",
90
+ "model": "anthropic/claude-3.5-sonnet",
91
91
  "temperature": 0.1,
92
92
  "max_tokens": 4096,
93
93
  "risk_limit": 1
@@ -99,7 +99,31 @@ class InitCommand {
99
99
  };
100
100
 
101
101
  if (fs.existsSync(modelsPath)) {
102
- console.log(' ⚠ atlas.models.json already exists. Merge not supported yet. skipping.');
102
+ console.log(' ⚠ atlas.models.json already exists. Checking for missing mandatory roles...');
103
+ try {
104
+ const existingContent = JSON.parse(fs.readFileSync(modelsPath, 'utf8'));
105
+ let updated = false;
106
+
107
+ if (!existingContent.roles) existingContent.roles = {};
108
+
109
+ const mandatoryRoles = ['planner', 'generator', 'reviewer', 'fixer'];
110
+ for (const role of mandatoryRoles) {
111
+ if (!existingContent.roles[role]) {
112
+ console.log(` + Adding missing mandatory role: ${role}`);
113
+ existingContent.roles[role] = template.roles[role];
114
+ updated = true;
115
+ }
116
+ }
117
+
118
+ if (updated) {
119
+ fs.writeFileSync(modelsPath, JSON.stringify(existingContent, null, 4), 'utf8');
120
+ console.log(' ✓ Healed atlas.models.json with missing roles.');
121
+ } else {
122
+ console.log(' ✓ All mandatory roles are present.');
123
+ }
124
+ } catch (e) {
125
+ console.error(` ⛔ Failed to parse or update existing atlas.models.json: ${e.message}`);
126
+ }
103
127
  } else {
104
128
  fs.writeFileSync(modelsPath, JSON.stringify(template, null, 4), 'utf8');
105
129
  console.log(' ✓ Created atlas.models.json');