aios-core 4.2.7 → 4.2.8

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.
@@ -7,8 +7,8 @@
7
7
  # - SHA256 hashes for change detection
8
8
  # - File types for categorization
9
9
  #
10
- version: 4.2.7
11
- generated_at: "2026-02-16T14:10:16.018Z"
10
+ version: 4.2.8
11
+ generated_at: "2026-02-16T14:40:32.757Z"
12
12
  generator: scripts/generate-install-manifest.js
13
13
  file_count: 1004
14
14
  files:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aios-core",
3
- "version": "4.2.7",
3
+ "version": "4.2.8",
4
4
  "description": "Synkra AIOS: AI-Orchestrated System for Full Stack Development - Core Framework",
5
5
  "bin": {
6
6
  "aios": "bin/aios.js",
@@ -55,7 +55,7 @@
55
55
  "validate:gemini-integration": "node .aios-core/infrastructure/scripts/validate-gemini-integration.js",
56
56
  "sync:skills:codex": "node .aios-core/infrastructure/scripts/codex-skills-sync/index.js",
57
57
  "sync:skills:codex:global": "node .aios-core/infrastructure/scripts/codex-skills-sync/index.js --global --global-only",
58
- "validate:codex-skills": "node .aios-core/infrastructure/scripts/codex-skills-sync/validate.js --strict",
58
+ "validate:codex-skills": "node .aios-core/infrastructure/scripts/codex-skills-sync/validate.js --strict",
59
59
  "validate:paths": "node .aios-core/infrastructure/scripts/validate-paths.js",
60
60
  "validate:parity": "node .aios-core/infrastructure/scripts/validate-parity.js",
61
61
  "validate:semantic-lint": "node scripts/semantic-lint.js",
@@ -16,6 +16,13 @@ const path = require('path');
16
16
  const yaml = require('js-yaml');
17
17
  const { hashFileAsync, hashFilesMatchAsync } = require('../installer/file-hasher');
18
18
 
19
+ /**
20
+ * Directories excluded from scaffolding (private/internal squads).
21
+ */
22
+ const SCAFFOLD_EXCLUDES = [
23
+ 'mmos-squad',
24
+ ];
25
+
19
26
  /**
20
27
  * Items to scaffold from pro package into user project.
21
28
  * Each entry defines source (relative to proSourceDir) and dest (relative to targetDir).
@@ -114,6 +121,12 @@ async function scaffoldProContent(targetDir, proSourceDir, options = {}) {
114
121
  }
115
122
  }
116
123
 
124
+ // Merge pro-config into core-config
125
+ const merged = await mergeProConfig(targetDir);
126
+ if (merged && onProgress) {
127
+ onProgress({ item: 'pro-config', status: 'done', message: 'Pro config merged into core-config.yaml' });
128
+ }
129
+
117
130
  // Generate pro-version.json (AC4)
118
131
  const versionInfo = await generateProVersionJson(targetDir, proSourceDir, result.copiedFiles);
119
132
  result.versionInfo = versionInfo;
@@ -162,6 +175,11 @@ async function scaffoldDirectory(sourceDir, destDir, options = {}) {
162
175
  const items = await fs.readdir(sourceDir, { withFileTypes: true });
163
176
 
164
177
  for (const item of items) {
178
+ // Skip excluded directories (e.g. private squads)
179
+ if (SCAFFOLD_EXCLUDES.includes(item.name)) {
180
+ continue;
181
+ }
182
+
165
183
  const sourcePath = path.join(sourceDir, item.name);
166
184
  const destPath = path.join(destDir, item.name);
167
185
 
@@ -324,6 +342,36 @@ async function rollbackScaffold(rollbackFiles) {
324
342
  return { removed, errors };
325
343
  }
326
344
 
345
+ /**
346
+ * Merge pro-config.yaml sections into core-config.yaml.
347
+ * Deep merges top-level keys (pro, memory, metrics, integrations, squads).
348
+ *
349
+ * @param {string} targetDir - Project root directory
350
+ * @returns {Promise<boolean>} True if merge was performed
351
+ */
352
+ async function mergeProConfig(targetDir) {
353
+ const coreConfigPath = path.join(targetDir, '.aios-core', 'core-config.yaml');
354
+ const proConfigPath = path.join(targetDir, '.aios-core', 'pro-config.yaml');
355
+
356
+ if (!await fs.pathExists(proConfigPath) || !await fs.pathExists(coreConfigPath)) {
357
+ return false;
358
+ }
359
+
360
+ const coreConfig = yaml.load(await fs.readFile(coreConfigPath, 'utf8')) || {};
361
+ const proConfig = yaml.load(await fs.readFile(proConfigPath, 'utf8')) || {};
362
+
363
+ for (const [key, value] of Object.entries(proConfig)) {
364
+ if (coreConfig[key] && typeof coreConfig[key] === 'object' && typeof value === 'object' && !Array.isArray(value)) {
365
+ coreConfig[key] = { ...coreConfig[key], ...value };
366
+ } else {
367
+ coreConfig[key] = value;
368
+ }
369
+ }
370
+
371
+ await fs.writeFile(coreConfigPath, yaml.dump(coreConfig, { lineWidth: -1 }), 'utf8');
372
+ return true;
373
+ }
374
+
327
375
  module.exports = {
328
376
  scaffoldProContent,
329
377
  scaffoldDirectory,
@@ -331,5 +379,7 @@ module.exports = {
331
379
  generateProVersionJson,
332
380
  generateInstalledManifest,
333
381
  rollbackScaffold,
382
+ mergeProConfig,
334
383
  SCAFFOLD_ITEMS,
384
+ SCAFFOLD_EXCLUDES,
335
385
  };
@@ -1,99 +0,0 @@
1
- #!/bin/bash
2
- # MMOS Architecture Guard - Pre-commit Hook
3
- # Version: 1.0
4
- # Purpose: Prevent architectural violations in file placement
5
-
6
- set -e
7
-
8
- echo "🛡️ Running MMOS Architecture Guard..."
9
-
10
- # Colors
11
- RED='\033[0;31m'
12
- GREEN='\033[0;32m'
13
- YELLOW='\033[1;33m'
14
- NC='\033[0m' # No Color
15
-
16
- violations=0
17
-
18
- # Get staged files
19
- staged_files=$(git diff --cached --name-only --diff-filter=ACM)
20
-
21
- # Rule 1: No mind-specific folders in docs/mmos/
22
- echo "Checking Rule 1: No mind-specific folders in docs/mmos/..."
23
-
24
- if echo "$staged_files" | grep -qE "docs/mmos/(validations|migrations)/[a-z_-]+"; then
25
- echo -e "${RED}❌ VIOLATION: Mind-specific folders detected in docs/mmos/${NC}"
26
- echo ""
27
- echo "Found:"
28
- echo "$staged_files" | grep -E "docs/mmos/(validations|migrations)/[a-z_-]+" | sed 's/^/ - /'
29
- echo ""
30
- echo -e "${YELLOW}Fix: Move to outputs/minds/{slug}/docs/ instead${NC}"
31
- echo ""
32
- echo "Examples:"
33
- echo " ❌ docs/mmos/validations/pedro-valerio-checklist.md"
34
- echo " ✅ outputs/minds/pedro_valerio/docs/validation-checklist.md"
35
- echo ""
36
- violations=$((violations + 1))
37
- fi
38
-
39
- # Rule 2: No output files in expansion pack
40
- echo "Checking Rule 2: No output files in expansion pack..."
41
-
42
- if echo "$staged_files" | grep -qE "expansion-packs/mmos/(benchmarks|outputs|results)/"; then
43
- echo -e "${RED}❌ VIOLATION: Output files in expansion pack${NC}"
44
- echo ""
45
- echo "Found:"
46
- echo "$staged_files" | grep -E "expansion-packs/mmos/(benchmarks|outputs|results)/" | sed 's/^/ - /'
47
- echo ""
48
- echo -e "${YELLOW}Fix: Move to docs/mmos/qa/benchmarks/ or appropriate output location${NC}"
49
- echo ""
50
- violations=$((violations + 1))
51
- fi
52
-
53
- # Rule 3: Check for common naming violations
54
- echo "Checking Rule 3: Mind-specific files should be in outputs/minds/..."
55
-
56
- # Check for files with mind names in docs/mmos/ (excluding allowed folders)
57
- for mind_name in $(ls outputs/minds/ 2>/dev/null | grep -v "^README" || true); do
58
- if echo "$staged_files" | grep -qE "docs/mmos/.*${mind_name}"; then
59
- # Exclude allowed locations (reports can mention minds)
60
- if ! echo "$staged_files" | grep -qE "docs/mmos/(reports|architecture)/"; then
61
- echo -e "${YELLOW}⚠️ WARNING: File containing mind name '$mind_name' in docs/mmos/${NC}"
62
- echo "$staged_files" | grep -E "docs/mmos/.*${mind_name}" | sed 's/^/ - /'
63
- echo ""
64
- echo "Verify this is system-level documentation, not mind-specific"
65
- echo ""
66
- fi
67
- fi
68
- done
69
-
70
- # Rule 4: Verify outputs/minds/{slug}/ structure
71
- echo "Checking Rule 4: outputs/minds/{slug}/ structure..."
72
-
73
- if echo "$staged_files" | grep -qE "outputs/minds/[^/]+/[^/]+\.(md|yaml|json)$"; then
74
- echo -e "${YELLOW}⚠️ WARNING: Files in outputs/minds/{slug}/ root detected${NC}"
75
- echo ""
76
- echo "Found:"
77
- echo "$staged_files" | grep -E "outputs/minds/[^/]+/[^/]+\.(md|yaml|json)$" | sed 's/^/ - /'
78
- echo ""
79
- echo "Pipeline outputs should be in subfolders:"
80
- echo " - analysis/, synthesis/, implementation/, system_prompts/, kb/"
81
- echo " - Process docs should be in docs/"
82
- echo " - Logs should be in logs/"
83
- echo ""
84
- fi
85
-
86
- # Final verdict
87
- echo ""
88
- if [ $violations -gt 0 ]; then
89
- echo -e "${RED}❌ COMMIT REJECTED: $violations architectural violation(s) found${NC}"
90
- echo ""
91
- echo "Review:"
92
- echo " - docs/mmos/ARCHITECTURE_RULES.md"
93
- echo " - .aios-core/checklists/mmos-architecture-guard.md"
94
- echo ""
95
- exit 1
96
- else
97
- echo -e "${GREEN}✅ Architecture guard passed${NC}"
98
- exit 0
99
- fi