cogames-agents 0.0.0.7__tar.gz → 0.0.0.10__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.
- cogames_agents-0.0.0.10/.nimby-version +1 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/PKG-INFO +3 -16
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/README.md +0 -13
- cogames_agents-0.0.0.10/docs/beta-cvc-policy-validation.md +126 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/cogames-eval-internals.md +5 -6
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/cogas-agent-design.md +5 -5
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/cogsguard-mechanics-deep-dive.md +2 -2
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/creating-scripted-agents.md +2 -8
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/machina1-agent-analysis.md +0 -12
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/metta-cogames-overview.md +2 -2
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/role-distribution-analysis.md +8 -58
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/scripted-agent-registry.md +0 -4
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/pyproject.toml +1 -1
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/scripts/README.md +2 -3
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/scripts/benchmark_agents.sh +0 -1
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/scripts/quick_eval.sh +2 -2
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/evals/planky_evals.py +12 -3
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/nim_agents/__init__.py +0 -2
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/nim_agents/agents.py +0 -11
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/nim_agents/nim_agents.nim +1 -7
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/nim_agents/test_agents.py +1 -1
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/nim_agents/thinky_eval.py +5 -4
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/README.md +3 -3
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/baseline_agent.py +13 -13
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy/__init__.py +5 -0
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy/context.py +67 -0
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy/entity_map.py +157 -0
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy/goals/aligner.py +222 -0
- {cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/planky → cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy}/goals/gear.py +12 -10
- {cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/planky → cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy}/goals/miner.py +15 -24
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy/goals/scout.py +40 -0
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy/goals/scrambler.py +218 -0
- {cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/planky → cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy}/goals/shared.py +54 -34
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy/goals/stem.py +49 -0
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy/goals/survive.py +96 -0
- {cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/planky → cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy}/navigator.py +1 -1
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy/obs_parser.py +339 -0
- {cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/planky → cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy}/policy.py +40 -55
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/entity_map.py +1 -1
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/goals/aligner.py +1 -1
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/goals/gear.py +1 -1
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/goals/miner.py +2 -2
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/goals/scout.py +1 -1
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/goals/scrambler.py +1 -1
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/goals/shared.py +1 -1
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/navigator.py +1 -1
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/obs_parser.py +67 -12
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/aligner.py +4 -4
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/debug_agent.py +5 -5
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/policy.py +27 -22
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/types.py +4 -4
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/common/roles.py +4 -4
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/demo_policy.py +6 -6
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/CLAUDE.md +35 -20
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/PLAN.md +3 -3
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/README.md +0 -25
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/entity_map.py +1 -1
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/planky/goal.py +109 -0
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/planky/goals/__init__.py +27 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/goals/aligner.py +3 -11
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/planky/goals/gear.py +185 -0
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/planky/goals/miner.py +486 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/goals/scout.py +1 -1
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/goals/scrambler.py +1 -1
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/planky/goals/shared.py +275 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/goals/survive.py +2 -12
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/planky/navigator.py +388 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/obs_parser.py +68 -13
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/planky/policy.py +1056 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/tests/helpers.py +12 -5
- cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/planky/trace.py +69 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents.egg-info/PKG-INFO +3 -16
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents.egg-info/SOURCES.txt +18 -33
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents.egg-info/requires.txt +2 -2
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/conftest.py +2 -2
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_agent_benchmarks.py +10 -13
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_eval_metrics.py +5 -5
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_evolution.py +1 -1
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_planky_behaviors.py +2 -5
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_scripted_policies.py +1 -7
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_scripted_registry.py +0 -2
- cogames_agents-0.0.0.7/.nimby-version +0 -1
- cogames_agents-0.0.0.7/src/cogames_agents/policy/nim_agents/ladybug_agent.nim +0 -954
- cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/pinky/DESIGN.md +0 -317
- cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/pinky/__init__.py +0 -5
- cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/pinky/behaviors/__init__.py +0 -17
- cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/pinky/behaviors/aligner.py +0 -400
- cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/pinky/behaviors/base.py +0 -119
- cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/pinky/behaviors/miner.py +0 -632
- cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/pinky/behaviors/scout.py +0 -138
- cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/pinky/behaviors/scrambler.py +0 -433
- cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/pinky/policy.py +0 -570
- cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/pinky/services/__init__.py +0 -7
- cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/pinky/services/map_tracker.py +0 -808
- cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/pinky/services/navigator.py +0 -864
- cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/pinky/services/safety.py +0 -189
- cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/pinky/state.py +0 -299
- cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/pinky/types.py +0 -138
- cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/unclipping_agent.py +0 -461
- cogames_agents-0.0.0.7/tests/pinky_evals/pinky_aligner_test.map +0 -26
- cogames_agents-0.0.0.7/tests/pinky_evals/pinky_all_gear_stations.map +0 -28
- cogames_agents-0.0.0.7/tests/pinky_evals/pinky_exploration_memory.map +0 -34
- cogames_agents-0.0.0.7/tests/pinky_evals/pinky_gear_miner.map +0 -26
- cogames_agents-0.0.0.7/tests/pinky_evals/pinky_gear_scout.map +0 -26
- cogames_agents-0.0.0.7/tests/pinky_evals/pinky_maze_navigation.map +0 -30
- cogames_agents-0.0.0.7/tests/pinky_evals/pinky_miner_bump_extractor.map +0 -16
- cogames_agents-0.0.0.7/tests/pinky_evals/pinky_miner_extract.map +0 -26
- cogames_agents-0.0.0.7/tests/pinky_evals/pinky_miner_full_cycle.map +0 -28
- cogames_agents-0.0.0.7/tests/pinky_evals/pinky_multi_extractors.map +0 -29
- cogames_agents-0.0.0.7/tests/pinky_evals/pinky_navigation_obstacles.map +0 -29
- cogames_agents-0.0.0.7/tests/pinky_evals/pinky_retreat_test.map +0 -26
- cogames_agents-0.0.0.7/tests/pinky_evals/pinky_scout_explore.map +0 -30
- cogames_agents-0.0.0.7/tests/pinky_evals/pinky_scrambler_test.map +0 -26
- cogames_agents-0.0.0.7/tests/test_pinky_behaviors.py +0 -360
- cogames_agents-0.0.0.7/tests/test_pinky_navigation.py +0 -904
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/.gitignore +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/.nim-version +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/MANIFEST.in +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/README.co-gas.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/0018-tribal-village-temple-roles.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/aligned_junction_held_investigation.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/app-backend-eval-pipeline.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/aws-sso-on-mettabox.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/eval-results-log.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/evolution-system-architecture.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/leaderboard-submission-process.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/mettaboxes.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/nim-vs-python-agents-comparison.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/training-and-submission-guide.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/docs/wandb-analysis-cogsguard-training.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/scripts/ci_eval.sh +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/scripts/compare_agents.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/scripts/enrich_eval_output.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/scripts/eval_cogas.sh +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/scripts/regression_check.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/scripts/run_cogsguard_instrumented_audit.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/scripts/run_cogsguard_parity.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/scripts/run_cogsguard_rollout.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/scripts/tune_cogas.sh +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/setup.cfg +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/setup.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/__init__.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/evals/__init__.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/__init__.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/evolution/__init__.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/evolution/cogsguard/__init__.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/evolution/cogsguard/evolution.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/evolution/cogsguard/evolutionary_coordinator.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/nim_agents/cogsguard_agents.nim +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/nim_agents/cogsguard_align_all_agents.nim +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/nim_agents/common.nim +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/nim_agents/install.sh +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/nim_agents/nim_agents.nims +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/nim_agents/nimby.lock +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/nim_agents/racecar_agents.nim +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/nim_agents/random_agents.nim +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/nim_agents/thinky_agents.nim +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/__init__.py +0 -0
- {cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/planky → cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy}/goal.py +0 -0
- {cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/planky → cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy}/goals/__init__.py +0 -0
- {cogames_agents-0.0.0.7/src/cogames_agents/policy/scripted_agent/planky → cogames_agents-0.0.0.10/src/cogames_agents/policy/scripted_agent/buggy}/trace.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/__init__.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/context.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/goal.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/goals/__init__.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/goals/stem.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/goals/survive.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/policy.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogas/trace.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/CLAUDE.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/README.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/__init__.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/aligned_junction_held_investigation.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/behavior_hooks.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/control_agent.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/miner.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/options.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/parity_metrics.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/prereq_trace.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/role_trace.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/roles.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/rollout_trace.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/scout.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/scrambler.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/targeted_agent.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/teacher.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/cogsguard/v2_agent.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/common/__init__.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/common/geometry.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/common/tag_utils.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/pathfinding.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/IMPROVEMENTS.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/NOTES.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/STRATEGY.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/__init__.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/context.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/goals/stem.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/tests/__init__.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/tests/conftest.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/tests/test_aligner.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/tests/test_miner.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/tests/test_scout.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/tests/test_scrambler.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/planky/tests/test_stem.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/types.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_agent/utils.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/scripted_registry.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/py.typed +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents.egg-info/dependency_links.txt +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents.egg-info/top_level.txt +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_cogsguard_action_timing.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_cogsguard_miner_danger_radius.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_cogsguard_roles.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_evolution_integration.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_evolutionary_coordinator.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_parity_metrics.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_prereq_trace.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_role_distributions.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_role_trace.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_rollout_trace.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_scripted_agent_tags.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tests/test_scripted_agent_type_tags.py +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tutorials/cogsguard_make_policy.ipynb +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tutorials/cogsguard_make_policy.md +0 -0
- {cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/tutorials/cogsguard_make_policy.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.1.18
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cogames-agents
|
|
3
|
-
Version: 0.0.0.
|
|
3
|
+
Version: 0.0.0.10
|
|
4
4
|
Summary: Optional agent policies for CoGames
|
|
5
5
|
Author: Metta AI
|
|
6
6
|
License-Expression: MIT
|
|
@@ -12,8 +12,8 @@ Classifier: Operating System :: POSIX :: Linux
|
|
|
12
12
|
Classifier: Operating System :: MacOS
|
|
13
13
|
Requires-Python: <3.13,>=3.12
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
15
|
-
Requires-Dist: cogames==0.3.
|
|
16
|
-
Requires-Dist: mettagrid==0.2.0.
|
|
15
|
+
Requires-Dist: cogames==0.3.68
|
|
16
|
+
Requires-Dist: mettagrid==0.2.0.82
|
|
17
17
|
Requires-Dist: numpy>=2.0.0
|
|
18
18
|
Provides-Extra: test
|
|
19
19
|
Requires-Dist: pytest; extra == "test"
|
|
@@ -44,7 +44,6 @@ Common scripted policy names include:
|
|
|
44
44
|
- CogsGuard variants: `alignall`, `cogsguard_control`, `cogsguard_targeted`, `cogsguard_v2`
|
|
45
45
|
- CogsGuard roles: `miner`, `scout`, `aligner`, `scrambler`
|
|
46
46
|
- Teacher: `teacher`
|
|
47
|
-
- Pinky: `pinky`
|
|
48
47
|
|
|
49
48
|
For the full registry snapshot, see `docs/scripted-agent-registry.md`.
|
|
50
49
|
|
|
@@ -64,18 +63,6 @@ metta://policy/role_py?role_cycle=aligner,miner,scrambler,scout
|
|
|
64
63
|
metta://policy/role_py?role_order=aligner,miner,aligner,miner,scout
|
|
65
64
|
```
|
|
66
65
|
|
|
67
|
-
Pinky role counts are applied in a different order than CogsGuard:
|
|
68
|
-
|
|
69
|
-
- Pinky order: miner -> scout -> aligner -> scrambler, and any remaining agents stay default/noop.
|
|
70
|
-
- CogsGuard order: scrambler -> aligner -> miner -> scout, then fills remaining agents with gear.
|
|
71
|
-
|
|
72
|
-
Examples:
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
metta://policy/pinky?miner=4&aligner=2&scrambler=4
|
|
76
|
-
metta://policy/pinky?miner=2&scout=2&aligner=1&scrambler=1&debug=1
|
|
77
|
-
```
|
|
78
|
-
|
|
79
66
|
## Recipe usage
|
|
80
67
|
|
|
81
68
|
The `recipes.experiment.scripted_agents` recipe accepts the same scripted policy names:
|
|
@@ -22,7 +22,6 @@ Common scripted policy names include:
|
|
|
22
22
|
- CogsGuard variants: `alignall`, `cogsguard_control`, `cogsguard_targeted`, `cogsguard_v2`
|
|
23
23
|
- CogsGuard roles: `miner`, `scout`, `aligner`, `scrambler`
|
|
24
24
|
- Teacher: `teacher`
|
|
25
|
-
- Pinky: `pinky`
|
|
26
25
|
|
|
27
26
|
For the full registry snapshot, see `docs/scripted-agent-registry.md`.
|
|
28
27
|
|
|
@@ -42,18 +41,6 @@ metta://policy/role_py?role_cycle=aligner,miner,scrambler,scout
|
|
|
42
41
|
metta://policy/role_py?role_order=aligner,miner,aligner,miner,scout
|
|
43
42
|
```
|
|
44
43
|
|
|
45
|
-
Pinky role counts are applied in a different order than CogsGuard:
|
|
46
|
-
|
|
47
|
-
- Pinky order: miner -> scout -> aligner -> scrambler, and any remaining agents stay default/noop.
|
|
48
|
-
- CogsGuard order: scrambler -> aligner -> miner -> scout, then fills remaining agents with gear.
|
|
49
|
-
|
|
50
|
-
Examples:
|
|
51
|
-
|
|
52
|
-
```
|
|
53
|
-
metta://policy/pinky?miner=4&aligner=2&scrambler=4
|
|
54
|
-
metta://policy/pinky?miner=2&scout=2&aligner=1&scrambler=1&debug=1
|
|
55
|
-
```
|
|
56
|
-
|
|
57
44
|
## Recipe usage
|
|
58
45
|
|
|
59
46
|
The `recipes.experiment.scripted_agents` recipe accepts the same scripted policy names:
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Beta-CVC Policy Validation (Local)
|
|
2
|
+
|
|
3
|
+
Date: 2026-01-29
|
|
4
|
+
|
|
5
|
+
This document summarizes the current state of local validation for the beta-cvc policies referenced in the
|
|
6
|
+
beta-cogsguard leaderboard list. The goal was to re-download the exact uploaded bundles and confirm they start correctly
|
|
7
|
+
on the beta-cvc mission (`cogsguard_machina_1.basic`).
|
|
8
|
+
|
|
9
|
+
## Scope
|
|
10
|
+
|
|
11
|
+
- Policies tested (19 total) match the earlier beta-cogsguard leaderboard list:
|
|
12
|
+
- daveey.pinky:v5/v6/v7/v8/v9
|
|
13
|
+
- daveey.planky:v6/v7/v8
|
|
14
|
+
- relh.cogas:v6/v7/v8/v10
|
|
15
|
+
- relh.wombo-mix:v1/v3/v4
|
|
16
|
+
- noah::coggernaut:v4/v9
|
|
17
|
+
- manvi_metcon:v3
|
|
18
|
+
- cogsguard-roster-mix:v1
|
|
19
|
+
|
|
20
|
+
- All bundles were re-downloaded from the policy `s3_path` recorded in the backend, not from the older
|
|
21
|
+
`policy-versions/` location.
|
|
22
|
+
|
|
23
|
+
## Bundle Download (Exact Uploaded Artifacts)
|
|
24
|
+
|
|
25
|
+
The backend stores a policy version’s `s3_path` at: `/stats/policies/versions/{policy_version_id}`.
|
|
26
|
+
|
|
27
|
+
We used the policy version lookup to get `s3_path`, then downloaded via S3:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
aws s3 cp s3://observatory-private/cogames/submissions/<user>/<upload_id>.zip \
|
|
31
|
+
outputs/beta-cvc-policy-bundles-redownload/<policy>_v<version>.zip
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
All 19 bundles are now in: `outputs/beta-cvc-policy-bundles-redownload/`
|
|
35
|
+
|
|
36
|
+
## Local Validation Commands
|
|
37
|
+
|
|
38
|
+
We validated against the beta-cvc mission (CogsGuard Machina1):
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
uv run cogames scrimmage -m cogsguard_machina_1.basic -c 5 -e 1 -s 300 --format json \
|
|
42
|
+
-p ./outputs/beta-cvc-policy-bundles-redownload/<policy>.zip
|
|
43
|
+
|
|
44
|
+
uv run cogames eval -m cogsguard_machina_1.basic -c 5 -e 1 -s 300 --format json \
|
|
45
|
+
-p ./outputs/beta-cvc-policy-bundles-redownload/<policy>.zip
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Notes:
|
|
49
|
+
|
|
50
|
+
- Use a relative path starting with `./` for local bundles; otherwise the CLI interprets the argument as a class name.
|
|
51
|
+
|
|
52
|
+
## Results: Scrimmage + Eval (CVC Map)
|
|
53
|
+
|
|
54
|
+
Summary:
|
|
55
|
+
|
|
56
|
+
- **18/19** bundles run successfully for both `scrimmage` and `eval`.
|
|
57
|
+
- **1/19** fails due to a missing class in the bundle.
|
|
58
|
+
|
|
59
|
+
Failures:
|
|
60
|
+
|
|
61
|
+
- `relh.wombo-mix:v3` fails to import: `cogames_agents.policy.scripted_agent.cogsguard.policy.CogsguardWomboMixPolicy`
|
|
62
|
+
|
|
63
|
+
Logs and summary:
|
|
64
|
+
|
|
65
|
+
- `outputs/beta-cvc-policy-bundles-redownload/smoke_logs/summary.txt`
|
|
66
|
+
- Per-policy logs: `outputs/beta-cvc-policy-bundles-redownload/smoke_logs/*__scrimmage.log` and `*__eval.log`
|
|
67
|
+
|
|
68
|
+
## Diagnose (Diagnostic Evals) Caveats
|
|
69
|
+
|
|
70
|
+
`cogames diagnose` runs **diagnostic evals**, which are not CogsGuard missions. These maps have:
|
|
71
|
+
|
|
72
|
+
- Max cogs = 4.
|
|
73
|
+
- A different action set.
|
|
74
|
+
- Variants incompatible with CogsGuard missions.
|
|
75
|
+
|
|
76
|
+
### Full diagnostic suite
|
|
77
|
+
|
|
78
|
+
Running `diagnose` with the full `diagnostic_evals` set fails broadly because the evals are incompatible with CogsGuard
|
|
79
|
+
mission variants or cogs > 4.
|
|
80
|
+
|
|
81
|
+
### Single diagnostic experiment
|
|
82
|
+
|
|
83
|
+
We ran a single diagnostic experiment as a smoke test:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
uv run cogames diagnose -S diagnostic_evals \
|
|
87
|
+
--experiments diagnostic_chest_deposit_near \
|
|
88
|
+
-c 4 -e 1 -s 300 \
|
|
89
|
+
./outputs/beta-cvc-policy-bundles-redownload/<policy>.zip
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Results:
|
|
93
|
+
|
|
94
|
+
- OK:
|
|
95
|
+
- cogsguard-roster-mix:v1
|
|
96
|
+
- daveey.pinky:v5/v6/v7/v8/v9
|
|
97
|
+
- noah::coggernaut:v4/v9
|
|
98
|
+
- relh.wombo-mix:v1/v4
|
|
99
|
+
- FAIL:
|
|
100
|
+
- daveey.planky:v6/v7/v8
|
|
101
|
+
- manvi_metcon:v3
|
|
102
|
+
- relh.cogas:v6/v7/v8/v10
|
|
103
|
+
- relh.wombo-mix:v3
|
|
104
|
+
|
|
105
|
+
Typical failure pattern for the diagnostic experiment:
|
|
106
|
+
|
|
107
|
+
- Action mismatch in diagnostics env (example: `KeyError: 'change_vibe_miner'`).
|
|
108
|
+
- `relh.wombo-mix:v3` still fails due to missing class.
|
|
109
|
+
|
|
110
|
+
Conclusion: `diagnose` is **not a reliable signal** for CogsGuard policies. The best local signal for beta-cvc is
|
|
111
|
+
`scrimmage`/`eval` on `cogsguard_machina_1.basic`.
|
|
112
|
+
|
|
113
|
+
## Beta-CVC Tournament State (As of 2026-01-29)
|
|
114
|
+
|
|
115
|
+
Leaderboard is empty because no competition matches have completed yet. Policies currently in beta-cvc:
|
|
116
|
+
|
|
117
|
+
- Qualifying completed (2 matches): daveey.pinky:v8, daveey.planky:v6, cogsguard-roster-mix:v1, noah::coggernaut:v9,
|
|
118
|
+
noah::coggernaut:v10.
|
|
119
|
+
- Competition active but no matches completed: manvi_metcon:v3.
|
|
120
|
+
|
|
121
|
+
## Known Issues / Follow-ups
|
|
122
|
+
|
|
123
|
+
- `relh.wombo-mix:v3` bundle references a class that does not exist in the repository (`CogsguardWomboMixPolicy`), so it
|
|
124
|
+
cannot run locally or in the tournament runner.
|
|
125
|
+
- If we need a single “diagnose”-style smoke check for CogsGuard, we should add a dedicated CogsGuard diagnostic mission
|
|
126
|
+
set (or avoid `diagnose` entirely for this season).
|
|
@@ -98,7 +98,7 @@ The core pipeline is in `packages/cogames/src/cogames/evaluate.py`:
|
|
|
98
98
|
2. **For each mission:** a. `allocate_counts()` distributes agents among policies by weight (largest-remainder method).
|
|
99
99
|
b. `np.repeat(np.arange(len(counts)), counts)` creates the initial assignment array.
|
|
100
100
|
|
|
101
|
-
3. **Episode loop** (`run_multi_episode_rollout()` in `
|
|
101
|
+
3. **Episode loop** (`run_multi_episode_rollout()` in `mettagrid/runner/rollout.py`):
|
|
102
102
|
- For each episode:
|
|
103
103
|
- Shuffle assignments via `rng.shuffle(assignments)` (randomizes which agent slots get which policy).
|
|
104
104
|
- `run_single_episode_rollout()` creates the environment, loads policies, runs the simulation, collects
|
|
@@ -167,16 +167,15 @@ cogames replay <replay_path>
|
|
|
167
167
|
|
|
168
168
|
## 5. Wandb Integration Points
|
|
169
169
|
|
|
170
|
-
**There is no wandb integration in the eval
|
|
170
|
+
**There is no wandb integration in the eval/diagnose commands.**
|
|
171
171
|
|
|
172
|
-
The `cogames
|
|
172
|
+
The `cogames run`/`scrimmage`/`diagnose` pipelines do not import or call wandb. No metrics are logged to wandb during
|
|
173
|
+
evaluation.
|
|
173
174
|
|
|
174
|
-
Wandb integration exists in:
|
|
175
|
+
Wandb integration exists only in:
|
|
175
176
|
|
|
176
177
|
- The **training pipeline** (`cogames train`) -- logs training curves, losses, and periodic eval metrics during
|
|
177
178
|
training.
|
|
178
|
-
- The standalone **`scripts/run_evaluation.py`** -- has optional wandb logging for batch evaluation runs (this is a
|
|
179
|
-
separate script, not the CLI command).
|
|
180
179
|
|
|
181
180
|
This is a significant observability gap. Eval results are ephemeral unless captured via `--format json` to a file.
|
|
182
181
|
|
|
@@ -7,9 +7,9 @@ Blueprint for a leaderboard-winning agent targeting `cogs.aligned.junction.held
|
|
|
7
7
|
Cogas uses a **phased goal-tree** architecture, combining Planky's declarative goal decomposition with CogsGuard's
|
|
8
8
|
phase-based state machine and evolution-driven role selection.
|
|
9
9
|
|
|
10
|
-
**Why not pure behavior-tree
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
**Why not pure behavior-tree?** A vibe-driven approach lacks explicit precondition reasoning. Agents thrash between
|
|
11
|
+
behaviors when preconditions aren't met (e.g., attempting to align without hearts). Goal-trees naturally decompose
|
|
12
|
+
"align junction" into "have gear AND have hearts AND be adjacent" without custom priority logic.
|
|
13
13
|
|
|
14
14
|
**Why not pure goal-tree (Planky)?** Planky has no phase awareness. It re-evaluates the full goal list every tick, which
|
|
15
15
|
is wasteful when the agent is mid-navigation. Adding phases (BOOTSTRAP, CONTROL, SUSTAIN) gives temporal structure that
|
|
@@ -28,7 +28,7 @@ are imperative spaghetti. Goal-tree decomposition inside each phase keeps role l
|
|
|
28
28
|
├─────────────────────────────────────┤
|
|
29
29
|
│ GoalEvaluator (per-phase goals) │ Precondition decomposition
|
|
30
30
|
├─────────────────────────────────────┤
|
|
31
|
-
│ Navigator + EntityMap + SafetyMgr │ Shared services (from Planky
|
|
31
|
+
│ Navigator + EntityMap + SafetyMgr │ Shared services (from Planky)
|
|
32
32
|
└─────────────────────────────────────┘
|
|
33
33
|
```
|
|
34
34
|
|
|
@@ -347,7 +347,7 @@ accumulation. The catalog tracks:
|
|
|
347
347
|
3. Implement `PhaseController` with BOOTSTRAP/CONTROL/SUSTAIN transitions
|
|
348
348
|
4. Port Planky's goal-tree evaluator with phase-aware goal lists
|
|
349
349
|
5. Implement role-specific goals (miner, aligner, scrambler, scout)
|
|
350
|
-
6. Reuse Planky's `Navigator
|
|
350
|
+
6. Reuse Planky's `Navigator` and `EntityMap`
|
|
351
351
|
|
|
352
352
|
### Stage 2: Innovations
|
|
353
353
|
|
|
@@ -206,8 +206,8 @@ Four resources mined from extractors in map corners:
|
|
|
206
206
|
|
|
207
207
|
**Source:** `stations.py:122-206`
|
|
208
208
|
|
|
209
|
-
**Miner bonus:** With miner gear, extractors yield 10x resources (large_amount vs small_amount in
|
|
210
|
-
`
|
|
209
|
+
**Miner bonus:** With miner gear, extractors yield 10x resources (large_amount vs small_amount in `CvCExtractorConfig`,
|
|
210
|
+
`stations.py:275-300`).
|
|
211
211
|
|
|
212
212
|
### Hearts
|
|
213
213
|
|
|
@@ -23,11 +23,6 @@ cogames-agents/src/cogames_agents/policy/
|
|
|
23
23
|
│ │ ├── roles.py # Per-role policies (miner, scout, etc.)
|
|
24
24
|
│ │ ├── types.py # CogsGuard-specific state types
|
|
25
25
|
│ │ └── ...
|
|
26
|
-
│ ├── pinky/ # Behavior-tree style agent
|
|
27
|
-
│ │ ├── policy.py # PinkyPolicy (short_name: "pinky")
|
|
28
|
-
│ │ ├── behaviors/ # Per-role behavior modules
|
|
29
|
-
│ │ ├── services/ # Map, navigation, safety services
|
|
30
|
-
│ │ └── state.py # Agent state
|
|
31
26
|
│ └── planky/ # Goal-tree agent
|
|
32
27
|
│ ├── policy.py # PlankyPolicy (short_name: "planky")
|
|
33
28
|
│ ├── goals/ # Goal definitions per role
|
|
@@ -315,8 +310,7 @@ class MyPolicyImpl(BaselineAgentPolicyImpl):
|
|
|
315
310
|
|
|
316
311
|
## 6. Roles and Vibes
|
|
317
312
|
|
|
318
|
-
The vibe system is used by team-play agents (CogsGuard,
|
|
319
|
-
state.
|
|
313
|
+
The vibe system is used by team-play agents (CogsGuard, Planky) to control agent behavior through in-game visual state.
|
|
320
314
|
|
|
321
315
|
### What are vibes?
|
|
322
316
|
|
|
@@ -407,7 +401,7 @@ uv run cogames play --mission recipes.experiment.cogsguard.play \
|
|
|
407
401
|
|
|
408
402
|
```bash
|
|
409
403
|
# Full evaluation across all diagnostic missions
|
|
410
|
-
uv run
|
|
404
|
+
uv run cogames diagnose my_agent -S diagnostic_evals
|
|
411
405
|
```
|
|
412
406
|
|
|
413
407
|
## 8. Code Examples from Existing Agents
|
|
@@ -87,17 +87,6 @@ loop.
|
|
|
87
87
|
| Weaknesses | Inherits all baseline weaknesses. Unclipping is only relevant when enemy scramblers have clipped extractors -- in pure resource gathering it adds overhead. |
|
|
88
88
|
| Machina1 fit | **Poor to moderate**. Useful only in adversarial scenarios. The baseline movement inefficiency dominates performance. |
|
|
89
89
|
|
|
90
|
-
### Pinky Agent
|
|
91
|
-
|
|
92
|
-
**Architecture**: Vibe-based role system with per-agent Brain. Roles: miner, scout, aligner, scrambler. URI-configurable
|
|
93
|
-
role distribution.
|
|
94
|
-
|
|
95
|
-
| Aspect | Assessment |
|
|
96
|
-
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
97
|
-
| Strengths | Multi-role coordination. Scout discovers map efficiently. Aligner/scrambler handle junction control. Dynamic role switching based on communal resource levels. Gear acquisition from stations. |
|
|
98
|
-
| Weaknesses | Role switching logic may thrash on machina1 where resource availability shifts as biome zones are discovered. Navigator service quality depends on map complexity -- maze biomes can confuse BFS. |
|
|
99
|
-
| Machina1 fit | **Moderate**. Role specialization helps, but the brain/service abstraction adds overhead. Works best when tuned via URI params for specific role ratios. |
|
|
100
|
-
|
|
101
90
|
### Planky Agent
|
|
102
91
|
|
|
103
92
|
**Architecture**: Goal-tree hierarchical policy. Each role has a priority-ordered goal list. Goals evaluate
|
|
@@ -344,7 +333,6 @@ This would produce generation-over-generation shifts in the role population.
|
|
|
344
333
|
| tiny_baseline | Non-viable | Testing only |
|
|
345
334
|
| baseline | Poor | Ablation baseline |
|
|
346
335
|
| ladybug_py | Poor-Moderate | Adversarial unclipping |
|
|
347
|
-
| pinky | Moderate | Tunable role experiments |
|
|
348
336
|
| planky | Moderate-Good | Goal-priority research |
|
|
349
337
|
| role_py (CoGsGuard) | Good | General competitive play |
|
|
350
338
|
| cogsguard_v2 | Good-Strong | Balanced default teams |
|
|
@@ -130,7 +130,7 @@ class=baseline,proportion=0.5
|
|
|
130
130
|
|
|
131
131
|
# URI format (role-based)
|
|
132
132
|
metta://policy/role_py?role_cycle=aligner,miner,scrambler,scout
|
|
133
|
-
metta://policy/
|
|
133
|
+
metta://policy/role_py?miner=4&aligner=2&scrambler=4&scout=0
|
|
134
134
|
```
|
|
135
135
|
|
|
136
136
|
## 4. CogsGuard Game Mechanics
|
|
@@ -237,7 +237,7 @@ Recipe execution:
|
|
|
237
237
|
- `thinky`, `race_car`, `ladybug` -- Nim-compiled (faster)
|
|
238
238
|
- `role`, `role_py`, `wombo` -- Role-rotation strategies
|
|
239
239
|
- `miner`, `scout`, `aligner`, `scrambler` -- Role specialists
|
|
240
|
-
- `teacher
|
|
240
|
+
- `teacher` -- Role assignment meta-policy
|
|
241
241
|
|
|
242
242
|
**Templates** (from cogames):
|
|
243
243
|
|
|
@@ -11,7 +11,7 @@ game-state-driven role switching.
|
|
|
11
11
|
|
|
12
12
|
**Key Finding:** The highest-performing agents (CoGsGuard Control, Wombo) share a common pattern: they start with an
|
|
13
13
|
explore-heavy distribution and dynamically shift toward aligner/scrambler-heavy distributions as junctions are
|
|
14
|
-
discovered. Pure static distributions (planky defaults
|
|
14
|
+
discovered. Pure static distributions (planky defaults) leave performance on the table.
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
@@ -59,50 +59,7 @@ hub recipes.
|
|
|
59
59
|
|
|
60
60
|
---
|
|
61
61
|
|
|
62
|
-
### 2.2
|
|
63
|
-
|
|
64
|
-
**Architecture:** Vibe-based role system with per-agent Brain. URI-configurable static distribution.
|
|
65
|
-
|
|
66
|
-
**Default distribution:** All zeroes -- no agents active unless URI params specify counts.
|
|
67
|
-
|
|
68
|
-
**Gear-vibe distribution (when `?gear=10`):** The "gear" vibe triggers a hardcoded role selection cycle:
|
|
69
|
-
|
|
70
|
-
| Agent ID | Role | Pattern |
|
|
71
|
-
| -------- | --------- | ------- |
|
|
72
|
-
| 0 | aligner | |
|
|
73
|
-
| 1 | aligner | |
|
|
74
|
-
| 2 | scrambler | |
|
|
75
|
-
| 3 | miner | |
|
|
76
|
-
| 4 | aligner | |
|
|
77
|
-
| 5 | scrambler | |
|
|
78
|
-
| 6 | aligner | |
|
|
79
|
-
| 7 | scrambler | |
|
|
80
|
-
| 8 | aligner | |
|
|
81
|
-
| 9 | miner | |
|
|
82
|
-
|
|
83
|
-
**Effective gear-vibe distribution (10 agents):**
|
|
84
|
-
|
|
85
|
-
| Role | Count | Percentage |
|
|
86
|
-
| --------- | ----- | ---------- |
|
|
87
|
-
| Miner | 2 | 20% |
|
|
88
|
-
| Scout | 0 | 0% |
|
|
89
|
-
| Aligner | 5 | 50% |
|
|
90
|
-
| Scrambler | 3 | 30% |
|
|
91
|
-
|
|
92
|
-
**Key observations:**
|
|
93
|
-
|
|
94
|
-
- The gear-vibe cycle is **heavily biased toward aligners** (50%).
|
|
95
|
-
- **Zero scouts** -- same blind-discovery problem as planky defaults.
|
|
96
|
-
- Only 2 miners -- may struggle with resource economy on larger maps.
|
|
97
|
-
- Supports dynamic `change_role` parameter: miners become aligners/scramblers when all communal resources exceed 25, and
|
|
98
|
-
aligners/scramblers revert to miners when any resource drops below 3.
|
|
99
|
-
- Agents beyond the specified count stay `default` (noop) -- pinky does NOT fill remaining slots automatically.
|
|
100
|
-
|
|
101
|
-
**Source:** `pinky/policy.py:133-148` (gear cycle), `pinky/policy.py:457-477` (constructor).
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
### 2.3 Role_py / CoGsGuard (`metta://policy/role_py`)
|
|
62
|
+
### 2.2 Role_py / CoGsGuard (`metta://policy/role_py`)
|
|
106
63
|
|
|
107
64
|
**Architecture:** Multi-role vibe system with SmartRoleCoordinator. Dynamic role switching.
|
|
108
65
|
|
|
@@ -141,7 +98,7 @@ assigns roles based on team state:
|
|
|
141
98
|
|
|
142
99
|
---
|
|
143
100
|
|
|
144
|
-
### 2.
|
|
101
|
+
### 2.3 CoGsGuard V2 (`metta://policy/cogsguard_v2`)
|
|
145
102
|
|
|
146
103
|
**Architecture:** CoGsGuard base with tuned static default allocation formula.
|
|
147
104
|
|
|
@@ -175,7 +132,7 @@ assigns roles based on team state:
|
|
|
175
132
|
|
|
176
133
|
---
|
|
177
134
|
|
|
178
|
-
### 2.
|
|
135
|
+
### 2.4 CoGsGuard Control (`metta://policy/cogsguard_control`)
|
|
179
136
|
|
|
180
137
|
**Architecture:** Phased commander coordinator with active role reassignment.
|
|
181
138
|
|
|
@@ -202,7 +159,7 @@ assigns roles based on team state:
|
|
|
202
159
|
|
|
203
160
|
---
|
|
204
161
|
|
|
205
|
-
### 2.
|
|
162
|
+
### 2.5 Wombo (`metta://policy/wombo`)
|
|
206
163
|
|
|
207
164
|
**Architecture:** CoGsGuard generalist variant prioritizing multi-junction alignment.
|
|
208
165
|
|
|
@@ -244,7 +201,7 @@ algorithm considering:
|
|
|
244
201
|
|
|
245
202
|
---
|
|
246
203
|
|
|
247
|
-
### 2.
|
|
204
|
+
### 2.6 Teacher (`metta://policy/teacher`)
|
|
248
205
|
|
|
249
206
|
**Architecture:** Wrapper that delegates to Nim CoGsGuard agents with forced initial vibes.
|
|
250
207
|
|
|
@@ -286,12 +243,6 @@ metta://policy/role_py?role_order=aligner,miner,aligner,miner # Exact sequenc
|
|
|
286
243
|
metta://policy/role_py?evolution=1 # Evolutionary roles
|
|
287
244
|
```
|
|
288
245
|
|
|
289
|
-
### Pinky additional params:
|
|
290
|
-
|
|
291
|
-
```
|
|
292
|
-
metta://policy/pinky?miner=4&aligner=3&scrambler=3&debug=1&change_role=100
|
|
293
|
-
```
|
|
294
|
-
|
|
295
246
|
### Planky additional params:
|
|
296
247
|
|
|
297
248
|
```
|
|
@@ -316,7 +267,6 @@ For a standard 10-agent team:
|
|
|
316
267
|
| Agent | Miner | Scout | Aligner | Scrambler | Dynamic? | Notes |
|
|
317
268
|
| --------------------- | ------------ | ------- | ------- | --------- | -------- | ----------------------------------------------- |
|
|
318
269
|
| **planky** (default) | 4 (40%) | 0 (0%) | 2 (20%) | 4 (40%) | No | No scouts; denial-heavy |
|
|
319
|
-
| **pinky** (gear=10) | 2 (20%) | 0 (0%) | 5 (50%) | 3 (30%) | Partial | Aligner-heavy; resource-triggered switching |
|
|
320
270
|
| **role_py** (default) | 4 (40%) | 0-2\* | 0-2\* | 1 (10%) | Yes | 5 dynamic `gear` agents fill gaps |
|
|
321
271
|
| **cogsguard_v2** | 5 (50%) | 1 (10%) | 2 (20%) | 2 (20%) | Limited | Balanced static formula |
|
|
322
272
|
| **cogsguard_control** | 5-7 | 1-2 | 0-2 | 1-2 | Yes | Phase-aware; commander reassigns every 40 steps |
|
|
@@ -405,8 +355,8 @@ Aggressive junction control with double scouts and generalist role switching.
|
|
|
405
355
|
|
|
406
356
|
## 6. Conclusions
|
|
407
357
|
|
|
408
|
-
1. **No agent currently uses a theoretically optimal distribution out of the box.** Planky
|
|
409
|
-
|
|
358
|
+
1. **No agent currently uses a theoretically optimal distribution out of the box.** Planky lacks scouts entirely in its
|
|
359
|
+
defaults. Role_py's defaults are miner-heavy with most agents dynamically assigned.
|
|
410
360
|
|
|
411
361
|
2. **Dynamic role switching outperforms static allocation.** CoGsGuard Control and Wombo (the highest-rated agents in
|
|
412
362
|
machina1 analysis) both use adaptive distributions.
|
|
@@ -36,7 +36,3 @@ python -c "from cogames_agents.policy.scripted_registry import list_scripted_age
|
|
|
36
36
|
- `cogsguard_v2` - V2 variant
|
|
37
37
|
- `miner`, `scout`, `aligner`, `scrambler` - Role-specific policies
|
|
38
38
|
- `teacher` - Teacher wrapper over Nim multi-role
|
|
39
|
-
|
|
40
|
-
## Pinky (Python, CogsGuard)
|
|
41
|
-
|
|
42
|
-
- `pinky` - Role-count based policy (`?miner=...&scout=...&aligner=...&scrambler=...`)
|
|
@@ -17,7 +17,7 @@ classifiers = [
|
|
|
17
17
|
"Operating System :: MacOS",
|
|
18
18
|
]
|
|
19
19
|
urls = { Homepage = "https://github.com/Metta-AI/metta/tree/main/packages/cogames-agents", Repository = "https://github.com/Metta-AI/metta" }
|
|
20
|
-
dependencies = ["cogames==0.3.
|
|
20
|
+
dependencies = ["cogames==0.3.68", "mettagrid==0.2.0.82", "numpy>=2.0.0"]
|
|
21
21
|
|
|
22
22
|
[project.optional-dependencies]
|
|
23
23
|
test = ["pytest", "pytest-xdist", "ruff"]
|
|
@@ -16,7 +16,7 @@ Runs every registered scripted agent through `cogames scrimmage` and saves per-a
|
|
|
16
16
|
./scripts/benchmark_agents.sh -e 20 -s 2000 -m cogsguard_arena.basic -o ./my_results
|
|
17
17
|
|
|
18
18
|
# Subset of agents
|
|
19
|
-
./scripts/benchmark_agents.sh -a role,
|
|
19
|
+
./scripts/benchmark_agents.sh -a role,baseline,wombo -e 50
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
**Options:**
|
|
@@ -67,7 +67,7 @@ Fast single-agent eval for development iteration (3 episodes, 500 steps by defau
|
|
|
67
67
|
./scripts/quick_eval.sh role
|
|
68
68
|
|
|
69
69
|
# JSON output
|
|
70
|
-
./scripts/quick_eval.sh
|
|
70
|
+
./scripts/quick_eval.sh planky --json
|
|
71
71
|
|
|
72
72
|
# Open in MettaScope GUI
|
|
73
73
|
./scripts/quick_eval.sh baseline --gui
|
|
@@ -84,7 +84,6 @@ Registered scripted agents (from `cogames-agents` package):
|
|
|
84
84
|
| -------------------- | ------------------------------- |
|
|
85
85
|
| `role` | Multi-role Nim CogsGuard policy |
|
|
86
86
|
| `role_py` | Python multi-role CogsGuard |
|
|
87
|
-
| `pinky` | Alternative role ordering |
|
|
88
87
|
| `planky` | Plank-focused strategy |
|
|
89
88
|
| `wombo` | Alternative multi-role |
|
|
90
89
|
| `baseline` | Standard baseline |
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
#
|
|
7
7
|
# Examples:
|
|
8
8
|
# ./scripts/quick_eval.sh role
|
|
9
|
-
# ./scripts/quick_eval.sh
|
|
9
|
+
# ./scripts/quick_eval.sh planky -e 5 -s 500
|
|
10
10
|
# ./scripts/quick_eval.sh baseline --json
|
|
11
11
|
# ./scripts/quick_eval.sh role -m cogsguard_arena.basic --seed 99
|
|
12
12
|
|
|
@@ -16,7 +16,7 @@ if [[ $# -lt 1 ]] || [[ "$1" == "-h" ]] || [[ "$1" == "--help" ]]; then
|
|
|
16
16
|
echo "Usage: $0 AGENT [OPTIONS]"
|
|
17
17
|
echo ""
|
|
18
18
|
echo "Arguments:"
|
|
19
|
-
echo " AGENT Scripted agent name (e.g. role,
|
|
19
|
+
echo " AGENT Scripted agent name (e.g. role, planky, baseline)"
|
|
20
20
|
echo ""
|
|
21
21
|
echo "Options:"
|
|
22
22
|
echo " -e EPISODES Number of episodes (default: 3)"
|
|
@@ -14,7 +14,9 @@ from typing import Dict
|
|
|
14
14
|
from pydantic import Field
|
|
15
15
|
|
|
16
16
|
from cogames.cogs_vs_clips.cog import CogConfig
|
|
17
|
-
from cogames.cogs_vs_clips.mission import
|
|
17
|
+
from cogames.cogs_vs_clips.mission import CoGameSite as Site
|
|
18
|
+
from cogames.cogs_vs_clips.mission import CvCMission as Mission
|
|
19
|
+
from cogames.cogs_vs_clips.team import CogTeam
|
|
18
20
|
from mettagrid.config.mettagrid_config import MettaGridConfig
|
|
19
21
|
from mettagrid.map_builder.map_builder import MapBuilderConfig
|
|
20
22
|
from mettagrid.mapgen.mapgen import MapGen, MapGenConfig
|
|
@@ -90,7 +92,6 @@ class _PlankyDiagnosticBase(Mission):
|
|
|
90
92
|
default_factory=lambda: CogConfig(
|
|
91
93
|
energy_limit=255,
|
|
92
94
|
initial_energy=255,
|
|
93
|
-
energy_regen=255,
|
|
94
95
|
initial_hp=100,
|
|
95
96
|
hp_regen=0,
|
|
96
97
|
influence_regen=0,
|
|
@@ -108,6 +109,14 @@ class _PlankyDiagnosticBase(Mission):
|
|
|
108
109
|
custom_map = _get_planky_map(self.map_name)
|
|
109
110
|
original_map_builder = self.site.map_builder
|
|
110
111
|
self.site.map_builder = custom_map
|
|
112
|
+
|
|
113
|
+
# Apply wealth to teams (base class wealth attribute wasn't being used)
|
|
114
|
+
original_teams = self.teams
|
|
115
|
+
self.teams = {
|
|
116
|
+
name: CogTeam(name=team.name, short_name=team.short_name, num_agents=team.num_agents, wealth=self.wealth)
|
|
117
|
+
for name, team in self.teams.items()
|
|
118
|
+
}
|
|
119
|
+
|
|
111
120
|
try:
|
|
112
121
|
cfg = super().make_env()
|
|
113
122
|
cfg.game.map_builder = custom_map
|
|
@@ -124,6 +133,7 @@ class _PlankyDiagnosticBase(Mission):
|
|
|
124
133
|
return cfg
|
|
125
134
|
finally:
|
|
126
135
|
self.site.map_builder = original_map_builder
|
|
136
|
+
self.teams = original_teams
|
|
127
137
|
|
|
128
138
|
|
|
129
139
|
# ==============================================================================
|
|
@@ -264,7 +274,6 @@ class PlankySurviveRetreat(_PlankyDiagnosticBase):
|
|
|
264
274
|
default_factory=lambda: CogConfig(
|
|
265
275
|
energy_limit=255,
|
|
266
276
|
initial_energy=255,
|
|
267
|
-
energy_regen=255,
|
|
268
277
|
initial_hp=20,
|
|
269
278
|
hp_regen=0,
|
|
270
279
|
influence_regen=0,
|
{cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/nim_agents/__init__.py
RENAMED
|
@@ -6,14 +6,12 @@ __all__ = [
|
|
|
6
6
|
"RandomAgentsMultiPolicy",
|
|
7
7
|
"ThinkyAgentsMultiPolicy",
|
|
8
8
|
"RaceCarAgentsMultiPolicy",
|
|
9
|
-
"LadyBugAgentsMultiPolicy",
|
|
10
9
|
"CogsguardAlignAllAgentsMultiPolicy",
|
|
11
10
|
]
|
|
12
11
|
|
|
13
12
|
# Re-export the policy classes for convenience
|
|
14
13
|
from cogames_agents.policy.nim_agents.agents import ( # noqa: F401
|
|
15
14
|
CogsguardAlignAllAgentsMultiPolicy,
|
|
16
|
-
LadyBugAgentsMultiPolicy,
|
|
17
15
|
RaceCarAgentsMultiPolicy,
|
|
18
16
|
RandomAgentsMultiPolicy,
|
|
19
17
|
ThinkyAgentsMultiPolicy,
|
{cogames_agents-0.0.0.7 → cogames_agents-0.0.0.10}/src/cogames_agents/policy/nim_agents/agents.py
RENAMED
|
@@ -55,17 +55,6 @@ class RaceCarAgentsMultiPolicy(NimMultiAgentPolicy):
|
|
|
55
55
|
)
|
|
56
56
|
|
|
57
57
|
|
|
58
|
-
class LadyBugAgentsMultiPolicy(NimMultiAgentPolicy):
|
|
59
|
-
short_names = ["ladybug"]
|
|
60
|
-
|
|
61
|
-
def __init__(self, policy_env_info: PolicyEnvInterface, agent_ids: Sequence[int] | None = None):
|
|
62
|
-
super().__init__(
|
|
63
|
-
policy_env_info,
|
|
64
|
-
nim_policy_factory=na.LadybugPolicy,
|
|
65
|
-
agent_ids=agent_ids,
|
|
66
|
-
)
|
|
67
|
-
|
|
68
|
-
|
|
69
58
|
class CogsguardAgentsMultiPolicy(NimMultiAgentPolicy):
|
|
70
59
|
short_names = ["role"]
|
|
71
60
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import
|
|
2
2
|
genny, fidget2/measure,
|
|
3
|
-
random_agents, thinky_agents, racecar_agents,
|
|
3
|
+
random_agents, thinky_agents, racecar_agents, cogsguard_agents,
|
|
4
4
|
cogsguard_align_all_agents
|
|
5
5
|
|
|
6
6
|
|
|
@@ -45,12 +45,6 @@ exportRefObject RaceCarPolicy:
|
|
|
45
45
|
procs:
|
|
46
46
|
stepBatch(RaceCarPolicy, pointer, int, int, int, int, pointer, int, pointer)
|
|
47
47
|
|
|
48
|
-
exportRefObject LadybugPolicy:
|
|
49
|
-
constructor:
|
|
50
|
-
newLadybugPolicy(string)
|
|
51
|
-
procs:
|
|
52
|
-
stepBatch(LadybugPolicy, pointer, int, int, int, int, pointer, int, pointer)
|
|
53
|
-
|
|
54
48
|
exportRefObject CogsguardPolicy:
|
|
55
49
|
constructor:
|
|
56
50
|
newCogsguardPolicy(string)
|