god-code 0.6.1__tar.gz → 0.9.2__tar.gz
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.
- god_code-0.9.2/.codetape/component-map.json +208 -0
- god_code-0.9.2/.codetape/config.json +18 -0
- god_code-0.9.2/.github/FUNDING.yml +3 -0
- god_code-0.9.2/.github/workflows/docs.yml +41 -0
- {god_code-0.6.1 → god_code-0.9.2}/.gitignore +4 -0
- god_code-0.9.2/CHANGELOG.md +60 -0
- god_code-0.9.2/CLAUDE.md +439 -0
- {god_code-0.6.1 → god_code-0.9.2}/PKG-INFO +4 -2
- god_code-0.9.2/PRIVACY.md +113 -0
- god_code-0.9.2/README.md +158 -0
- god_code-0.9.2/SECURITY.md +66 -0
- god_code-0.9.2/docs/cli/ask.md +33 -0
- god_code-0.9.2/docs/cli/chat.md +40 -0
- god_code-0.9.2/docs/empty-project-to-first-verified-change.md +225 -0
- god_code-0.9.2/docs/gameplay-intent-and-enemy-ai-roadmap.md +619 -0
- god_code-0.9.2/docs/getting-started/first-run.md +66 -0
- god_code-0.9.2/docs/getting-started/install.md +45 -0
- god_code-0.9.2/docs/index.md +26 -0
- god_code-0.9.2/docs/mcp/overview.md +47 -0
- god_code-0.9.2/docs/plans/2026-04-04-api-backend-design.md +874 -0
- god_code-0.9.2/docs/plans/2026-04-04-api-backend-impl.md +2090 -0
- god_code-0.9.2/docs/plans/2026-04-04-bullet-hell-sprite-qa-demo-polish-backlog.md +522 -0
- god_code-0.9.2/docs/plans/2026-04-04-demo-ready-upgrade.md +479 -0
- god_code-0.9.2/docs/plans/2026-04-05-dogfooding-inventory.md +317 -0
- god_code-0.9.2/docs/plans/2026-04-05-v08-design.md +453 -0
- god_code-0.9.2/docs/plans/2026-04-05-v08-impl.md +1021 -0
- god_code-0.9.2/docs/plans/2026-04-05-work-status.md +321 -0
- god_code-0.9.2/docs/plans/2026-04-06-auto-flow-impl.md +1102 -0
- god_code-0.9.2/docs/plans/2026-04-06-interactive-ux-redesign.md +314 -0
- god_code-0.9.2/docs/plans/2026-04-07-god-code-prelaunch-security-audit-design.md +184 -0
- god_code-0.9.2/docs/plans/2026-04-07-god-code-prelaunch-security-audit.md +1463 -0
- god_code-0.9.2/docs/providers/byok-and-oauth.md +48 -0
- god_code-0.9.2/docs/tui/menu-and-commands.md +57 -0
- god_code-0.9.2/docs/tui/settings-and-byok.md +61 -0
- god_code-0.9.2/docs/validation/quality-gate.md +32 -0
- god_code-0.9.2/godot_agent/addons/god_code_bridge/god_code_bridge.gd +191 -0
- god_code-0.9.2/godot_agent/addons/god_code_bridge/plugin.cfg +7 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/agents/dispatcher.py +42 -1
- god_code-0.9.2/godot_agent/cli/__init__.py +61 -0
- god_code-0.9.2/godot_agent/cli/__main__.py +6 -0
- god_code-0.6.1/godot_agent/cli.py → god_code-0.9.2/godot_agent/cli/commands.py +757 -551
- god_code-0.9.2/godot_agent/cli/engine_wiring.py +362 -0
- god_code-0.9.2/godot_agent/cli/helpers.py +207 -0
- god_code-0.9.2/godot_agent/cli/menus.py +215 -0
- god_code-0.9.2/godot_agent/entrypoint.py +13 -0
- god_code-0.9.2/godot_agent/godot/audio_scaffolder.py +90 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/godot/project.py +33 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/godot/scene_parser.py +11 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/godot/scene_writer.py +17 -8
- god_code-0.9.2/godot_agent/godot/ui_layout_advisor.py +293 -0
- god_code-0.9.2/godot_agent/godot/variant_codec.py +183 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/llm/adapters/base.py +19 -1
- god_code-0.9.2/godot_agent/llm/adapters/openai.py +129 -0
- god_code-0.9.2/godot_agent/llm/client.py +226 -0
- god_code-0.9.2/godot_agent/llm/redact.py +37 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/llm/streaming.py +65 -6
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/llm/types.py +24 -1
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/mcp_server.py +397 -46
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/prompts/assembler.py +60 -2
- god_code-0.9.2/godot_agent/prompts/genre_templates.py +120 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/prompts/godot_playbook.py +20 -0
- god_code-0.9.2/godot_agent/prompts/skill_library.py +501 -0
- god_code-0.9.2/godot_agent/prompts/skill_selector.py +203 -0
- god_code-0.9.2/godot_agent/prompts/vision_templates.py +195 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/runtime/config.py +30 -2
- god_code-0.9.2/godot_agent/runtime/context_health.py +23 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/runtime/context_manager.py +41 -0
- god_code-0.9.2/godot_agent/runtime/design_memory.py +460 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/runtime/engine.py +231 -16
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/runtime/error_loop.py +144 -5
- god_code-0.9.2/godot_agent/runtime/execution_plan.py +74 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/runtime/gameplay_reviewer.py +32 -2
- god_code-0.9.2/godot_agent/runtime/intent_resolver.py +458 -0
- god_code-0.9.2/godot_agent/runtime/live_client.py +216 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/runtime/modes.py +29 -5
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/runtime/oauth.py +20 -4
- god_code-0.9.2/godot_agent/runtime/playtest_harness.py +1394 -0
- god_code-0.9.2/godot_agent/runtime/polish_rubric.py +255 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/runtime/providers.py +6 -0
- god_code-0.9.2/godot_agent/runtime/quality_gate.py +422 -0
- god_code-0.9.2/godot_agent/runtime/reviewer.py +334 -0
- god_code-0.9.2/godot_agent/runtime/runtime_bridge.py +329 -0
- god_code-0.9.2/godot_agent/runtime/scenario_specs/bullet_hell_pattern_readability.json +11 -0
- god_code-0.9.2/godot_agent/runtime/scenario_specs/bullet_hell_phase_transition.json +74 -0
- god_code-0.9.2/godot_agent/runtime/scenario_specs/bullet_hell_wave_progression.json +79 -0
- god_code-0.9.2/godot_agent/runtime/scenario_specs/demo_boss_transition.json +73 -0
- god_code-0.9.2/godot_agent/runtime/scenario_specs/demo_combat_feedback.json +10 -0
- god_code-0.9.2/godot_agent/runtime/scenario_specs/demo_ui_readability.json +10 -0
- god_code-0.9.2/godot_agent/runtime/scenario_specs/demo_wave_pacing.json +89 -0
- god_code-0.9.2/godot_agent/runtime/scenario_specs/platformer_enemy_gap_jump.json +63 -0
- god_code-0.9.2/godot_agent/runtime/scenario_specs/platformer_enemy_patrol_response.json +62 -0
- god_code-0.9.2/godot_agent/runtime/scenario_specs/topdown_shooter_flank_resolution.json +66 -0
- god_code-0.9.2/godot_agent/runtime/scenario_specs/topdown_shooter_pressure.json +66 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/runtime/session.py +47 -1
- god_code-0.9.2/godot_agent/runtime/validation_checks.py +70 -0
- god_code-0.9.2/godot_agent/runtime/visual_regression.py +242 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/security/hooks.py +3 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/security/policies.py +2 -1
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/security/tool_pipeline.py +3 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/testing/scenario_runner.py +14 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/tools/analysis_tools.py +118 -0
- god_code-0.9.2/godot_agent/tools/base.py +146 -0
- god_code-0.9.2/godot_agent/tools/editor_bridge.py +257 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/tools/file_ops.py +11 -3
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/tools/godot_cli.py +111 -24
- god_code-0.9.2/godot_agent/tools/image_gen.py +250 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/tools/memory_tool.py +5 -4
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/tools/registry.py +3 -0
- god_code-0.9.2/godot_agent/tools/runtime_harness.py +585 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/tools/scene_tools.py +3 -2
- god_code-0.9.2/godot_agent/tools/screenshot.py +118 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/tools/shell.py +40 -0
- god_code-0.9.2/godot_agent/tools/sprite_pipeline.py +171 -0
- god_code-0.9.2/godot_agent/tools/sprite_qa.py +204 -0
- god_code-0.9.2/godot_agent/tools/vision_analysis.py +84 -0
- god_code-0.9.2/godot_agent/tools/vision_scoring.py +134 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/tools/web_search.py +16 -6
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/tui/display.py +305 -4
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/tui/input_handler.py +69 -1
- god_code-0.9.2/mkdocs.yml +48 -0
- {god_code-0.6.1 → god_code-0.9.2}/pyproject.toml +15 -3
- god_code-0.9.2/scripts/vision_model_comparison.py +367 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/agents/test_dispatcher.py +70 -1
- god_code-0.9.2/tests/cli/test_setup_bridge.py +103 -0
- god_code-0.9.2/tests/cli_test_utils.py +80 -0
- god_code-0.9.2/tests/fuzz/test_input_sequences.py +83 -0
- god_code-0.9.2/tests/godot/test_audio_scaffolder.py +31 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/godot/test_project.py +17 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/godot/test_scene_parser.py +7 -0
- god_code-0.9.2/tests/godot/test_ui_layout_advisor.py +34 -0
- god_code-0.9.2/tests/godot/test_variant_codec.py +23 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/llm/test_adapters.py +28 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/llm/test_client.py +101 -0
- god_code-0.9.2/tests/prompts/test_genre_templates.py +23 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/prompts/test_prompt_assembler.py +66 -1
- god_code-0.9.2/tests/prompts/test_skill_selector.py +88 -0
- god_code-0.9.2/tests/prompts/test_vision_templates.py +83 -0
- god_code-0.9.2/tests/runtime/test_config.py +123 -0
- god_code-0.9.2/tests/runtime/test_context_health.py +34 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/runtime/test_context_manager.py +71 -0
- god_code-0.9.2/tests/runtime/test_design_memory.py +130 -0
- god_code-0.9.2/tests/runtime/test_engine.py +465 -0
- god_code-0.9.2/tests/runtime/test_error_loop.py +137 -0
- god_code-0.9.2/tests/runtime/test_execution_plan.py +41 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/runtime/test_gameplay_reviewer.py +18 -1
- god_code-0.9.2/tests/runtime/test_intent_resolver.py +159 -0
- god_code-0.9.2/tests/runtime/test_live_client.py +214 -0
- god_code-0.9.2/tests/runtime/test_playtest_harness.py +579 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/runtime/test_quality_gate.py +27 -0
- god_code-0.9.2/tests/runtime/test_reviewer.py +103 -0
- god_code-0.9.2/tests/runtime/test_runtime_bridge.py +99 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/runtime/test_session.py +38 -0
- god_code-0.9.2/tests/runtime/test_validation_checks.py +35 -0
- god_code-0.9.2/tests/runtime/test_visual_regression.py +118 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/security/test_hooks.py +19 -0
- god_code-0.9.2/tests/test_auto_flow.py +90 -0
- god_code-0.9.2/tests/test_cli_interactive_flows.py +308 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/test_package_compatibility.py +9 -2
- god_code-0.9.2/tests/tools/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/tools/test_analysis_tools.py +34 -0
- god_code-0.9.2/tests/tools/test_editor_bridge.py +279 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/tools/test_godot_cli.py +91 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/tools/test_memory_tool.py +22 -0
- god_code-0.9.2/tests/tools/test_runtime_harness.py +282 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/tools/test_scene_tools.py +24 -0
- god_code-0.9.2/tests/tools/test_screenshot_tool.py +99 -0
- god_code-0.9.2/tests/tools/test_sprite_qa.py +141 -0
- god_code-0.9.2/tests/tools/test_vision_analysis.py +145 -0
- god_code-0.9.2/tests/tools/test_vision_scoring.py +265 -0
- god_code-0.9.2/tests/tui/__init__.py +0 -0
- god_code-0.9.2/tests/tui/test_display.py +18 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/tui/test_input_handler.py +36 -0
- god_code-0.9.2/tests/tui/test_plan_display.py +28 -0
- god_code-0.6.1/CHANGELOG.md +0 -46
- god_code-0.6.1/CLAUDE.md +0 -206
- god_code-0.6.1/README.md +0 -303
- god_code-0.6.1/godot_agent/llm/adapters/openai.py +0 -32
- god_code-0.6.1/godot_agent/llm/client.py +0 -98
- god_code-0.6.1/godot_agent/prompts/skill_library.py +0 -130
- god_code-0.6.1/godot_agent/prompts/skill_selector.py +0 -80
- god_code-0.6.1/godot_agent/runtime/design_memory.py +0 -140
- god_code-0.6.1/godot_agent/runtime/playtest_harness.py +0 -142
- god_code-0.6.1/godot_agent/runtime/quality_gate.py +0 -316
- god_code-0.6.1/godot_agent/runtime/reviewer.py +0 -228
- god_code-0.6.1/godot_agent/runtime/runtime_bridge.py +0 -74
- god_code-0.6.1/godot_agent/tools/base.py +0 -54
- god_code-0.6.1/godot_agent/tools/editor_bridge.py +0 -79
- god_code-0.6.1/godot_agent/tools/image_gen.py +0 -180
- god_code-0.6.1/godot_agent/tools/screenshot.py +0 -82
- god_code-0.6.1/tests/prompts/test_skill_selector.py +0 -30
- god_code-0.6.1/tests/runtime/test_config.py +0 -61
- god_code-0.6.1/tests/runtime/test_design_memory.py +0 -48
- god_code-0.6.1/tests/runtime/test_engine.py +0 -211
- god_code-0.6.1/tests/runtime/test_error_loop.py +0 -46
- god_code-0.6.1/tests/runtime/test_playtest_harness.py +0 -28
- god_code-0.6.1/tests/runtime/test_reviewer.py +0 -50
- god_code-0.6.1/tests/runtime/test_runtime_bridge.py +0 -30
- god_code-0.6.1/tests/tools/test_editor_bridge.py +0 -46
- {god_code-0.6.1 → god_code-0.9.2}/.github/workflows/publish.yml +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/AGENTS.md +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/CONTRIBUTING.md +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/LICENSE +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/agents/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/agents/configs.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/agents/results.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/godot/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/godot/collision_planner.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/godot/consistency_checker.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/godot/dependency_graph.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/godot/gdscript_linter.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/godot/impact_analysis.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/godot/pattern_advisor.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/godot/resource_validator.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/godot/tscn_validator.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/llm/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/llm/adapters/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/llm/adapters/anthropic.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/llm/vision.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/prompts/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/prompts/build_discipline.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/prompts/image_templates.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/prompts/knowledge_selector.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/prompts/system.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/py.typed +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/runtime/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/runtime/auth.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/runtime/events.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/runtime/scenario_specs/hud_feedback.json +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/runtime/scenario_specs/player_movement.json +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/runtime/scenario_specs/scene_transition.json +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/security/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/security/classifier.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/security/protected_paths.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/testing/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/tools/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/tools/git.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/tools/list_dir.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/tools/script_tools.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/tools/search.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/godot_agent/tui/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/skills/god-code-setup/SKILL.md +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/agents/test_playtest_analyst.py +0 -0
- {god_code-0.6.1/tests/godot → god_code-0.9.2/tests/cli}/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/e2e/test_planner_worker_reviewer_flow.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/e2e/test_policy_enforcement.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/e2e/test_scenario_runner.py +0 -0
- {god_code-0.6.1/tests/llm → god_code-0.9.2/tests/godot}/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/godot/test_collision_planner.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/godot/test_consistency.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/godot/test_dependency_graph.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/godot/test_impact_analysis.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/godot/test_linter.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/godot/test_pattern_advisor.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/godot/test_resource_validator.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/godot/test_scene_writer.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/godot/test_tscn_validator.py +0 -0
- {god_code-0.6.1/tests/prompts → god_code-0.9.2/tests/llm}/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/llm/test_vision.py +0 -0
- {god_code-0.6.1/tests/runtime → god_code-0.9.2/tests/prompts}/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/prompts/test_knowledge_selector.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/prompts/test_system_prompt.py +0 -0
- {god_code-0.6.1/tests/tools → god_code-0.9.2/tests/runtime}/__init__.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/runtime/test_mode_restrictions.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/runtime/test_multi_agent_flow.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/security/test_classifier.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/security/test_permissions.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/security/test_tool_pipeline.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/test_cli_config_flow.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/test_e2e.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/test_runtime_switch_commands.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/tools/test_file_ops.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/tools/test_git.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/tools/test_list_dir.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/tools/test_registry.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/tools/test_script_tools.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/tools/test_search.py +0 -0
- {god_code-0.6.1 → god_code-0.9.2}/tests/tools/test_shell.py +0 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
{
|
|
2
|
+
"last_scan": "2026-04-05",
|
|
3
|
+
"components": {
|
|
4
|
+
"cli": {
|
|
5
|
+
"path": "godot_agent/cli/",
|
|
6
|
+
"type": "entrypoint",
|
|
7
|
+
"description": "CLI package (Click) — commands, menus, engine wiring, helpers. Split from monolithic cli.py in v0.8.",
|
|
8
|
+
"last_modified": "2026-04-05",
|
|
9
|
+
"trace_refs": [
|
|
10
|
+
"2026-04-04_00-55_runtime-harness-skills-computer-use.md",
|
|
11
|
+
"2026-04-05_22-50_v08-implementation.md"
|
|
12
|
+
],
|
|
13
|
+
"children": [
|
|
14
|
+
"godot_agent/cli/__init__.py",
|
|
15
|
+
"godot_agent/cli/__main__.py",
|
|
16
|
+
"godot_agent/cli/commands.py",
|
|
17
|
+
"godot_agent/cli/menus.py",
|
|
18
|
+
"godot_agent/cli/engine_wiring.py",
|
|
19
|
+
"godot_agent/cli/helpers.py"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
"mcp_server": {
|
|
23
|
+
"path": "godot_agent/mcp_server.py",
|
|
24
|
+
"type": "entrypoint",
|
|
25
|
+
"description": "MCP server for Claude Code integration (40+ tools)",
|
|
26
|
+
"last_modified": "2026-04-04",
|
|
27
|
+
"trace_refs": ["2026-04-04_00-55_runtime-harness-skills-computer-use.md"]
|
|
28
|
+
},
|
|
29
|
+
"tools": {
|
|
30
|
+
"path": "godot_agent/tools/",
|
|
31
|
+
"type": "module",
|
|
32
|
+
"description": "Tool implementations (41 tools: file_ops, search, shell, git, godot_cli, scene_tools, script_tools, vision_analysis, vision_scoring, sprite_qa, etc.)",
|
|
33
|
+
"last_modified": "2026-04-05",
|
|
34
|
+
"trace_refs": [
|
|
35
|
+
"2026-04-04_00-55_runtime-harness-skills-computer-use.md",
|
|
36
|
+
"2026-04-05_22-50_v08-implementation.md"
|
|
37
|
+
],
|
|
38
|
+
"children": [
|
|
39
|
+
"godot_agent/tools/base.py",
|
|
40
|
+
"godot_agent/tools/registry.py",
|
|
41
|
+
"godot_agent/tools/file_ops.py",
|
|
42
|
+
"godot_agent/tools/search.py",
|
|
43
|
+
"godot_agent/tools/shell.py",
|
|
44
|
+
"godot_agent/tools/git.py",
|
|
45
|
+
"godot_agent/tools/list_dir.py",
|
|
46
|
+
"godot_agent/tools/godot_cli.py",
|
|
47
|
+
"godot_agent/tools/scene_tools.py",
|
|
48
|
+
"godot_agent/tools/script_tools.py",
|
|
49
|
+
"godot_agent/tools/analysis_tools.py",
|
|
50
|
+
"godot_agent/tools/editor_bridge.py",
|
|
51
|
+
"godot_agent/tools/memory_tool.py",
|
|
52
|
+
"godot_agent/tools/image_gen.py",
|
|
53
|
+
"godot_agent/tools/screenshot.py",
|
|
54
|
+
"godot_agent/tools/sprite_pipeline.py",
|
|
55
|
+
"godot_agent/tools/sprite_qa.py",
|
|
56
|
+
"godot_agent/tools/runtime_harness.py",
|
|
57
|
+
"godot_agent/tools/web_search.py",
|
|
58
|
+
"godot_agent/tools/vision_analysis.py",
|
|
59
|
+
"godot_agent/tools/vision_scoring.py"
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
"llm": {
|
|
63
|
+
"path": "godot_agent/llm/",
|
|
64
|
+
"type": "module",
|
|
65
|
+
"description": "LLM client layer with provider adapters (Anthropic, OpenAI) + dual-path backend support + vision encoding",
|
|
66
|
+
"last_modified": "2026-04-05",
|
|
67
|
+
"trace_refs": [
|
|
68
|
+
"2026-04-04_00-55_runtime-harness-skills-computer-use.md",
|
|
69
|
+
"2026-04-05_22-50_v08-implementation.md"
|
|
70
|
+
],
|
|
71
|
+
"children": [
|
|
72
|
+
"godot_agent/llm/client.py",
|
|
73
|
+
"godot_agent/llm/types.py",
|
|
74
|
+
"godot_agent/llm/streaming.py",
|
|
75
|
+
"godot_agent/llm/vision.py",
|
|
76
|
+
"godot_agent/llm/adapters/base.py",
|
|
77
|
+
"godot_agent/llm/adapters/anthropic.py",
|
|
78
|
+
"godot_agent/llm/adapters/openai.py"
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"godot": {
|
|
82
|
+
"path": "godot_agent/godot/",
|
|
83
|
+
"type": "module",
|
|
84
|
+
"description": "Godot engine integration (parsers, validators, linter, collision planner)",
|
|
85
|
+
"children": [
|
|
86
|
+
"godot_agent/godot/project.py",
|
|
87
|
+
"godot_agent/godot/scene_parser.py",
|
|
88
|
+
"godot_agent/godot/scene_writer.py",
|
|
89
|
+
"godot_agent/godot/resource_validator.py",
|
|
90
|
+
"godot_agent/godot/tscn_validator.py",
|
|
91
|
+
"godot_agent/godot/gdscript_linter.py",
|
|
92
|
+
"godot_agent/godot/collision_planner.py",
|
|
93
|
+
"godot_agent/godot/consistency_checker.py",
|
|
94
|
+
"godot_agent/godot/dependency_graph.py",
|
|
95
|
+
"godot_agent/godot/pattern_advisor.py",
|
|
96
|
+
"godot_agent/godot/impact_analysis.py"
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
"runtime": {
|
|
100
|
+
"path": "godot_agent/runtime/",
|
|
101
|
+
"type": "module",
|
|
102
|
+
"description": "Agent runtime engine (session, config, modes, quality gates, reviewers, validation suite, visual regression, live bridge, playtest harness)",
|
|
103
|
+
"last_modified": "2026-04-05",
|
|
104
|
+
"trace_refs": [
|
|
105
|
+
"2026-04-04_00-55_runtime-harness-skills-computer-use.md",
|
|
106
|
+
"2026-04-05_22-50_v08-implementation.md"
|
|
107
|
+
],
|
|
108
|
+
"children": [
|
|
109
|
+
"godot_agent/runtime/engine.py",
|
|
110
|
+
"godot_agent/runtime/session.py",
|
|
111
|
+
"godot_agent/runtime/config.py",
|
|
112
|
+
"godot_agent/runtime/modes.py",
|
|
113
|
+
"godot_agent/runtime/providers.py",
|
|
114
|
+
"godot_agent/runtime/events.py",
|
|
115
|
+
"godot_agent/runtime/context_manager.py",
|
|
116
|
+
"godot_agent/runtime/runtime_bridge.py",
|
|
117
|
+
"godot_agent/runtime/error_loop.py",
|
|
118
|
+
"godot_agent/runtime/quality_gate.py",
|
|
119
|
+
"godot_agent/runtime/design_memory.py",
|
|
120
|
+
"godot_agent/runtime/reviewer.py",
|
|
121
|
+
"godot_agent/runtime/gameplay_reviewer.py",
|
|
122
|
+
"godot_agent/runtime/playtest_harness.py",
|
|
123
|
+
"godot_agent/runtime/visual_regression.py",
|
|
124
|
+
"godot_agent/runtime/validation_checks.py",
|
|
125
|
+
"godot_agent/runtime/live_client.py",
|
|
126
|
+
"godot_agent/runtime/intent_resolver.py",
|
|
127
|
+
"godot_agent/runtime/auth.py",
|
|
128
|
+
"godot_agent/runtime/oauth.py"
|
|
129
|
+
]
|
|
130
|
+
},
|
|
131
|
+
"prompts": {
|
|
132
|
+
"path": "godot_agent/prompts/",
|
|
133
|
+
"type": "module",
|
|
134
|
+
"description": "Prompt assembly, skill library, skill selector, vision templates",
|
|
135
|
+
"last_modified": "2026-04-05",
|
|
136
|
+
"trace_refs": [
|
|
137
|
+
"2026-04-04_00-55_runtime-harness-skills-computer-use.md",
|
|
138
|
+
"2026-04-05_22-50_v08-implementation.md"
|
|
139
|
+
],
|
|
140
|
+
"children": [
|
|
141
|
+
"godot_agent/prompts/system.py",
|
|
142
|
+
"godot_agent/prompts/assembler.py",
|
|
143
|
+
"godot_agent/prompts/knowledge_selector.py",
|
|
144
|
+
"godot_agent/prompts/skill_selector.py",
|
|
145
|
+
"godot_agent/prompts/skill_library.py",
|
|
146
|
+
"godot_agent/prompts/godot_playbook.py",
|
|
147
|
+
"godot_agent/prompts/build_discipline.py",
|
|
148
|
+
"godot_agent/prompts/image_templates.py",
|
|
149
|
+
"godot_agent/prompts/vision_templates.py"
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
"addons": {
|
|
153
|
+
"path": "godot_agent/addons/",
|
|
154
|
+
"type": "module",
|
|
155
|
+
"description": "Godot EditorPlugin addons (GodCodeBridge TCP JSON-RPC server)",
|
|
156
|
+
"last_modified": "2026-04-05",
|
|
157
|
+
"trace_refs": ["2026-04-05_22-50_v08-implementation.md"],
|
|
158
|
+
"children": [
|
|
159
|
+
"godot_agent/addons/god_code_bridge/god_code_bridge.gd",
|
|
160
|
+
"godot_agent/addons/god_code_bridge/plugin.cfg"
|
|
161
|
+
]
|
|
162
|
+
},
|
|
163
|
+
"security": {
|
|
164
|
+
"path": "godot_agent/security/",
|
|
165
|
+
"type": "module",
|
|
166
|
+
"description": "Security layer (path protection, tool pipeline, policies, classifier)",
|
|
167
|
+
"children": [
|
|
168
|
+
"godot_agent/security/protected_paths.py",
|
|
169
|
+
"godot_agent/security/hooks.py",
|
|
170
|
+
"godot_agent/security/policies.py",
|
|
171
|
+
"godot_agent/security/tool_pipeline.py",
|
|
172
|
+
"godot_agent/security/classifier.py"
|
|
173
|
+
]
|
|
174
|
+
},
|
|
175
|
+
"tui": {
|
|
176
|
+
"path": "godot_agent/tui/",
|
|
177
|
+
"type": "module",
|
|
178
|
+
"description": "Terminal UI (Rich display, input handling, skills panel)",
|
|
179
|
+
"last_modified": "2026-04-04",
|
|
180
|
+
"trace_refs": ["2026-04-04_00-55_runtime-harness-skills-computer-use.md"]
|
|
181
|
+
},
|
|
182
|
+
"agents": {
|
|
183
|
+
"path": "godot_agent/agents/",
|
|
184
|
+
"type": "module",
|
|
185
|
+
"description": "Multi-agent dispatcher and configs"
|
|
186
|
+
},
|
|
187
|
+
"testing": {
|
|
188
|
+
"path": "godot_agent/testing/",
|
|
189
|
+
"type": "module",
|
|
190
|
+
"description": "Scenario runner for automated testing",
|
|
191
|
+
"last_modified": "2026-04-04",
|
|
192
|
+
"trace_refs": ["2026-04-04_00-55_runtime-harness-skills-computer-use.md"]
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
"relationships": {
|
|
196
|
+
"cli -> prompts": "skill_selector imports for /skills command",
|
|
197
|
+
"cli -> tools": "engine_wiring registers all tools including vision tools",
|
|
198
|
+
"cli -> runtime": "engine_wiring builds engine, passes ValidationSuite config",
|
|
199
|
+
"runtime -> llm": "engine uses LLMClient dual-path (direct + backend)",
|
|
200
|
+
"runtime -> tools": "engine calls vision tools in RUN_VISUAL_ITERATION phase",
|
|
201
|
+
"runtime -> validation_checks": "quality_gate and reviewer share ValidationSuite cache",
|
|
202
|
+
"runtime -> live_client": "engine calls _try_live_bridge in PREPARE_CONTEXT",
|
|
203
|
+
"llm -> runtime": "adapters use providers.supports_computer_use()",
|
|
204
|
+
"prompts -> tools": "skill_selector narrows tool scope per active skill",
|
|
205
|
+
"addons -> runtime": "GodCodeBridge.gd serves data to LiveRuntimeClient via TCP",
|
|
206
|
+
"tools/vision -> prompts": "vision_analysis and vision_scoring use vision_templates"
|
|
207
|
+
}
|
|
208
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"project": "god-code",
|
|
3
|
+
"version": "0.8.1",
|
|
4
|
+
"language": "python",
|
|
5
|
+
"framework": "click+mcp+pydantic",
|
|
6
|
+
"component_roots": ["godot_agent"],
|
|
7
|
+
"test_roots": ["tests"],
|
|
8
|
+
"ignore_patterns": [
|
|
9
|
+
"__pycache__",
|
|
10
|
+
"*.pyc",
|
|
11
|
+
".venv",
|
|
12
|
+
"dist",
|
|
13
|
+
"*.egg-info",
|
|
14
|
+
".pytest_cache"
|
|
15
|
+
],
|
|
16
|
+
"trace_format": "markdown",
|
|
17
|
+
"archive_after_days": 30
|
|
18
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: Deploy Docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
pages: write
|
|
12
|
+
id-token: write
|
|
13
|
+
|
|
14
|
+
concurrency:
|
|
15
|
+
group: pages
|
|
16
|
+
cancel-in-progress: true
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
build:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v4
|
|
23
|
+
- uses: actions/setup-python@v5
|
|
24
|
+
with:
|
|
25
|
+
python-version: "3.12"
|
|
26
|
+
- run: pip install -e ".[docs]"
|
|
27
|
+
- run: mkdocs build --strict
|
|
28
|
+
- uses: actions/configure-pages@v5
|
|
29
|
+
- uses: actions/upload-pages-artifact@v3
|
|
30
|
+
with:
|
|
31
|
+
path: site
|
|
32
|
+
|
|
33
|
+
deploy:
|
|
34
|
+
needs: build
|
|
35
|
+
runs-on: ubuntu-latest
|
|
36
|
+
environment:
|
|
37
|
+
name: github-pages
|
|
38
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
39
|
+
steps:
|
|
40
|
+
- id: deployment
|
|
41
|
+
uses: actions/deploy-pages@v4
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to God Code will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
### Security
|
|
8
|
+
- **run_shell hardened** against credential exfiltration: subprocess environment is now filtered to drop any variable whose name contains KEY/TOKEN/SECRET/PASSWORD/PASSWD/CREDENTIAL/AUTH/PRIVATE/CERT, and `env`, `printenv`, `set`, `export`, and reads of `.config/god-code`, `.codex/auth`, `.aws/credentials`, `.ssh/id_*`, `.ssh/authorized_keys`, `.netrc`, `.npmrc`, `.pypirc` are now blocked at all safety levels.
|
|
9
|
+
- **Session files** (`~/.agent_sessions/*.json`) are now `chmod 0o600` on write so tool outputs captured in conversation history are not world-readable.
|
|
10
|
+
- **Atomic secure writes** for `~/.config/god-code/config.json` and `~/.config/god-code/auth.json`: files are created via `tempfile` + `os.fchmod(0o600)` + `os.replace`, eliminating the TOCTOU window where an earlier `write_text` produced a briefly 0o644 file.
|
|
11
|
+
- **MCP server path containment**: every `file_path` argument to MCP tools is validated against the active project root with `Path.relative_to`, and a `.gd/.tscn/.tres/.cfg/.gdshader/.json/.md/.txt/.import` extension allowlist, preventing a misbehaving MCP client from reading or writing arbitrary files such as `~/.config/god-code/config.json`.
|
|
12
|
+
- **Prefix confusion fix** in `file_ops._validate_path`: `startswith` replaced with `Path.relative_to`, so a project rooted at `/proj/my-game` no longer accidentally permits access to `/proj/my-game-secrets/`.
|
|
13
|
+
- **Log redaction** (`godot_agent/llm/redact.py`): a new `redact_secrets` helper masks Bearer tokens, `sk-*` keys, `gc_live_*` keys, and JWT triples in any error string before it is handed to `log.error`/`log.warning`. Applied to backend, streaming, and computer-use error paths in `llm/client.py` and `llm/streaming.py`.
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
- Workspace-style chat TUI with session snapshot, recent activity, and live streaming panels
|
|
17
|
+
- Interaction modes (`apply`, `plan`, `explain`, `review`, `fix`) with mode-aware tool availability
|
|
18
|
+
- Autosaved session metadata with `/sessions`, `/resume`, `/new`, and project-aware restore flow
|
|
19
|
+
- Gameplay intent resolver with persistent profile storage in design memory
|
|
20
|
+
- `/intent` commands and TUI intent panel for confirming genre/combat/enemy direction
|
|
21
|
+
- Genre-aware internal skills: `bullet_hell`, `topdown_shooter`, `platformer_enemy`, `tower_defense`, `stealth_guard`
|
|
22
|
+
- Profile-aware playtest selection and report context
|
|
23
|
+
- MkDocs documentation site skeleton with getting-started, TUI, validation, provider, and MCP guides
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
- Unified `ask` and `chat` rendering pipeline, including tool progress and validation feedback
|
|
27
|
+
- Improved post-tool validation visibility and tool result summaries in interactive sessions
|
|
28
|
+
- Session persistence now preserves assistant tool calls and richer metadata for restore
|
|
29
|
+
- Prompt assembly, skill routing, planner/reviewer/playtest flows, and workspace state now consume shared gameplay intent
|
|
30
|
+
|
|
31
|
+
## [0.1.0] - 2026-04-02
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
- CLI with `ask`, `chat`, `info`, `login`, `logout`, `status` commands
|
|
35
|
+
- 10 tools: read_file, write_file, edit_file, list_dir, grep, glob, git, run_shell, run_godot, screenshot_scene
|
|
36
|
+
- OpenAI-compatible API client with streaming and vision support
|
|
37
|
+
- OAuth login via Codex CLI refresh token
|
|
38
|
+
- Godot project parser (project.godot, autoloads, resolution)
|
|
39
|
+
- .tscn scene parser, writer, and format validator with auto-fix
|
|
40
|
+
- GDScript linter (naming, ordering, type annotations, anti-patterns)
|
|
41
|
+
- Collision layer planner (standard 8-layer scheme)
|
|
42
|
+
- Cross-file consistency checker (collision, signals, resource paths, groups)
|
|
43
|
+
- Project dependency graph builder
|
|
44
|
+
- Design pattern advisor (object pool, component, state machine)
|
|
45
|
+
- Godot Playbook knowledge system (17 sections, context-aware injection)
|
|
46
|
+
- Build discipline rules (incremental build-and-verify)
|
|
47
|
+
- Error detection loop with Godot output parsing and fix suggestions
|
|
48
|
+
- Conversation context compaction for long sessions
|
|
49
|
+
- Path containment security (file ops restricted to project root)
|
|
50
|
+
- Shell command sandboxing (dangerous pattern blocking)
|
|
51
|
+
- API retry with exponential backoff (429 rate limits)
|
|
52
|
+
- Content filter graceful handling (400 errors)
|
|
53
|
+
- Session persistence to JSON
|
|
54
|
+
|
|
55
|
+
### Security
|
|
56
|
+
- File operations restricted to project root directory
|
|
57
|
+
- Shell commands blocked for dangerous patterns (rm -rf /, sudo, etc.)
|
|
58
|
+
- Git argument parsing via shlex.split()
|
|
59
|
+
- OAuth tokens stored with 600 permissions
|
|
60
|
+
- API key/token masked in status output
|