create-leafmesh 2.6.9__tar.gz → 2.6.11__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.
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/PKG-INFO +1 -1
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/__init__.py +1 -1
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/claude_skills/leafmesh/SKILL.md +17 -4
- create_leafmesh-2.6.11/create_leafmesh/templates/claude_skills/leafmesh/building-agents-thoroughly.md +455 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/claude_skills/leafmesh/examples.md +1 -1
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/claude_skills/leafmesh/nuances-and-gotchas.md +28 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/claude_skills/leafmesh/reference.md +1 -1
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh.egg-info/PKG-INFO +1 -1
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh.egg-info/SOURCES.txt +1 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/pyproject.toml +1 -1
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/MANIFEST.in +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/cli.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/create.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/deploy.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/deploy_providers/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/deploy_providers/_shared.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/deploy_providers/aws.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/deploy_providers/azure.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/deploy_providers/gcp.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/discover.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/search.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/_REFERENCE_ONLY.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/agency/advisor_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/agency/external_agents.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/agency/fallback_researcher_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/agency/greeter_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/agency/processor_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/agency/researcher_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/agency/risk_scorer_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/agency/scheduler_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/agency/tools.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/hitl_stub_receiver.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/skills/data-handling/SKILL.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/skills/data-handling/examples.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/skills/tone-rules.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_inspire/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/_registry.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/agency/_shared/session_stash.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/agency/code_reviewer_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/agency/dev_planner_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/agency/developer_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/agency/merge_coordinator_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/agency/product_owner_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/agency/qa_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/agency/tools/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/agency/tools/tools.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/ai-dev-squad/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/_prompts.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/agency/_shared/session_stash.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/agency/bid_no_bid_decisioner_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/agency/competitive_intel_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/agency/contracts_review_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/agency/precedent_research_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/agency/pricing_configurator_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/agency/proposal_assembler_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/agency/rfp_intake_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/examples/01_new_rfp_received.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/examples/02_win_post_mortem.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/examples/03_loss_with_competitor.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/examples/04_quarterly_win_rate.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/examples/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/examples/run_examples.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/requirements-dev.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/tests/test_floors.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bd-proposals/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/_prompts.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/agency/allocation_booker_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/agency/esat_survey_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/agency/staffing_coordinator_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/agency/talent_development_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/agency/workforce_analytics_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/examples/01_new_project_kickoff.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/examples/02_weekly_bench_review.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/examples/03_promotion_readiness.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/examples/04_person_rolling_off.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/examples/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/examples/run_examples.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/requirements-dev.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/tests/test_agent_logic.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/bench-management/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/claude_skills/leafmesh/agency-development.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/claude_skills/leafmesh/agent-config-fields.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/_prompts.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/agency/_shared/extract.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/agency/_shared/health_math.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/agency/_shared/session_stash.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/agency/account_intel_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/agency/health_score_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/agency/play_runner_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/agency/renewals_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/agency/risk_detector_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/agency/save_play_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/examples/01_telemetry_dau_drop.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/examples/02_billing_failed_payment.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/examples/03_renewal_window_60d.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/examples/04_executive_change.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/examples/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/examples/run_examples.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/requirements-dev.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/tests/test_agent_logic.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-success/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/_prompts.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/agency/reply_dispatcher_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/examples/01_password_reset_routine.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/examples/02_billing_dispute_escalation.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/examples/03_security_incident.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/examples/04_kb_gap_signal.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/examples/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/examples/run_examples.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/requirements-dev.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/tests/test_agent_logic.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/customer-support/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/_prompts.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/_shared/compliance_screen.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/_shared/dedupe.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/_shared/erp_poster.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/_shared/matching_math.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/_shared/session_stash.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/erp_poster_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/gl_coding_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/invoice_intake_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/loan_origination_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/loan_servicing_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/matching_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/payment_risk_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/regulatory_monitor_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/agency/vendor_compliance_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/examples/01_happy_path_subscription.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/examples/02_fraud_signal_round_number.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/examples/03_po_mismatch_exception.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/examples/04_high_value_cfo_signoff.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/examples/05_vendor_inquiry.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/examples/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/examples/run_examples.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/requirements-dev.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/tests/test_agent_logic.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/tests/test_floors.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/finance-ops/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/_prompts.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/agency/_shared/session_stash.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/agency/commitments_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/agency/cost_anomaly_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/agency/cost_tuner_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/agency/finops_governance_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/agency/iac_drift_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/agency/regulatory_monitor_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/examples/01_ec2_idle_anomaly.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/examples/02_savings_plan_under_utilised.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/examples/03_ri_expiry_30d.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/examples/04_iac_drift_detected.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/examples/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/examples/run_examples.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/requirements-dev.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/tests/test_agent_logic.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/infra-cost-ops/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/_prompts.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/agency/_shared/session_stash.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/agency/brand_guardian_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/agency/campaign_strategist_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/agency/compliance_reviewer_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/agency/copywriter_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/agency/market_intelligence_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/agency/marketing_audit_logger_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/agency/publisher_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/examples/01_new_campaign_brief.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/examples/02_product_launch_kickoff.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/examples/03_brand_crisis.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/examples/04_competitor_pricing_move.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/examples/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/examples/run_examples.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/requirements-dev.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/tests/test_agent_logic.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/marketing-ops/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/_shared/session_stash.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/campaign_launcher_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/campaign_strategist_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/gtm_strategist_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/inbox_monitor_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/meeting_scheduler_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/offer_architect_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/outreach_writer_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/prospector_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/records_keeper_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/reply_triager_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/tools/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/agency/tools/tools.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/outbound-sdr/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/_prompts.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/agency/_shared/session_stash.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/agency/equipment_lifecycle_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/agency/failure_predictor_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/agency/safety_incident_reporter_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/agency/spare_parts_forecaster_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/agency/work_order_scheduler_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/examples/01_routine_sensor_reading.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/examples/02_anomaly_failure_predicted.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/examples/03_safety_critical_shutdown.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/examples/04_weekly_parts_forecast.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/examples/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/examples/run_examples.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/requirements-dev.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/tests/test_agent_logic.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/predictive-maintenance/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/TESTING_GUIDE.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/WORKFLOW_GUIDE.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/agency/_shared/session_stash.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/agency/data_loader.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/agency/grn_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/agency/inventory_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/agency/logistics_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/agency/order_intake_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/agency/purchase_order_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/agency/supplier_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/agency/supply_report_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/agency/tariff_classifier_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/agency/tools.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/agency/trade_compliance_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/configs/inventory.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/configs/open_pos.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/configs/suppliers.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/tests/test_chain_floors.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/procurement-ops/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/_prompts.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/agency/_shared/session_stash.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/agency/constraint_flagger_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/agency/demand_sensor_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/agency/release_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/agency/scheduler_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/agency/supplier_signal_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/examples/01_demand_signal_normal.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/examples/02_supplier_delay.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/examples/03_emergency_constraint_alert.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/examples/04_supplier_capacity_change.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/examples/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/examples/run_examples.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/requirements-dev.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/tests/test_agent_logic.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/production-planning/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/_prompts.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/agency/_shared/batch_release.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/agency/_shared/defect_scoring.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/agency/_shared/session_stash.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/agency/_shared/spc_math.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/agency/inspection_intake_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/agency/quality_engineer_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/agency/recall_traceability_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/agency/regulatory_compliance_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/agency/spc_monitor_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/examples/01_routine_inspection.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/examples/02_defect_cluster.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/examples/03_field_complaint_recall.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/examples/04_regulatory_audit_pull.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/examples/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/examples/run_examples.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/requirements-dev.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/tests/test_agent_logic.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quality-yield/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/_prompts.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/agency/_shared/session_stash.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/agency/cost_calculator_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/agency/deal_compliance_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/agency/discount_policy_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/agency/quote_drafter_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/agency/quote_issuer_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/agency/rfq_ingester_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/examples/01_rfq_standard.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/examples/02_steep_discount_finance.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/examples/03_competitor_price_change.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/examples/04_renewal_uplift_bundle.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/examples/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/examples/run_examples.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/requirements-dev.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/tests/test_agent_logic.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/tests/test_floors.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/quote-to-cash/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/_prompts.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/agency/_shared/session_stash.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/agency/bias_audit_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/agency/correspondence_drafter_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/agency/hiring_assistant_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/agency/interview_coordinator_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/agency/req_intake_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/agency/resume_screener_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/examples/01_new_req_filed.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/examples/02_candidate_rejection_letter.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/examples/03_offer_drafting.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/examples/04_ghosted_candidate_close.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/examples/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/examples/run_examples.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/requirements-dev.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/tests/test_agent_logic.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/recruiting-ops/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/_prompts.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/agency/_shared/session_stash.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/agency/_shared/util.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/agency/lead_intake_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/agency/lead_qualification_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/agency/lead_revival_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/agency/sales_research_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/examples/01_inbound_demo_request.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/examples/02_cold_lead_revival.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/examples/03_competitor_steal_signal.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/examples/04_event_followup_burst.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/examples/05_enriched_inbound_lead.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/examples/06_deal_nurture_sweep.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/examples/07_abm_account_activation.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/examples/08_competitive_intel_pull.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/examples/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/examples/run_examples.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/requirements-dev.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/tests/test_agent_logic.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/sales-orchestration/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/_prompts.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/agency/_shared/session_stash.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/agency/brief_intake_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/agency/citation_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/agency/consultant_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/agency/context_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/agency/deliverable_assembler_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/agency/engagement_controller_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/agency/engagement_status_drafter_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/agency/performance_review_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/agency/qa_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/agency/research_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/examples/01_new_engagement_memo.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/examples/02_friday_status_pack.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/examples/03_high_stakes_deliverable.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/examples/04_monthly_steering_pack.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/examples/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/examples/run_examples.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/requirements-dev.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/tests/test_agent_logic.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/services-delivery/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/_prompts.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/starter/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/Dockerfile +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/PRD.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/_prompts.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/_shared/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/_shared/allocation_math.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/_shared/audit_logger.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/_shared/carrier_math.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/_shared/session_stash.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/_shared/shrink_math.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/_shared/store.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/allocation_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/carrier_selector_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/exception_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/humanoid_status_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/inspection_humanoid.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/inventory_control_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/loader_humanoid.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/packer_humanoid.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/picker_humanoid.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/agency/supplier_relations_agent.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/configs/config.yaml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/docker-compose.yml +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/dockerignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/env +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/examples/01_routine_order.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/examples/02_short_pick_exception.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/examples/03_returns_inspection.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/examples/04_carrier_outage_failover.json +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/examples/README.md +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/examples/run_examples.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/gitignore +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/main.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/pytest.ini +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/requirements-dev.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/requirements.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/tests/__init__.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/tests/conftest.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/tests/test_agent_logic.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/tests/test_config_shape.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/templates/warehouse-supply-chain/validate_config.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh.egg-info/dependency_links.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh.egg-info/entry_points.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh.egg-info/requires.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh.egg-info/top_level.txt +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/setup.cfg +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/tests/test_discover.py +0 -0
- {create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/tests/test_search.py +0 -0
|
@@ -19,9 +19,21 @@ You are an expert at building multi-agent orchestration systems with the LeafMes
|
|
|
19
19
|
> 3. `yields: foo: "array"` makes the model return **strings** — declare
|
|
20
20
|
> `items:` to get objects.
|
|
21
21
|
|
|
22
|
+
> **The direction (READ before building):**
|
|
23
|
+
> **[building-agents-thoroughly.md](building-agents-thoroughly.md)** — how to build
|
|
24
|
+
> an agent and a mesh *thoroughly*, where every rule has a silent failure behind
|
|
25
|
+
> it: the four stages (identity-only `@pre_compose`, fail-closed `@chain`), the
|
|
26
|
+
> three instruction layers (prompt / flow / Skills — and the pairing rule that a
|
|
27
|
+
> duplicated playbook line *kills* the Skill), truth protocols (never collapse
|
|
28
|
+
> nothing / could-not-tell / declined; a stub must announce itself), where data
|
|
29
|
+
> lives, the "registered ≠ offered" verification layers, the finisher pattern, and
|
|
30
|
+
> **client intake + provisioning** — including "I have no backend → Supabase". Ends
|
|
31
|
+
> with the *before-you-call-an-agent-finished* checklist.
|
|
32
|
+
|
|
22
33
|
## Table of contents
|
|
23
34
|
|
|
24
35
|
- [**Nuances & Gotchas (READ FIRST)**](nuances-and-gotchas.md)
|
|
36
|
+
- [**Building agents & meshes thoroughly (the direction)**](building-agents-thoroughly.md)
|
|
25
37
|
|
|
26
38
|
- [When the user asks you to… do this](#when-the-user-asks-you-to-do-this) — quick action table
|
|
27
39
|
- [Rule 1 — A mesh is a TEAM, not a pipeline](#rule-1--a-mesh-is-a-team-not-a-pipeline)
|
|
@@ -749,7 +761,7 @@ agents:
|
|
|
749
761
|
|
|
750
762
|
can_call:
|
|
751
763
|
- agent: "greeter_agent"
|
|
752
|
-
condition: "not calling_agent_response.from_agent"
|
|
764
|
+
condition: "not calling_agent_response.from_agent" # works ONLY because human agents ALWAYS emit from_agent (maybe ""). Never `not` a field that can be absent — see gotcha #14
|
|
753
765
|
- agent: "processor_agent"
|
|
754
766
|
condition: "calling_agent_response.from_agent == 'greeter_agent'"
|
|
755
767
|
|
|
@@ -781,7 +793,7 @@ agents:
|
|
|
781
793
|
# NO webhook_config, NO channels — they're ignored on this interface
|
|
782
794
|
can_call:
|
|
783
795
|
- agent: "greeter_agent"
|
|
784
|
-
condition: "not calling_agent_response.from_agent"
|
|
796
|
+
condition: "not calling_agent_response.from_agent" # works ONLY because human agents ALWAYS emit from_agent (maybe ""). Never `not` a field that can be absent — see gotcha #14
|
|
785
797
|
- agent: "processor_agent"
|
|
786
798
|
condition: "calling_agent_response.from_agent == 'greeter_agent'"
|
|
787
799
|
yields: {request_data: "object"}
|
|
@@ -800,7 +812,7 @@ agents:
|
|
|
800
812
|
# NO webhook_config, NO channels
|
|
801
813
|
can_call:
|
|
802
814
|
- agent: "greeter_agent"
|
|
803
|
-
condition: "not calling_agent_response.from_agent"
|
|
815
|
+
condition: "not calling_agent_response.from_agent" # works ONLY because human agents ALWAYS emit from_agent (maybe ""). Never `not` a field that can be absent — see gotcha #14
|
|
804
816
|
yields: {request_data: "object"}
|
|
805
817
|
inputs: {user_message: "string"}
|
|
806
818
|
```
|
|
@@ -1071,7 +1083,7 @@ can_call:
|
|
|
1071
1083
|
- agent: "escalation"
|
|
1072
1084
|
condition: "calling_agent_response.priority == 'high'"
|
|
1073
1085
|
- agent: "greeter"
|
|
1074
|
-
condition: "not calling_agent_response.from_agent" # Falsy check
|
|
1086
|
+
condition: "not calling_agent_response.from_agent" # works ONLY because human agents ALWAYS emit from_agent (maybe ""). Never `not` a field that can be absent — see gotcha #14 # Falsy check
|
|
1075
1087
|
- agent: "processor"
|
|
1076
1088
|
condition: "calling_agent_response.from_agent == 'greeter_agent'"
|
|
1077
1089
|
- agent: "default"
|
|
@@ -1443,6 +1455,7 @@ async def my_agent(llm_response, input_data, context):
|
|
|
1443
1455
|
|
|
1444
1456
|
## Additional Resources
|
|
1445
1457
|
|
|
1458
|
+
- **[building-agents-thoroughly.md](building-agents-thoroughly.md)** — **The direction — how Claude should build an agent and a mesh thoroughly.** Read alongside `agency-development.md`. Part A: the agent, built thoroughly (four stages, three instruction layers + the pairing rule, tools/identity-from-code, truth protocols, where data lives, the registered/permitted/offered/called verification layers, boundary-shipping, and the finished-agent checklist). Part B: the mesh, from the expense-reimbursement pod (coordinator + specialists + finisher, one-human-one-agent-one-system, default-deny, WORM, the finisher pattern). Part C: **client intake + provisioning** — inventory → membership bar → cast → connectors → **"no backend → provision Supabase"** (identity/domain/ledger/storage mapping) → controls + verification.
|
|
1446
1459
|
- **[agency-development.md](agency-development.md)** — **The method for building a whole agency (template) end-to-end.** Read this FIRST when starting or elevating a template: the seven first principles, the nine-phase process (story → cast roles → draw flow → YAML-vs-Python → decorators → connectors → controls → verify → document), the agent-type & decorator decision tables, the mesh boundary for external parties, the verification doctrine (config-load ≠ runtime proof), the adversarial self-check, and the anti-patterns. SKILL.md tells you which field does what; this tells you how to think and in what order.
|
|
1447
1460
|
- **[agent-config-fields.md](agent-config-fields.md)** — **Authoritative field reference for every YAML field**. Lists every option for every agent type (`llm`, `human`, `external`, `programmatic`), plus `WebhookConfig`, `ChannelConfig`, `Memory`, `EscalationConfig`, `EscalationTarget`, `LeafMeshConfig`, `ManagerConfig`, `MeshConfig` (Bedrock / Vertex / Foundry / Local), `RedisConfig`, `EvolutionConfig`, `DataStructure`, `Entry Points`, all per-framework `connector_config` schemas, and the **Field Applicability by Agent Type** matrix. Read this file when in doubt about any field, accepted values, default, or what's allowed where.
|
|
1448
1461
|
- **[reference.md](reference.md)** — SDK Python API (`sdk.start()`, `sdk.mesh_call()`, `@global_tool`, decorators, error classes, env vars, etc.).
|
|
@@ -0,0 +1,455 @@
|
|
|
1
|
+
# Building agents & meshes thoroughly — the direction
|
|
2
|
+
|
|
3
|
+
> This is the direction, not the API reference. **Every rule here has a failure
|
|
4
|
+
> behind it, and most of those failures were silent.** Silence is the theme: an
|
|
5
|
+
> agent that is wrong *loudly* gets fixed in an hour; an agent that is wrong
|
|
6
|
+
> *quietly* ships to a person who believes it. Read this before you add an agent,
|
|
7
|
+
> a tool, or a store — and again before you call one finished.
|
|
8
|
+
>
|
|
9
|
+
> Affirmed from field experience ("Designing an agent with us") and from building
|
|
10
|
+
> the LeafMesh pods (expense-reimbursement, BA-practice). Where the source used
|
|
11
|
+
> generic words, this file maps them to the exact LeafMesh construct:
|
|
12
|
+
> **playbook = [Skills](SKILL.md#skills-system)**, **the four stages = the
|
|
13
|
+
> [decorators](SKILL.md#decorators--making-an-agent-self-reliant)**,
|
|
14
|
+
> **flow = the prompt's sequence-with-reasons + `context_parts.flows`**,
|
|
15
|
+
> **stores = `session_stash` / Redis / the domain store / the customer's system of record.**
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## PART A — The agent, built thoroughly
|
|
20
|
+
|
|
21
|
+
### A1. An agent is a role you would hire
|
|
22
|
+
|
|
23
|
+
**One job per agent.** Model agents as people you would put on a team. **If you
|
|
24
|
+
cannot say what an agent does in one sentence with no "and", it is two jobs** —
|
|
25
|
+
split it. (This is [Rule 2](SKILL.md#rule-2--one-role-multiple-responsibilities-the-hiring-test),
|
|
26
|
+
made sharper: the "and" test is the tripwire.)
|
|
27
|
+
|
|
28
|
+
What follows from it:
|
|
29
|
+
|
|
30
|
+
- **Wires are the policy.** Routing lives in `can_call` conditions in YAML, where
|
|
31
|
+
anyone can read who reaches whom. **If you find yourself writing
|
|
32
|
+
`if template == "...": call_other_agent()` in Python, the wire belongs in the
|
|
33
|
+
config.** Routing hidden in a function is a policy nobody can review.
|
|
34
|
+
- **The config is the department.** Topology, routing, prompts, contracts — all
|
|
35
|
+
declared in `configs/config.yaml`. **Python is only for:** actuators with side
|
|
36
|
+
effects, domain math that must not be hallucinated, and controls like the audit
|
|
37
|
+
sink. Nothing else.
|
|
38
|
+
- **Don't split one job across two agents.** Auditing is *not* a role — "write
|
|
39
|
+
down what happened" is a *step inside* other roles. In LeafMesh it is a function
|
|
40
|
+
call (`sdk.intelligence(name)(fn)` → the WORM sink) invoked from every agent
|
|
41
|
+
that does something, **not** a standalone agent per writer. Conversely, never
|
|
42
|
+
merge a control (approval gate, reviewer, actuator, audit) into a role — see
|
|
43
|
+
[Rule 2's "never merged" list](SKILL.md#rule-2--one-role-multiple-responsibilities-the-hiring-test).
|
|
44
|
+
|
|
45
|
+
### A2. The four stages — and what belongs in each
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
@pre_compose → inference (the model + its tools) → @chain → @compose
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
| Stage | Whose job | What it is for — and ONLY this |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| `@pre_compose` | **code** | Establish **identity** (whose turn is this). Select a **flow**. Nothing else. |
|
|
54
|
+
| inference | **the model** | **Decide. Pull. Act. Report.** |
|
|
55
|
+
| `@chain` | **code** | **Verify** what came back. **Fail closed.** Audit. |
|
|
56
|
+
| `@compose` | **code** | Shape the handoff to the next agent (per-downstream payloads). |
|
|
57
|
+
|
|
58
|
+
**The rule underneath it: code prepares and verifies; the model decides and acts.**
|
|
59
|
+
Every time a decision is moved into `@pre_compose` "to make it reliable", it gets
|
|
60
|
+
worse — because the code has to guess, and it guesses from a keyword match on a
|
|
61
|
+
sentence. Two consequences that cost real days:
|
|
62
|
+
|
|
63
|
+
- **Don't pull facts in `@pre_compose` that the turn may not want.** Pulling the
|
|
64
|
+
user on every turn *decides* the turn is about that person before the model has
|
|
65
|
+
read the request. A fact the model *may* need is a **tool call** (model-chosen,
|
|
66
|
+
in the inference). A fact it **always** needs is `@pre_compose`. Confusing the
|
|
67
|
+
two is the most common modelling error (see the skill's decorator note).
|
|
68
|
+
- **A raising `@pre_compose` does not stop the turn.** The SDK logs the error and
|
|
69
|
+
**runs the agent anyway — with no flow, no prepared context.** The agent then
|
|
70
|
+
works *badly*, without the instructions it was built around, and nothing
|
|
71
|
+
surfaces. **If a stage can fail, it must fail into a defined state, not into
|
|
72
|
+
absence.** Wrap `@pre_compose` bodies so a failure yields a known-empty,
|
|
73
|
+
known-flagged context — never an exception that the runtime swallows.
|
|
74
|
+
- **`@chain` is where you fail closed.** Anything the model could invent that
|
|
75
|
+
reaches a person's money, health, calendar, or an outbound send gets **checked
|
|
76
|
+
in `@chain` after the model has spoken and before anyone sees it** — a
|
|
77
|
+
`numeric_guard` that rejects a fabricated id or amount, a floor that rejects an
|
|
78
|
+
unapproved artifact. Not trusted because the prompt said not to. This is the
|
|
79
|
+
[finisher floor](#b4-the-finisher-pattern) in Part B.
|
|
80
|
+
|
|
81
|
+
### A3. Three layers of instruction — and why they MUST stay separate
|
|
82
|
+
|
|
83
|
+
This is the part people get wrong, and it is why a well-written playbook can sit
|
|
84
|
+
unread for weeks.
|
|
85
|
+
|
|
86
|
+
| Layer | Contains | Cost | Answers | LeafMesh home |
|
|
87
|
+
|---|---|---|---|---|
|
|
88
|
+
| **prompt** | persona, output contract | **every turn** | Who am I, and what shape is my answer? | agent `prompt:` + `yields:` |
|
|
89
|
+
| **flow** | what to call, when, and **why** | **every turn** | What is the sequence? | prompt's ordered steps + `context_parts.flows:` |
|
|
90
|
+
| **playbook** | how each job is actually done | **on demand, per job** | How do I do THIS job well? | **Skills** (`skills:` — loaded via `load_skill_reference`) |
|
|
91
|
+
|
|
92
|
+
- **Prompt is identity, not instruction.** Keep it small — who the agent is and
|
|
93
|
+
the exact JSON (`yields`) it must return. **No how-to.**
|
|
94
|
+
- **Flow is sequence *with reasons*.** Not a catalogue — the *reason* each call
|
|
95
|
+
comes where it does. "A model that knows *why* `get_user` comes first will not
|
|
96
|
+
skip it under pressure." Example: *"`get_user` FIRST, before any other tool — it
|
|
97
|
+
decides WHAT you go and fetch, so fetching before you pull it means fetching for
|
|
98
|
+
a stranger."*
|
|
99
|
+
- **Playbook (Skills) is the craft.** One skill per job, fetched when the model
|
|
100
|
+
recognises the job. This is where domain knowledge lives: which reads precede
|
|
101
|
+
which writes, what a specific failure means, what to say instead of guessing.
|
|
102
|
+
|
|
103
|
+
**The pairing rule (this is why the split is not stylistic):** if the prompt
|
|
104
|
+
carries the job description, the model has **no reason** to call the playbook.
|
|
105
|
+
They compete, and whatever is resident wins (it is already there; the tool call
|
|
106
|
+
is not free). **Duplicating a playbook line into the prompt does not reinforce it
|
|
107
|
+
— it kills the playbook.** In LeafMesh terms: do not restate a Skill's body in the
|
|
108
|
+
agent `prompt`.
|
|
109
|
+
|
|
110
|
+
**The exception that costs the most:** anything needed on **every** turn stays
|
|
111
|
+
**resident** (in the prompt), never behind a Skill. Moving the closed action
|
|
112
|
+
vocabulary (`send_sms`, `set_alarm`, …) behind a Skill made a planner *invent*
|
|
113
|
+
action names — rejected before dispatch, and **the person got nothing, with no
|
|
114
|
+
error anywhere.** The test: **if forgetting it breaks the turn, it is prompt, not
|
|
115
|
+
a playbook section.**
|
|
116
|
+
|
|
117
|
+
*What it looks like when it works* — same request, before and after the playbook
|
|
118
|
+
became reachable:
|
|
119
|
+
```
|
|
120
|
+
before: fetch_latest_news(topic="top") → get_user → send_card # generic feed, wrong
|
|
121
|
+
after: playbook("news") → get_user → fetch_latest_news ×4 → send_card # 4 topics from the user's setup
|
|
122
|
+
```
|
|
123
|
+
The card looked correct either way — **which is the whole problem. Nothing in the
|
|
124
|
+
result told the user which briefing they got.**
|
|
125
|
+
|
|
126
|
+
### A4. Tools — the model acts; code does not act afterwards
|
|
127
|
+
|
|
128
|
+
- **Dispatch happens *inside* the turn, through tool calls.** Do **not** have the
|
|
129
|
+
model return `action / target / parameters` and let code dispatch after it
|
|
130
|
+
stops. An agent with more than one thing to do cannot know whether its work is
|
|
131
|
+
finished if the doing happens after it ends — it finishes *believing* everything
|
|
132
|
+
is handled, having sent nothing.
|
|
133
|
+
- **Identity comes from code, never the model.** The turn's user is set in
|
|
134
|
+
`@pre_compose` and read by the tools themselves. Never ask the model who it is
|
|
135
|
+
serving — asked once, it passed `user_id="2115"`, a number it lifted out of the
|
|
136
|
+
request text. The turn's user always wins:
|
|
137
|
+
```python
|
|
138
|
+
def _who(user_id: str = "") -> str:
|
|
139
|
+
turn = _CURRENT_USER.get("user_id", "")
|
|
140
|
+
return turn if turn else str(user_id or "").strip() # turn wins; arg is only a fallback
|
|
141
|
+
```
|
|
142
|
+
This is not distrust of the model; a misrouted card is unrecoverable and the
|
|
143
|
+
model has no way to know it guessed.
|
|
144
|
+
- **A stub must announce itself.** A connector/dev-store fallback that returns
|
|
145
|
+
`{"status": "placed", "eta_minutes": 35}` for an order that never happened is a
|
|
146
|
+
**synthetic success indistinguishable from a real one** — to everything
|
|
147
|
+
downstream, the user included. **If there is no real path, return
|
|
148
|
+
`available: false` and say why.** (This is exactly why the shipped finishers set
|
|
149
|
+
`sent=False` / `artifact_produced=False` on a dev-store fallback and never fake
|
|
150
|
+
an ack — see [B4](#b4-the-finisher-pattern).)
|
|
151
|
+
- **Fake data is tidiness until it can reach a real person.** A contact stub full
|
|
152
|
+
of plausible mobile numbers feeding a real `send_sms` is a live incident waiting
|
|
153
|
+
to happen. Seed data is fine *only* when it cannot actuate.
|
|
154
|
+
|
|
155
|
+
### A5. Truth protocols — never say something about a person's life that isn't so
|
|
156
|
+
|
|
157
|
+
These guard one specific failure: the system asserting something about a person in
|
|
158
|
+
a way that person **cannot detect**.
|
|
159
|
+
|
|
160
|
+
- **Never collapse three outcomes into one.** Every read has three distinct
|
|
161
|
+
answers and they must stay distinct:
|
|
162
|
+
|
|
163
|
+
| Outcome | Means |
|
|
164
|
+
|---|---|
|
|
165
|
+
| `count: 0` | We looked. There is nothing. (A free day. No transactions.) |
|
|
166
|
+
| `unreachable` | The source never answered. **We do not know.** |
|
|
167
|
+
| `skipped` | We declined to look (asleep, opportunistic read). |
|
|
168
|
+
|
|
169
|
+
A flat battery reading as "no transactions" is a *fabrication about someone's
|
|
170
|
+
money*. A skipped calendar read that renders "11 AM Sales review" invents
|
|
171
|
+
meetings they will plan around. In LeafMesh: an unwired connector returns
|
|
172
|
+
`unreachable`/`available:false`, **never** an empty-but-confident `count:0`.
|
|
173
|
+
- **Real source or no card.** Build the artifact `None` when no real provider is
|
|
174
|
+
connected. A `demo: true` badge does not fix a fabricated figure — it protects
|
|
175
|
+
*you*, not the person reading it.
|
|
176
|
+
- **Provenance is not existence.** Provenance proves where a number *came from*,
|
|
177
|
+
not that the world *contains* it. A grounding gate will happily pass a test
|
|
178
|
+
notification injected during development. **Ask both questions.**
|
|
179
|
+
- **Never claim what you did not confirm.** An action is "done" when the device
|
|
180
|
+
**acked** it — not when it was dispatched. "Sent" and "queued" are different
|
|
181
|
+
facts about the world. An agent told `queued` must not tell the user it happened.
|
|
182
|
+
- **Window boundaries are a correctness surface.** A calendar window starting at
|
|
183
|
+
"now" returned zero for a fully booked day. Off-by-one on a boundary is a
|
|
184
|
+
truth bug, not a cosmetic one.
|
|
185
|
+
|
|
186
|
+
### A6. Where data lives — find the fact's home before you add a store
|
|
187
|
+
|
|
188
|
+
| Kind of fact | Home | Why |
|
|
189
|
+
|---|---|---|
|
|
190
|
+
| Who someone is, their devices, their **traits** | identity store | Small, stable, one current value per `(domain, key)`, meaningful to any agent |
|
|
191
|
+
| Domain **working state** — observations, rules, schedules | the domain store | Append-heavy, shaped by one agent's needs, unreadable without its logic |
|
|
192
|
+
| A **ledger** | the domain store | Has invariants only the domain can enforce |
|
|
193
|
+
|
|
194
|
+
**The test:** *could another agent, in another domain, act correctly on this
|
|
195
|
+
without understanding your domain?* "Banks with HDFC" → yes, that's a **trait**.
|
|
196
|
+
"Observation #4412, systolic 128, pending rule 9" → no, that's **domain state**.
|
|
197
|
+
|
|
198
|
+
- **A store that cannot enforce its own invariants will hold corrupt data
|
|
199
|
+
politely** — that is why a ledger never moves to an identity store, however
|
|
200
|
+
user-shaped it looks.
|
|
201
|
+
- **Don't build a queue/cache for a fact that is already safe.** A retry queue for
|
|
202
|
+
writes to a cache — while the fact was already durable upstream — protected the
|
|
203
|
+
copy that didn't matter, leaked collections, and hit a cluster cap that took the
|
|
204
|
+
test suite down.
|
|
205
|
+
- **Nothing writes to local files as a system of record.** The shipped `./data`
|
|
206
|
+
dev store is a **dev stand-in only** (see [B/C](#part-c--from-heres-what-i-have-to-a-running-mesh-intake--provisioning)).
|
|
207
|
+
A `reminders.jsonl` that accumulated 96 test rows was read by a wake as the
|
|
208
|
+
user's real commitments. Real store or device — never a file in the repo.
|
|
209
|
+
- **One vocabulary.** If two services name the same concept differently, they
|
|
210
|
+
agree in review and disagree in production (`SignalDomain=[…, today]` vs
|
|
211
|
+
`MemoryDomain=[…, admin]` matched *nobody*, silently). **Fold synonyms at the
|
|
212
|
+
boundary, normalise unknowns to empty, and never let a typo become a new
|
|
213
|
+
category nobody sweeps for.**
|
|
214
|
+
|
|
215
|
+
### A7. Verification — know which layer you are standing on
|
|
216
|
+
|
|
217
|
+
Four different facts, each a different layer. Confusing them cost the most:
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
registered the boot log says the tool loaded ← true, and useless
|
|
221
|
+
permitted the registry says this agent may call it
|
|
222
|
+
offered the schemas in the request the provider gets ← THIS one decides
|
|
223
|
+
called what the model actually did
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
A playbook can be *registered* and never *offered* (e.g. every agent registering
|
|
227
|
+
under one shared name, overwriting the last — only the last-booted agent could
|
|
228
|
+
call it). Three probes "confirmed" three wrong answers, each correct about the
|
|
229
|
+
layer it looked at, each one layer below the bug.
|
|
230
|
+
|
|
231
|
+
- **Registration is not exposure. Permission is not exposure. Availability is not
|
|
232
|
+
use.**
|
|
233
|
+
- **Probe the path that decides the user's experience.** For "what can the model
|
|
234
|
+
see", drive the real executor with a mock provider and read the tools out of the
|
|
235
|
+
request it *receives*.
|
|
236
|
+
- **Build the control, not just the measurement.** When something is missing, rerun
|
|
237
|
+
the same probe with one variable changed — that turns "it doesn't work" into a
|
|
238
|
+
two-line reproducer.
|
|
239
|
+
- **A green test on a simplified setup proves the simplified setup.** A fix that
|
|
240
|
+
passed end-to-end with one agent needed *two*. **Reproduce at the real
|
|
241
|
+
cardinality.** (In LeafMesh: `validate_config.py` proves structure, not runtime;
|
|
242
|
+
a day-0 dev-store run proves the chain, not the connectors. State which layer you
|
|
243
|
+
verified — see the [verification doctrine](agency-development.md).)
|
|
244
|
+
|
|
245
|
+
### A8. Shipping across a boundary you do not control
|
|
246
|
+
|
|
247
|
+
Most of what you build lands next to something a different team ships.
|
|
248
|
+
|
|
249
|
+
- **Omitted must mean the call is unchanged** — not the *value*, the *call*.
|
|
250
|
+
Adding an always-present parameter (even `""`) changes every signature it
|
|
251
|
+
touches and every service that validates strictly. **Send a field only when it
|
|
252
|
+
is set.** (LeafMesh: this is why connector configs use `${VAR:}` empty-defaults
|
|
253
|
+
and stay inert until set.)
|
|
254
|
+
- **Inert by default when the other side hasn't shipped.** A filter that scopes a
|
|
255
|
+
batch to "people a domain is live for" is correct, indexed, tested — and until
|
|
256
|
+
the other side reports activity it claims **zero users on every sweep**, so all
|
|
257
|
+
scheduled work stops **with no error anywhere.** Wire it through, pass it from
|
|
258
|
+
nowhere, and pin the reason in a test that names itself when a sweep mysteriously
|
|
259
|
+
stops finding work. **Beware anyone (including yourself) calling a change "inert"
|
|
260
|
+
and "returns zero" in the same breath — only one of those decides whether work
|
|
261
|
+
happens.**
|
|
262
|
+
- **A lease is a slot.** When a batch claims work, every row it will discard on
|
|
263
|
+
sight pushes out someone who genuinely needed help. "Nothing to do for this
|
|
264
|
+
user" is too ordinary an outcome for anyone to notice it happened.
|
|
265
|
+
- **Instrument both ends before blaming either.** Two independent implementations
|
|
266
|
+
of the same dropped field, each certain it was the other.
|
|
267
|
+
- **Don't wake a device just to read.** Background reads pass `opportunistic=True`
|
|
268
|
+
and accept `skipped` as an answer (ties back to [A5](#a5-truth-protocols--never-say-something-about-a-persons-life-that-isnt-so)).
|
|
269
|
+
- **Say "live after the next restart", never "done".** A merged endpoint that
|
|
270
|
+
404s is indistinguishable from one that was never built.
|
|
271
|
+
|
|
272
|
+
### A9. Before you call an agent finished — the checklist
|
|
273
|
+
|
|
274
|
+
- [ ] Can you say its job in **one sentence with no "and"**?
|
|
275
|
+
- [ ] Is routing in `can_call`, **not** in Python?
|
|
276
|
+
- [ ] Does `@pre_compose` establish **identity** and select a **flow** — and nothing else? Does it fail into a *defined* state, never into absence?
|
|
277
|
+
- [ ] Does the `prompt` hold only **persona + output contract** (`yields`)?
|
|
278
|
+
- [ ] Does the **flow** give the sequence **and the reason** for it?
|
|
279
|
+
- [ ] Is every how-to in a **Skill**, and **nowhere else** (not duplicated into the prompt)?
|
|
280
|
+
- [ ] Is everything needed on **every turn** resident?
|
|
281
|
+
- [ ] Does every tool that can fail distinguish **nothing / could-not-tell / declined**?
|
|
282
|
+
- [ ] Does every **stub announce itself** (`available:false`, never a synthetic success)?
|
|
283
|
+
- [ ] Does **identity come from code**, not the model?
|
|
284
|
+
- [ ] Does `@chain` **fail closed** on anything that reaches money / health / calendar / an outbound send?
|
|
285
|
+
- [ ] Did you verify at the **offered** layer and at **real cardinality** — not just "registered"?
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## PART B — The mesh, designed thoroughly (lessons from the expense-reimbursement pod)
|
|
290
|
+
|
|
291
|
+
The expense-reimbursement pod (Remi · Odo · Fern · Sol + human members) is the
|
|
292
|
+
reference implementation of the house style. What building it taught, distilled:
|
|
293
|
+
|
|
294
|
+
### B1. The pod shape
|
|
295
|
+
|
|
296
|
+
A pod is **a coordinator + specialists + a finisher + human gates + a supervisor**:
|
|
297
|
+
- **Coordinator** (Remi) — owns the case end-to-end, orchestrates, keeps live
|
|
298
|
+
status, is the single point of contact. **Never does specialist work** (never
|
|
299
|
+
reads a receipt, never approves).
|
|
300
|
+
- **Specialists** (Odo reads/extracts; Fern builds; Sol routes approval→finance) —
|
|
301
|
+
each a role with responsibilities, each self-reliant ([Part A](#part-a--the-agent-built-thoroughly)).
|
|
302
|
+
- **Finisher** — the agent *after* the human gate that produces the real artifact
|
|
303
|
+
([B4](#b4-the-finisher-pattern)).
|
|
304
|
+
- **Human members** — Finance-Ops Lead (accountable owner), Employee, Approver,
|
|
305
|
+
Finance Officer — reached in their own channels, first-class, never endpoints.
|
|
306
|
+
- **Supervisor = the LeafMesh Manager** — reads every hand-off; stalls, contract
|
|
307
|
+
violations, repeated errors escalate to the accountable human automatically.
|
|
308
|
+
|
|
309
|
+
### B2. One human, one agent, one system per stage
|
|
310
|
+
|
|
311
|
+
Held at *every* stage: **the agent produces, the human decides, the system
|
|
312
|
+
records. No stage advances on an agent's own authority.** If a stage has an agent
|
|
313
|
+
acting *and* deciding, you've collapsed a control — split it.
|
|
314
|
+
|
|
315
|
+
### B3. Membership, entries, wires, loops
|
|
316
|
+
|
|
317
|
+
- **Members are people and agents; systems are tools.** A system earns a seat only
|
|
318
|
+
if it can act on an *intent given context* (decide, ask, negotiate, hold a
|
|
319
|
+
responsibility). Outlook/Box/SAP/Teams/SharePoint/Jira cannot → they are
|
|
320
|
+
**tool-chips inside agents**, never nodes, and **data never leaves them.**
|
|
321
|
+
- **Multiple entry points** — one per real trigger (receipts, a status ask, a
|
|
322
|
+
daily cron sweep). Don't force everything through one intake.
|
|
323
|
+
- **Every wire is conditional** on the producer's declared output. A bare
|
|
324
|
+
unconditional edge is a smell that two roles should be one.
|
|
325
|
+
- **HITL gates default-deny.** `fallback_on_timeout: true` + a `fallback_response`
|
|
326
|
+
that resolves to a **non-approving** verdict (`held_for_review`) routed to the
|
|
327
|
+
audit sink. **Silence never advances anything.**
|
|
328
|
+
- **Bounded back-edges.** Re-extract / rejection loops count their rounds *in the
|
|
329
|
+
mesh* (exhaustion counter → terminal route — [Rule 3](SKILL.md#rule-3--bound-every-retry-back-edge)).
|
|
330
|
+
Back-edges *through a human* are the worst offenders — bound them first.
|
|
331
|
+
- **WORM ledger terminus.** Hash-chained, append-only, registered via
|
|
332
|
+
`sdk.intelligence(name)(fn)`; every approval, send, and reversal recorded, never
|
|
333
|
+
edited.
|
|
334
|
+
|
|
335
|
+
### B4. The finisher pattern
|
|
336
|
+
|
|
337
|
+
The **artifact-producing executor** — the single most load-bearing pattern, and
|
|
338
|
+
the concrete form of "[`@chain` fails
|
|
339
|
+
closed](#a2-the-four-stages--and-what-belongs-in-each)". An agent wired **after**
|
|
340
|
+
the human gate that:
|
|
341
|
+
|
|
342
|
+
1. **Re-checks approval** — never trusts that *reaching* the agent means approved.
|
|
343
|
+
An **allow-token allowlist + block-token denylist**, so an unknown/ambiguous
|
|
344
|
+
verdict **fails closed**.
|
|
345
|
+
2. **Enforces deterministic invariants a human can't waive** — PII/policy
|
|
346
|
+
concerns empty; approver authority re-derived *in code* from the matrix; no
|
|
347
|
+
double-issue; frequency caps.
|
|
348
|
+
3. **Renders the real artifact** to `./out` (PDF via ReportLab, else Markdown) —
|
|
349
|
+
or an outbox/booking record.
|
|
350
|
+
4. **Fails closed on trip — deletes the partial artifact**, marks
|
|
351
|
+
`artifact_produced=false` + `block_reasons`, records nothing downstream.
|
|
352
|
+
5. **Two-layer defense** — the body short-circuits before writing; the `@chain`
|
|
353
|
+
floor re-checks independently.
|
|
354
|
+
6. **Dev-store fallback that announces itself** — runs day-0 with no connector by
|
|
355
|
+
writing a *verifiable* dev-store record, and **never fakes a real ack** ([A4](#a4-tools--the-model-acts-code-does-not-act-afterwards)).
|
|
356
|
+
|
|
357
|
+
Reference modules: `procurement-ops/agency/purchase_order_agent.py`,
|
|
358
|
+
`bd-proposals/agency/proposal_assembler_agent.py`,
|
|
359
|
+
`quote-to-cash/agency/quote_issuer_agent.py`.
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
## PART C — From "here's what I have" to a running mesh (intake + provisioning)
|
|
364
|
+
|
|
365
|
+
When a user describes their systems, build in this order. This is the
|
|
366
|
+
client-intake method — how you turn "we use Outlook and Box and no real backend"
|
|
367
|
+
into a running LeafMesh pod.
|
|
368
|
+
|
|
369
|
+
### C1. Inventory — write down three lists
|
|
370
|
+
|
|
371
|
+
1. **Triggers** (what starts work): an email arrives, a webhook fires, a form is
|
|
372
|
+
submitted, a schedule ticks, a chat message lands. → these become **entry
|
|
373
|
+
points**.
|
|
374
|
+
2. **People** (who decides / owns / claims): approvers, an accountable owner, the
|
|
375
|
+
end user. → these become **human members**.
|
|
376
|
+
3. **Systems** (where truth lives / work is recorded): mailbox, file store, ERP,
|
|
377
|
+
CRM, DB, spreadsheet. → candidates for **tools/connectors**.
|
|
378
|
+
|
|
379
|
+
### C2. Apply the membership bar to every system
|
|
380
|
+
|
|
381
|
+
For each system ask: *can it, today, act on an intent given context — decide, ask,
|
|
382
|
+
negotiate, hold a responsibility?* **Almost always no** → it is a **tool inside an
|
|
383
|
+
agent**, wired as a connector, never a member. (An agentic ITSM that can genuinely
|
|
384
|
+
accept and negotiate an intent is the rare exception that joins as a member.)
|
|
385
|
+
|
|
386
|
+
### C3. Cast the mesh
|
|
387
|
+
|
|
388
|
+
- **Agents = roles** (one job, no "and" — [A1](#a1-an-agent-is-a-role-you-would-hire)):
|
|
389
|
+
coordinator + specialists + finisher.
|
|
390
|
+
- **Humans = members** reached in their channel (inbox / Teams / Slack / Box).
|
|
391
|
+
- **Systems = tool-chips** inside the agents that operate them.
|
|
392
|
+
- **Controls stay separate**: approval gates, the finisher, the WORM sink.
|
|
393
|
+
|
|
394
|
+
### C4. Pick a connector per system
|
|
395
|
+
|
|
396
|
+
| The user has… | Wire it as |
|
|
397
|
+
|---|---|
|
|
398
|
+
| Outlook / Gmail / mailbox | native email channel (SMTP/IMAP) or Graph/MCP connector |
|
|
399
|
+
| Slack / Teams / WhatsApp / Telegram | native `channels:` adapter on the human agent |
|
|
400
|
+
| A SaaS with an API (CRM/ERP/WMS, Box, Jira, SharePoint) | `integration: mcp` / `n8n` connector agent, shaped by `@sdk.intelligence` |
|
|
401
|
+
| A webhook-only system | `programmatic` agent + `connector_config.webhook_url` (n8n), or `/callback/{agent}` |
|
|
402
|
+
| Nothing yet for this step | ship the **dev-store stub** (`./data`) that **announces itself** ([A4](#a4-tools--the-model-acts-code-does-not-act-afterwards)), inert until the real URL is set ([A8](#a8-shipping-across-a-boundary-you-do-not-control)) |
|
|
403
|
+
|
|
404
|
+
Every connector uses `${VAR:}` empty-defaults and is **inert until wired** —
|
|
405
|
+
never a synthetic success in the meantime.
|
|
406
|
+
|
|
407
|
+
### C5. "I don't have any backend" → provision one (Supabase, or the right fit)
|
|
408
|
+
|
|
409
|
+
A LeafMesh mesh needs two kinds of persistence. Map the user's answer:
|
|
410
|
+
|
|
411
|
+
1. **Session / working state** — `session_stash` (in-process) and **Redis** ship
|
|
412
|
+
with the SDK. **Always present**, no provisioning needed. This is where retry
|
|
413
|
+
counters, per-session state, and the HITL-recovery ladder live.
|
|
414
|
+
2. **System of record** — durable relational data + files + (optionally) auth.
|
|
415
|
+
**If the user has none, provision it.** Default recommendation: **Supabase**
|
|
416
|
+
(hosted Postgres + Storage + Auth + PostgREST + Realtime), because it gives all
|
|
417
|
+
three in one, with an auto REST API you can wire without writing a backend.
|
|
418
|
+
|
|
419
|
+
**Supabase → LeafMesh mapping** (respecting [A6 "where data lives"](#a6-where-data-lives--find-the-facts-home-before-you-add-a-store)):
|
|
420
|
+
|
|
421
|
+
| LeafMesh need | Supabase | Notes |
|
|
422
|
+
|---|---|---|
|
|
423
|
+
| Identity / traits | a `profiles` / `entities` table (one row per `(domain,key)`) | small, stable, readable by any agent |
|
|
424
|
+
| Domain working state | domain tables (append-heavy) | shaped by one agent's needs |
|
|
425
|
+
| **WORM ledger** | an **insert-only** table — RLS/triggers block `update`/`delete` | this is what `sdk.intelligence(name)(fn)` writes to; enforces its own invariant, so it stays in the domain store, never the identity store |
|
|
426
|
+
| Files / documents (receipts, rendered artifacts) | **Supabase Storage** bucket | replaces a Box/`./out` dev path in production |
|
|
427
|
+
| Human auth / a review UI | Supabase Auth | only if the pod needs a hosted human surface |
|
|
428
|
+
|
|
429
|
+
**How to wire it:** the shipped templates read/write a JSON **dev store**
|
|
430
|
+
(`agency/_shared/store.py`, under `./data`) day-0 — *dev only, never a system of
|
|
431
|
+
record* ([A6](#a6-where-data-lives--find-the-facts-home-before-you-add-a-store)).
|
|
432
|
+
Going live = **swap `store.py`'s function bodies for Supabase calls** (the
|
|
433
|
+
`supabase-py` client, or PostgREST over HTTP via a `programmatic`/`mcp` connector
|
|
434
|
+
agent). The function signatures are the contract; the mesh does not change. Point
|
|
435
|
+
`.env` at `SUPABASE_URL` / `SUPABASE_SERVICE_KEY` (kept in the vault, never in
|
|
436
|
+
code — [A8](#a8-shipping-across-a-boundary-you-do-not-control)).
|
|
437
|
+
|
|
438
|
+
**Other fits** (pick by need, don't over-build — [A6](#a6-where-data-lives--find-the-facts-home-before-you-add-a-store)):
|
|
439
|
+
- **Redis only** — if all they need is ephemeral/session state and a simple KV
|
|
440
|
+
ledger, the SDK's Redis is already enough; don't provision Supabase for nothing.
|
|
441
|
+
- **Airtable / Google Sheets** — lightweight, human-editable, good for a pilot;
|
|
442
|
+
wire via n8n/MCP.
|
|
443
|
+
- **Their existing ERP/WMS/CRM** — if they *do* have one, that IS the system of
|
|
444
|
+
record; connect to it (MCP), don't build a parallel store beside it (the
|
|
445
|
+
don't-build-a-queue-for-a-safe-fact rule).
|
|
446
|
+
|
|
447
|
+
### C6. Controls + verification before you call it done
|
|
448
|
+
|
|
449
|
+
- Default-deny gates, bounded loops, WORM sink ([B3](#b3-membership-entries-wires-loops)).
|
|
450
|
+
- `validate_config.py` clean (structure), a day-0 dev-store run (the chain), then
|
|
451
|
+
each connector wired and verified at the **offered** layer and **real
|
|
452
|
+
cardinality** ([A7](#a7-verification--know-which-layer-you-are-standing-on)).
|
|
453
|
+
- Walk the [finished-agent checklist](#a9-before-you-call-an-agent-finished--the-checklist)
|
|
454
|
+
for every agent, and confirm the pod's discipline in one sentence: **agents
|
|
455
|
+
produce, humans decide, systems record — and silence never advances anything.**
|
|
@@ -167,7 +167,7 @@ agents:
|
|
|
167
167
|
retry_delay: 2
|
|
168
168
|
can_call:
|
|
169
169
|
- agent: "greeter_agent"
|
|
170
|
-
condition: "not calling_agent_response.from_agent"
|
|
170
|
+
condition: "not calling_agent_response.from_agent" # works ONLY because human agents ALWAYS emit from_agent (maybe ""). Never `not` a field that can be absent — see gotcha #14
|
|
171
171
|
- agent: "processor_agent"
|
|
172
172
|
condition: "calling_agent_response.from_agent == 'greeter_agent'"
|
|
173
173
|
|
|
@@ -327,6 +327,34 @@ agents:
|
|
|
327
327
|
`LEAFMESH_SCHEDULER_MISFIRE_GRACE_S=none` (ops env knob; coalesce
|
|
328
328
|
guarantees at most ONE catch-up per schedule).
|
|
329
329
|
|
|
330
|
+
## 14. Conditions FAIL CLOSED on missing fields — and `not` does NOT rescue them
|
|
331
|
+
|
|
332
|
+
A `can_call` condition that references a field **absent** from the
|
|
333
|
+
producing agent's output evaluates to **false**, whatever the rest of
|
|
334
|
+
the expression says. This is deliberate (a typo'd field must never
|
|
335
|
+
open a route), but it has a counterintuitive corollary:
|
|
336
|
+
|
|
337
|
+
```yaml
|
|
338
|
+
condition: "not calling_agent_response.from_agent"
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
reads as "when there is no caller" — but if `from_agent` is MISSING
|
|
342
|
+
(not empty — missing), the whole condition is false. `not x.field`
|
|
343
|
+
only matches when the field is **present and falsy** (`""`, `false`,
|
|
344
|
+
`0`).
|
|
345
|
+
|
|
346
|
+
Rules of thumb:
|
|
347
|
+
- Only reference fields the producing agent ALWAYS emits. Human agents
|
|
348
|
+
always emit the uniform reply shape (`human_message`,
|
|
349
|
+
`human_decision`, `from_agent` — possibly `""`) since 2.4.71; your
|
|
350
|
+
own LLM agents always emit their declared `yields` keys.
|
|
351
|
+
- When two conditional branches target the SAME agent anyway, use one
|
|
352
|
+
unconditional edge and gate on the DOWNSTREAM agent's conditions.
|
|
353
|
+
- The SDK logs `Condition ... could not be evaluated — route will NOT
|
|
354
|
+
be taken` naming the missing field, and (2.4.127+) explains the
|
|
355
|
+
`not` case inline. If a route "mysteriously never fires", search the
|
|
356
|
+
logs for that line first.
|
|
357
|
+
|
|
330
358
|
## Parallel instances (`instances: N`, 2.4.118+) — the rules that surprise people
|
|
331
359
|
|
|
332
360
|
One activation → N parallel copies of the agent, same session, any trigger
|
|
@@ -252,7 +252,7 @@ can_call:
|
|
|
252
252
|
- agent: "escalation"
|
|
253
253
|
condition: "calling_agent_response.priority == 'high'"
|
|
254
254
|
- agent: "greeter"
|
|
255
|
-
condition: "not calling_agent_response.from_agent" # Falsy check (HITL routing)
|
|
255
|
+
condition: "not calling_agent_response.from_agent" # works ONLY because human agents ALWAYS emit from_agent (maybe ""). Never `not` a field that can be absent — see gotcha #14 # Falsy check (HITL routing)
|
|
256
256
|
- agent: "processor"
|
|
257
257
|
condition: "calling_agent_response.from_agent == 'greeter_agent'"
|
|
258
258
|
- agent: "urgent_handler"
|
|
@@ -146,6 +146,7 @@ create_leafmesh/templates/bench-management/tests/test_config_shape.py
|
|
|
146
146
|
create_leafmesh/templates/claude_skills/leafmesh/SKILL.md
|
|
147
147
|
create_leafmesh/templates/claude_skills/leafmesh/agency-development.md
|
|
148
148
|
create_leafmesh/templates/claude_skills/leafmesh/agent-config-fields.md
|
|
149
|
+
create_leafmesh/templates/claude_skills/leafmesh/building-agents-thoroughly.md
|
|
149
150
|
create_leafmesh/templates/claude_skills/leafmesh/examples.md
|
|
150
151
|
create_leafmesh/templates/claude_skills/leafmesh/nuances-and-gotchas.md
|
|
151
152
|
create_leafmesh/templates/claude_skills/leafmesh/reference.md
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/deploy_providers/__init__.py
RENAMED
|
File without changes
|
{create_leafmesh-2.6.9 → create_leafmesh-2.6.11}/create_leafmesh/deploy_providers/_shared.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|