gaia-framework 1.105.0 → 1.105.1
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.
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
</step>
|
|
11
11
|
<step n="2" title="Preset Selection (Promotion Chain)">
|
|
12
12
|
<critical>
|
|
13
|
-
<mandate>This step configures the ci_cd.promotion_chain block in {project-root}/_gaia/_config/global.yaml. It uses the 4 canonical presets from {project-root}/_gaia/_config/environment-presets.yaml
|
|
13
|
+
<mandate>This step configures the ci_cd.promotion_chain block in {project-root}/_gaia/_config/global.yaml. It uses the 4 canonical presets from {project-root}/_gaia/_config/environment-presets.yaml and the promotion-chain schema validator at {project-path}/test/validators/promotion-chain-validator.js.</mandate>
|
|
14
14
|
</critical>
|
|
15
15
|
|
|
16
16
|
<!-- AC5 (Task 1.5): existing ci_cd block — overwrite / skip / edit -->
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
Warn the user: "Existing ci_cd configuration found in global.yaml." and present three options:
|
|
20
20
|
[o]verwrite — replace the existing ci_cd.promotion_chain with a newly selected preset (or custom chain)
|
|
21
21
|
[s]kip — leave the existing ci_cd block unchanged and proceed to Step 3 (no write performed)
|
|
22
|
-
[e]dit — redirect the user to /gaia-ci-edit
|
|
22
|
+
[e]dit — redirect the user to /gaia-ci-edit for structured editing of the existing chain
|
|
23
23
|
Respect the user's choice:
|
|
24
24
|
- On [s]kip: jump directly to Step 3 without modifying global.yaml — backward compatible, no-op.
|
|
25
25
|
- On [e]dit: hand off to /gaia-ci-edit and terminate this step.
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
</check>
|
|
28
28
|
|
|
29
29
|
<!-- AC1 (Task 1.2): load presets from environment-presets.yaml -->
|
|
30
|
-
<action>Read {project-root}/_gaia/_config/environment-presets.yaml — this
|
|
31
|
-
<check if="environment-presets.yaml not found">HALT with error "Environment presets file not found at _gaia/_config/environment-presets.yaml.
|
|
30
|
+
<action>Read {project-root}/_gaia/_config/environment-presets.yaml — this framework config file contains the four canonical presets (solo, small-team, standard, enterprise). Each preset exposes a `description` field and a `promotion_chain` array.</action>
|
|
31
|
+
<check if="environment-presets.yaml not found">HALT with error "Environment presets file not found at _gaia/_config/environment-presets.yaml. This file ships with the GAIA framework — your installation appears to be incomplete or outdated. Re-run the installer to restore missing config files: `gaia-install.sh update` (or `gaia-install.sh install` for a fresh install)." — this is the AC10/test-scenario-10 failure mode.</check>
|
|
32
32
|
<action>Parse the YAML and extract the 4 preset names: solo, small-team, standard, enterprise. For each preset, extract its `description` string to show to the user.</action>
|
|
33
33
|
|
|
34
34
|
<!-- AC6 (Task 1.4): YOLO mode auto-selects 'standard' -->
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
<action>Prompt for `merge_strategy` — present enum selection: [1] merge [2] squash [3] rebase. Required unless a default is set in ci_cd.default_merge_strategy.</action>
|
|
62
62
|
<action>Prompt for `ci_checks` — optional array of check names (e.g., lint, unit, integration, e2e). Accept empty to skip.</action>
|
|
63
63
|
<ask>Environment {n} defined. Add another environment? [y]es / [n]o (finish)</ask>
|
|
64
|
-
When the user finishes, assemble the `promotion_chain` array from the collected entries. If the user added zero environments, warn them that the
|
|
64
|
+
When the user finishes, assemble the `promotion_chain` array from the collected entries. If the user added zero environments, warn them that the promotion chain requires a minimum of one environment and return to the loop.
|
|
65
65
|
</check>
|
|
66
66
|
|
|
67
67
|
<!-- AC2 (Task 2): apply the chosen preset — write ci_cd.promotion_chain to global.yaml -->
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
<action>Write the updated content back to global.yaml. Do not reformat unrelated sections — emit a minimal diff focused on the ci_cd block.</action>
|
|
71
71
|
|
|
72
72
|
<!-- AC4 (Task 4): E20-S1 schema validation -->
|
|
73
|
-
<action>After the write completes, invoke the
|
|
73
|
+
<action>After the write completes, invoke the promotion-chain schema validator at {project-path}/test/validators/promotion-chain-validator.js on the newly written block. The validator enforces: (a) minimum 1 environment (FR-252), (b) no duplicate ids across entries, (c) no duplicate branches across entries, (d) each entry has required fields id/name/branch/ci_provider, (e) ci_provider is one of the enum values, (f) merge_strategy (if set) is one of merge/squash/rebase, (g) id matches slug pattern [a-z0-9-]+.</action>
|
|
74
74
|
<check if="validation fails">
|
|
75
75
|
Display the specific violation(s) returned by the validator — include each violation's field path and reason (e.g., "promotion_chain[1].id duplicates promotion_chain[0].id" or "promotion_chain is empty — minimum 1 environment required"). Prompt the user to correct the failing fields. After corrections, re-run the validator. Repeat this validate→correct loop until the block passes.
|
|
76
76
|
</check>
|
package/gaia-install.sh
CHANGED
|
@@ -622,6 +622,15 @@ cmd_update() {
|
|
|
622
622
|
"testing/workflows"
|
|
623
623
|
"testing/knowledge"
|
|
624
624
|
"_config/manifest.yaml"
|
|
625
|
+
"_config/adversarial-triggers.yaml"
|
|
626
|
+
"_config/environment-presets.yaml"
|
|
627
|
+
"_config/lifecycle-sequence.yaml"
|
|
628
|
+
"_config/agent-manifest.csv"
|
|
629
|
+
"_config/files-manifest.csv"
|
|
630
|
+
"_config/gaia-help.csv"
|
|
631
|
+
"_config/skill-manifest.csv"
|
|
632
|
+
"_config/task-manifest.csv"
|
|
633
|
+
"_config/workflow-manifest.csv"
|
|
625
634
|
)
|
|
626
635
|
|
|
627
636
|
# ─── Migrate .customize.yaml files before _gaia/ overwrite (E10-S19, FR-153) ──
|