aios-core 2.2.1 → 2.2.2

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/bin/aios-init.js CHANGED
@@ -289,11 +289,12 @@ async function main() {
289
289
  }
290
290
 
291
291
  // Step 2: Install AIOS CORE agents and tasks for Claude Code
292
+ // v2.1: Agents and tasks are in development/ module
292
293
  if (ides.includes('claude')) {
293
- const coreAgentsSource = path.join(targetCoreDir, 'agents');
294
+ const coreAgentsSource = path.join(targetCoreDir, 'development', 'agents');
294
295
  const coreAgentsTarget = path.join(context.projectRoot, '.claude', 'commands', 'AIOS', 'agents');
295
296
 
296
- const coreTasksSource = path.join(targetCoreDir, 'tasks');
297
+ const coreTasksSource = path.join(targetCoreDir, 'development', 'tasks');
297
298
  const coreTasksTarget = path.join(context.projectRoot, '.claude', 'commands', 'AIOS', 'tasks');
298
299
 
299
300
  if (fs.existsSync(coreAgentsSource)) {
@@ -325,8 +326,9 @@ See .aios-core/user-guide.md for complete documentation.
325
326
  }
326
327
 
327
328
  // Step 3: Install AIOS CORE agents for Cursor
329
+ // v2.1: Agents are in development/ module
328
330
  if (ides.includes('cursor')) {
329
- const coreAgentsSource = path.join(targetCoreDir, 'agents');
331
+ const coreAgentsSource = path.join(targetCoreDir, 'development', 'agents');
330
332
  const cursorRulesTarget = path.join(context.projectRoot, '.cursor', 'rules', 'AIOS', 'agents');
331
333
 
332
334
  if (fs.existsSync(coreAgentsSource)) {
@@ -360,10 +362,11 @@ See .aios-core/user-guide.md for complete documentation.
360
362
  }
361
363
 
362
364
  // Step 4: Install AIOS CORE agents for other IDEs (Trae, Cline, Gemini, AntiGravity)
365
+ // v2.1: Agents are in development/ module
363
366
  const otherIdeInstalls = ['trae', 'cline', 'gemini', 'antigravity'];
364
367
  for (const ide of otherIdeInstalls) {
365
368
  if (ides.includes(ide)) {
366
- const coreAgentsSource = path.join(targetCoreDir, 'agents');
369
+ const coreAgentsSource = path.join(targetCoreDir, 'development', 'agents');
367
370
  const ideRulesDir = ide === 'gemini' ? '.gemini' : `.${ide}`;
368
371
  const ideRulesTarget = path.join(context.projectRoot, ideRulesDir, 'rules', 'AIOS', 'agents');
369
372
 
@@ -385,8 +388,9 @@ See .aios-core/user-guide.md for complete documentation.
385
388
  }
386
389
 
387
390
  // Step 5: Install Roo Code modes
391
+ // v2.1: Agents are in development/ module
388
392
  if (ides.includes('roo')) {
389
- const coreAgentsSource = path.join(targetCoreDir, 'agents');
393
+ const coreAgentsSource = path.join(targetCoreDir, 'development', 'agents');
390
394
  const rooModesPath = path.join(context.projectRoot, '.roomodes');
391
395
 
392
396
  if (fs.existsSync(coreAgentsSource)) {
@@ -412,8 +416,9 @@ See .aios-core/user-guide.md for complete documentation.
412
416
  }
413
417
 
414
418
  // Step 6: Install GitHub Copilot chat modes
419
+ // v2.1: Agents are in development/ module
415
420
  if (ides.includes('github-copilot')) {
416
- const coreAgentsSource = path.join(targetCoreDir, 'agents');
421
+ const coreAgentsSource = path.join(targetCoreDir, 'development', 'agents');
417
422
  const copilotModesDir = path.join(context.projectRoot, '.github', 'chatmodes');
418
423
 
419
424
  if (fs.existsSync(coreAgentsSource)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aios-core",
3
- "version": "2.2.1",
3
+ "version": "2.2.2",
4
4
  "description": "Synkra AIOS: AI-Orchestrated System for Full Stack Development - Core Framework",
5
5
  "main": "index.js",
6
6
  "module": "index.esm.js",
@@ -93,6 +93,7 @@
93
93
  "glob": "^11.0.3",
94
94
  "handlebars": "^4.7.8",
95
95
  "inquirer": "^8.2.6",
96
+ "isolated-vm": "^5.0.4",
96
97
  "js-yaml": "^4.1.0",
97
98
  "ora": "^5.4.1",
98
99
  "picocolors": "^1.1.1",
@@ -9,7 +9,6 @@ const fs = require('fs-extra');
9
9
  const path = require('path');
10
10
  const os = require('os');
11
11
  const { configureEnvironment, updateGitignore } = require('../../src/config/configure-environment');
12
- const pkg = require('../../../../package.json');
13
12
 
14
13
  /**
15
14
  * Cleanup helper with retry logic for flaky file system operations
@@ -73,7 +72,8 @@ describe('Environment Configuration Integration', () => {
73
72
 
74
73
  const content = await fs.readFile(envPath, 'utf8');
75
74
  expect(content).toContain('NODE_ENV=development');
76
- expect(content).toContain(`AIOS_VERSION=${pkg.version}`);
75
+ // Version-agnostic: check AIOS_VERSION exists with valid semver format
76
+ expect(content).toMatch(/AIOS_VERSION=\d+\.\d+\.\d+/);
77
77
  });
78
78
 
79
79
  it('should create .env.example file', async () => {
@@ -6,7 +6,6 @@
6
6
  */
7
7
 
8
8
  const { generateEnvContent, generateEnvExample } = require('../../src/config/templates/env-template');
9
- const pkg = require('../../../../package.json');
10
9
 
11
10
  describe('.env Template Generator', () => {
12
11
  describe('generateEnvContent', () => {
@@ -14,7 +13,8 @@ describe('.env Template Generator', () => {
14
13
  const content = generateEnvContent();
15
14
 
16
15
  expect(content).toContain('NODE_ENV=development');
17
- expect(content).toContain(`AIOS_VERSION=${pkg.version}`);
16
+ // Version-agnostic: check AIOS_VERSION exists with valid semver format
17
+ expect(content).toMatch(/AIOS_VERSION=\d+\.\d+\.\d+/);
18
18
  expect(content).toContain('OPENAI_API_KEY=');
19
19
  expect(content).toContain('ANTHROPIC_API_KEY=');
20
20
  expect(content).toContain('# Synkra AIOS Environment Configuration');
@@ -84,7 +84,8 @@ describe('.env Template Generator', () => {
84
84
  const content = generateEnvExample();
85
85
 
86
86
  expect(content).toContain('NODE_ENV=development');
87
- expect(content).toContain(`AIOS_VERSION=${pkg.version}`);
87
+ // Version-agnostic: check AIOS_VERSION exists with valid semver format
88
+ expect(content).toMatch(/AIOS_VERSION=\d+\.\d+\.\d+/);
88
89
  expect(content).toContain('OPENAI_API_KEY=');
89
90
  expect(content).toContain('ANTHROPIC_API_KEY=');
90
91
  expect(content).toContain('CLICKUP_API_KEY=');