mapify-cli 3.35.2__tar.gz → 3.37.0__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.
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/PKG-INFO +1 -1
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/pyproject.toml +1 -1
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/__init__.py +1 -1
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/auto_update.py +119 -1
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/file_copier.py +137 -16
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/monitor.md +8 -1
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/task-decomposer.md +1 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/decomposer.toml +1 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/monitor.toml +6 -0
- {mapify_cli-3.35.2/src/mapify_cli/templates → mapify_cli-3.37.0/src/mapify_cli/templates/codex}/hooks/post-compact-context.py +21 -0
- {mapify_cli-3.35.2/src/mapify_cli/templates → mapify_cli-3.37.0/src/mapify_cli/templates/codex}/hooks/workflow-context-injector.py +32 -4
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-release/SKILL.md +22 -26
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-release/release-reference.md +73 -79
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-review/SKILL.md +12 -12
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-review/review-reference.md +105 -5
- {mapify_cli-3.35.2/src/mapify_cli/templates/codex → mapify_cli-3.37.0/src/mapify_cli/templates}/hooks/post-compact-context.py +20 -1
- {mapify_cli-3.35.2/src/mapify_cli/templates/codex → mapify_cli-3.37.0/src/mapify_cli/templates}/hooks/workflow-context-injector.py +31 -5
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/codex_review_runner.py +55 -47
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/map_step_runner.py +1890 -146
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/sofa_client.py +6 -6
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-efficient/efficient-reference.md +5 -1
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-release/SKILL.md +22 -26
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-release/release-reference.md +73 -109
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-review/SKILL.md +16 -16
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-review/adversarial-reference.md +2 -2
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-review/review-reference.md +105 -5
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/monitor.md.jinja +8 -1
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/task-decomposer.md.jinja +1 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/decomposer.toml.jinja +1 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/monitor.toml.jinja +6 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/post-compact-context.py.jinja +20 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/workflow-context-injector.py.jinja +31 -4
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/codex_review_runner.py.jinja +54 -46
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/map_step_runner.py.jinja +1890 -146
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/sofa_client.py.jinja +6 -6
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-efficient/efficient-reference.md.jinja +5 -1
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-release/SKILL.md.jinja +23 -31
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-release/release-reference.md.jinja +73 -120
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-review/SKILL.md.jinja +16 -16
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-review/adversarial-reference.md.jinja +2 -2
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-review/review-reference.md.jinja +105 -5
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/review_context_helpers.py +23 -7
- mapify_cli-3.37.0/tests/test_auto_update_stale_project.py +214 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_codex_review_host.py +95 -3
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_post_compact_context.py +30 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_release_ci_gates.py +50 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_attribution_receipts.py +16 -6
- mapify_cli-3.37.0/tests/test_review_changed_scope.py +1443 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_check_timeouts.py +27 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_context_transport.py +24 -7
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_explicit_base.py +2 -2
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_explicit_base_stale_readers.py +2 -2
- mapify_cli-3.37.0/tests/test_review_mapify_managed.py +223 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_pending_collection.py +1 -1
- mapify_cli-3.37.0/tests/test_review_prompt_overhead.py +140 -0
- mapify_cli-3.37.0/tests/test_review_roster_budget.py +130 -0
- mapify_cli-3.37.0/tests/test_review_shard_docs.py +21 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_verdict_ledger.py +3 -2
- mapify_cli-3.37.0/tests/test_review_windowed_followups.py +270 -0
- mapify_cli-3.37.0/tests/test_review_windowed_sources.py +269 -0
- mapify_cli-3.37.0/tests/test_runtime_info_exclude.py +188 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_runtime_privacy_ignores.py +2 -1
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills.py +13 -11
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_sofa_client.py +2 -2
- mapify_cli-3.37.0/tests/test_unrun_verification_contract.py +27 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_wave_abort_preservation.py +135 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_wave_parallel_harness.py +3 -3
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_workflow_context_injector.py +33 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_worktree_isolation.py +23 -2
- mapify_cli-3.35.2/tests/test_review_changed_scope.py +0 -251
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/.claude/hooks/README.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/.claude/skills/README.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/.gitignore +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/LICENSE +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/README.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/__main__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/_locking.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/_python_guard.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/boundary_quality_report.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/cli_ui.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/code_map.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/codex_exec.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/config/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/config/mcp.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/config/project_config.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/config/settings.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/agent_generator.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/codex_copier.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/domain_skill.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/governance_report.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/managed_file_copier.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/providers.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/delivery/template_renderer.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/dependency_graph.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/grace_eval/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/grace_eval/schema.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/grace_eval/sweep.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/install_manifest.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/intent_detector.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/memory/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/memory/capture.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/memory/digest_schema.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/memory/evidence.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/memory/finalize.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/memory/recall.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/minimality_eval.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/minimality_report.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/parallelism_observability.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/provider_registry.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/python_runtime.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/ralph_state.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/repo_insight.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/research_eval.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/research_eval_compare.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/schemas.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/scope_classifier.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skill_ir.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/aggregator.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/apply_patcher.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/assertions.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/description_optimizer.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/dispatcher.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/eval_schema.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/proposer.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/review_corpus.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/review_pilot.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/runner.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/bundle.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/dispatcher.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/eval_schema.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/gates.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/judge.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/repeated.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/report.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/runner.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/trajectory/seeding.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/skills_eval/viewer.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/.gitignore +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/CLAUDE.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/actor.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/documentation-reviewer.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/evaluator.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/final-verifier.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/predictor.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/reflector.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/research-agent.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/agents/review-reader.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/AGENTS.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/actor.toml +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/documentation-reviewer.toml +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/evaluator.toml +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/final-verifier.toml +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/predictor.toml +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/reflector.toml +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/researcher.toml +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/review-reader.toml +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/config.toml +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/context-meter.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/detect-clarification-triggers.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/end-of-turn.sh +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-memory-capture.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-memory-endmark.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-memory-recall.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-memory-session.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-stop.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/map-token-meter.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/pre-compact-save-transcript.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/ralph-context-pruner.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/ralph-iteration-logger.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/safety-guardrails.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/scrub-internal-ids.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks/workflow-gate.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/hooks.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/references/map-json-output-contracts.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/references/map-output-examples.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/references/map-xml-prompt-envelopes.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-architecture/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-auto/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-auto/auto-reference.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-check/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-check/check-reference.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-debug/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-efficient/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-efficient/efficient-reference.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-explain/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-fast/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-learn/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/example-rules.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/rules-unconditional.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-learn/templates/rules-with-paths.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-memory-now/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-plan/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-plan/plan-reference.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-prd-review/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-resume/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-resume/resume-reference.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-review/adversarial-reference.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-skill-eval/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-so-search/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-so-search/scripts/sofa_search.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/check-complete.sh +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/get-plan-path.sh +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/init-session.sh +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/scripts/show-focus.sh +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/templates/findings.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/templates/iteration_history.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/templates/progress.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-state/templates/task_plan.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-task/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-tdd/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-tokenreport/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-understand/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-upgrade/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-wayfind/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/skills/map-wayfind/wayfind-reference.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/README.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/context-meter.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/detect-clarification-triggers.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/end-of-turn.sh +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-memory-capture.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-memory-endmark.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-memory-finalize.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-memory-recall.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-statusline.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/map-token-meter.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/pre-compact-save-transcript.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/ralph-context-pruner.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/ralph-iteration-logger.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/safety-guardrails.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/scrub-internal-ids.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/hooks/workflow-gate.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/classify_scope.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/codex_review_host.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/diagnostics.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/map_interruption.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/map_orchestrator.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/map_utils.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/review_check_supervisor.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/scrub_internal_ids.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/validate_spec_citations.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/scripts/wayfind_runner.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/analyze.sh +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/handlers/common.sh +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/handlers/go.sh +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/handlers/python.sh +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/handlers/rust.sh +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/map/static-analysis/handlers/typescript.sh +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/ralph-loop-config.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/bash-guidelines.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/decomposition-examples.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/escalation-matrix.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/hook-patterns.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/host-paths.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/map-json-output-contracts.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/map-output-examples.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/map-xml-prompt-envelopes.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/mcp-usage-examples.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/step-state-schema.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/references/workflow-state-schema.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/rules/learned/README.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/settings.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/README.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-architecture/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-auto/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-auto/auto-reference.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-check/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-check/check-reference.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-debug/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-efficient/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-explain/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-fast/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-learn/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-learn/templates/example-rules.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-learn/templates/rules-unconditional.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-learn/templates/rules-with-paths.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-memory-now/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-plan/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-plan/plan-reference.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-prd-review/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-resume/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-resume/resume-reference.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-skill-eval/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-so-search/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-so-search/scripts/sofa_search.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/scripts/check-complete.sh +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/scripts/get-plan-path.sh +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/scripts/init-session.sh +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/scripts/show-focus.sh +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/templates/findings.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/templates/iteration_history.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/templates/progress.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-state/templates/task_plan.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-task/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-tdd/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-tokenreport/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-understand/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-upgrade/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-wayfind/SKILL.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/map-wayfind/wayfind-reference.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/skills/skill-rules.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/workflow-rules.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/.gitignore.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/CLAUDE.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/acceptance-runtime.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/apply-patch-paths.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/auto-update-preflight.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/codex-memory-hook-wrapper.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/manual-upgrade-flow.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/monitor-review-context.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/python-version-guard.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/serial-blocker-repair.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/stale-attribution-recovery.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/_partials/vacuous-test-check.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/actor.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/documentation-reviewer.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/evaluator.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/final-verifier.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/predictor.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/reflector.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/research-agent.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/agents/review-reader.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/AGENTS.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/actor.toml.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/documentation-reviewer.toml.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/evaluator.toml.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/final-verifier.toml.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/predictor.toml.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/reflector.toml.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/researcher.toml.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/agents/review-reader.toml.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/config.toml.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/context-meter.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/detect-clarification-triggers.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/end-of-turn.sh.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-capture.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-endmark.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-recall.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-memory-session.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-stop.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/map-token-meter.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/post-compact-context.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/pre-compact-save-transcript.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/ralph-context-pruner.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/ralph-iteration-logger.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/safety-guardrails.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/scrub-internal-ids.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/workflow-context-injector.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks/workflow-gate.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/hooks.json.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/references/map-json-output-contracts.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/references/map-output-examples.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/references/map-xml-prompt-envelopes.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-architecture/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-auto/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-auto/auto-reference.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-check/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-check/check-reference.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-debug/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-efficient/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-efficient/efficient-reference.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-explain/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-fast/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-learn/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/example-rules.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/rules-unconditional.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-learn/templates/rules-with-paths.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-memory-now/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-plan/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-plan/plan-reference.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-prd-review/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-release/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-release/release-reference.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-resume/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-resume/resume-reference.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-review/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-review/adversarial-reference.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-review/review-reference.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-skill-eval/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-so-search/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-so-search/scripts/sofa_search.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/check-complete.sh.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/get-plan-path.sh.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/init-session.sh.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/scripts/show-focus.sh.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/findings.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/iteration_history.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/progress.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-state/templates/task_plan.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-task/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-tdd/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-tokenreport/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-understand/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-upgrade/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-wayfind/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/codex/skills/map-wayfind/wayfind-reference.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/README.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/context-meter.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/detect-clarification-triggers.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/end-of-turn.sh.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-memory-capture.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-memory-endmark.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-memory-finalize.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-memory-recall.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-statusline.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/map-token-meter.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/pre-compact-save-transcript.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/ralph-context-pruner.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/ralph-iteration-logger.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/safety-guardrails.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/scrub-internal-ids.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/hooks/workflow-gate.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/classify_scope.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/codex_review_host.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/diagnostics.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/map_interruption.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/map_orchestrator.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/map_utils.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/review_check_supervisor.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/scrub_internal_ids.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/validate_spec_citations.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/scripts/wayfind_runner.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/analyze.sh.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/common.sh.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/go.sh.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/python.sh.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/rust.sh.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/map/static-analysis/handlers/typescript.sh.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/ralph-loop-config.json.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/bash-guidelines.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/decomposition-examples.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/escalation-matrix.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/hook-patterns.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/host-paths.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/map-json-output-contracts.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/map-output-examples.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/map-xml-prompt-envelopes.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/mcp-usage-examples.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/step-state-schema.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/references/workflow-state-schema.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/rules/learned/README.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/settings.json.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/README.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-architecture/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-auto/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-auto/auto-reference.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-check/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-check/check-reference.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-debug/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-efficient/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-explain/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-fast/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-learn/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-learn/templates/example-rules.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-unconditional.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-learn/templates/rules-with-paths.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-memory-now/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-plan/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-plan/plan-reference.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-prd-review/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-resume/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-resume/resume-reference.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-skill-eval/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-so-search/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-so-search/scripts/sofa_search.py.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/scripts/check-complete.sh.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/scripts/get-plan-path.sh.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/scripts/init-session.sh.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/scripts/show-focus.sh.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/templates/findings.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/templates/iteration_history.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/templates/progress.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-state/templates/task_plan.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-task/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-tdd/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-tokenreport/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-understand/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-upgrade/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-wayfind/SKILL.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/map-wayfind/wayfind-reference.md.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/skills/skill-rules.json.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates_src/workflow-rules.json.jinja +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/token_budget.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/tool_output_offload.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/tools/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/tools/validate_dependencies.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/update_install.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/update_state.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/update_versions.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/verification_recorder.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/workflow_finalizer.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/workflow_logger.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/workflow_state.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/_fake_task_tool.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/conftest.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/fixtures/claude/escalation-matrix.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/fixtures/codex/config.toml +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/fixtures/wave_blueprints.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/hooks/test_detect_clarification_triggers.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/hooks/test_end_of_turn.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/hooks/test_hook_inventory_smoke.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/hooks/test_safety_guardrails.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/hooks/test_scrub_internal_ids_hook.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/fixtures/blueprint.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/fixtures/code_review.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/fixtures/plan_handoff.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/fixtures/spec.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/fixtures/step_state_initialized.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/fixtures/step_state_plan_complete.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/fixtures/task_plan.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/fixtures/verification_summary.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/test_e2e_artifact_contracts.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/integration/test_e2e_claude_sdk.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/review_pilot_git_cache.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/review_process_lifecycle.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/README.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_check_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_debug_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_debug_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_efficient_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_explain_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_fast_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_learn_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_memory_now_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_plan_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_release_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_resume_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_review_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_skill_eval_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_state_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_task_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_tdd_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/map_tokenreport_optimize_eval_set.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/manifest.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/src/utils.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_blocker/repo/tests/test_compute.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/hidden/test_calc_full.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/manifest.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/src/calc.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc/repo/tests/test_calc_basic.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/hidden/test_calc_full.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/manifest.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/src/calc.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_calc_vague/repo/tests/test_calc_basic.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/hidden/test_kvparse_full.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/manifest.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/src/kvparse.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_false_success/repo/tests/test_kvparse_basic.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/manifest.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/config.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/src/utils.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_pressure/repo/tests/test_price.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/manifest.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/config.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/src/utils.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_scope_trap/repo/tests/test_utils.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/manifest.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/src/semver.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver/repo/tests/test_semver.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/hidden/test_semver_full.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/manifest.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/src/semver.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_vague/repo/tests/test_semver_basic.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/hidden/test_semver_full.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/manifest.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/blueprint.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/.map/main/task_plan_main.md +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/__init__.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/src/semver.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/fixtures/whole_skill/map_task_semver_weakgate/repo/tests/test_semver_basic.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/corpus.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/evidence/adjudication.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/evidence/control-audit.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/evidence/manual-run.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/evidence/manual-run.log +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/review_corpus/evidence/manual_repro.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/review_pilot_error_max_budget.sanitized.json +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/skills_eval/whole_skill/spike_runner.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_acceptance_additive_revision.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_acceptance_additive_revision_review.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_acceptance_proofs.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_agent_cli_correctness.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_agent_dispatch_audit.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_agent_frontmatter.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_agent_memory.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_approval_hold.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_approved_baseline_gate_contract.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_artifact_schemas.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_auto_update.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_boundary_quality_report.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_bump_version.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_classify_scope_script.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_code_map.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_codex_map_review_live.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_codex_review_native.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_compaction_offload_integration.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_concurrent_dispatch_harness.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_context_usefulness.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_cross_ai_config.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_debug_reference_install.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_decomposition.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_dependency_graph.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_diagnostics.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_digest_schema.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_domain_skill.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_file_copier.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_governance_attack_fixtures.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_governance_report.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_grace_eval_schema.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_grace_eval_sweep.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_hook_patterns.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_init_import_graph.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_install_manifest.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_intent_detector.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_inv1_no_anthropic_optimize.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_jinja2_dep.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_locking.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_managed_file_copier.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_map_auto.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_map_interruption.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_map_orchestrator.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_map_step_runner.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_map_token_meter.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_map_utils_sanitize.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_mapify_cli.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_capture.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_events.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_events_compat.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_events_exit_status.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_events_privacy.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_events_review.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_events_tools.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_finalize.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_integration.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_recall.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_memory_review_fixes.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_minimality_eval.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_minimality_report.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_model_invocable_skills.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_monitor_worktree_context.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_mutation_path_normalization.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_orchestrator_acceptance.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_parallelism_observability.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_preset_commands.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_project_config.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_prompt_layering.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_prompt_profile_commands.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_python_version_requirement.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_pyyaml_dep.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_ralph_hooks.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_ralph_response_types.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_ralph_state.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_repair_attribution.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_repair_workflow_gate.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_repo_insight.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_research_eval.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_research_eval_compare.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_resequence_pending.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_branch_receipts.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_context_delivery.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_corpus.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_explicit_base_legacy_override.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_finding_validation.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_pilot.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_pilot_git_cache.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_process_lifecycle.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_reader_capabilities.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_receipt_edge_cases.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_security_gates.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_review_trusted_policy.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_role_coverage_receipts.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_schemas.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_scope_classifier.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_scrub_internal_ids.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_settings_deny_globs.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_shell_json_pipes.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skill_ir.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_consistency.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_aggregator.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_apply.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_cli_optimize.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_dispatcher_env.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_dispatcher_timeout.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_fixtures.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_optimizer.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_optimizer_isolation.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_proposer.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_runner.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_schema.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_bundle.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_cli.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_gates.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_judge.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_repeated.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_report.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_runner.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_trajectory_schema.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_skills_eval_viewer.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_slice5b_leak_guards.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_sofa_search.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_static_analysis_bash.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_statusline.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_template_render.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_token_budget.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_tool_output_offload.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_unborn_branch_scope.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_update_install.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_update_state.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_update_versions.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_vacuous_test_check.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_validate_dependencies.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_validate_spec_citations.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_verification_recorder.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_wave_eval_harness.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_wave_fixtures.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_wayfind_install.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_wayfind_research.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_wayfind_runner.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_workflow_finalizer.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_workflow_gate.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_workflow_logger.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_workflow_state.py +0 -0
- {mapify_cli-3.35.2 → mapify_cli-3.37.0}/tests/test_worktree_commit_hooks.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: mapify-cli
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.37.0
|
|
4
4
|
Summary: MAP Framework installer - Modular Agentic Planner for Claude Code
|
|
5
5
|
Project-URL: Homepage, https://github.com/azalio/map-framework
|
|
6
6
|
Project-URL: Repository, https://github.com/azalio/map-framework.git
|
|
@@ -23,7 +23,7 @@ Or install globally:
|
|
|
23
23
|
mapify check
|
|
24
24
|
"""
|
|
25
25
|
|
|
26
|
-
__version__ = "3.
|
|
26
|
+
__version__ = "3.37.0"
|
|
27
27
|
|
|
28
28
|
# MUST stay the first import: it turns "this interpreter is older than 3.11" into
|
|
29
29
|
# a message that says so, instead of the ImportError raised by `from datetime
|
|
@@ -12,6 +12,7 @@ import httpx
|
|
|
12
12
|
|
|
13
13
|
from mapify_cli import create_ssl_context
|
|
14
14
|
from mapify_cli.config import load_map_config
|
|
15
|
+
from mapify_cli.install_manifest import read_manifest
|
|
15
16
|
from mapify_cli.update_install import (
|
|
16
17
|
InstallKind,
|
|
17
18
|
PackageUpdateError,
|
|
@@ -175,10 +176,22 @@ def record_declined_major(
|
|
|
175
176
|
declined = StableVersion.parse(declined_major)
|
|
176
177
|
if current is None:
|
|
177
178
|
raise ValueError("installed MAP version is not a stable version")
|
|
178
|
-
if declined is None
|
|
179
|
+
if declined is None:
|
|
179
180
|
raise ValueError(
|
|
180
181
|
"declined major must be a stable version above the installed major"
|
|
181
182
|
)
|
|
183
|
+
if declined.major <= current.major:
|
|
184
|
+
# Intent: a project a major behind the running CLI is offered the CLI's own
|
|
185
|
+
# major (#643); that exact offer may be declined too.
|
|
186
|
+
stale = _stale_project_providers(Path(project_path).resolve(), current)
|
|
187
|
+
if (
|
|
188
|
+
declined != current
|
|
189
|
+
or stale is None
|
|
190
|
+
or not _major_behind(stale[0], current)
|
|
191
|
+
):
|
|
192
|
+
raise ValueError(
|
|
193
|
+
"declined major must be a stable version above the installed major"
|
|
194
|
+
)
|
|
182
195
|
|
|
183
196
|
project = Path(project_path).resolve()
|
|
184
197
|
with project_update_lock(project, timeout_s=LOCK_TIMEOUT_SECONDS):
|
|
@@ -443,6 +456,60 @@ def _metadata_unavailable_result(
|
|
|
443
456
|
)
|
|
444
457
|
|
|
445
458
|
|
|
459
|
+
def _stale_project_providers(
|
|
460
|
+
project_path: Path, current: StableVersion
|
|
461
|
+
) -> tuple[StableVersion, tuple[str, ...]] | None:
|
|
462
|
+
"""Return (installed version, providers) when project files predate the CLI.
|
|
463
|
+
|
|
464
|
+
Intent: PyPI-based discovery only asks whether a newer CLI exists, so a CLI
|
|
465
|
+
upgraded outside the updater (#643) left project files stale while the result
|
|
466
|
+
stayed ``current``. The lock's ``mapify_version`` is the project's installed
|
|
467
|
+
version; an older stable value is local proof a refresh is owed. A newer or
|
|
468
|
+
unreadable project version never downgrades.
|
|
469
|
+
"""
|
|
470
|
+
manifest = read_manifest(project_path)
|
|
471
|
+
if manifest is None:
|
|
472
|
+
return None
|
|
473
|
+
installed = StableVersion.parse(manifest.mapify_version)
|
|
474
|
+
if installed is None or installed >= current:
|
|
475
|
+
return None
|
|
476
|
+
providers = installed_providers(project_path)
|
|
477
|
+
if not providers:
|
|
478
|
+
return None
|
|
479
|
+
return installed, providers
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
def _major_behind(installed: StableVersion, current: StableVersion) -> bool:
|
|
483
|
+
return installed.major < current.major
|
|
484
|
+
|
|
485
|
+
|
|
486
|
+
def _stale_project_state(
|
|
487
|
+
project_path: Path,
|
|
488
|
+
state: UpdateState,
|
|
489
|
+
current: StableVersion,
|
|
490
|
+
mode: UpdateMode,
|
|
491
|
+
) -> UpdateState | None:
|
|
492
|
+
"""Return a pending-refresh state when a stale project may refresh now.
|
|
493
|
+
|
|
494
|
+
Same-major staleness refreshes in both modes. A project a MAJOR behind
|
|
495
|
+
refreshes only in manual mode; automatic mode offers it through the existing
|
|
496
|
+
major-consent flow instead (see ``_check_locked``).
|
|
497
|
+
"""
|
|
498
|
+
stale = _stale_project_providers(project_path, current)
|
|
499
|
+
if stale is None:
|
|
500
|
+
return None
|
|
501
|
+
installed, providers = stale
|
|
502
|
+
if mode is UpdateMode.AUTOMATIC and _major_behind(installed, current):
|
|
503
|
+
return None
|
|
504
|
+
return replace(
|
|
505
|
+
state,
|
|
506
|
+
last_installed_version=str(current),
|
|
507
|
+
pending_install_version=None,
|
|
508
|
+
pending_refresh=True,
|
|
509
|
+
pending_providers=providers,
|
|
510
|
+
)
|
|
511
|
+
|
|
512
|
+
|
|
446
513
|
def _check_locked(
|
|
447
514
|
project_path: Path,
|
|
448
515
|
current_version: str,
|
|
@@ -489,6 +556,14 @@ def _check_locked(
|
|
|
489
556
|
write_update_state(project_path, cleared)
|
|
490
557
|
progress.state = cleared
|
|
491
558
|
|
|
559
|
+
if not progress.state.pending_refresh:
|
|
560
|
+
stale_state = _stale_project_state(
|
|
561
|
+
project_path, progress.state, current, mode
|
|
562
|
+
)
|
|
563
|
+
if stale_state is not None:
|
|
564
|
+
write_update_state(project_path, stale_state)
|
|
565
|
+
progress.state = stale_state
|
|
566
|
+
|
|
492
567
|
if progress.state.pending_refresh:
|
|
493
568
|
if mode is UpdateMode.AUTOMATIC and not refresh_retry_due(
|
|
494
569
|
progress.state,
|
|
@@ -567,6 +642,17 @@ def _check_locked(
|
|
|
567
642
|
refresh_complete=True,
|
|
568
643
|
)
|
|
569
644
|
progress.recovered_refresh = True
|
|
645
|
+
if approved_major == str(current):
|
|
646
|
+
# Intent: approving the CLI's own major for a project a major
|
|
647
|
+
# behind is a refresh only; there is no newer package to install.
|
|
648
|
+
return UpdateResult(
|
|
649
|
+
UpdateStatus.UPDATED,
|
|
650
|
+
current_version,
|
|
651
|
+
installed_version=progress.installed_version,
|
|
652
|
+
refreshed_providers=progress.refreshed_providers,
|
|
653
|
+
reload_current_skill=True,
|
|
654
|
+
refresh_complete=True,
|
|
655
|
+
)
|
|
570
656
|
|
|
571
657
|
if mode is UpdateMode.AUTOMATIC and not automatic_check_due(
|
|
572
658
|
progress.state,
|
|
@@ -591,6 +677,38 @@ def _check_locked(
|
|
|
591
677
|
)
|
|
592
678
|
write_update_state(project_path, progress.state)
|
|
593
679
|
|
|
680
|
+
if mode is UpdateMode.AUTOMATIC:
|
|
681
|
+
stale = _stale_project_providers(project_path, current)
|
|
682
|
+
if (
|
|
683
|
+
stale is not None
|
|
684
|
+
and _major_behind(stale[0], current)
|
|
685
|
+
and progress.state.declined_major_version != str(current)
|
|
686
|
+
):
|
|
687
|
+
# Intent: a project a major behind the running CLI is stale, not
|
|
688
|
+
# current (#643). Reuse the major-consent signal: approving
|
|
689
|
+
# refreshes the project (no package install), declining records
|
|
690
|
+
# the exact offer so it does not repeat.
|
|
691
|
+
with httpx.Client(verify=create_ssl_context()) as offer_client:
|
|
692
|
+
offer = fetch_release_highlights(current, offer_client)
|
|
693
|
+
if offer is None:
|
|
694
|
+
return _metadata_unavailable_result(
|
|
695
|
+
mode,
|
|
696
|
+
current_version,
|
|
697
|
+
installed_version=progress.installed_version,
|
|
698
|
+
refreshed_providers=progress.refreshed_providers,
|
|
699
|
+
reload_current_skill=progress.reload_current_skill,
|
|
700
|
+
refresh_complete=progress.refresh_complete,
|
|
701
|
+
)
|
|
702
|
+
return UpdateResult(
|
|
703
|
+
UpdateStatus.MAJOR_AVAILABLE,
|
|
704
|
+
current_version,
|
|
705
|
+
installed_version=progress.installed_version,
|
|
706
|
+
major=offer,
|
|
707
|
+
refreshed_providers=progress.refreshed_providers,
|
|
708
|
+
reload_current_skill=progress.reload_current_skill,
|
|
709
|
+
refresh_complete=progress.refresh_complete,
|
|
710
|
+
)
|
|
711
|
+
|
|
594
712
|
with httpx.Client(verify=create_ssl_context()) as client:
|
|
595
713
|
targets = fetch_version_targets(current, client)
|
|
596
714
|
_validate_targets(targets, current)
|
|
@@ -13,9 +13,10 @@ import os
|
|
|
13
13
|
import secrets
|
|
14
14
|
import shutil
|
|
15
15
|
import stat
|
|
16
|
+
import subprocess
|
|
16
17
|
import tempfile
|
|
17
18
|
import time
|
|
18
|
-
from collections.abc import
|
|
19
|
+
from collections.abc import Generator
|
|
19
20
|
from dataclasses import dataclass
|
|
20
21
|
from fnmatch import fnmatchcase
|
|
21
22
|
from pathlib import Path
|
|
@@ -608,7 +609,7 @@ def _windows_gitignore_mutex_name(project_stat: os.stat_result) -> str:
|
|
|
608
609
|
@contextlib.contextmanager
|
|
609
610
|
def _windows_project_gitignore_mutex(
|
|
610
611
|
project_stat: os.stat_result,
|
|
611
|
-
) ->
|
|
612
|
+
) -> Generator[None, None, None]:
|
|
612
613
|
"""Acquire a process-shared Windows mutex without a filesystem artifact."""
|
|
613
614
|
ctypes: Any = importlib.import_module("ctypes")
|
|
614
615
|
wintypes: Any = importlib.import_module("ctypes.wintypes")
|
|
@@ -672,7 +673,7 @@ def _windows_project_gitignore_mutex(
|
|
|
672
673
|
def _windows_pinned_project_root(
|
|
673
674
|
project_root: Path,
|
|
674
675
|
project_original: os.stat_result,
|
|
675
|
-
) ->
|
|
676
|
+
) -> Generator[None, None, None]:
|
|
676
677
|
"""Prevent replacement of a Windows project directory during mutation."""
|
|
677
678
|
ctypes: Any = importlib.import_module("ctypes")
|
|
678
679
|
wintypes: Any = importlib.import_module("ctypes.wintypes")
|
|
@@ -726,7 +727,7 @@ def _windows_pinned_project_root(
|
|
|
726
727
|
def _pinned_project_root(
|
|
727
728
|
project_root: Path,
|
|
728
729
|
project_original: os.stat_result,
|
|
729
|
-
) ->
|
|
730
|
+
) -> Generator[int | None, None, None]:
|
|
730
731
|
"""Pin the project identity used by every relative .gitignore operation."""
|
|
731
732
|
if os.name == "nt":
|
|
732
733
|
with _windows_pinned_project_root(project_root, project_original):
|
|
@@ -765,14 +766,6 @@ def _pinned_project_root(
|
|
|
765
766
|
os.close(descriptor)
|
|
766
767
|
|
|
767
768
|
|
|
768
|
-
def _gitignore_lock_path(project_root: Path) -> Path:
|
|
769
|
-
"""Resolve the shared lock from stable filesystem identity, not spelling."""
|
|
770
|
-
return _gitignore_lock_path_for_stat(
|
|
771
|
-
project_root,
|
|
772
|
-
_validated_project_root_stat(project_root),
|
|
773
|
-
)
|
|
774
|
-
|
|
775
|
-
|
|
776
769
|
def _unsafe_gitignore_lock(lock_path: Path, reason: str) -> NoReturn:
|
|
777
770
|
raise UpdateRuntimeGitignoreSecurityError(
|
|
778
771
|
f"unsafe MAP .gitignore lock at {lock_path}: {reason}"
|
|
@@ -900,7 +893,7 @@ def _unlock_descriptor(descriptor: int) -> None:
|
|
|
900
893
|
@contextlib.contextmanager
|
|
901
894
|
def _project_gitignore_lock(
|
|
902
895
|
project_root: Path,
|
|
903
|
-
) ->
|
|
896
|
+
) -> Generator[tuple[int | None, os.stat_result], None, None]:
|
|
904
897
|
"""Serialize a complete MAP-owned root .gitignore transaction."""
|
|
905
898
|
project_original = _validated_project_root_stat(project_root)
|
|
906
899
|
with _pinned_project_root(project_root, project_original) as directory_fd:
|
|
@@ -1220,11 +1213,106 @@ def _has_effective_gitignore_path(lines: list[bytes], required_path: str) -> boo
|
|
|
1220
1213
|
)
|
|
1221
1214
|
|
|
1222
1215
|
|
|
1216
|
+
def _git_info_exclude_path(project_root: Path) -> Path | None:
|
|
1217
|
+
"""Return ``<git-common-dir>/info/exclude`` for a repo rooted at *project_root*.
|
|
1218
|
+
|
|
1219
|
+
``info/exclude`` patterns anchor at the repository top level, so a project
|
|
1220
|
+
root that is merely a subdirectory of a repo (or not a repo at all, or git
|
|
1221
|
+
is unavailable) returns None and the caller keeps the tracked ``.gitignore``.
|
|
1222
|
+
Linked worktrees share the common dir, hence one exclude file per clone.
|
|
1223
|
+
"""
|
|
1224
|
+
try:
|
|
1225
|
+
proc = subprocess.run(
|
|
1226
|
+
["git", "rev-parse", "--show-toplevel", "--git-common-dir"],
|
|
1227
|
+
cwd=project_root,
|
|
1228
|
+
capture_output=True,
|
|
1229
|
+
text=True,
|
|
1230
|
+
timeout=10,
|
|
1231
|
+
check=False,
|
|
1232
|
+
)
|
|
1233
|
+
except (OSError, subprocess.SubprocessError):
|
|
1234
|
+
return None
|
|
1235
|
+
lines = proc.stdout.splitlines()
|
|
1236
|
+
if proc.returncode != 0 or len(lines) != 2:
|
|
1237
|
+
return None
|
|
1238
|
+
toplevel, common = Path(lines[0]), Path(lines[1])
|
|
1239
|
+
try:
|
|
1240
|
+
if toplevel.resolve() != project_root.resolve():
|
|
1241
|
+
return None
|
|
1242
|
+
except OSError:
|
|
1243
|
+
return None
|
|
1244
|
+
if not common.is_absolute():
|
|
1245
|
+
common = project_root / common
|
|
1246
|
+
return common / "info" / "exclude"
|
|
1247
|
+
|
|
1248
|
+
|
|
1249
|
+
def _prepare_info_exclude_directory(exclude: Path) -> None:
|
|
1250
|
+
"""Create ``info/`` when missing and require it to be a direct directory."""
|
|
1251
|
+
try:
|
|
1252
|
+
exclude.parent.mkdir(parents=True, exist_ok=True)
|
|
1253
|
+
current = os.lstat(exclude.parent)
|
|
1254
|
+
except OSError as exc:
|
|
1255
|
+
_unsafe_project_gitignore(
|
|
1256
|
+
exclude, f"could not prepare {exclude.parent} ({exc})"
|
|
1257
|
+
)
|
|
1258
|
+
if stat.S_ISLNK(current.st_mode) or not stat.S_ISDIR(current.st_mode):
|
|
1259
|
+
_unsafe_project_gitignore(
|
|
1260
|
+
exclude, "the info directory must be a direct directory"
|
|
1261
|
+
)
|
|
1262
|
+
|
|
1263
|
+
|
|
1223
1264
|
def _has_gitignore_marker(lines: list[bytes], marker: str) -> bool:
|
|
1224
1265
|
encoded = marker.encode()
|
|
1225
1266
|
return any(line == encoded or line.startswith(encoded + b" ") for line in lines)
|
|
1226
1267
|
|
|
1227
1268
|
|
|
1269
|
+
def _merge_runtime_exclude(
|
|
1270
|
+
exclude: Path,
|
|
1271
|
+
gitignore_lines: list[bytes],
|
|
1272
|
+
project_root: Path,
|
|
1273
|
+
project_original: os.stat_result,
|
|
1274
|
+
) -> bool | None:
|
|
1275
|
+
"""Append missing runtime paths to the git exclude file.
|
|
1276
|
+
|
|
1277
|
+
Presence in either file counts (OR). Returns True when the exclude file
|
|
1278
|
+
was rewritten, False when nothing was needed, and None when a ``.gitignore``
|
|
1279
|
+
negation (which outranks ``info/exclude``) defeats an exclude entry, so the
|
|
1280
|
+
caller must repair the tracked ``.gitignore`` instead.
|
|
1281
|
+
"""
|
|
1282
|
+
existing, original = _read_safe_gitignore(exclude, None)
|
|
1283
|
+
exclude_lines = existing.splitlines()
|
|
1284
|
+
# .gitignore outranks info/exclude: evaluate exclude rules first.
|
|
1285
|
+
combined = exclude_lines + gitignore_lines
|
|
1286
|
+
missing = [
|
|
1287
|
+
path
|
|
1288
|
+
for path in _UPDATE_RUNTIME_GITIGNORE_PATHS
|
|
1289
|
+
if not _has_effective_gitignore_path(combined, path)
|
|
1290
|
+
]
|
|
1291
|
+
if not missing:
|
|
1292
|
+
return False
|
|
1293
|
+
if any(
|
|
1294
|
+
line.startswith(b"!") and _negation_targets_path(line, path.encode())
|
|
1295
|
+
for path in missing
|
|
1296
|
+
for line in gitignore_lines
|
|
1297
|
+
):
|
|
1298
|
+
return None
|
|
1299
|
+
_prepare_info_exclude_directory(exclude)
|
|
1300
|
+
block: list[bytes] = []
|
|
1301
|
+
if not _has_gitignore_marker(exclude_lines, _UPDATE_RUNTIME_GITIGNORE_MARKER):
|
|
1302
|
+
block.append(_UPDATE_RUNTIME_GITIGNORE_MARKER.encode())
|
|
1303
|
+
block.extend(path.encode() for path in missing)
|
|
1304
|
+
separator = b"" if not existing or existing.endswith(b"\n") else b"\n"
|
|
1305
|
+
_atomic_replace_gitignore(
|
|
1306
|
+
exclude,
|
|
1307
|
+
existing + separator + b"\n".join(block) + b"\n",
|
|
1308
|
+
original,
|
|
1309
|
+
None,
|
|
1310
|
+
project_root,
|
|
1311
|
+
project_original,
|
|
1312
|
+
)
|
|
1313
|
+
return True
|
|
1314
|
+
|
|
1315
|
+
|
|
1228
1316
|
def _merge_project_gitignore_locked(
|
|
1229
1317
|
project_root: Path,
|
|
1230
1318
|
directory_fd: int | None,
|
|
@@ -1234,20 +1322,39 @@ def _merge_project_gitignore_locked(
|
|
|
1234
1322
|
include_sofa: bool = False,
|
|
1235
1323
|
include_agent_memory_local: bool = False,
|
|
1236
1324
|
include_settings_local: bool = False,
|
|
1325
|
+
runtime_exclude: Path | None = None,
|
|
1237
1326
|
) -> int:
|
|
1238
|
-
"""Append selected MAP-owned blocks while the shared lock is held.
|
|
1327
|
+
"""Append selected MAP-owned blocks while the shared lock is held.
|
|
1328
|
+
|
|
1329
|
+
With ``runtime_exclude`` set, the runtime block goes to that git exclude
|
|
1330
|
+
file instead of the tracked ``.gitignore``; privacy blocks always stay in
|
|
1331
|
+
``.gitignore``.
|
|
1332
|
+
"""
|
|
1239
1333
|
gitignore = project_root / ".gitignore"
|
|
1240
1334
|
existing, original = _read_safe_gitignore(gitignore, directory_fd)
|
|
1241
1335
|
_validate_project_root_unchanged(project_root, project_original)
|
|
1242
1336
|
existing_lines = existing.splitlines()
|
|
1243
1337
|
|
|
1244
1338
|
additions: list[bytes] = []
|
|
1339
|
+
exclude_changed = False
|
|
1245
1340
|
if include_runtime:
|
|
1246
1341
|
missing_runtime_paths = [
|
|
1247
1342
|
path
|
|
1248
1343
|
for path in _UPDATE_RUNTIME_GITIGNORE_PATHS
|
|
1249
1344
|
if not _has_effective_gitignore_path(existing_lines, path)
|
|
1250
1345
|
]
|
|
1346
|
+
if runtime_exclude is not None:
|
|
1347
|
+
outcome = _merge_runtime_exclude(
|
|
1348
|
+
runtime_exclude,
|
|
1349
|
+
existing_lines,
|
|
1350
|
+
project_root,
|
|
1351
|
+
project_original,
|
|
1352
|
+
)
|
|
1353
|
+
# None: a .gitignore negation outranks info/exclude, so the
|
|
1354
|
+
# tracked-file repair below still applies.
|
|
1355
|
+
if outcome is not None:
|
|
1356
|
+
exclude_changed = outcome
|
|
1357
|
+
missing_runtime_paths = []
|
|
1251
1358
|
if missing_runtime_paths:
|
|
1252
1359
|
runtime_lines: list[bytes] = []
|
|
1253
1360
|
marker = _UPDATE_RUNTIME_GITIGNORE_MARKER.encode()
|
|
@@ -1291,7 +1398,7 @@ def _merge_project_gitignore_locked(
|
|
|
1291
1398
|
|
|
1292
1399
|
if not additions:
|
|
1293
1400
|
_validate_gitignore_unchanged(gitignore, original, directory_fd)
|
|
1294
|
-
return 0
|
|
1401
|
+
return 1 if exclude_changed else 0
|
|
1295
1402
|
separator = b"" if not existing or existing.endswith(b"\n") else b"\n"
|
|
1296
1403
|
replacement = existing + separator + b"".join(additions)
|
|
1297
1404
|
_atomic_replace_gitignore(
|
|
@@ -1312,11 +1419,17 @@ def _merge_project_gitignore(
|
|
|
1312
1419
|
include_sofa: bool = False,
|
|
1313
1420
|
include_agent_memory_local: bool = False,
|
|
1314
1421
|
include_settings_local: bool = False,
|
|
1422
|
+
runtime_to_git_exclude: bool = False,
|
|
1315
1423
|
) -> int:
|
|
1316
1424
|
"""Safely, atomically, and serially append MAP-owned ignore blocks."""
|
|
1317
1425
|
project_root = project_path.resolve(strict=True)
|
|
1318
1426
|
if not project_root.is_dir():
|
|
1319
1427
|
raise NotADirectoryError(f"MAP project root is not a directory: {project_root}")
|
|
1428
|
+
runtime_exclude = (
|
|
1429
|
+
_git_info_exclude_path(project_root)
|
|
1430
|
+
if include_runtime and runtime_to_git_exclude
|
|
1431
|
+
else None
|
|
1432
|
+
)
|
|
1320
1433
|
with _project_gitignore_lock(project_root) as (directory_fd, project_original):
|
|
1321
1434
|
return _merge_project_gitignore_locked(
|
|
1322
1435
|
project_root,
|
|
@@ -1326,6 +1439,7 @@ def _merge_project_gitignore(
|
|
|
1326
1439
|
include_sofa=include_sofa,
|
|
1327
1440
|
include_agent_memory_local=include_agent_memory_local,
|
|
1328
1441
|
include_settings_local=include_settings_local,
|
|
1442
|
+
runtime_exclude=runtime_exclude,
|
|
1329
1443
|
)
|
|
1330
1444
|
|
|
1331
1445
|
|
|
@@ -1336,10 +1450,17 @@ def merge_update_runtime_gitignore(
|
|
|
1336
1450
|
agent_memory_local: bool = False,
|
|
1337
1451
|
settings_local: bool = False,
|
|
1338
1452
|
) -> int:
|
|
1339
|
-
"""Atomically establish runtime and requested privacy ignore entries.
|
|
1453
|
+
"""Atomically establish runtime and requested privacy ignore entries.
|
|
1454
|
+
|
|
1455
|
+
The runtime block is local state, so in a git repo rooted at *project_path*
|
|
1456
|
+
it goes to ``<git-common-dir>/info/exclude`` and leaves the tracked
|
|
1457
|
+
``.gitignore`` clean; elsewhere it falls back to ``.gitignore``. Privacy
|
|
1458
|
+
blocks are repo policy and always go to ``.gitignore``.
|
|
1459
|
+
"""
|
|
1340
1460
|
return _merge_project_gitignore(
|
|
1341
1461
|
project_path,
|
|
1342
1462
|
include_runtime=True,
|
|
1463
|
+
runtime_to_git_exclude=True,
|
|
1343
1464
|
include_sofa=sofa,
|
|
1344
1465
|
include_agent_memory_local=agent_memory_local,
|
|
1345
1466
|
include_settings_local=settings_local,
|
|
@@ -136,6 +136,10 @@ state-changing orchestration continues in its original checkout. A standalone
|
|
|
136
136
|
Only a diagnostic satisfying every condition in “Explicitly approved
|
|
137
137
|
baseline gate failures” may be excluded from the scoped verdict; keep
|
|
138
138
|
the full build gate failed and continue the other checks.
|
|
139
|
+
**VERIFICATION EXECUTION GATE (MANDATORY — same weight as BUILD GATE):** an applicable check (the lint/type/test target the repo's CI or Makefile runs for the touched code) that could NOT execute — tool missing, check skipped, a Makefile target that prints "skipped" and exits 0 — is NOT a pass.
|
|
140
|
+
- Set `valid: false` with issue `verification not executed: <tool> (<reason>)`.
|
|
141
|
+
- List the tool in `tools_run` with status `unavailable` or `skipped`; never omit it.
|
|
142
|
+
- Allowed remedies: install the tool or run the repo's tools target, then re-run; or explicit user deferral recorded in the conversation.
|
|
139
143
|
3. Verify Goal is achieved — trace code path to confirm the stated outcome
|
|
140
144
|
4. Verify Action is implemented — check that the specified method/operation exists
|
|
141
145
|
5. **Verify mutation boundary (MANDATORY):** Run
|
|
@@ -329,7 +333,7 @@ All language handlers produce a standardized JSON format:
|
|
|
329
333
|
"findings": [
|
|
330
334
|
{ "tool": "ruff", "file": "src/main.py", "line": 42, "severity": "error", "code": "F821", "message": "Undefined name" }
|
|
331
335
|
],
|
|
332
|
-
"tools_run": ["ruff", "mypy"]
|
|
336
|
+
"tools_run": ["ruff", "mypy", {"tool": "golangci-lint", "status": "unavailable"}]
|
|
333
337
|
}
|
|
334
338
|
```
|
|
335
339
|
|
|
@@ -1741,6 +1745,9 @@ GOOD: "suggestion": "Use path\\to\\file"
|
|
|
1741
1745
|
Before returning JSON, verify:
|
|
1742
1746
|
|
|
1743
1747
|
```
|
|
1748
|
+
□ 0. VERIFICATION EXECUTION GATE: every applicable lint/type/test check actually ran;
|
|
1749
|
+
any that could not run is an issue (`verification not executed: <tool> (<reason>)`) → valid=false
|
|
1750
|
+
|
|
1744
1751
|
□ 1. All required fields present:
|
|
1745
1752
|
valid, summary, issues, passed_checks, failed_checks,
|
|
1746
1753
|
feedback_for_actor, estimated_fix_time, mcp_tools_used
|
|
@@ -342,6 +342,7 @@ Return **ONLY** valid JSON in this exact structure:
|
|
|
342
342
|
- Example: "Use existing RateLimiter middleware, configure for /api/* routes"
|
|
343
343
|
**subtasks[].test_strategy**: Required object with unit/integration/e2e keys plus `scenario_dimensions`. Use "N/A" for levels not applicable.
|
|
344
344
|
- **scenario_dimensions** (required): Object with four keys — `happy_path`, `error`, `edge_case`, `security`. Each describes at least one planned test covering that dimension. Use "N/A" for dimensions not relevant to the subtask. Testing-heavy subtasks must cover at minimum 4 dimensions.
|
|
345
|
+
- **Repo lint/type gate (MANDATORY for code subtasks)**: when the repo has a lint/type target (Makefile `lint`/`check`, CI lint or type-check step), the subtask's verification MUST include the repo's lint/type target for the touched code, not only build/vet. If the tool may be absent locally, name the install/tools target in the verification step.
|
|
345
346
|
- MUST map `validation_criteria` → tests:
|
|
346
347
|
- For each `VCn:` criterion, include at least one planned test name that covers it.
|
|
347
348
|
- Recommended naming: include `vc<n>` in the test name (e.g., `test_vc1_*`, `TestVC1*`) for deterministic grep-ability.
|
{mapify_cli-3.35.2 → mapify_cli-3.37.0}/src/mapify_cli/templates/codex/agents/decomposer.toml
RENAMED
|
@@ -307,6 +307,7 @@ Return **ONLY** valid JSON in this exact structure:
|
|
|
307
307
|
- Example: "Use existing RateLimiter middleware, configure for /api/* routes"
|
|
308
308
|
**subtasks[].test_strategy**: Required object with unit/integration/e2e keys plus `scenario_dimensions`. Use "N/A" for levels not applicable.
|
|
309
309
|
- **scenario_dimensions** (required): Object with four keys — `happy_path`, `error`, `edge_case`, `security`. Each describes at least one planned test covering that dimension. Use "N/A" for dimensions not relevant to the subtask. Testing-heavy subtasks must cover at minimum 4 dimensions.
|
|
310
|
+
- **Repo lint/type gate (MANDATORY for code subtasks)**: when the repo has a lint/type target (Makefile `lint`/`check`, CI lint or type-check step), the subtask's verification MUST include the repo's lint/type target for the touched code, not only build/vet. If the tool may be absent locally, name the install/tools target in the verification step.
|
|
310
311
|
- MUST map `validation_criteria` → tests:
|
|
311
312
|
- For each `VCn:` criterion, include at least one planned test name that covers it.
|
|
312
313
|
- Recommended naming: include `vc<n>` in the test name (e.g., `test_vc1_*`, `TestVC1*`) for deterministic grep-ability.
|
|
@@ -127,6 +127,11 @@ Verification sequence (execute in order):
|
|
|
127
127
|
If build/compile fails -> valid: false immediately with compilation errors.
|
|
128
128
|
Do NOT proceed to other checks.
|
|
129
129
|
|
|
130
|
+
VERIFICATION EXECUTION GATE (MANDATORY -- same weight as BUILD GATE): an applicable check (the lint/type/test target the repo's CI or Makefile runs for the touched code) that could NOT execute -- tool missing, check skipped, a Makefile target that prints "skipped" and exits 0 -- is NOT a pass.
|
|
131
|
+
- Set valid: false with issue `verification not executed: <tool> (<reason>)`.
|
|
132
|
+
- List the tool in tools_run with status `unavailable` or `skipped`; never omit it.
|
|
133
|
+
- Allowed remedies: install the tool or run the repo's tools target, then re-run; or explicit user deferral recorded in the conversation.
|
|
134
|
+
|
|
130
135
|
3. Verify Goal is achieved -- trace code path to confirm the stated outcome
|
|
131
136
|
4. Verify Action is implemented -- check that the specified method/operation exists
|
|
132
137
|
5. Verify mutation boundary (MANDATORY): Run
|
|
@@ -1260,6 +1265,7 @@ Expected output:
|
|
|
1260
1265
|
|
|
1261
1266
|
Before returning your review JSON:
|
|
1262
1267
|
1. Did I run the BUILD GATE (build/compile command)?
|
|
1268
|
+
1a. Did I run the VERIFICATION EXECUTION GATE (every applicable lint/type/test check executed, none unavailable/skipped)?
|
|
1263
1269
|
2. Did I check all 11 validation dimensions systematically?
|
|
1264
1270
|
3. Did I verify documentation against source of truth (if applicable)?
|
|
1265
1271
|
4. Are all issues specific with location and actionable suggestions?
|
|
@@ -110,6 +110,19 @@ def state_string(state: dict, key: str, default: str = "") -> str:
|
|
|
110
110
|
return default
|
|
111
111
|
|
|
112
112
|
|
|
113
|
+
def active_wave_bits(state: dict) -> list[str]:
|
|
114
|
+
"""Return ``wave=i/n`` and ``phases=...`` bits when the wave loop is engaged."""
|
|
115
|
+
waves = state.get("execution_waves")
|
|
116
|
+
phases = state.get("subtask_phases")
|
|
117
|
+
wave_idx = state.get("current_wave_index", 0)
|
|
118
|
+
if not (isinstance(waves, list) and waves and isinstance(phases, dict) and phases):
|
|
119
|
+
return []
|
|
120
|
+
if not isinstance(wave_idx, int) or isinstance(wave_idx, bool):
|
|
121
|
+
return []
|
|
122
|
+
per_subtask = " ".join(f"{sid}:{phase}" for sid, phase in phases.items())
|
|
123
|
+
return [f"wave={wave_idx + 1}/{len(waves)}", f"phases=[{per_subtask}]"]
|
|
124
|
+
|
|
125
|
+
|
|
113
126
|
def load_json(path: Path) -> dict | None:
|
|
114
127
|
try:
|
|
115
128
|
data = json.loads(path.read_text(encoding="utf-8"))
|
|
@@ -209,10 +222,17 @@ def build_reprime(branch: str, branch_dir: Path) -> str | None:
|
|
|
209
222
|
step_id = state_string(state, "current_step_id")
|
|
210
223
|
subtask_id = state_string(state, "current_subtask_id")
|
|
211
224
|
|
|
225
|
+
wave_bits = active_wave_bits(state)
|
|
226
|
+
if wave_bits:
|
|
227
|
+
# Wave loop engaged: current_step_*/current_subtask_id are stale
|
|
228
|
+
# sequential leftovers; subtask_phases is the live progress record.
|
|
229
|
+
phase = step_id = subtask_id = ""
|
|
230
|
+
|
|
212
231
|
lines = ["MAP RE-PRIME after compaction:"]
|
|
213
232
|
state_bits = []
|
|
214
233
|
if workflow:
|
|
215
234
|
state_bits.append(f"workflow={workflow}")
|
|
235
|
+
state_bits.extend(wave_bits)
|
|
216
236
|
if step_id:
|
|
217
237
|
state_bits.append(f"step={step_id}")
|
|
218
238
|
if phase:
|
|
@@ -335,3 +355,4 @@ def main() -> None:
|
|
|
335
355
|
|
|
336
356
|
if __name__ == "__main__":
|
|
337
357
|
main()
|
|
358
|
+
|
|
@@ -501,6 +501,24 @@ def state_string(state: dict, key: str, default: str = "") -> str:
|
|
|
501
501
|
return default
|
|
502
502
|
|
|
503
503
|
|
|
504
|
+
def active_wave_label(state: dict) -> str | None:
|
|
505
|
+
"""Return ``WAVE i/n [ST-x:phase ...]`` when the wave loop is engaged.
|
|
506
|
+
|
|
507
|
+
Waves track progress only in ``subtask_phases``; ``current_step_*`` is a
|
|
508
|
+
stale sequential leftover (advance_wave resets it to 2.2/RESEARCH), so it
|
|
509
|
+
must not drive the banner while the wave loop is active.
|
|
510
|
+
"""
|
|
511
|
+
waves = state.get("execution_waves")
|
|
512
|
+
phases = state.get("subtask_phases")
|
|
513
|
+
wave_idx = state.get("current_wave_index", 0)
|
|
514
|
+
if not (isinstance(waves, list) and waves and isinstance(phases, dict) and phases):
|
|
515
|
+
return None
|
|
516
|
+
if not isinstance(wave_idx, int) or isinstance(wave_idx, bool):
|
|
517
|
+
return None
|
|
518
|
+
per_subtask = " ".join(f"{sid}:{phase}" for sid, phase in phases.items())
|
|
519
|
+
return f"WAVE {wave_idx + 1}/{len(waves)} [{per_subtask}]"
|
|
520
|
+
|
|
521
|
+
|
|
504
522
|
def required_action_for_step(step_id: str, step_phase: str) -> str | None:
|
|
505
523
|
"""Return a short required-next-action hint for common steps."""
|
|
506
524
|
if step_id == "1.55":
|
|
@@ -713,6 +731,15 @@ def format_reminder(
|
|
|
713
731
|
mode = "batch:parallel"
|
|
714
732
|
|
|
715
733
|
required = required_action_for_step(step_id, step_phase)
|
|
734
|
+
step_label = f"{step_id} {step_phase}"
|
|
735
|
+
wave_label = active_wave_label(state)
|
|
736
|
+
if wave_label:
|
|
737
|
+
# Wave loop engaged: current_step_*/current_subtask_id are stale
|
|
738
|
+
# sequential leftovers, so show per-subtask phases instead.
|
|
739
|
+
step_label = wave_label
|
|
740
|
+
wave_hint = ""
|
|
741
|
+
subtask_id = "-"
|
|
742
|
+
required = None
|
|
716
743
|
|
|
717
744
|
diag_hint = ""
|
|
718
745
|
diag_file = (
|
|
@@ -738,7 +765,7 @@ def format_reminder(
|
|
|
738
765
|
if len(current_files) > 5:
|
|
739
766
|
files_hint += f" +{len(current_files) - 5}"
|
|
740
767
|
|
|
741
|
-
if not step_id and not step_phase:
|
|
768
|
+
if not step_id and not step_phase and not wave_label:
|
|
742
769
|
return None
|
|
743
770
|
|
|
744
771
|
# Context-aware: add goal and subtask title
|
|
@@ -772,15 +799,15 @@ def format_reminder(
|
|
|
772
799
|
except OSError:
|
|
773
800
|
pass
|
|
774
801
|
ts_hint = f" @ {now_utc.strftime('%H:%M:%S.%f')[:-3]}Z (state {state_age_str})"
|
|
775
|
-
base = f"[MAP]{ts_hint} {
|
|
802
|
+
base = f"[MAP]{ts_hint} {step_label}{goal_hint} | ST: {subtask_id}{title_hint} ({progress}) | plan:{plan_ok} mode:{mode}{wave_hint}{diag_hint}{files_hint}{hard_hint}{tag_hint}{authority_hint}"
|
|
776
803
|
|
|
777
804
|
# Enforce limit: trim goal first, then constraint detail, then word-boundary truncate.
|
|
778
805
|
if len(base) > REMINDER_LIMIT:
|
|
779
806
|
goal_hint = ""
|
|
780
|
-
base = f"[MAP]{ts_hint} {
|
|
807
|
+
base = f"[MAP]{ts_hint} {step_label} | ST: {subtask_id}{title_hint} ({progress}) | plan:{plan_ok} mode:{mode}{wave_hint}{diag_hint}{files_hint}{hard_hint}{tag_hint}{authority_hint}"
|
|
781
808
|
if len(base) > REMINDER_LIMIT:
|
|
782
809
|
hard_hint = ""
|
|
783
|
-
base = f"[MAP]{ts_hint} {
|
|
810
|
+
base = f"[MAP]{ts_hint} {step_label} | ST: {subtask_id}{title_hint} ({progress}) | plan:{plan_ok} mode:{mode}{wave_hint}{diag_hint}{files_hint}{tag_hint}{authority_hint}"
|
|
784
811
|
if len(base) > REMINDER_LIMIT:
|
|
785
812
|
base = _truncate_at_word(base, REMINDER_LIMIT)
|
|
786
813
|
|
|
@@ -1126,3 +1153,4 @@ def main() -> None:
|
|
|
1126
1153
|
|
|
1127
1154
|
if __name__ == "__main__":
|
|
1128
1155
|
main()
|
|
1156
|
+
|