gaia-framework 1.48.4 → 1.50.0

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 CHANGED
@@ -460,7 +460,7 @@ The single source of truth is `_gaia/_config/global.yaml`:
460
460
 
461
461
  ```yaml
462
462
  framework_name: "GAIA"
463
- framework_version: "1.48.4"
463
+ framework_version: "1.50.0"
464
464
  user_name: "your-name"
465
465
  project_name: "your-project"
466
466
  ```
package/gaia-install.sh CHANGED
@@ -6,7 +6,7 @@ set -euo pipefail
6
6
  # Installs, updates, validates, and reports on GAIA installations.
7
7
  # ─────────────────────────────────────────────────────────────────────────────
8
8
 
9
- readonly VERSION="1.48.4"
9
+ readonly VERSION="1.50.0"
10
10
  readonly GITHUB_REPO="https://github.com/jlouage/Gaia-framework.git"
11
11
  readonly MANIFEST_REL="_gaia/_config/manifest.yaml"
12
12
 
@@ -600,6 +600,12 @@ cmd_update() {
600
600
  # ─── cmd_validate ───────────────────────────────────────────────────────────
601
601
 
602
602
  cmd_validate() {
603
+ # Guard: reject empty, unset, or whitespace-only TARGET
604
+ if [[ -z "${TARGET:-}" || "${TARGET}" =~ ^[[:space:]]+$ ]]; then
605
+ error "TARGET path is empty or whitespace-only"
606
+ exit 1
607
+ fi
608
+
603
609
  if [[ ! -d "$TARGET/_gaia" ]]; then
604
610
  error "No GAIA installation found at $TARGET"
605
611
  exit 1
@@ -610,9 +616,12 @@ cmd_validate() {
610
616
 
611
617
  local pass=0 fail=0
612
618
 
619
+ # check: accepts a label and the exit status ($?) of a preceding test command.
620
+ # The test command runs inline before calling check, passing $? as the result.
621
+ # This avoids eval entirely — conditions execute directly via [[ ]] or grep.
613
622
  check() {
614
- local label="$1" condition="$2"
615
- if eval "$condition"; then
623
+ local label="$1" result="$2"
624
+ if [[ "$result" -eq 0 ]]; then
616
625
  printf " ${GREEN}✔${RESET} %s\n" "$label"
617
626
  pass=$((pass + 1))
618
627
  else
@@ -622,47 +631,47 @@ cmd_validate() {
622
631
  }
623
632
 
624
633
  # Manifest
625
- check "manifest.yaml exists" "[[ -f '$TARGET/$MANIFEST_REL' ]]"
634
+ [[ -f "$TARGET/$MANIFEST_REL" ]]; check "manifest.yaml exists" $?
626
635
 
627
636
  # Global config fields
628
637
  local global="$TARGET/_gaia/_config/global.yaml"
629
- check "global.yaml exists" "[[ -f '$global' ]]"
638
+ [[ -f "$global" ]]; check "global.yaml exists" $?
630
639
  if [[ -f "$global" ]]; then
631
- check "global.yaml has project_name" "grep -q '^project_name:' '$global'"
632
- check "global.yaml has user_name" "grep -q '^user_name:' '$global'"
633
- check "global.yaml has framework_version" "grep -q '^framework_version:' '$global'"
640
+ local grc=0; grep -q '^project_name:' "$global" || grc=$?; check "global.yaml has project_name" $grc
641
+ grc=0; grep -q '^user_name:' "$global" || grc=$?; check "global.yaml has user_name" $grc
642
+ grc=0; grep -q '^framework_version:' "$global" || grc=$?; check "global.yaml has framework_version" $grc
634
643
  fi
635
644
 
636
645
  # Module directories
637
646
  for mod in core lifecycle dev creative testing; do
638
- check "Module: $mod" "[[ -d '$TARGET/_gaia/$mod' ]]"
647
+ [[ -d "$TARGET/_gaia/$mod" ]]; check "Module: $mod" $?
639
648
  done
640
649
 
641
650
  # .resolved directories
642
651
  for mod in core lifecycle creative testing; do
643
- check ".resolved: $mod" "[[ -d '$TARGET/_gaia/$mod/.resolved' ]]"
652
+ [[ -d "$TARGET/_gaia/$mod/.resolved" ]]; check ".resolved: $mod" $?
644
653
  done
645
654
 
646
655
  # Memory directory at project root (ADR-013)
647
- check "_memory/ directory" "[[ -d '$TARGET/_memory' ]]"
656
+ [[ -d "$TARGET/_memory" ]]; check "_memory/ directory" $?
648
657
  for dir in "${MEMORY_DIRS[@]}"; do
649
- check "Memory: $dir" "[[ -d '$TARGET/_memory/$dir' ]]"
658
+ [[ -d "$TARGET/_memory/$dir" ]]; check "Memory: $dir" $?
650
659
  done
651
660
 
652
661
  # CLAUDE.md
653
- check "CLAUDE.md exists" "[[ -f '$TARGET/CLAUDE.md' ]]"
662
+ [[ -f "$TARGET/CLAUDE.md" ]]; check "CLAUDE.md exists" $?
654
663
 
655
664
  # Slash commands
656
- check "Slash commands directory" "[[ -d '$TARGET/.claude/commands' ]]"
665
+ [[ -d "$TARGET/.claude/commands" ]]; check "Slash commands directory" $?
657
666
  if [[ -d "$TARGET/.claude/commands" ]]; then
658
667
  local cmd_count
659
668
  cmd_count="$(find "$TARGET/.claude/commands" -name 'gaia*.md' -type f 2>/dev/null | wc -l | tr -d ' ')"
660
- check "Slash commands present (found: $cmd_count)" "[[ $cmd_count -gt 0 ]]"
669
+ [[ "$cmd_count" -gt 0 ]]; check "Slash commands present (found: $cmd_count)" $?
661
670
  fi
662
671
 
663
672
  # Docs directories
664
673
  for dir in planning-artifacts implementation-artifacts test-artifacts creative-artifacts; do
665
- check "Docs: $dir" "[[ -d '$TARGET/docs/$dir' ]]"
674
+ [[ -d "$TARGET/docs/$dir" ]]; check "Docs: $dir" $?
666
675
  done
667
676
 
668
677
  # Version
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gaia-framework",
3
- "version": "1.48.4",
3
+ "version": "1.50.0",
4
4
  "description": "GAIA — Generative Agile Intelligence Architecture installer",
5
5
  "bin": {
6
6
  "gaia-framework": "./bin/gaia-framework.js"