@atlasnomos/atlas 1.1.8 → 1.1.10
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
|
@@ -47,6 +47,7 @@ class InitCommand {
|
|
|
47
47
|
|
|
48
48
|
// 2. Save .env
|
|
49
49
|
let envContent = '# ATLAS Environment Configuration\n';
|
|
50
|
+
envContent += 'ATLAS_DEV_BYPASS=true\n'; // Enable seamless local development
|
|
50
51
|
for (const [k, v] of Object.entries(keys)) {
|
|
51
52
|
if (v) envContent += `${k}=${v}\n`;
|
|
52
53
|
}
|
|
@@ -69,13 +70,13 @@ class InitCommand {
|
|
|
69
70
|
"default_provider": keys.OPENROUTER_API_KEY ? "openrouter" : "anthropic",
|
|
70
71
|
"roles": {
|
|
71
72
|
"planner": {
|
|
72
|
-
"model": "anthropic/claude-3-sonnet",
|
|
73
|
+
"model": "anthropic/claude-3.5-sonnet",
|
|
73
74
|
"temperature": 0.1,
|
|
74
75
|
"max_tokens": 4096,
|
|
75
76
|
"risk_limit": 1
|
|
76
77
|
},
|
|
77
78
|
"generator": {
|
|
78
|
-
"model": "anthropic/claude-3-sonnet",
|
|
79
|
+
"model": "anthropic/claude-3.5-sonnet",
|
|
79
80
|
"temperature": 0.2,
|
|
80
81
|
"max_tokens": 4096,
|
|
81
82
|
"risk_limit": 2
|
|
@@ -87,7 +88,7 @@ class InitCommand {
|
|
|
87
88
|
"risk_limit": 1
|
|
88
89
|
},
|
|
89
90
|
"fixer": {
|
|
90
|
-
"model": "anthropic/claude-3-sonnet",
|
|
91
|
+
"model": "anthropic/claude-3.5-sonnet",
|
|
91
92
|
"temperature": 0.1,
|
|
92
93
|
"max_tokens": 4096,
|
|
93
94
|
"risk_limit": 1
|
|
@@ -99,7 +100,31 @@ class InitCommand {
|
|
|
99
100
|
};
|
|
100
101
|
|
|
101
102
|
if (fs.existsSync(modelsPath)) {
|
|
102
|
-
console.log(' ⚠ atlas.models.json already exists.
|
|
103
|
+
console.log(' ⚠ atlas.models.json already exists. Checking for missing mandatory roles...');
|
|
104
|
+
try {
|
|
105
|
+
const existingContent = JSON.parse(fs.readFileSync(modelsPath, 'utf8'));
|
|
106
|
+
let updated = false;
|
|
107
|
+
|
|
108
|
+
if (!existingContent.roles) existingContent.roles = {};
|
|
109
|
+
|
|
110
|
+
const mandatoryRoles = ['planner', 'generator', 'reviewer', 'fixer'];
|
|
111
|
+
for (const role of mandatoryRoles) {
|
|
112
|
+
if (!existingContent.roles[role]) {
|
|
113
|
+
console.log(` + Adding missing mandatory role: ${role}`);
|
|
114
|
+
existingContent.roles[role] = template.roles[role];
|
|
115
|
+
updated = true;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (updated) {
|
|
120
|
+
fs.writeFileSync(modelsPath, JSON.stringify(existingContent, null, 4), 'utf8');
|
|
121
|
+
console.log(' ✓ Healed atlas.models.json with missing roles.');
|
|
122
|
+
} else {
|
|
123
|
+
console.log(' ✓ All mandatory roles are present.');
|
|
124
|
+
}
|
|
125
|
+
} catch (e) {
|
|
126
|
+
console.error(` ⛔ Failed to parse or update existing atlas.models.json: ${e.message}`);
|
|
127
|
+
}
|
|
103
128
|
} else {
|
|
104
129
|
fs.writeFileSync(modelsPath, JSON.stringify(template, null, 4), 'utf8');
|
|
105
130
|
console.log(' ✓ Created atlas.models.json');
|
|
@@ -361,9 +361,11 @@ class KernelBootstrap {
|
|
|
361
361
|
const { getInstance: getSentinel } = require('../constitution/SentinelInterface');
|
|
362
362
|
const sentinel = getSentinel();
|
|
363
363
|
|
|
364
|
-
if (!IS_LGM) {
|
|
364
|
+
if (!IS_LGM && this.tierManager.requiresSentinel()) {
|
|
365
365
|
await mcp.authorize(sentinel);
|
|
366
366
|
console.log(' ✓ MCP: Authorized and Locked');
|
|
367
|
+
} else if (!IS_LGM) {
|
|
368
|
+
console.log(' ⚠ MCP: Authorized via Local Bypass (DEV Tier)');
|
|
367
369
|
} else {
|
|
368
370
|
console.log(' ⚠ MCP: Local Authorization (LGM Enabled)');
|
|
369
371
|
}
|
|
@@ -465,12 +465,15 @@ class SentinelInterface {
|
|
|
465
465
|
const options = {
|
|
466
466
|
method,
|
|
467
467
|
headers: {
|
|
468
|
-
'Content-Type': 'application/json'
|
|
469
|
-
'X-API-Key': this.apiKey
|
|
468
|
+
'Content-Type': 'application/json'
|
|
470
469
|
},
|
|
471
470
|
timeout: timeoutMs
|
|
472
471
|
};
|
|
473
472
|
|
|
473
|
+
if (this.apiKey) {
|
|
474
|
+
options.headers['X-API-Key'] = this.apiKey;
|
|
475
|
+
}
|
|
476
|
+
|
|
474
477
|
const req = transport.request(`${baseUrl}${urlPath}`, options, (res) => {
|
|
475
478
|
let responseData = '';
|
|
476
479
|
res.on('data', chunk => responseData += chunk);
|