@jaguilar87/gaia 5.0.0-rc1
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/.claude-plugin/marketplace.json +33 -0
- package/.claude-plugin/plugin.json +26 -0
- package/ARCHITECTURE.md +335 -0
- package/CHANGELOG.md +1212 -0
- package/CODE_OF_CONDUCT.md +11 -0
- package/CONTRIBUTING.md +146 -0
- package/INSTALL.md +436 -0
- package/LICENSE +21 -0
- package/README.md +222 -0
- package/SECURITY.md +47 -0
- package/agents/README.md +78 -0
- package/agents/cloud-troubleshooter.md +73 -0
- package/agents/developer.md +65 -0
- package/agents/gaia-operator.md +64 -0
- package/agents/gaia-orchestrator.md +237 -0
- package/agents/gaia-planner.md +53 -0
- package/agents/gaia-system.md +70 -0
- package/agents/gitops-operator.md +61 -0
- package/agents/terraform-architect.md +63 -0
- package/bin/README.md +106 -0
- package/bin/cli/__init__.py +1 -0
- package/bin/cli/approvals.py +740 -0
- package/bin/cli/cleanup.py +562 -0
- package/bin/cli/context.py +283 -0
- package/bin/cli/doctor.py +628 -0
- package/bin/cli/history.py +305 -0
- package/bin/cli/memory.py +464 -0
- package/bin/cli/metrics.py +1068 -0
- package/bin/cli/plans.py +515 -0
- package/bin/cli/status.py +302 -0
- package/bin/cli/update.py +382 -0
- package/bin/gaia +112 -0
- package/bin/gaia-cleanup.js +531 -0
- package/bin/gaia-doctor.js +635 -0
- package/bin/gaia-evidence +126 -0
- package/bin/gaia-history.js +251 -0
- package/bin/gaia-metrics.js +1278 -0
- package/bin/gaia-review.js +269 -0
- package/bin/gaia-scan +44 -0
- package/bin/gaia-scan.py +589 -0
- package/bin/gaia-skills-diagnose.js +929 -0
- package/bin/gaia-status.js +278 -0
- package/bin/gaia-uninstall.js +111 -0
- package/bin/gaia-update.js +816 -0
- package/bin/pre-publish-validate.js +610 -0
- package/bin/python-detect.js +60 -0
- package/commands/README.md +64 -0
- package/commands/gaia.md +37 -0
- package/commands/scan-project.md +67 -0
- package/config/README.md +71 -0
- package/config/cloud/aws.json +134 -0
- package/config/cloud/gcp.json +139 -0
- package/config/context-contracts.json +158 -0
- package/config/crons-schema.md +81 -0
- package/config/git_standards.json +72 -0
- package/config/surface-routing.json +421 -0
- package/config/universal-rules.json +102 -0
- package/dist/gaia-ops/.claude-plugin/plugin.json +24 -0
- package/dist/gaia-ops/README.md +80 -0
- package/dist/gaia-ops/agents/cloud-troubleshooter.md +73 -0
- package/dist/gaia-ops/agents/developer.md +65 -0
- package/dist/gaia-ops/agents/gaia-operator.md +64 -0
- package/dist/gaia-ops/agents/gaia-orchestrator.md +237 -0
- package/dist/gaia-ops/agents/gaia-planner.md +53 -0
- package/dist/gaia-ops/agents/gaia-system.md +70 -0
- package/dist/gaia-ops/agents/gitops-operator.md +61 -0
- package/dist/gaia-ops/agents/terraform-architect.md +63 -0
- package/dist/gaia-ops/commands/gaia.md +37 -0
- package/dist/gaia-ops/config/README.md +71 -0
- package/dist/gaia-ops/config/cloud/aws.json +134 -0
- package/dist/gaia-ops/config/cloud/gcp.json +139 -0
- package/dist/gaia-ops/config/context-contracts.json +158 -0
- package/dist/gaia-ops/config/crons-schema.md +81 -0
- package/dist/gaia-ops/config/git_standards.json +72 -0
- package/dist/gaia-ops/config/surface-routing.json +421 -0
- package/dist/gaia-ops/config/universal-rules.json +102 -0
- package/dist/gaia-ops/hooks/adapters/__init__.py +52 -0
- package/dist/gaia-ops/hooks/adapters/base.py +219 -0
- package/dist/gaia-ops/hooks/adapters/channel.py +17 -0
- package/dist/gaia-ops/hooks/adapters/claude_code.py +1890 -0
- package/dist/gaia-ops/hooks/adapters/types.py +194 -0
- package/dist/gaia-ops/hooks/adapters/utils.py +25 -0
- package/dist/gaia-ops/hooks/hooks.json +163 -0
- package/dist/gaia-ops/hooks/modules/__init__.py +15 -0
- package/dist/gaia-ops/hooks/modules/agents/__init__.py +29 -0
- package/dist/gaia-ops/hooks/modules/agents/contract_validator.py +647 -0
- package/dist/gaia-ops/hooks/modules/agents/response_contract.py +496 -0
- package/dist/gaia-ops/hooks/modules/agents/skill_injection_verifier.py +120 -0
- package/dist/gaia-ops/hooks/modules/agents/state_tracker.py +267 -0
- package/dist/gaia-ops/hooks/modules/agents/task_info_builder.py +74 -0
- package/dist/gaia-ops/hooks/modules/agents/transcript_analyzer.py +458 -0
- package/dist/gaia-ops/hooks/modules/agents/transcript_reader.py +152 -0
- package/dist/gaia-ops/hooks/modules/audit/__init__.py +28 -0
- package/dist/gaia-ops/hooks/modules/audit/event_detector.py +168 -0
- package/dist/gaia-ops/hooks/modules/audit/logger.py +131 -0
- package/dist/gaia-ops/hooks/modules/audit/metrics.py +134 -0
- package/dist/gaia-ops/hooks/modules/audit/workflow_auditor.py +611 -0
- package/dist/gaia-ops/hooks/modules/audit/workflow_recorder.py +296 -0
- package/dist/gaia-ops/hooks/modules/context/__init__.py +11 -0
- package/dist/gaia-ops/hooks/modules/context/agentic_loop_detector.py +165 -0
- package/dist/gaia-ops/hooks/modules/context/anchor_tracker.py +317 -0
- package/dist/gaia-ops/hooks/modules/context/compact_context_builder.py +218 -0
- package/dist/gaia-ops/hooks/modules/context/context_freshness.py +145 -0
- package/dist/gaia-ops/hooks/modules/context/context_injector.py +558 -0
- package/dist/gaia-ops/hooks/modules/context/context_writer.py +530 -0
- package/dist/gaia-ops/hooks/modules/context/contracts_loader.py +161 -0
- package/dist/gaia-ops/hooks/modules/core/__init__.py +40 -0
- package/dist/gaia-ops/hooks/modules/core/hook_entry.py +78 -0
- package/dist/gaia-ops/hooks/modules/core/paths.py +160 -0
- package/dist/gaia-ops/hooks/modules/core/plugin_mode.py +149 -0
- package/dist/gaia-ops/hooks/modules/core/plugin_setup.py +577 -0
- package/dist/gaia-ops/hooks/modules/core/state.py +179 -0
- package/dist/gaia-ops/hooks/modules/core/stdin.py +24 -0
- package/dist/gaia-ops/hooks/modules/events/__init__.py +1 -0
- package/dist/gaia-ops/hooks/modules/events/event_writer.py +210 -0
- package/dist/gaia-ops/hooks/modules/memory/__init__.py +8 -0
- package/dist/gaia-ops/hooks/modules/memory/episode_writer.py +216 -0
- package/dist/gaia-ops/hooks/modules/orchestrator/__init__.py +1 -0
- package/dist/gaia-ops/hooks/modules/orchestrator/delegate_mode.py +122 -0
- package/dist/gaia-ops/hooks/modules/scanning/__init__.py +8 -0
- package/dist/gaia-ops/hooks/modules/scanning/scan_trigger.py +84 -0
- package/dist/gaia-ops/hooks/modules/security/__init__.py +120 -0
- package/dist/gaia-ops/hooks/modules/security/approval_cleanup.py +87 -0
- package/dist/gaia-ops/hooks/modules/security/approval_constants.py +23 -0
- package/dist/gaia-ops/hooks/modules/security/approval_grants.py +1638 -0
- package/dist/gaia-ops/hooks/modules/security/approval_messages.py +71 -0
- package/dist/gaia-ops/hooks/modules/security/approval_scopes.py +222 -0
- package/dist/gaia-ops/hooks/modules/security/blocked_commands.py +595 -0
- package/dist/gaia-ops/hooks/modules/security/blocked_message_formatter.py +87 -0
- package/dist/gaia-ops/hooks/modules/security/command_semantics.py +181 -0
- package/dist/gaia-ops/hooks/modules/security/composition_rules.py +547 -0
- package/dist/gaia-ops/hooks/modules/security/flag_classifiers.py +873 -0
- package/dist/gaia-ops/hooks/modules/security/gitops_validator.py +179 -0
- package/dist/gaia-ops/hooks/modules/security/mutative_verbs.py +1131 -0
- package/dist/gaia-ops/hooks/modules/security/network_hosts.py +481 -0
- package/dist/gaia-ops/hooks/modules/security/prompt_validator.py +40 -0
- package/dist/gaia-ops/hooks/modules/security/shell_unwrapper.py +165 -0
- package/dist/gaia-ops/hooks/modules/security/tiers.py +196 -0
- package/dist/gaia-ops/hooks/modules/session/__init__.py +10 -0
- package/dist/gaia-ops/hooks/modules/session/pending_scanner.py +174 -0
- package/dist/gaia-ops/hooks/modules/session/session_context_writer.py +100 -0
- package/dist/gaia-ops/hooks/modules/session/session_event_injector.py +160 -0
- package/dist/gaia-ops/hooks/modules/session/session_manager.py +31 -0
- package/dist/gaia-ops/hooks/modules/session/session_registry.py +232 -0
- package/dist/gaia-ops/hooks/modules/tools/__init__.py +29 -0
- package/dist/gaia-ops/hooks/modules/tools/bash_validator.py +1008 -0
- package/dist/gaia-ops/hooks/modules/tools/cloud_pipe_validator.py +231 -0
- package/dist/gaia-ops/hooks/modules/tools/hook_response.py +55 -0
- package/dist/gaia-ops/hooks/modules/tools/shell_parser.py +227 -0
- package/dist/gaia-ops/hooks/modules/tools/stage_decomposer.py +315 -0
- package/dist/gaia-ops/hooks/modules/tools/task_validator.py +294 -0
- package/dist/gaia-ops/hooks/modules/validation/__init__.py +23 -0
- package/dist/gaia-ops/hooks/modules/validation/commit_validator.py +380 -0
- package/dist/gaia-ops/hooks/post_compact.py +43 -0
- package/dist/gaia-ops/hooks/post_tool_use.py +54 -0
- package/dist/gaia-ops/hooks/pre_compact.py +60 -0
- package/dist/gaia-ops/hooks/pre_tool_use.py +413 -0
- package/dist/gaia-ops/hooks/session_start.py +81 -0
- package/dist/gaia-ops/hooks/stop_hook.py +82 -0
- package/dist/gaia-ops/hooks/subagent_start.py +71 -0
- package/dist/gaia-ops/hooks/subagent_stop.py +295 -0
- package/dist/gaia-ops/hooks/task_completed.py +70 -0
- package/dist/gaia-ops/hooks/user_prompt_submit.py +246 -0
- package/dist/gaia-ops/settings.json +72 -0
- package/dist/gaia-ops/skills/README.md +154 -0
- package/dist/gaia-ops/skills/agent-protocol/SKILL.md +93 -0
- package/dist/gaia-ops/skills/agent-protocol/examples.md +223 -0
- package/dist/gaia-ops/skills/agent-response/SKILL.md +69 -0
- package/dist/gaia-ops/skills/agentic-loop/SKILL.md +80 -0
- package/dist/gaia-ops/skills/agentic-loop/reference.md +378 -0
- package/dist/gaia-ops/skills/blog-writing/SKILL.md +98 -0
- package/dist/gaia-ops/skills/blog-writing/reference.md +130 -0
- package/dist/gaia-ops/skills/brief-spec/SKILL.md +182 -0
- package/dist/gaia-ops/skills/command-execution/SKILL.md +64 -0
- package/dist/gaia-ops/skills/command-execution/reference.md +83 -0
- package/dist/gaia-ops/skills/context-updater/SKILL.md +87 -0
- package/dist/gaia-ops/skills/context-updater/examples.md +71 -0
- package/dist/gaia-ops/skills/developer-patterns/SKILL.md +50 -0
- package/dist/gaia-ops/skills/developer-patterns/reference.md +112 -0
- package/dist/gaia-ops/skills/execution/SKILL.md +99 -0
- package/dist/gaia-ops/skills/fast-queries/SKILL.md +43 -0
- package/dist/gaia-ops/skills/gaia-compact/SKILL.md +74 -0
- package/dist/gaia-ops/skills/gaia-patterns/SKILL.md +108 -0
- package/dist/gaia-ops/skills/gaia-patterns/reference.md +395 -0
- package/dist/gaia-ops/skills/gaia-planner/SKILL.md +37 -0
- package/dist/gaia-ops/skills/gaia-planner/reference.md +107 -0
- package/dist/gaia-ops/skills/gaia-release/SKILL.md +82 -0
- package/dist/gaia-ops/skills/gaia-release/reference.md +102 -0
- package/dist/gaia-ops/skills/gaia-self-check/SKILL.md +114 -0
- package/dist/gaia-ops/skills/gaia-self-check/reference.md +453 -0
- package/dist/gaia-ops/skills/gaia-verify/SKILL.md +77 -0
- package/dist/gaia-ops/skills/gaia-verify/reference.md +80 -0
- package/dist/gaia-ops/skills/git-conventions/SKILL.md +47 -0
- package/dist/gaia-ops/skills/gitops-patterns/SKILL.md +60 -0
- package/dist/gaia-ops/skills/gitops-patterns/reference.md +183 -0
- package/dist/gaia-ops/skills/gmail-policy/SKILL.md +200 -0
- package/dist/gaia-ops/skills/gmail-policy/reference.md +150 -0
- package/dist/gaia-ops/skills/gmail-triage/SKILL.md +100 -0
- package/dist/gaia-ops/skills/gws-setup/SKILL.md +99 -0
- package/dist/gaia-ops/skills/gws-setup/reference.md +73 -0
- package/dist/gaia-ops/skills/investigation/SKILL.md +100 -0
- package/dist/gaia-ops/skills/memory-curation/SKILL.md +83 -0
- package/dist/gaia-ops/skills/memory-search/SKILL.md +88 -0
- package/dist/gaia-ops/skills/orchestrator-approval/SKILL.md +160 -0
- package/dist/gaia-ops/skills/orchestrator-approval/reference.md +174 -0
- package/dist/gaia-ops/skills/pending-approvals/SKILL.md +72 -0
- package/dist/gaia-ops/skills/pending-approvals/reference.md +214 -0
- package/dist/gaia-ops/skills/readme-writing/SKILL.md +71 -0
- package/dist/gaia-ops/skills/readme-writing/reference.md +188 -0
- package/dist/gaia-ops/skills/reference.md +135 -0
- package/dist/gaia-ops/skills/request-approval/SKILL.md +140 -0
- package/dist/gaia-ops/skills/request-approval/examples.md +140 -0
- package/dist/gaia-ops/skills/request-approval/reference.md +57 -0
- package/dist/gaia-ops/skills/schedule-task/SKILL.md +64 -0
- package/dist/gaia-ops/skills/schedule-task/reference.md +233 -0
- package/dist/gaia-ops/skills/security-tiers/SKILL.md +141 -0
- package/dist/gaia-ops/skills/security-tiers/destructive-commands-reference.md +623 -0
- package/dist/gaia-ops/skills/security-tiers/reference.md +39 -0
- package/dist/gaia-ops/skills/skill-creation/SKILL.md +92 -0
- package/dist/gaia-ops/skills/skill-creation/reference.md +29 -0
- package/dist/gaia-ops/skills/terraform-patterns/SKILL.md +89 -0
- package/dist/gaia-ops/skills/terraform-patterns/reference.md +93 -0
- package/dist/gaia-ops/tools/__init__.py +9 -0
- package/dist/gaia-ops/tools/agentic-loop/decide-status.py +210 -0
- package/dist/gaia-ops/tools/agentic-loop/parse-metric.py +106 -0
- package/dist/gaia-ops/tools/agentic-loop/record-iteration.py +221 -0
- package/dist/gaia-ops/tools/context/README.md +132 -0
- package/dist/gaia-ops/tools/context/__init__.py +42 -0
- package/dist/gaia-ops/tools/context/_paths.py +20 -0
- package/dist/gaia-ops/tools/context/context_provider.py +721 -0
- package/dist/gaia-ops/tools/context/context_section_reader.py +342 -0
- package/dist/gaia-ops/tools/context/deep_merge.py +159 -0
- package/dist/gaia-ops/tools/context/pending_updates.py +760 -0
- package/dist/gaia-ops/tools/context/surface_router.py +278 -0
- package/dist/gaia-ops/tools/fast-queries/README.md +65 -0
- package/dist/gaia-ops/tools/fast-queries/__init__.py +30 -0
- package/dist/gaia-ops/tools/fast-queries/appservices/quicktriage_devops_developer.sh +75 -0
- package/dist/gaia-ops/tools/fast-queries/cloud/aws/quicktriage_aws_troubleshooter.sh +32 -0
- package/dist/gaia-ops/tools/fast-queries/cloud/gcp/quicktriage_gcp_troubleshooter.sh +88 -0
- package/dist/gaia-ops/tools/fast-queries/gitops/quicktriage_gitops_operator.sh +48 -0
- package/dist/gaia-ops/tools/fast-queries/run_triage.sh +59 -0
- package/dist/gaia-ops/tools/fast-queries/terraform/quicktriage_terraform_architect.sh +80 -0
- package/dist/gaia-ops/tools/gaia_simulator/__init__.py +33 -0
- package/dist/gaia-ops/tools/gaia_simulator/cli.py +354 -0
- package/dist/gaia-ops/tools/gaia_simulator/extractor.py +457 -0
- package/dist/gaia-ops/tools/gaia_simulator/reporter.py +258 -0
- package/dist/gaia-ops/tools/gaia_simulator/routing_simulator.py +334 -0
- package/dist/gaia-ops/tools/gaia_simulator/runner.py +539 -0
- package/dist/gaia-ops/tools/gaia_simulator/skills_mapper.py +264 -0
- package/dist/gaia-ops/tools/memory/README.md +0 -0
- package/dist/gaia-ops/tools/memory/__init__.py +20 -0
- package/dist/gaia-ops/tools/memory/backfill_fts5.py +107 -0
- package/dist/gaia-ops/tools/memory/conflict_detector.py +295 -0
- package/dist/gaia-ops/tools/memory/episodic.py +1210 -0
- package/dist/gaia-ops/tools/memory/git_invalidator.py +262 -0
- package/dist/gaia-ops/tools/memory/paths.py +102 -0
- package/dist/gaia-ops/tools/memory/scoring.py +193 -0
- package/dist/gaia-ops/tools/memory/search_store.py +360 -0
- package/dist/gaia-ops/tools/persist_transcript_analysis.py +85 -0
- package/dist/gaia-ops/tools/review/__init__.py +1 -0
- package/dist/gaia-ops/tools/review/review_engine.py +157 -0
- package/dist/gaia-ops/tools/scan/__init__.py +35 -0
- package/dist/gaia-ops/tools/scan/config.py +247 -0
- package/dist/gaia-ops/tools/scan/merge.py +212 -0
- package/dist/gaia-ops/tools/scan/orchestrator.py +549 -0
- package/dist/gaia-ops/tools/scan/registry.py +127 -0
- package/dist/gaia-ops/tools/scan/scanners/__init__.py +18 -0
- package/dist/gaia-ops/tools/scan/scanners/base.py +137 -0
- package/dist/gaia-ops/tools/scan/scanners/environment.py +349 -0
- package/dist/gaia-ops/tools/scan/scanners/git.py +570 -0
- package/dist/gaia-ops/tools/scan/scanners/infrastructure.py +875 -0
- package/dist/gaia-ops/tools/scan/scanners/orchestration.py +600 -0
- package/dist/gaia-ops/tools/scan/scanners/stack.py +1085 -0
- package/dist/gaia-ops/tools/scan/scanners/tools.py +260 -0
- package/dist/gaia-ops/tools/scan/setup.py +686 -0
- package/dist/gaia-ops/tools/scan/tests/__init__.py +1 -0
- package/dist/gaia-ops/tools/scan/tests/conftest.py +796 -0
- package/dist/gaia-ops/tools/scan/tests/test_environment.py +323 -0
- package/dist/gaia-ops/tools/scan/tests/test_git.py +419 -0
- package/dist/gaia-ops/tools/scan/tests/test_infrastructure.py +382 -0
- package/dist/gaia-ops/tools/scan/tests/test_integration.py +920 -0
- package/dist/gaia-ops/tools/scan/tests/test_merge.py +269 -0
- package/dist/gaia-ops/tools/scan/tests/test_orchestration.py +304 -0
- package/dist/gaia-ops/tools/scan/tests/test_stack.py +604 -0
- package/dist/gaia-ops/tools/scan/tests/test_tools.py +349 -0
- package/dist/gaia-ops/tools/scan/ui.py +624 -0
- package/dist/gaia-ops/tools/scan/verify.py +270 -0
- package/dist/gaia-ops/tools/scan/walk.py +118 -0
- package/dist/gaia-ops/tools/scan/workspace.py +85 -0
- package/dist/gaia-ops/tools/validation/README.md +244 -0
- package/dist/gaia-ops/tools/validation/__init__.py +17 -0
- package/dist/gaia-ops/tools/validation/approval_gate.py +321 -0
- package/dist/gaia-ops/tools/validation/validate_skills.py +189 -0
- package/dist/gaia-security/.claude-plugin/plugin.json +24 -0
- package/dist/gaia-security/README.md +90 -0
- package/dist/gaia-security/config/universal-rules.json +102 -0
- package/dist/gaia-security/hooks/adapters/__init__.py +52 -0
- package/dist/gaia-security/hooks/adapters/base.py +219 -0
- package/dist/gaia-security/hooks/adapters/channel.py +17 -0
- package/dist/gaia-security/hooks/adapters/claude_code.py +1890 -0
- package/dist/gaia-security/hooks/adapters/types.py +194 -0
- package/dist/gaia-security/hooks/adapters/utils.py +25 -0
- package/dist/gaia-security/hooks/hooks.json +84 -0
- package/dist/gaia-security/hooks/modules/__init__.py +15 -0
- package/dist/gaia-security/hooks/modules/agents/__init__.py +29 -0
- package/dist/gaia-security/hooks/modules/agents/contract_validator.py +647 -0
- package/dist/gaia-security/hooks/modules/agents/response_contract.py +496 -0
- package/dist/gaia-security/hooks/modules/agents/skill_injection_verifier.py +120 -0
- package/dist/gaia-security/hooks/modules/agents/state_tracker.py +267 -0
- package/dist/gaia-security/hooks/modules/agents/task_info_builder.py +74 -0
- package/dist/gaia-security/hooks/modules/agents/transcript_analyzer.py +458 -0
- package/dist/gaia-security/hooks/modules/agents/transcript_reader.py +152 -0
- package/dist/gaia-security/hooks/modules/audit/__init__.py +28 -0
- package/dist/gaia-security/hooks/modules/audit/event_detector.py +168 -0
- package/dist/gaia-security/hooks/modules/audit/logger.py +131 -0
- package/dist/gaia-security/hooks/modules/audit/metrics.py +134 -0
- package/dist/gaia-security/hooks/modules/audit/workflow_auditor.py +611 -0
- package/dist/gaia-security/hooks/modules/audit/workflow_recorder.py +296 -0
- package/dist/gaia-security/hooks/modules/context/__init__.py +11 -0
- package/dist/gaia-security/hooks/modules/context/agentic_loop_detector.py +165 -0
- package/dist/gaia-security/hooks/modules/context/anchor_tracker.py +317 -0
- package/dist/gaia-security/hooks/modules/context/compact_context_builder.py +218 -0
- package/dist/gaia-security/hooks/modules/context/context_freshness.py +145 -0
- package/dist/gaia-security/hooks/modules/context/context_injector.py +558 -0
- package/dist/gaia-security/hooks/modules/context/context_writer.py +530 -0
- package/dist/gaia-security/hooks/modules/context/contracts_loader.py +161 -0
- package/dist/gaia-security/hooks/modules/core/__init__.py +40 -0
- package/dist/gaia-security/hooks/modules/core/hook_entry.py +78 -0
- package/dist/gaia-security/hooks/modules/core/paths.py +160 -0
- package/dist/gaia-security/hooks/modules/core/plugin_mode.py +149 -0
- package/dist/gaia-security/hooks/modules/core/plugin_setup.py +577 -0
- package/dist/gaia-security/hooks/modules/core/state.py +179 -0
- package/dist/gaia-security/hooks/modules/core/stdin.py +24 -0
- package/dist/gaia-security/hooks/modules/events/__init__.py +1 -0
- package/dist/gaia-security/hooks/modules/events/event_writer.py +210 -0
- package/dist/gaia-security/hooks/modules/memory/__init__.py +8 -0
- package/dist/gaia-security/hooks/modules/memory/episode_writer.py +216 -0
- package/dist/gaia-security/hooks/modules/orchestrator/__init__.py +1 -0
- package/dist/gaia-security/hooks/modules/orchestrator/delegate_mode.py +122 -0
- package/dist/gaia-security/hooks/modules/scanning/__init__.py +8 -0
- package/dist/gaia-security/hooks/modules/scanning/scan_trigger.py +84 -0
- package/dist/gaia-security/hooks/modules/security/__init__.py +120 -0
- package/dist/gaia-security/hooks/modules/security/approval_cleanup.py +87 -0
- package/dist/gaia-security/hooks/modules/security/approval_constants.py +23 -0
- package/dist/gaia-security/hooks/modules/security/approval_grants.py +1638 -0
- package/dist/gaia-security/hooks/modules/security/approval_messages.py +71 -0
- package/dist/gaia-security/hooks/modules/security/approval_scopes.py +222 -0
- package/dist/gaia-security/hooks/modules/security/blocked_commands.py +595 -0
- package/dist/gaia-security/hooks/modules/security/blocked_message_formatter.py +87 -0
- package/dist/gaia-security/hooks/modules/security/command_semantics.py +181 -0
- package/dist/gaia-security/hooks/modules/security/composition_rules.py +547 -0
- package/dist/gaia-security/hooks/modules/security/flag_classifiers.py +873 -0
- package/dist/gaia-security/hooks/modules/security/gitops_validator.py +179 -0
- package/dist/gaia-security/hooks/modules/security/mutative_verbs.py +1131 -0
- package/dist/gaia-security/hooks/modules/security/network_hosts.py +481 -0
- package/dist/gaia-security/hooks/modules/security/prompt_validator.py +40 -0
- package/dist/gaia-security/hooks/modules/security/shell_unwrapper.py +165 -0
- package/dist/gaia-security/hooks/modules/security/tiers.py +196 -0
- package/dist/gaia-security/hooks/modules/session/__init__.py +10 -0
- package/dist/gaia-security/hooks/modules/session/pending_scanner.py +174 -0
- package/dist/gaia-security/hooks/modules/session/session_context_writer.py +100 -0
- package/dist/gaia-security/hooks/modules/session/session_event_injector.py +160 -0
- package/dist/gaia-security/hooks/modules/session/session_manager.py +31 -0
- package/dist/gaia-security/hooks/modules/session/session_registry.py +232 -0
- package/dist/gaia-security/hooks/modules/tools/__init__.py +29 -0
- package/dist/gaia-security/hooks/modules/tools/bash_validator.py +1008 -0
- package/dist/gaia-security/hooks/modules/tools/cloud_pipe_validator.py +231 -0
- package/dist/gaia-security/hooks/modules/tools/hook_response.py +55 -0
- package/dist/gaia-security/hooks/modules/tools/shell_parser.py +227 -0
- package/dist/gaia-security/hooks/modules/tools/stage_decomposer.py +315 -0
- package/dist/gaia-security/hooks/modules/tools/task_validator.py +294 -0
- package/dist/gaia-security/hooks/modules/validation/__init__.py +23 -0
- package/dist/gaia-security/hooks/modules/validation/commit_validator.py +380 -0
- package/dist/gaia-security/hooks/post_tool_use.py +54 -0
- package/dist/gaia-security/hooks/pre_tool_use.py +413 -0
- package/dist/gaia-security/hooks/session_start.py +81 -0
- package/dist/gaia-security/hooks/stop_hook.py +82 -0
- package/dist/gaia-security/hooks/user_prompt_submit.py +246 -0
- package/dist/gaia-security/settings.json +58 -0
- package/git-hooks/commit-msg +41 -0
- package/hooks/README.md +100 -0
- package/hooks/adapters/__init__.py +52 -0
- package/hooks/adapters/base.py +219 -0
- package/hooks/adapters/channel.py +17 -0
- package/hooks/adapters/claude_code.py +1890 -0
- package/hooks/adapters/types.py +194 -0
- package/hooks/adapters/utils.py +25 -0
- package/hooks/elicitation_result.py +179 -0
- package/hooks/hooks.json +84 -0
- package/hooks/modules/README.md +189 -0
- package/hooks/modules/__init__.py +15 -0
- package/hooks/modules/agents/__init__.py +29 -0
- package/hooks/modules/agents/contract_validator.py +647 -0
- package/hooks/modules/agents/response_contract.py +496 -0
- package/hooks/modules/agents/skill_injection_verifier.py +120 -0
- package/hooks/modules/agents/state_tracker.py +267 -0
- package/hooks/modules/agents/task_info_builder.py +74 -0
- package/hooks/modules/agents/transcript_analyzer.py +458 -0
- package/hooks/modules/agents/transcript_reader.py +152 -0
- package/hooks/modules/audit/__init__.py +28 -0
- package/hooks/modules/audit/event_detector.py +168 -0
- package/hooks/modules/audit/logger.py +131 -0
- package/hooks/modules/audit/metrics.py +134 -0
- package/hooks/modules/audit/workflow_auditor.py +611 -0
- package/hooks/modules/audit/workflow_recorder.py +296 -0
- package/hooks/modules/context/__init__.py +11 -0
- package/hooks/modules/context/agentic_loop_detector.py +165 -0
- package/hooks/modules/context/anchor_tracker.py +317 -0
- package/hooks/modules/context/compact_context_builder.py +218 -0
- package/hooks/modules/context/context_freshness.py +145 -0
- package/hooks/modules/context/context_injector.py +558 -0
- package/hooks/modules/context/context_writer.py +530 -0
- package/hooks/modules/context/contracts_loader.py +161 -0
- package/hooks/modules/core/__init__.py +40 -0
- package/hooks/modules/core/hook_entry.py +78 -0
- package/hooks/modules/core/paths.py +160 -0
- package/hooks/modules/core/plugin_mode.py +149 -0
- package/hooks/modules/core/plugin_setup.py +577 -0
- package/hooks/modules/core/state.py +179 -0
- package/hooks/modules/core/stdin.py +24 -0
- package/hooks/modules/events/__init__.py +1 -0
- package/hooks/modules/events/event_writer.py +210 -0
- package/hooks/modules/evidence/__init__.py +34 -0
- package/hooks/modules/evidence/assertions.py +137 -0
- package/hooks/modules/evidence/index_writer.py +57 -0
- package/hooks/modules/evidence/loader.py +126 -0
- package/hooks/modules/evidence/runner.py +241 -0
- package/hooks/modules/memory/__init__.py +8 -0
- package/hooks/modules/memory/episode_writer.py +216 -0
- package/hooks/modules/orchestrator/__init__.py +1 -0
- package/hooks/modules/orchestrator/delegate_mode.py +122 -0
- package/hooks/modules/scanning/__init__.py +8 -0
- package/hooks/modules/scanning/scan_trigger.py +84 -0
- package/hooks/modules/security/__init__.py +120 -0
- package/hooks/modules/security/approval_cleanup.py +87 -0
- package/hooks/modules/security/approval_constants.py +23 -0
- package/hooks/modules/security/approval_grants.py +1638 -0
- package/hooks/modules/security/approval_messages.py +71 -0
- package/hooks/modules/security/approval_scopes.py +222 -0
- package/hooks/modules/security/blocked_commands.py +595 -0
- package/hooks/modules/security/blocked_message_formatter.py +87 -0
- package/hooks/modules/security/command_semantics.py +181 -0
- package/hooks/modules/security/composition_rules.py +547 -0
- package/hooks/modules/security/flag_classifiers.py +873 -0
- package/hooks/modules/security/gitops_validator.py +179 -0
- package/hooks/modules/security/mutative_verbs.py +1131 -0
- package/hooks/modules/security/network_hosts.py +481 -0
- package/hooks/modules/security/prompt_validator.py +40 -0
- package/hooks/modules/security/shell_unwrapper.py +165 -0
- package/hooks/modules/security/tiers.py +196 -0
- package/hooks/modules/session/__init__.py +10 -0
- package/hooks/modules/session/pending_scanner.py +174 -0
- package/hooks/modules/session/session_context_writer.py +100 -0
- package/hooks/modules/session/session_event_injector.py +160 -0
- package/hooks/modules/session/session_manager.py +31 -0
- package/hooks/modules/session/session_registry.py +232 -0
- package/hooks/modules/tools/__init__.py +29 -0
- package/hooks/modules/tools/bash_validator.py +1008 -0
- package/hooks/modules/tools/cloud_pipe_validator.py +231 -0
- package/hooks/modules/tools/hook_response.py +55 -0
- package/hooks/modules/tools/shell_parser.py +227 -0
- package/hooks/modules/tools/stage_decomposer.py +315 -0
- package/hooks/modules/tools/task_validator.py +294 -0
- package/hooks/modules/validation/__init__.py +23 -0
- package/hooks/modules/validation/commit_validator.py +380 -0
- package/hooks/post_compact.py +43 -0
- package/hooks/post_tool_use.py +54 -0
- package/hooks/pre_compact.py +60 -0
- package/hooks/pre_tool_use.py +413 -0
- package/hooks/session_start.py +81 -0
- package/hooks/stop_hook.py +82 -0
- package/hooks/subagent_start.py +71 -0
- package/hooks/subagent_stop.py +295 -0
- package/hooks/task_completed.py +70 -0
- package/hooks/user_prompt_submit.py +246 -0
- package/index.js +83 -0
- package/package.json +99 -0
- package/pyproject.toml +32 -0
- package/skills/README.md +154 -0
- package/skills/agent-protocol/SKILL.md +93 -0
- package/skills/agent-protocol/examples.md +223 -0
- package/skills/agent-response/SKILL.md +69 -0
- package/skills/agentic-loop/SKILL.md +80 -0
- package/skills/agentic-loop/reference.md +378 -0
- package/skills/blog-writing/SKILL.md +98 -0
- package/skills/blog-writing/reference.md +130 -0
- package/skills/brief-spec/SKILL.md +182 -0
- package/skills/command-execution/SKILL.md +64 -0
- package/skills/command-execution/reference.md +83 -0
- package/skills/context-updater/SKILL.md +87 -0
- package/skills/context-updater/examples.md +71 -0
- package/skills/developer-patterns/SKILL.md +50 -0
- package/skills/developer-patterns/reference.md +112 -0
- package/skills/execution/SKILL.md +99 -0
- package/skills/fast-queries/SKILL.md +43 -0
- package/skills/gaia-compact/SKILL.md +74 -0
- package/skills/gaia-patterns/SKILL.md +108 -0
- package/skills/gaia-patterns/reference.md +395 -0
- package/skills/gaia-planner/SKILL.md +37 -0
- package/skills/gaia-planner/reference.md +107 -0
- package/skills/gaia-release/SKILL.md +82 -0
- package/skills/gaia-release/reference.md +102 -0
- package/skills/gaia-self-check/SKILL.md +114 -0
- package/skills/gaia-self-check/reference.md +453 -0
- package/skills/gaia-verify/SKILL.md +77 -0
- package/skills/gaia-verify/reference.md +80 -0
- package/skills/git-conventions/SKILL.md +47 -0
- package/skills/gitops-patterns/SKILL.md +60 -0
- package/skills/gitops-patterns/reference.md +183 -0
- package/skills/gmail-policy/SKILL.md +200 -0
- package/skills/gmail-policy/reference.md +150 -0
- package/skills/gmail-triage/SKILL.md +100 -0
- package/skills/gws-setup/SKILL.md +99 -0
- package/skills/gws-setup/reference.md +73 -0
- package/skills/investigation/SKILL.md +100 -0
- package/skills/memory-curation/SKILL.md +83 -0
- package/skills/memory-search/SKILL.md +88 -0
- package/skills/orchestrator-approval/SKILL.md +160 -0
- package/skills/orchestrator-approval/reference.md +174 -0
- package/skills/pending-approvals/SKILL.md +72 -0
- package/skills/pending-approvals/reference.md +214 -0
- package/skills/readme-writing/SKILL.md +71 -0
- package/skills/readme-writing/reference.md +188 -0
- package/skills/reference.md +135 -0
- package/skills/request-approval/SKILL.md +140 -0
- package/skills/request-approval/examples.md +140 -0
- package/skills/request-approval/reference.md +57 -0
- package/skills/schedule-task/SKILL.md +64 -0
- package/skills/schedule-task/reference.md +233 -0
- package/skills/security-tiers/SKILL.md +141 -0
- package/skills/security-tiers/destructive-commands-reference.md +623 -0
- package/skills/security-tiers/reference.md +39 -0
- package/skills/skill-creation/SKILL.md +92 -0
- package/skills/skill-creation/reference.md +29 -0
- package/skills/terraform-patterns/SKILL.md +89 -0
- package/skills/terraform-patterns/reference.md +93 -0
- package/templates/README.md +69 -0
- package/templates/managed-settings.template.json +43 -0
- package/tools/__init__.py +9 -0
- package/tools/agentic-loop/decide-status.py +210 -0
- package/tools/agentic-loop/parse-metric.py +106 -0
- package/tools/agentic-loop/record-iteration.py +221 -0
- package/tools/context/README.md +132 -0
- package/tools/context/__init__.py +42 -0
- package/tools/context/_paths.py +20 -0
- package/tools/context/context_provider.py +721 -0
- package/tools/context/context_section_reader.py +342 -0
- package/tools/context/deep_merge.py +159 -0
- package/tools/context/pending_updates.py +760 -0
- package/tools/context/surface_router.py +278 -0
- package/tools/fast-queries/README.md +65 -0
- package/tools/fast-queries/__init__.py +30 -0
- package/tools/fast-queries/appservices/quicktriage_devops_developer.sh +75 -0
- package/tools/fast-queries/cloud/aws/quicktriage_aws_troubleshooter.sh +32 -0
- package/tools/fast-queries/cloud/gcp/quicktriage_gcp_troubleshooter.sh +88 -0
- package/tools/fast-queries/gitops/quicktriage_gitops_operator.sh +48 -0
- package/tools/fast-queries/run_triage.sh +59 -0
- package/tools/fast-queries/terraform/quicktriage_terraform_architect.sh +80 -0
- package/tools/gaia_simulator/__init__.py +33 -0
- package/tools/gaia_simulator/cli.py +354 -0
- package/tools/gaia_simulator/extractor.py +457 -0
- package/tools/gaia_simulator/reporter.py +258 -0
- package/tools/gaia_simulator/routing_simulator.py +334 -0
- package/tools/gaia_simulator/runner.py +539 -0
- package/tools/gaia_simulator/skills_mapper.py +264 -0
- package/tools/memory/README.md +0 -0
- package/tools/memory/__init__.py +20 -0
- package/tools/memory/backfill_fts5.py +107 -0
- package/tools/memory/conflict_detector.py +295 -0
- package/tools/memory/episodic.py +1210 -0
- package/tools/memory/git_invalidator.py +262 -0
- package/tools/memory/paths.py +102 -0
- package/tools/memory/scoring.py +193 -0
- package/tools/memory/search_store.py +360 -0
- package/tools/persist_transcript_analysis.py +85 -0
- package/tools/review/__init__.py +1 -0
- package/tools/review/review_engine.py +157 -0
- package/tools/scan/__init__.py +35 -0
- package/tools/scan/config.py +247 -0
- package/tools/scan/merge.py +212 -0
- package/tools/scan/orchestrator.py +549 -0
- package/tools/scan/registry.py +127 -0
- package/tools/scan/scanners/__init__.py +18 -0
- package/tools/scan/scanners/base.py +137 -0
- package/tools/scan/scanners/environment.py +349 -0
- package/tools/scan/scanners/git.py +570 -0
- package/tools/scan/scanners/infrastructure.py +875 -0
- package/tools/scan/scanners/orchestration.py +600 -0
- package/tools/scan/scanners/stack.py +1085 -0
- package/tools/scan/scanners/tools.py +260 -0
- package/tools/scan/setup.py +686 -0
- package/tools/scan/tests/__init__.py +1 -0
- package/tools/scan/tests/conftest.py +796 -0
- package/tools/scan/tests/test_environment.py +323 -0
- package/tools/scan/tests/test_git.py +419 -0
- package/tools/scan/tests/test_infrastructure.py +382 -0
- package/tools/scan/tests/test_integration.py +920 -0
- package/tools/scan/tests/test_merge.py +269 -0
- package/tools/scan/tests/test_orchestration.py +304 -0
- package/tools/scan/tests/test_stack.py +604 -0
- package/tools/scan/tests/test_tools.py +349 -0
- package/tools/scan/ui.py +624 -0
- package/tools/scan/verify.py +270 -0
- package/tools/scan/walk.py +118 -0
- package/tools/scan/workspace.py +85 -0
- package/tools/validation/README.md +244 -0
- package/tools/validation/__init__.py +17 -0
- package/tools/validation/approval_gate.py +321 -0
- package/tools/validation/validate_skills.py +189 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gitops-operator
|
|
3
|
+
description: A specialized agent that manages the Kubernetes application lifecycle via GitOps. It analyzes, proposes, and realizes changes to declarative configurations in the Git repository.
|
|
4
|
+
tools: Read, Edit, Write, Glob, Grep, Bash, Task, Skill
|
|
5
|
+
model: inherit
|
|
6
|
+
maxTurns: 40
|
|
7
|
+
permissionMode: acceptEdits
|
|
8
|
+
disallowedTools: [NotebookEdit]
|
|
9
|
+
skills:
|
|
10
|
+
- agent-protocol
|
|
11
|
+
- security-tiers
|
|
12
|
+
- investigation
|
|
13
|
+
- command-execution
|
|
14
|
+
- gitops-patterns
|
|
15
|
+
- context-updater
|
|
16
|
+
- fast-queries
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Workflow
|
|
20
|
+
|
|
21
|
+
1. **Triage first**: When checking reconciliation status or cluster health, run the fast-queries GitOps triage script before manual kubectl commands.
|
|
22
|
+
2. **Deep analysis**: When investigating drift between desired state and live state, follow the investigation phases.
|
|
23
|
+
3. **Update context**: Before completing, if you discovered namespaces, services, or GitOps configurations not in Project Context, emit a CONTEXT_UPDATE block.
|
|
24
|
+
|
|
25
|
+
## Identity
|
|
26
|
+
|
|
27
|
+
You are a senior GitOps operator. You manage the entire lifecycle of Kubernetes applications by interacting **only with the declarative configuration in the Git repository**. Flux synchronizes your code to the cluster — you never apply resources directly.
|
|
28
|
+
|
|
29
|
+
**Your output is always a Realization Package:**
|
|
30
|
+
- YAML manifest(s) to create or modify
|
|
31
|
+
- `kubectl diff --dry-run` output
|
|
32
|
+
- Pattern explanation: which existing manifest you followed and why
|
|
33
|
+
|
|
34
|
+
## Scope
|
|
35
|
+
|
|
36
|
+
### CAN DO
|
|
37
|
+
- Analyze existing YAML manifests (HelmRelease, Kustomization, ConfigMap, etc.)
|
|
38
|
+
- Generate new YAML manifests following `gitops-patterns`
|
|
39
|
+
- Run kubectl commands (get, describe, logs, diff, apply --dry-run=server)
|
|
40
|
+
- Run helm commands (template, lint, list, status)
|
|
41
|
+
- Run flux commands (get, reconcile with timeout)
|
|
42
|
+
- Git operations for realization (add, commit, push)
|
|
43
|
+
|
|
44
|
+
### CANNOT DO → DELEGATE
|
|
45
|
+
|
|
46
|
+
| Need | Agent |
|
|
47
|
+
|------|-------|
|
|
48
|
+
| Terraform / cloud infrastructure | `terraform-architect` |
|
|
49
|
+
| Query live cloud state (`gcloud`, `aws`) | `cloud-troubleshooter` |
|
|
50
|
+
| Application code (Python, Node.js) | `developer` |
|
|
51
|
+
| gaia-ops modifications | `gaia` |
|
|
52
|
+
|
|
53
|
+
## Domain Errors
|
|
54
|
+
|
|
55
|
+
| Error | Action |
|
|
56
|
+
|-------|--------|
|
|
57
|
+
| `flux reconcile` timeout | Check kustomization status, increase timeout |
|
|
58
|
+
| `HelmRelease` failed | `kubectl describe helmrelease <name>`, check values |
|
|
59
|
+
| `ImagePullBackOff` | Verify image tag exists, check registry auth |
|
|
60
|
+
| `CrashLoopBackOff` | `kubectl logs <pod>`, check app config and secrets |
|
|
61
|
+
| Git push rejected | `git pull --rebase`, resolve conflicts |
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: terraform-architect
|
|
3
|
+
description: A specialized agent that manages the cloud infrastructure lifecycle via IaC. It analyzes, proposes, and realizes changes to declarative configurations using Terraform and Terragrunt.
|
|
4
|
+
tools: Read, Edit, Write, Glob, Grep, Bash, Task, Skill, WebFetch
|
|
5
|
+
model: inherit
|
|
6
|
+
maxTurns: 40
|
|
7
|
+
permissionMode: acceptEdits
|
|
8
|
+
disallowedTools: [NotebookEdit]
|
|
9
|
+
skills:
|
|
10
|
+
- agent-protocol
|
|
11
|
+
- security-tiers
|
|
12
|
+
- investigation
|
|
13
|
+
- command-execution
|
|
14
|
+
- terraform-patterns
|
|
15
|
+
- context-updater
|
|
16
|
+
- fast-queries
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Workflow
|
|
20
|
+
|
|
21
|
+
1. **Understand what exists**: Follow the investigation phases — read existing modules, discover naming patterns, find the project's Terraform organization before proposing anything.
|
|
22
|
+
2. **Check current state**: When drift is suspected or runtime data is needed, run the fast-queries Terraform or cloud triage script.
|
|
23
|
+
3. **Propose with evidence**: Build a plan grounded in what you found — which existing module you followed, which patterns you matched, what the plan output shows.
|
|
24
|
+
4. **Present for review**: When `terragrunt apply` or other T3 operations are needed, present a REVIEW plan first. If a hook blocks it, include the `approval_id` from the deny response in your REVIEW approval_request.
|
|
25
|
+
5. **Execute and verify**: After approval (T3) or after investigation confirms patterns (T0-T2), create/modify files and run verification.
|
|
26
|
+
6. **Update context**: Before completing, if you discovered infrastructure topology, service accounts, or network configs not in Project Context, emit a CONTEXT_UPDATE block.
|
|
27
|
+
|
|
28
|
+
## Identity
|
|
29
|
+
|
|
30
|
+
You are a senior Terraform architect. You manage the entire lifecycle of cloud infrastructure by working **primarily with the declarative configuration in the Git repository**. You use `terragrunt plan` to compare code against live state, but you never query live cloud resources directly via `gcloud` or `aws` CLI — delegate that to `cloud-troubleshooter`.
|
|
31
|
+
|
|
32
|
+
**Your output is always a Realization Package:**
|
|
33
|
+
- HCL code to create or modify
|
|
34
|
+
- `terragrunt plan` output
|
|
35
|
+
- Pattern explanation: which existing module you followed and why
|
|
36
|
+
|
|
37
|
+
## Scope
|
|
38
|
+
|
|
39
|
+
### CAN DO
|
|
40
|
+
- Analyze existing Terraform/Terragrunt configurations
|
|
41
|
+
- Generate `.tf` / `.hcl` files following `terraform-patterns`
|
|
42
|
+
- Investigate existing configurations before generating anything new
|
|
43
|
+
- Run terraform/terragrunt commands (init, validate, plan, apply — T3 requires approval)
|
|
44
|
+
- Git operations for realization (add, commit, push)
|
|
45
|
+
|
|
46
|
+
### CANNOT DO → DELEGATE
|
|
47
|
+
|
|
48
|
+
| Need | Agent |
|
|
49
|
+
|------|-------|
|
|
50
|
+
| Query live cloud state (`gcloud`, `aws`) | `cloud-troubleshooter` |
|
|
51
|
+
| Kubernetes / Flux manifests | `gitops-operator` |
|
|
52
|
+
| Application code (Python, Node.js) | `developer` |
|
|
53
|
+
| gaia-ops modifications | `gaia` |
|
|
54
|
+
|
|
55
|
+
## Domain Errors
|
|
56
|
+
|
|
57
|
+
| Error | Action |
|
|
58
|
+
|-------|--------|
|
|
59
|
+
| `terraform init` fails | Check credentials and provider version |
|
|
60
|
+
| Plan shows unexpected **destroys** | HALT — report, require explicit confirmation |
|
|
61
|
+
| Apply timeout | Check cloud quotas, retry |
|
|
62
|
+
| State lock | Report who holds the lock — wait or force-unlock with caution |
|
|
63
|
+
| Drift detected | Report — ask: sync code to live, or apply code to live? |
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gaia
|
|
3
|
+
description: Invoke the Gaia meta-agent for system architecture analysis, agent design, skill creation, and orchestration debugging
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash(*)
|
|
6
|
+
- Read
|
|
7
|
+
- Edit
|
|
8
|
+
- Write
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- WebSearch
|
|
12
|
+
- WebFetch
|
|
13
|
+
- Task
|
|
14
|
+
- Agent
|
|
15
|
+
- Skill
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
Invoke the Gaia meta-agent (`gaia-system`) to work on the gaia-ops orchestration
|
|
19
|
+
system itself. This is the entry point for tasks that modify or analyze agents,
|
|
20
|
+
skills, hooks, or system architecture.
|
|
21
|
+
|
|
22
|
+
## When to use
|
|
23
|
+
|
|
24
|
+
- Analyze or improve the gaia-ops architecture
|
|
25
|
+
- Create or update agent definitions (`.md` files)
|
|
26
|
+
- Create or update skills (`SKILL.md` files)
|
|
27
|
+
- Write or debug Python hooks and tools
|
|
28
|
+
- Update `CLAUDE.md` or system configuration
|
|
29
|
+
- Research best practices for agent orchestration
|
|
30
|
+
|
|
31
|
+
## How it works
|
|
32
|
+
|
|
33
|
+
This command delegates to the `gaia-system` agent, which is the meta-agent
|
|
34
|
+
specialized in the orchestration system. It follows the standard agent protocol
|
|
35
|
+
and returns a `json:contract` block with findings and status.
|
|
36
|
+
|
|
37
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Config
|
|
2
|
+
|
|
3
|
+
Configuration lives here, separate from hooks, because these are data files — not code. Hooks are Python scripts that run at runtime; config files are JSON documents that those scripts read to make decisions. Keeping them apart means you can audit and change system behavior (which agents see which context sections, what git commit patterns are allowed, which surfaces route where) without touching executable code. It also makes the config files version-controllable and reviewable on their own terms.
|
|
4
|
+
|
|
5
|
+
The contracts are the most important piece in this directory. `context-contracts.json` defines, per agent, which sections of `project-context.json` the agent is allowed to read and which it is allowed to write. This is the access control layer for project knowledge — an agent that is not in the contracts file receives no context injection at all. The cloud extension files in `cloud/` extend these contracts for cloud-specific sections without modifying the base file, so adding a new cloud provider is a new file, not an edit to the core.
|
|
6
|
+
|
|
7
|
+
The other files — routing, git standards, universal rules — are each consumed by a specific module and do exactly what their names say. There is no magic here: the files are loaded, parsed, and applied by the module that reads them.
|
|
8
|
+
|
|
9
|
+
## Cuándo se activa
|
|
10
|
+
|
|
11
|
+
This component does not activate as a runtime process. Each file is read on-demand by the module that needs it. The table below shows the read point for each file.
|
|
12
|
+
|
|
13
|
+
**Cuándo se lee cada archivo:**
|
|
14
|
+
|
|
15
|
+
| File | Read by | When |
|
|
16
|
+
|------|---------|------|
|
|
17
|
+
| `surface-routing.json` | `hooks/user_prompt_submit.py` | Every prompt — determines routing recommendation injected into orchestrator context |
|
|
18
|
+
| `context-contracts.json` | `tools/context/context_provider.py` | Every agent dispatch — determines which project-context sections to inject |
|
|
19
|
+
| `git_standards.json` | `hooks/modules/validation/commit_validator.py` | Every `git commit` call intercepted by PreToolUse |
|
|
20
|
+
| `universal-rules.json` | `tools/context/context_provider.py` | Every agent dispatch — injected into all agents alongside project context |
|
|
21
|
+
| `cloud/gcp.json` | `tools/context/context_provider.py` | Agent dispatch when `cloud_provider = gcp` in project-context.json |
|
|
22
|
+
| `cloud/aws.json` | `tools/context/context_provider.py` | Agent dispatch when `cloud_provider = aws` in project-context.json |
|
|
23
|
+
|
|
24
|
+
**Base + cloud merge flow:**
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
Agent dispatch triggered
|
|
28
|
+
|
|
|
29
|
+
context_provider.py reads context-contracts.json <- cloud-agnostic base
|
|
30
|
+
|
|
|
31
|
+
Detects cloud_provider from project-context.json
|
|
32
|
+
|
|
|
33
|
+
Reads cloud/{provider}.json <- cloud extensions
|
|
34
|
+
|
|
|
35
|
+
Merges: extends read/write lists per agent (no duplicates)
|
|
36
|
+
|
|
|
37
|
+
Result: complete contract for this agent on this cloud
|
|
38
|
+
|
|
|
39
|
+
Agent receives filtered project-context sections
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Qué hay aquí
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
config/
|
|
46
|
+
├── context-contracts.json # Per-agent read/write access to project-context sections
|
|
47
|
+
├── surface-routing.json # Intent classification and agent routing signals
|
|
48
|
+
├── git_standards.json # Commit type allowlist, footer rules, Conventional Commits config
|
|
49
|
+
├── universal-rules.json # Behavior rules injected into all agents at dispatch time
|
|
50
|
+
├── cloud/
|
|
51
|
+
│ ├── gcp.json # GCP-specific context sections (extends base contracts)
|
|
52
|
+
│ └── aws.json # AWS-specific context sections (extends base contracts)
|
|
53
|
+
└── README.md
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Convenciones
|
|
57
|
+
|
|
58
|
+
**context-contracts.json schema:** Each entry is keyed by agent name. Each agent has `read` (list of project-context section names the agent receives) and `write` (list of sections the agent can update via CONTEXT_UPDATE). `core_sections` is a top-level list of sections injected into every agent regardless of per-agent config.
|
|
59
|
+
|
|
60
|
+
**Adding a new cloud:** Create `cloud/azure.json` following the same schema as `cloud/gcp.json`. Define agent-specific sections for that cloud. No code changes needed — `context_provider.py` detects the file automatically by matching `cloud_provider` from project-context.
|
|
61
|
+
|
|
62
|
+
**surface-routing.json format:** Each surface entry has `intent`, `primary_agent`, `adjacent_surfaces`, and `signals` (with `high` and `medium` confidence keyword lists). High-confidence signals are checked first; medium signals act as tie-breakers.
|
|
63
|
+
|
|
64
|
+
**universal-rules.json:** Changes here affect every agent in every session. Add only rules that are truly universal — constraints that apply regardless of domain. Domain-specific rules belong in the relevant skill (`security-tiers`, `command-execution`, etc.).
|
|
65
|
+
|
|
66
|
+
## Ver también
|
|
67
|
+
|
|
68
|
+
- [`hooks/user_prompt_submit.py`](../hooks/user_prompt_submit.py) — reads `surface-routing.json` on every prompt
|
|
69
|
+
- [`hooks/modules/validation/`](../hooks/modules/validation/) — reads `git_standards.json` on commit validation
|
|
70
|
+
- [`tools/context/`](../tools/context/) — reads contracts and universal-rules at agent dispatch time
|
|
71
|
+
- [`agents/README.md`](../agents/README.md) — agent names that must match context-contracts.json keys
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "2.0",
|
|
3
|
+
"provider": "aws",
|
|
4
|
+
"description": "AWS-specific context extensions. Merged on top of context-contracts.json at runtime by context_provider.py.",
|
|
5
|
+
"agents": {
|
|
6
|
+
"cloud-troubleshooter": {
|
|
7
|
+
"read": [
|
|
8
|
+
"vpc_mapping",
|
|
9
|
+
"load_balancers",
|
|
10
|
+
"api_gateway",
|
|
11
|
+
"irsa_bindings",
|
|
12
|
+
"aws_accounts"
|
|
13
|
+
],
|
|
14
|
+
"write": [
|
|
15
|
+
"vpc_mapping",
|
|
16
|
+
"load_balancers",
|
|
17
|
+
"irsa_bindings"
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"terraform-architect": {
|
|
21
|
+
"read": [
|
|
22
|
+
"vpc_mapping",
|
|
23
|
+
"load_balancers",
|
|
24
|
+
"api_gateway",
|
|
25
|
+
"irsa_bindings",
|
|
26
|
+
"aws_accounts"
|
|
27
|
+
],
|
|
28
|
+
"write": [
|
|
29
|
+
"vpc_mapping",
|
|
30
|
+
"load_balancers",
|
|
31
|
+
"api_gateway",
|
|
32
|
+
"irsa_bindings"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"gitops-operator": {
|
|
36
|
+
"read": [
|
|
37
|
+
"irsa_bindings"
|
|
38
|
+
],
|
|
39
|
+
"write": []
|
|
40
|
+
},
|
|
41
|
+
"developer": {
|
|
42
|
+
"read": [
|
|
43
|
+
"aws_accounts",
|
|
44
|
+
"load_balancers"
|
|
45
|
+
],
|
|
46
|
+
"write": []
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"section_schemas": {
|
|
50
|
+
"aws_accounts": {
|
|
51
|
+
"_description": "AWS account IDs by environment. AWS projects often use multiple accounts (prod, dev, shared services).",
|
|
52
|
+
"production": {
|
|
53
|
+
"account_id": "",
|
|
54
|
+
"account_alias": "",
|
|
55
|
+
"region": "us-east-1"
|
|
56
|
+
},
|
|
57
|
+
"development": {
|
|
58
|
+
"account_id": "",
|
|
59
|
+
"account_alias": "",
|
|
60
|
+
"region": "us-east-1"
|
|
61
|
+
},
|
|
62
|
+
"shared": {
|
|
63
|
+
"account_id": "",
|
|
64
|
+
"account_alias": "",
|
|
65
|
+
"purpose": "Shared services (ECR, shared EKS, tooling)"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"vpc_mapping": {
|
|
69
|
+
"_description": "AWS VPC topology per environment, including subnets and AZ mapping",
|
|
70
|
+
"vpcs": [
|
|
71
|
+
{
|
|
72
|
+
"vpc_id": "",
|
|
73
|
+
"name": "",
|
|
74
|
+
"environment": "production",
|
|
75
|
+
"region": "us-east-1",
|
|
76
|
+
"cidr": "10.0.0.0/16",
|
|
77
|
+
"subnets": {
|
|
78
|
+
"private": [],
|
|
79
|
+
"public": []
|
|
80
|
+
},
|
|
81
|
+
"availability_zones": [],
|
|
82
|
+
"clusters": [],
|
|
83
|
+
"status": "ACTIVE"
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
"load_balancers": {
|
|
88
|
+
"_description": "AWS NLB and ALB resources by service and cluster",
|
|
89
|
+
"_example": {
|
|
90
|
+
"my-service-nlb-prod": {
|
|
91
|
+
"name": "my-service-nlb-prod",
|
|
92
|
+
"type": "network",
|
|
93
|
+
"scheme": "internal",
|
|
94
|
+
"dns": "xxxx.elb.us-east-1.amazonaws.com",
|
|
95
|
+
"service": "my-service",
|
|
96
|
+
"namespace": "my-namespace",
|
|
97
|
+
"cluster": "my-eks-cluster",
|
|
98
|
+
"purpose": ""
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"api_gateway": {
|
|
103
|
+
"_description": "AWS API Gateway V2 (HTTP/WebSocket) configurations and VPC Links",
|
|
104
|
+
"vpc_links": {
|
|
105
|
+
"_example_key": {
|
|
106
|
+
"id": "",
|
|
107
|
+
"status": "ACTIVE",
|
|
108
|
+
"target_nlb": "",
|
|
109
|
+
"target_nlb_dns": "",
|
|
110
|
+
"backend_service": "",
|
|
111
|
+
"namespace": "",
|
|
112
|
+
"cluster": "",
|
|
113
|
+
"host": "",
|
|
114
|
+
"purpose": ""
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
"apis": []
|
|
118
|
+
},
|
|
119
|
+
"irsa_bindings": {
|
|
120
|
+
"_description": "IAM Roles for Service Accounts (OIDC-based). AWS equivalent of GCP Workload Identity.",
|
|
121
|
+
"_example": {
|
|
122
|
+
"my-service-sa": {
|
|
123
|
+
"kubernetes_sa": "my-service-sa",
|
|
124
|
+
"namespace": "my-namespace",
|
|
125
|
+
"iam_role_arn": "arn:aws:iam::123456789012:role/my-service-role",
|
|
126
|
+
"iam_policies": [
|
|
127
|
+
"arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess"
|
|
128
|
+
],
|
|
129
|
+
"purpose": "Describe what this service account does"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "2.0",
|
|
3
|
+
"provider": "gcp",
|
|
4
|
+
"description": "GCP-specific context extensions. Merged on top of context-contracts.json at runtime by context_provider.py.",
|
|
5
|
+
"agents": {
|
|
6
|
+
"cloud-troubleshooter": {
|
|
7
|
+
"read": [
|
|
8
|
+
"gcp_services",
|
|
9
|
+
"workload_identity",
|
|
10
|
+
"static_ips"
|
|
11
|
+
],
|
|
12
|
+
"write": [
|
|
13
|
+
"gcp_services",
|
|
14
|
+
"workload_identity",
|
|
15
|
+
"static_ips"
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"terraform-architect": {
|
|
19
|
+
"read": [
|
|
20
|
+
"gcp_services",
|
|
21
|
+
"workload_identity",
|
|
22
|
+
"static_ips"
|
|
23
|
+
],
|
|
24
|
+
"write": [
|
|
25
|
+
"gcp_services",
|
|
26
|
+
"workload_identity",
|
|
27
|
+
"static_ips"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
"gitops-operator": {
|
|
31
|
+
"read": [
|
|
32
|
+
"workload_identity",
|
|
33
|
+
"gcp_services"
|
|
34
|
+
],
|
|
35
|
+
"write": []
|
|
36
|
+
},
|
|
37
|
+
"developer": {
|
|
38
|
+
"read": [
|
|
39
|
+
"gcp_services"
|
|
40
|
+
],
|
|
41
|
+
"write": []
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"section_schemas": {
|
|
45
|
+
"gcp_services": {
|
|
46
|
+
"_description": "GCP-managed services used by the project (Artifact Registry, Cloud SQL, Memorystore, etc.)",
|
|
47
|
+
"artifact_registry": {
|
|
48
|
+
"repositories": [
|
|
49
|
+
{
|
|
50
|
+
"name": "",
|
|
51
|
+
"location": "",
|
|
52
|
+
"format": "DOCKER",
|
|
53
|
+
"project": "",
|
|
54
|
+
"url": ""
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
"cloud_sql": {
|
|
59
|
+
"instances": [
|
|
60
|
+
{
|
|
61
|
+
"name": "",
|
|
62
|
+
"version": "POSTGRES_15",
|
|
63
|
+
"tier": "db-f1-micro",
|
|
64
|
+
"region": "",
|
|
65
|
+
"database_flags": {},
|
|
66
|
+
"status": ""
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
"memorystore": {
|
|
71
|
+
"instances": [
|
|
72
|
+
{
|
|
73
|
+
"name": "",
|
|
74
|
+
"tier": "BASIC",
|
|
75
|
+
"memory_size_gb": 1,
|
|
76
|
+
"region": "",
|
|
77
|
+
"status": ""
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"cloud_storage": {
|
|
82
|
+
"buckets": [
|
|
83
|
+
{
|
|
84
|
+
"name": "",
|
|
85
|
+
"location": "",
|
|
86
|
+
"storage_class": "STANDARD",
|
|
87
|
+
"purpose": ""
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
"secret_manager": {
|
|
92
|
+
"enabled": true,
|
|
93
|
+
"secrets": []
|
|
94
|
+
},
|
|
95
|
+
"pubsub": {
|
|
96
|
+
"topics": [],
|
|
97
|
+
"subscriptions": []
|
|
98
|
+
},
|
|
99
|
+
"cloud_nat": {
|
|
100
|
+
"name": "",
|
|
101
|
+
"router": "",
|
|
102
|
+
"region": "",
|
|
103
|
+
"status": ""
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"workload_identity": {
|
|
107
|
+
"_description": "GCP Workload Identity bindings: Kubernetes ServiceAccount -> GCP ServiceAccount with IAM roles",
|
|
108
|
+
"_example": {
|
|
109
|
+
"my-service-sa": {
|
|
110
|
+
"kubernetes_sa": "my-service-sa",
|
|
111
|
+
"namespace": "my-namespace",
|
|
112
|
+
"gcp_sa": "my-service-sa@project-id.iam.gserviceaccount.com",
|
|
113
|
+
"iam_roles": [
|
|
114
|
+
"roles/cloudsql.client",
|
|
115
|
+
"roles/secretmanager.secretAccessor",
|
|
116
|
+
"roles/artifactregistry.reader"
|
|
117
|
+
],
|
|
118
|
+
"purpose": "Describe what this service account does"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"static_ips": {
|
|
123
|
+
"_description": "GCP global and regional static IP addresses used for Ingress and services",
|
|
124
|
+
"_example": {
|
|
125
|
+
"my-service-ip": {
|
|
126
|
+
"name": "my-service-ip",
|
|
127
|
+
"address": "34.x.x.x",
|
|
128
|
+
"type": "global",
|
|
129
|
+
"purpose": "Ingress for my-service",
|
|
130
|
+
"dns_records": [
|
|
131
|
+
"my-service.example.com"
|
|
132
|
+
],
|
|
133
|
+
"ssl_certificates": "Active until YYYY-MM-DD",
|
|
134
|
+
"status": ""
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "4.0",
|
|
3
|
+
"description": "Context contracts v4: universal core sections + agent-specific ops sections + workspace_repos. Core sections are granted to every agent. Cloud-specific extensions live in cloud/{provider}.json.",
|
|
4
|
+
"core_sections": [
|
|
5
|
+
"project_identity",
|
|
6
|
+
"stack",
|
|
7
|
+
"git",
|
|
8
|
+
"environment",
|
|
9
|
+
"application_services",
|
|
10
|
+
"architecture_overview",
|
|
11
|
+
"operational_guidelines"
|
|
12
|
+
],
|
|
13
|
+
"section_schemas": {
|
|
14
|
+
"workspace_repos": {
|
|
15
|
+
"description": "Array of repositories in a multi-repo workspace",
|
|
16
|
+
"schema": {
|
|
17
|
+
"repos": [
|
|
18
|
+
{
|
|
19
|
+
"name": "string",
|
|
20
|
+
"path": "string (relative to workspace root)",
|
|
21
|
+
"remote_url": "string",
|
|
22
|
+
"platform": "string (github/gitlab/bitbucket)",
|
|
23
|
+
"role": "string (gitops/iac/platform/agent/library)",
|
|
24
|
+
"primary_language": "string"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"agents": {
|
|
31
|
+
"cloud-troubleshooter": {
|
|
32
|
+
"read": [
|
|
33
|
+
"project_identity",
|
|
34
|
+
"stack",
|
|
35
|
+
"git",
|
|
36
|
+
"environment",
|
|
37
|
+
"application_services",
|
|
38
|
+
"architecture_overview",
|
|
39
|
+
"operational_guidelines",
|
|
40
|
+
"infrastructure",
|
|
41
|
+
"orchestration",
|
|
42
|
+
"cluster_details",
|
|
43
|
+
"infrastructure_topology",
|
|
44
|
+
"terraform_infrastructure",
|
|
45
|
+
"gitops_configuration",
|
|
46
|
+
"monitoring_observability",
|
|
47
|
+
"workspace_repos"
|
|
48
|
+
],
|
|
49
|
+
"write": [
|
|
50
|
+
"cluster_details",
|
|
51
|
+
"infrastructure_topology",
|
|
52
|
+
"application_services",
|
|
53
|
+
"monitoring_observability",
|
|
54
|
+
"architecture_overview"
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"gitops-operator": {
|
|
58
|
+
"read": [
|
|
59
|
+
"project_identity",
|
|
60
|
+
"stack",
|
|
61
|
+
"git",
|
|
62
|
+
"environment",
|
|
63
|
+
"application_services",
|
|
64
|
+
"architecture_overview",
|
|
65
|
+
"operational_guidelines",
|
|
66
|
+
"infrastructure",
|
|
67
|
+
"orchestration",
|
|
68
|
+
"gitops_configuration",
|
|
69
|
+
"cluster_details",
|
|
70
|
+
"workspace_repos"
|
|
71
|
+
],
|
|
72
|
+
"write": [
|
|
73
|
+
"gitops_configuration",
|
|
74
|
+
"cluster_details",
|
|
75
|
+
"application_services"
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
"terraform-architect": {
|
|
79
|
+
"read": [
|
|
80
|
+
"project_identity",
|
|
81
|
+
"stack",
|
|
82
|
+
"git",
|
|
83
|
+
"environment",
|
|
84
|
+
"application_services",
|
|
85
|
+
"architecture_overview",
|
|
86
|
+
"operational_guidelines",
|
|
87
|
+
"infrastructure",
|
|
88
|
+
"orchestration",
|
|
89
|
+
"terraform_infrastructure",
|
|
90
|
+
"infrastructure_topology",
|
|
91
|
+
"cluster_details",
|
|
92
|
+
"workspace_repos"
|
|
93
|
+
],
|
|
94
|
+
"write": [
|
|
95
|
+
"terraform_infrastructure",
|
|
96
|
+
"infrastructure_topology"
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
"developer": {
|
|
100
|
+
"read": [
|
|
101
|
+
"project_identity",
|
|
102
|
+
"stack",
|
|
103
|
+
"git",
|
|
104
|
+
"environment",
|
|
105
|
+
"application_services",
|
|
106
|
+
"architecture_overview",
|
|
107
|
+
"operational_guidelines",
|
|
108
|
+
"infrastructure",
|
|
109
|
+
"workspace_repos"
|
|
110
|
+
],
|
|
111
|
+
"write": [
|
|
112
|
+
"application_services",
|
|
113
|
+
"architecture_overview"
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
"gaia-planner": {
|
|
117
|
+
"read": [
|
|
118
|
+
"project_identity",
|
|
119
|
+
"stack",
|
|
120
|
+
"git",
|
|
121
|
+
"environment",
|
|
122
|
+
"application_services",
|
|
123
|
+
"architecture_overview",
|
|
124
|
+
"operational_guidelines",
|
|
125
|
+
"infrastructure",
|
|
126
|
+
"workspace_repos"
|
|
127
|
+
],
|
|
128
|
+
"write": []
|
|
129
|
+
},
|
|
130
|
+
"gaia-operator": {
|
|
131
|
+
"read": [
|
|
132
|
+
"project_identity",
|
|
133
|
+
"stack",
|
|
134
|
+
"git",
|
|
135
|
+
"environment",
|
|
136
|
+
"workspace_repos"
|
|
137
|
+
],
|
|
138
|
+
"write": [
|
|
139
|
+
"workspace_repos"
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
"gaia-system": {
|
|
143
|
+
"read": [
|
|
144
|
+
"project_identity",
|
|
145
|
+
"stack",
|
|
146
|
+
"git",
|
|
147
|
+
"environment",
|
|
148
|
+
"application_services",
|
|
149
|
+
"architecture_overview",
|
|
150
|
+
"operational_guidelines",
|
|
151
|
+
"infrastructure"
|
|
152
|
+
],
|
|
153
|
+
"write": [
|
|
154
|
+
"architecture_overview"
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|