ai-kit-python 1.4.2__tar.gz → 1.4.4__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.
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.agents/skills/project-continuity/SKILL.md +6 -7
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.dockerignore +2 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.github/workflows/publish-pypi.yml +17 -8
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.gitignore +2 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/CHANGELOG.md +18 -11
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/CONTRIBUTING.md +1 -1
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/MANIFEST.in +1 -0
- {ai_kit_python-1.4.2/ai_kit_python.egg-info → ai_kit_python-1.4.4}/PKG-INFO +8 -2
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/README.md +172 -13
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/SKILL.md +5 -3
- ai_kit_python-1.4.4/VERSION +1 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4/ai_kit_python.egg-info}/PKG-INFO +8 -2
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai_kit_python.egg-info/SOURCES.txt +27 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/aikit_cli.py +1 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/DEVELOPMENT_PLAN.md +1 -1
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/DOCKER.md +2 -2
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/DOCKER_HUB_OVERVIEW.md +26 -34
- ai_kit_python-1.4.4/docs/ORCHESTRATION.md +37 -0
- ai_kit_python-1.4.4/docs/PYPI.md +103 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/PYPI_DESCRIPTION.md +6 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/V1_4_2.md +17 -2
- ai_kit_python-1.4.4/docs/V1_4_3.md +70 -0
- ai_kit_python-1.4.4/docs/V1_4_4.md +20 -0
- ai_kit_python-1.4.4/docs/adr/0015-optional-bounded-orchestration.md +17 -0
- ai_kit_python-1.4.4/docs/changelog/v0.12.0.md +11 -0
- ai_kit_python-1.4.4/docs/history/v0.13.0-changelog.md +8 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/agents.json +2 -2
- ai_kit_python-1.4.4/integrations/codex-agents/aikit_explorer.toml +10 -0
- ai_kit_python-1.4.4/integrations/codex-agents/aikit_reviewer.toml +10 -0
- ai_kit_python-1.4.4/integrations/codex-agents/aikit_worker.toml +10 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/pyproject.toml +2 -2
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/check_distribution.py +61 -5
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/check_kit.py +4 -3
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/doctor.py +7 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/install.py +28 -5
- ai_kit_python-1.4.4/scripts/orchestrate.py +452 -0
- ai_kit_python-1.4.4/template/ai-kit/ORCHESTRATION.md +27 -0
- ai_kit_python-1.4.4/template/ai-kit/orchestration.json +12 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/templates/gitignore.private +1 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/templates/gitignore.team +1 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/build_distribution.py +2 -2
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/docker_smoke.py +7 -2
- ai_kit_python-1.4.4/tests/test_orchestration.py +418 -0
- ai_kit_python-1.4.4/tests/test_pypi_events.py +201 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/wheel_smoke.py +8 -2
- ai_kit_python-1.4.2/VERSION +0 -1
- ai_kit_python-1.4.2/docs/PYPI.md +0 -87
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.agents/skills/go-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.agents/skills/laravel-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.agents/skills/moodle-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.agents/skills/python-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.gitattributes +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.github/workflows/check-kit.yml +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/BOOTSTRAP_PROMPT.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/CLAUDE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/Dockerfile +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/KIMI.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/LICENSE +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/MANUS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/Makefile +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/SECURITY.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/__init__.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/ADAPTERS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/CONTAINERS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/ENGINEERING.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/INTENT.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/MODELS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/SKILLS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/adr/0001-adaptive-model-routing.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/stacks/GO.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/stacks/LARAVEL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/stacks/MOODLE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/stacks/PYTHON.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai_kit_python.egg-info/dependency_links.txt +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai_kit_python.egg-info/entry_points.txt +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai_kit_python.egg-info/top_level.txt +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/deploy/k8s/install-preview-job.yaml +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docker/build-requirements.txt +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docker/check_version.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docker/pypi-requirements.txt +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/ADAPTER_PATH_FIX.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/BENCHMARK.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/CONTEXT7.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/DECISIONS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/DIALOGUE_MEMORY.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/EVALUATION.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/IMPLEMENTATION.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/MANUS_REVIEW.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/SECURITY_AUDIT.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/STRIX.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/V0_5_0.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/V0_6_4.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/V1_4_0.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/V1_4_1.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/WEB_DESIGN.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/WINDOWS_CI_FIX.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0000-template.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0001-adaptive-model-routing.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0002-template-separation.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0003-agent-registry-and-router.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0004-onboarding-and-project-facts.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0005-client-settings-ownership.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0006-routing-evidence-and-local-measurements.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0007-generated-client-configuration-and-presets.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0008-unified-cli-and-fact-drift.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0009-provider-review-doctor-fix-and-ci-self-install.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0010-metrics-analysis-and-gemini-verification.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0011-evidence-lifecycle-and-evaluation.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0012-measurement-led-routing.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0013-docker-cli-image.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0014-local-dialogue-memory.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/original-bundle-checks.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v0.1-changelog.txt +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v0.10-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v0.2-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v0.3-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v0.4-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v0.5-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v0.6.4-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v0.6.5-v0.9-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v1.1.0-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v1.2.0-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/verification-before-measurements.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/CONVENTIONS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/README.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/ai-kit-check.yml +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/ai-kit-cline.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/ai-kit-roo.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/ai-kit-windsurf.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/ai-kit.mdc +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/claude-settings.data-ask.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/claude-settings.git-ask.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/copilot-instructions.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/security-audit.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/strix.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/__init__.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/adapters.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/adaptive.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/adr.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/benchmark.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/changelog.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/context.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/docker_test_usage.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/evaluate.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/learning.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/memory.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/memory_import.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/memory_store.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/metrics.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/router.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/setup.cfg +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/hooks/session-start.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/hooks/session-start.sh +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/ai-kit-bootstrap/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/ai-kit-review/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/ai-kit-sync-context/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/context7-docs/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/design-extract/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/dotnet-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/filament-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/frontend-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/go-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/infra-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/java-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/laravel-blade-ui/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/laravel-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/library-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/moodle-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/php-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/project-continuity/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/python-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/rust-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/security-audit/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/security-audit/agents/openai.yaml +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/strix/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/strix/agents/openai.yaml +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/ui-review/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/web-design/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/AGENTS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/CHANGELOG.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/CLAUDE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/GEMINI.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/KIMI.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/MANUS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/PROJECT_CONTEXT.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/README.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/WIKI.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/ADAPTERS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/BOOTSTRAP.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/CONTAINERS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/CONTEXT7.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/CORE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/ENGINEERING.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/MCP.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/METRICS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/SECURITY-AUDIT.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/SECURITY.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/SKILLS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/STRIX.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/UPSTREAM.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/WEB-DESIGN.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/profiles/OWNER.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/project.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/POLICY.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/anthropic.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/anthropic.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/gemini.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/gemini.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/kimi.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/kimi.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/local.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/local.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/openai.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/openai.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/routing.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/selection.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/settings.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/DOTNET.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/FILAMENT.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/FRONTEND.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/GO.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/INFRA.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/JAVA.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/LARAVEL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/LIBRARY.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/MOODLE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/PHP.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/PYTHON.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/RUST.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/AI-AND-LLM.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/ATTACK-CLASSES.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/CLIENT-SIDE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/CLOUD-AND-DEPLOYMENT.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/DATA-ISOLATION-AND-LIFECYCLE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/DESKTOP-MOBILE-AND-LOCAL-IPC.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/HUNTING.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/LICENSE +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/MEMORY-SAFETY-AND-BINARY.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/PROTOCOLS-RPC-AND-MESSAGING.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/RECONNAISSANCE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/RESOURCE-EXHAUSTION-AND-AVAILABILITY.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/SUPPLY-CHAIN-AND-RELEASE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/VALIDATION-AND-REPORTING.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/WEB-PROTOCOL-AND-AUTH.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/report-schema.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/validate-coverage-ledger.cjs +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/validate-coverage-ledger.test.cjs +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/validate-findings.cjs +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/validate-findings.test.cjs +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/strix/LICENSE +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/strix/api-security-testing/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/strix/application-security-testing/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/strix/ci-security-scanning-with-strix/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/strix/find-security-vulnerabilities-in-code/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/strix/fix-security-vulnerabilities-with-strix/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/strix/managed-pentesting-with-strix/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/strix/owasp-top-10-testing/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/strix/penetration-testing-with-strix/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/strix/web-app-penetration-testing/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/web-design/LARAVEL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/web-design/LIBRARIES.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/web-design/REVIEW.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/web-design/TOOLS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/docs/DECISIONS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/docs/adr/0000-template.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/docs/design/ACCEPTANCE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/docs/design/BRIEF.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/docs/design/SYSTEM.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/templates/agent-secrets.ignore +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/fixtures/create-junction.ps1 +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/fixtures/golden/claude-settings-local.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_adapters.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_aikit.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_benchmark.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_check_kit.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_context.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_context7.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_context_selection.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_distribution.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_docker_image.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_docker_test_usage.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_doctor.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_evaluate.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_install.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_learning.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_memory.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_metrics.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_native.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_onboarding.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_router.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_security_audit.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_strix.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_web_design.py +0 -0
|
@@ -7,8 +7,7 @@ description: Maintain AI-KIT's own context, template boundaries, and installer v
|
|
|
7
7
|
|
|
8
8
|
Read [contribution rules](../../../CONTRIBUTING.md). Read optional local `../../../PROJECT_CONTEXT.md`, `../../../AGENTS.md` and `../../../WIKI.md` when present; otherwise verify facts from public source/configuration. These three root files stay local and untracked, outside wheel/Docker payloads; their template counterparts stay public. Check distributions with and without local copies and preserve their on-disk bytes when untracking.
|
|
9
9
|
Keep the root context/history about this kit; keep template project facts uninitialized.
|
|
10
|
-
|
|
11
|
-
When verified facts or agreements change, synchronize this skill's scope/procedure/pointers and WIKI with the context; keep actual facts in context.
|
|
10
|
+
Sync commands, this skill, docs, context and WIKI on procedure/fact/agreement changes; keep facts in context.
|
|
12
11
|
Validate templates/links/registry, the agent registry (integrations/agents.json), and behavioral installation scenarios; record root CHANGELOG entries. Keep the root SKILL.md (the repository as a skill) consistent with the CLI, presets, extras, and policies.
|
|
13
12
|
Review explicit semantic acceptance and future-upgrade conflicts whenever installer baseline behavior changes.
|
|
14
13
|
Check candidate draft preservation, state/settings validation, and adapter retirement conflicts when changing installation. Exercise installed Git visibility and portable linked-path refusal; distinguish synthetic fixtures from real application trials. Verify the conditional Docker trigger in installed AGENTS and preserve edited entry points during upgrades.
|
|
@@ -17,18 +16,18 @@ Exercise manifest-based profile detection and project-fact drafts (version/comma
|
|
|
17
16
|
For generated client configuration, exercise private/team settings files and mode switches, owned-entry moves, project.json precedence, secret lists, ignore blocks, every scoped rule format with root modules and skipped paths, presets that turn extras off, and workflow skill copies; recheck client formats against primary docs before changing them.
|
|
18
17
|
For routing, compare the implementation ladder with canonical POLICY, exercise English/Russian operation/risk regressions and override precedence, provider-review status/sources, and distinguish recommendations from executed model controls. For stack profiles, exercise manifest evidence, module scoping, and command drafting; for Filament specifically test Composer dependency/lock evidence and source/native skill lifecycle. For optional metrics, verify failure/recovery accounting, missing-value coverage, duplicate/lock/path guards, private/team journal visibility, schema 1/2 compatibility, experiment/arm/task identity, per-provider analyze output, and upgrade preservation. Exercise context snapshots and doctor warnings for new/removed modules, profile drift, and manifest changes. Exercise adapter reports plus explicit retirement of unchanged files, backups/state updates, and modified-file conflicts. Exercise opaque evaluator pair coverage without task-text persistence. Use the [evaluation protocol](../../../docs/EVALUATION.md) for separately authorized application trials; synthetic fixtures establish no savings.
|
|
19
18
|
Record actual OS/runtime and unavailable checks in the implementation record; keep source visibility checks separate from client activation.
|
|
20
|
-
For measurement-led changes, test schema 1/2/3 compatibility, fixed A/B controls, immutable Git blobs and isolated repeated workspaces, missing/estimated telemetry, semantic-review gates, interrupted runs and idempotent private exports. Exercise resume identity checks, per-unit failure recording and configurable kit-arm agents/presets. Check that worker Git discovery cannot reach the source through parents: a ceiling at cwd itself is ineffective. Keep worker requests separate from observed execution. Exercise routing modes/pins/profiles, distinct-case quality floors, matched history, unsupported controls, immutable proposal history and explicit backed-up restore. Exercise module context scope, duplicate content, critical rules/ADRs above byte budgets and linked paths. Follow [the staged plan](../../../docs/DEVELOPMENT_PLAN.md) and [worker contract](../../../docs/BENCHMARK.md);
|
|
19
|
+
For measurement-led changes, test schema 1/2/3 compatibility, fixed A/B controls, immutable Git blobs and isolated repeated workspaces, missing/estimated telemetry, semantic-review gates, interrupted runs and idempotent private exports. Exercise resume identity checks, per-unit failure recording and configurable kit-arm agents/presets. Check that worker Git discovery cannot reach the source through parents: a ceiling at cwd itself is ineffective. Keep worker requests separate from observed execution. Exercise routing modes/pins/profiles, distinct-case quality floors, matched history, unsupported controls, immutable proposal history and explicit backed-up restore. Exercise module context scope, duplicate content, critical rules/ADRs above byte budgets and linked paths. Follow [the staged plan](../../../docs/DEVELOPMENT_PLAN.md) and [worker contract](../../../docs/BENCHMARK.md); keep native activation and real trials separate. For [optional orchestration](../../../docs/ORCHESTRATION.md), test opt-in/persistence, Codex helper conflicts/retirement, private/team/archive exclusions, bounded inputs/keys/budgets, reservations/locks, unknown billing, source-bound review and reconciliation without replay. Keep native costs separate; tests make no live calls.
|
|
21
20
|
Resolve temporary fixture roots before deriving paths used by guards, assertions, or injected failures. Test equivalent path spellings; keep cleanup bound to original disposable directories. [Windows CI regression](../../../docs/WINDOWS_CI_FIX.md) records the relevant scenario.
|
|
22
21
|
For reference upgrades, check the actual published tree and old paths left by overlays. Compatibility pointers link to canonical owners; never hide broken legacy links from the checker.
|
|
23
|
-
|
|
24
|
-
For [PyPI releases](../../../docs/PYPI.md), verify
|
|
22
|
+
Verify onboarding examples against CLI/defaults and canonical policy; distinguish installation, discovery and execution evidence. For [OpenRouter documentation](../../../README.md#working-with-openrouter), recheck primary API/cache/usage docs; distinguish shipped context manifests from proposed request assembly/runtime, prompt caching from response reuse, and observed usage from assumed savings. Root README and Docker Hub Overview have no size quota; retain scoped instruction budgets and normal link/language checks.
|
|
23
|
+
For [PyPI releases](../../../docs/PYPI.md), verify metadata, VERSION, licenses, description, resources and private/path exclusions; build the wheel from sdist and smoke-install offline. Quote Twine globs; report OS gaps. A JSON 404 does not prove name eligibility. Test release/manual identity guards without uploads; preserve CI names and old tags. Published stable releases prepare PyPI artifacts; manual runs default to validation. Require exact version/tag/repository gates, owner approval and future tag coverage; agents must not approve deployments. OIDC belongs only in upload jobs consuming validated same-run artifacts. Keep setup, upload and live MCP activation separate.
|
|
25
24
|
For repository administration or changes to existing required CI names, consult [repository maintenance](../../../CONTRIBUTING.md#repository-maintenance), verify live protection and emitted names, and keep required checks aligned. New local jobs establish no hosted result or required-check update. Remote changes need explicit authorization; Core governs commits/pushes.
|
|
26
25
|
For every task assess [Docker image impact](../../../docs/DOCKER.md#change-impact-and-image-refresh), including packaged instructions and defaults. Follow canonical [image freshness](../../../template/ai-kit/CONTAINERS.md#image-freshness); rebuild/test affected final sources as ai-kit:dev or record why no rebuild is needed. For the image, verify actual client/daemon, pinned build inputs, VERSION/label identity, closed context, wheel resources, non-root bind permissions, read-only/offline preview and apply, preservation, conflicts, rerun and SIGTERM. Validate the Job schema; distinguish cluster/runtime coverage. Record test cache/volume ownership and size; follow canonical cleanup without shared-builder pruning. Keep image publication separate.
|
|
27
26
|
For [dialogue memory](../../../docs/DIALOGUE_MEMORY.md), test all supported imports, selected ChatGPT branches, omissions, untrusted roles, pending prose, explicit keyed conflicts/resolutions, source-bound review, immutable reruns, both exports and byte limits. Exercise linked/blocked paths, private/team upgrade preservation, Git/build/package exclusions and installed CLI execution. Do not infer semantic agreement from no keyed conflicts or claim live sync/upload from local export. Preserve raw sources and default project context.
|
|
28
27
|
For optional upstream skills, follow [security-audit](../../../docs/SECURITY_AUDIT.md) and [Strix integration](../../../docs/STRIX.md): preserve pinned bytes/license and newline attributes, verify bounded tree coverage/digests and nested-path aliases, explicit-only metadata, absent default/preset payloads, independent persistent choices, local adaptations/conflicts, links, visibility and wheel resources. Exempt only verified external examples from authored model/language/budget checks. Keep installation separate from audits/runtime setup; report unsupported validators. For Strix, check writable copy isolation, explicit full/diff scope, budget/data destination and no implicit cloud fallback; integration tests must start no scan, model or container.
|
|
29
28
|
For [Context7](../../../docs/CONTEXT7.md), check opt-in skill/registry selection, independent persistence, source/native copies, local conflicts and unchanged native MCP configuration. Keep normal skill discovery, version-aware sanitized queries and remote activation separate. Recheck client schemas/authentication against primary docs; a source revision does not pin the hosted service.
|
|
30
29
|
For [Web Design](../../../docs/WEB_DESIGN.md), check whole-module default absence, multi-entry skill selection, independent persistence, created-once project documents, native copies/retirement, local conflicts and linked/blocked paths. Exercise workflow context scope, required design memory above budgets, plain HTML without assumed stack facts, private raw output/team visibility and offline wheel resources. Keep TypeUI/SkillUI setup and real browser/Laravel acceptance separate from installer evidence; adopt external guidance only within the selected stack/visual system.
|
|
31
|
-
For
|
|
30
|
+
For a requested release, synchronize VERSION, root changelog, README, WIKI and maintainer context; keep kit history out of templates. Recheck CLI/version, kit, isolated archives, offline installation and prior-version upgrade preservation. Distinguish checks before/after labeling. Follow [the verified release path](../../../docs/V1_4_3.md#pypi-publication-and-read-back): preserve tags, wait for hosted build checks and report pending human approval; never approve PyPI for the owner. Git authorization follows Core. Release notes must distinguish installed guidance from external tools, live client/model setup and generated-site acceptance; verify security examples against pinned contracts.
|
|
32
31
|
For every Docker image release, follow the [Docker Hub checklist](../../../CONTRIBUTING.md#docker-hub-releases) and update the complete [Overview](../../../docs/DOCKER_HUB_OVERVIEW.md); synchronize version/features/examples before building and verified publication identity afterward.
|
|
33
|
-
For
|
|
32
|
+
For Docker releases, follow [image verification](../../../docs/V1_4_3.md#docker-hub-143); keep local image identity distinct from a registry digest and source-bound human review distinct from automatic conversation synchronization. After explicitly authorized publication, read back the registry digest, platform and version/configuration; preserve the prepared image and record later publication-only documentation separately. Do not assign additional tags implicitly.
|
|
34
33
|
Do not bootstrap the reference repository as an application or imply native/runtime checks passed from static validation.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
name: Prepare or publish Python package
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
4
6
|
workflow_dispatch:
|
|
5
7
|
inputs:
|
|
6
8
|
destination:
|
|
@@ -19,11 +21,15 @@ permissions:
|
|
|
19
21
|
contents: read
|
|
20
22
|
|
|
21
23
|
concurrency:
|
|
22
|
-
group: python-package-${{ github.ref }}-${{ inputs.destination }}
|
|
24
|
+
group: python-package-${{ github.ref }}-${{ github.event_name == 'release' && 'pypi' || inputs.destination }}
|
|
23
25
|
cancel-in-progress: false
|
|
24
26
|
|
|
25
27
|
jobs:
|
|
26
28
|
build:
|
|
29
|
+
if: >-
|
|
30
|
+
github.event_name == 'workflow_dispatch' ||
|
|
31
|
+
(github.event_name == 'release' && github.event.action == 'published' &&
|
|
32
|
+
!github.event.release.draft && !github.event.release.prerelease)
|
|
27
33
|
runs-on: ubuntu-latest
|
|
28
34
|
steps:
|
|
29
35
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
@@ -32,13 +38,10 @@ jobs:
|
|
|
32
38
|
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
|
|
33
39
|
with:
|
|
34
40
|
python-version: '3.13'
|
|
35
|
-
- name: Verify
|
|
36
|
-
env:
|
|
37
|
-
RELEASE_VERSION: ${{ inputs.version }}
|
|
38
|
-
DESTINATION: ${{ inputs.destination }}
|
|
41
|
+
- name: Verify release or manual event identity before building
|
|
39
42
|
run: >-
|
|
40
43
|
python scripts/check_distribution.py identity
|
|
41
|
-
--
|
|
44
|
+
--event-name "$GITHUB_EVENT_NAME" --event-path "$GITHUB_EVENT_PATH"
|
|
42
45
|
--ref "$GITHUB_REF" --repository "$GITHUB_REPOSITORY"
|
|
43
46
|
- name: Validate sources and behavior
|
|
44
47
|
run: |
|
|
@@ -65,7 +68,10 @@ jobs:
|
|
|
65
68
|
|
|
66
69
|
testpypi:
|
|
67
70
|
needs: build
|
|
68
|
-
if:
|
|
71
|
+
if: >-
|
|
72
|
+
needs.build.result == 'success' && github.event_name == 'workflow_dispatch' &&
|
|
73
|
+
inputs.destination == 'testpypi' && github.repository == 'tigusigalpa/ai-kit' &&
|
|
74
|
+
startsWith(github.ref, 'refs/tags/v')
|
|
69
75
|
runs-on: ubuntu-latest
|
|
70
76
|
environment:
|
|
71
77
|
name: testpypi
|
|
@@ -87,7 +93,10 @@ jobs:
|
|
|
87
93
|
|
|
88
94
|
pypi:
|
|
89
95
|
needs: build
|
|
90
|
-
if:
|
|
96
|
+
if: >-
|
|
97
|
+
needs.build.result == 'success' &&
|
|
98
|
+
(github.event_name == 'release' || inputs.destination == 'pypi') &&
|
|
99
|
+
github.repository == 'tigusigalpa/ai-kit' && startsWith(github.ref, 'refs/tags/v')
|
|
91
100
|
runs-on: ubuntu-latest
|
|
92
101
|
environment:
|
|
93
102
|
name: pypi
|
|
@@ -1,9 +1,24 @@
|
|
|
1
1
|
# AI-KIT changelog
|
|
2
2
|
|
|
3
|
+
## v1.4.4 (unreleased)
|
|
4
|
+
|
|
5
|
+
- Added a prominent README comparison of the Docker image and Python package, with registry links, requirements, install commands and setup guides.
|
|
6
|
+
- Added opt-in Codex helpers and a bounded OpenRouter text executor: explicit scope, capped-key preflight, durable reservations, private accounting, source-bound review and billing reconciliation without replay.
|
|
7
|
+
- Preserved installer defaults, presets, settings, helper edits and private/team runtime exclusions; added mocked regressions, detailed [instructions](README.md#optional-orchestration), package/image preparation and [verification](docs/V1_4_4.md).
|
|
8
|
+
|
|
9
|
+
## v1.4.3 (2026-10-16)
|
|
10
|
+
|
|
11
|
+
- Added a live PyPI version badge to README.
|
|
12
|
+
- Added stable GitHub Release checks and owner-approved PyPI uploads, event/version/repository guards, future v* tags and manual validation. [Procedure](docs/PYPI.md#release-to-pypi-with-owner-approval). Archived v0.13.0 text intact.
|
|
13
|
+
- Added fifteen event regression tests. Before labeling, 32 hosted checks and build-only verification passed, plus kit, 368 Linux tests (two skips), archive/privacy/Twine/offline wheel and Docker checks. [Verification](docs/V1_4_3.md).
|
|
14
|
+
- Verified 1.4.3 CLI/archive/image identity, offline packaging, Docker smoke, 368 Linux tests and preserved private/team upgrades from v1.4.2.
|
|
15
|
+
- Verified PyPI 1.4.3 publication, matching hosted hashes and fresh registry installation; [receipt](docs/V1_4_3.md#pypi-publication-and-read-back).
|
|
16
|
+
- Published Docker Hub 1.4.3 with verified image/digest and refreshed README/Overview; [receipt](docs/V1_4_3.md#docker-hub-143).
|
|
17
|
+
|
|
3
18
|
## v1.4.2 (2026-10-16)
|
|
4
19
|
|
|
5
20
|
- Verified kit/archive/offline installation, 351 Linux tests (two skips), 23 Windows CLI/archive tests and Docker smoke. [Evidence](docs/V1_4_2.md).
|
|
6
|
-
-
|
|
21
|
+
- Published `ai-kit-python` 1.4.2 with verified PyPI hashes and installation. Preserved v1.4.1 Git/Docker; [evidence](docs/V1_4_2.md).
|
|
7
22
|
- Fixed quoted Twine wildcards for Windows CI.
|
|
8
23
|
- Added PyPI metadata, a portable [description](docs/PYPI_DESCRIPTION.md), README guidance and a [release procedure](docs/PYPI.md). Wheel/sdist checks cover metadata, licenses, resources, private files, offline installation and publication identity. Manual Trusted Publishing defaults to validation, requires exact version/tag/repository, and gives OIDC only to upload jobs consuming tested artifacts. Required CI names stay unchanged.
|
|
9
24
|
- Isolated builds inject synthetic private probes; archives exclude private drafts and credential filenames. Added tested `aikit --version`; published Docker 1.4.1 examples use its existing `--help`. Added a README Docker Hub badge.
|
|
@@ -46,19 +61,11 @@
|
|
|
46
61
|
|
|
47
62
|
## v0.13.0 (2026-10-11)
|
|
48
63
|
|
|
49
|
-
|
|
50
|
-
- Added rust-work, dotnet-work, java-work, and infra-work skills to the registry; Claude native copies install with the claude agent selection.
|
|
51
|
-
- Benchmark packs accept the new stack names; README, SKILL.md, and WIKI profile lists updated.
|
|
52
|
-
- Verified locally (Windows/Python 3.14.6): 254 tests ran, all passed, 1 runtime skip; kit validation returned zero errors and zero warnings; Python 3.10 grammar verified; end-to-end smoke detected RUST/INFRA with drafted context and installed source/native skills. Real applications of the new stacks remain untrialed.
|
|
64
|
+
[Archived release entry](docs/history/v0.13.0-changelog.md#v0130-2026-10-11).
|
|
53
65
|
|
|
54
66
|
## v0.12.0 (2026-10-11)
|
|
55
67
|
|
|
56
|
-
|
|
57
|
-
- Benchmark task paths are now probed against the benchmark project instead of the process working directory.
|
|
58
|
-
- Interrupted benchmark runs are resumable: re-running `benchmark run` with the identical pack skips completed units and continues missing ones, and a changed pack is refused against the existing run. Per-unit infrastructure failures are recorded as explicit failed units, so one bad unit neither aborts the run nor hides as an executed attempt; failed units still block savings and cannot be reviewed as correct.
|
|
59
|
-
- The unified `aikit` dispatcher now prefers installed `aikit.scripts.*` package modules over bare script-path imports, avoiding duplicate module objects inside the wheel.
|
|
60
|
-
- The checker document budgets are named constants; the root README budget rises to 22000 bytes (human onboarding that never enters project context), other documents keep 12000.
|
|
61
|
-
- Verified locally (Windows/Python 3.14.6): 252 tests ran, all passed, 1 runtime skip; kit validation returned zero errors and zero warnings; Python 3.10 grammar was verified for the changed sources. Live workers, native client activation and hosted CI remain unverified.
|
|
68
|
+
[Full preserved entry](docs/changelog/v0.12.0.md).
|
|
62
69
|
|
|
63
70
|
## v0.11.0 (2026-10-11)
|
|
64
71
|
|
|
@@ -30,7 +30,7 @@ The root README and Docker Hub Overview are user documentation without a size qu
|
|
|
30
30
|
|
|
31
31
|
Follow [PyPI preparation and release](docs/PYPI.md) for every package release. Synchronize VERSION, pyproject metadata, [description](docs/PYPI_DESCRIPTION.md) and README; verify license/resource inclusion and local-file exclusions in both sdist and wheel, build the wheel from sdist, run strict Twine checks and offline fresh-venv smoke. Preserve existing CI matrix/job names. Refresh the image when packaging changes affect it.
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
A published stable GitHub Release starts PyPI preparation; manual dispatch defaults to build-only validation. Uploads require matching VERSION/tag, the canonical repository, a configured environment/publisher and the owner's human approval. Agents must not approve or bypass a pending deployment on the owner's behalf. Keep environment reviewer protections when allowing future `v*` tags; validate canonical stable versions separately. Build tests have no OIDC permission; upload jobs consume only validated same-run artifacts. Record local, hosted and registry results separately. Preparation alone authorizes no upload, account setup or Git operation.
|
|
34
34
|
|
|
35
35
|
## Repository maintenance
|
|
36
36
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ai-kit-python
|
|
3
|
-
Version: 1.4.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 1.4.4
|
|
4
|
+
Summary: Portable instructions and installer for AI coding agents: project memory, stack rules, model routing, and optional budgeted orchestration.
|
|
5
5
|
Author: Igor Sazonov
|
|
6
6
|
License-Expression: MIT AND Apache-2.0
|
|
7
7
|
Project-URL: Homepage, https://github.com/tigusigalpa/ai-kit
|
|
@@ -121,6 +121,8 @@ The distribution excludes root maintainer AGENTS.md, PROJECT_CONTEXT.md and WIKI
|
|
|
121
121
|
|
|
122
122
|
A separate [Docker image](https://hub.docker.com/r/tigusigalpa/ai-kit) packages the CLI for container use.
|
|
123
123
|
|
|
124
|
+
Package releases follow GitHub Release, automated checks and owner approval before PyPI upload through Trusted Publishing. Future stable tags must match VERSION; manual runs default to validation. See the [release procedure](https://github.com/tigusigalpa/ai-kit/blob/main/docs/PYPI.md#release-to-pypi-with-owner-approval).
|
|
125
|
+
|
|
124
126
|
## Documentation and license
|
|
125
127
|
|
|
126
128
|
- [Repository and full README](https://github.com/tigusigalpa/ai-kit)
|
|
@@ -130,3 +132,7 @@ A separate [Docker image](https://hub.docker.com/r/tigusigalpa/ai-kit) packages
|
|
|
130
132
|
- [Issues](https://github.com/tigusigalpa/ai-kit/issues)
|
|
131
133
|
|
|
132
134
|
AI-KIT's own code and instructions are MIT licensed. Bundled Cloudflare references retain MIT; bundled Strix references retain Apache-2.0. The complete distribution declares `MIT AND Apache-2.0` and includes the corresponding license texts. External runtimes and application dependencies keep their own licenses.
|
|
135
|
+
|
|
136
|
+
## Optional orchestration (v1.4.4)
|
|
137
|
+
|
|
138
|
+
Install with `--with-orchestration` to add scoped Codex helpers and disabled-by-default OpenRouter configuration. `aikit orchestrate` previews selected text tasks, executes only on explicit apply, enforces local admission and capped-key preflight, and retains private observed usage/cost, review and billing reconciliation. It never executes model output. Native helper billing is separate; real trials and savings are unverified. See the [complete guide](https://github.com/tigusigalpa/ai-kit#optional-orchestration).
|
|
@@ -6,14 +6,29 @@
|
|
|
6
6
|
|
|
7
7
|
AI-KIT gives your coding agents persistent project memory, expert stack rules, **Kubernetes-ready** containers, **adaptive model routing**, and native configuration for **11 AI clients**. Add **Cloudflare security-audit** for structured security review and **Strix** for scoped pentesting workflows. One offline installer, zero installer dependencies, changes previewed before you apply them.
|
|
8
8
|
|
|
9
|
-
**[v1.4.2](CHANGELOG.md#v142-2026-10-16)** prepares the first PyPI release with verified source/wheel packages, a version command and manual Trusted Publishing. Publication is pending; [release status and verification](docs/V1_4_2.md) distinguish local checks from registry availability. The published Docker Hub image remains **1.4.1**, with Docker freshness rules, private-file exclusions, shared dialogue memory and all optional modules.
|
|
10
|
-
|
|
11
9
|
[](#install)
|
|
10
|
+
[](https://pypi.org/project/ai-kit-python/)
|
|
12
11
|
[](scripts/install.py)
|
|
13
12
|
[](#-works-with-your-ai-clients)
|
|
14
13
|
[](https://hub.docker.com/r/tigusigalpa/ai-kit)
|
|
15
14
|
[](LICENSE)
|
|
16
15
|
|
|
16
|
+
## Get AI-KIT
|
|
17
|
+
|
|
18
|
+
| 🐳 **[Docker image](https://hub.docker.com/r/tigusigalpa/ai-kit)** | 🐍 **[Python package](https://pypi.org/project/ai-kit-python/)** |
|
|
19
|
+
| --- | --- |
|
|
20
|
+
| **Run AI-KIT in a ready-made container.** Includes Python, Git, the CLI, project templates and optional integration resources. No host Python installation needed. | **Install AI-KIT directly in your Python environment.** The `ai-kit-python` package provides the `aikit` command, project templates and optional integration resources. |
|
|
21
|
+
| **Requires:** Docker with Linux containers. Published platform: `linux/amd64`. | **Requires:** Python 3.10+. No mandatory third-party runtime dependencies. |
|
|
22
|
+
| **Download:** `docker pull tigusigalpa/ai-kit:1.4.3` | **Install or update:** `python -m pip install --upgrade ai-kit-python` |
|
|
23
|
+
| **Try the CLI:** `docker run --rm tigusigalpa/ai-kit:1.4.3 --help` | **Try the CLI:** `aikit --help` |
|
|
24
|
+
| [**Open Docker Hub →**](https://hub.docker.com/r/tigusigalpa/ai-kit) · [Project mount and launch examples](#run-ai-kit-with-docker) | [**Open PyPI →**](https://pypi.org/project/ai-kit-python/) · [Virtual environment and setup guide](#packaged-cli-and-pypi-status) |
|
|
25
|
+
|
|
26
|
+
Both distributions run the same CLI: preview installation into your project, apply the reviewed changes, then bootstrap your coding agent. **Published release: 1.4.3.**
|
|
27
|
+
|
|
28
|
+
**v1.4.4 preparation:** optional [orchestration](#optional-orchestration), native Codex helpers and a budgeted OpenRouter text executor. Package/image builds are local preparation; the published artifacts above remain 1.4.3.
|
|
29
|
+
|
|
30
|
+
**[v1.4.3](CHANGELOG.md#v143-2026-10-16)** is published on [PyPI as `ai-kit-python` 1.4.3](https://pypi.org/project/ai-kit-python/1.4.3/). The **GitHub Release → checks → your approval → PyPI** workflow completed successfully; published file hashes and installation from PyPI in a fresh environment were verified. This release adds future release-tag support, fifteen event regression tests and a live PyPI version badge. [Publication verification](docs/V1_4_3.md#pypi-publication-and-read-back). The **Docker Hub image 1.4.3** is also published and verified; [image verification](docs/V1_4_3.md#docker-hub-143). Shared dialogue memory and all optional modules remain available.
|
|
31
|
+
|
|
17
32
|
[Features](#features-at-a-glance) · [Shared context](#shared-context-from-two-dialogues) · [Web Design](#web-design) · [Docker CLI](#run-ai-kit-with-docker) · [Security workflows](#security-workflows) · [Context7](#library-documentation-with-context7) · [OpenRouter](#working-with-openrouter) · [Quick start](#install) · [Stacks](#-built-for-your-stack) · [Presets](#presets) · [Update](#update-an-application-project)
|
|
18
33
|
|
|
19
34
|
## Features at a glance
|
|
@@ -227,19 +242,19 @@ Every command also runs through one CLI: `python aikit_cli.py install|doctor|rou
|
|
|
227
242
|
|
|
228
243
|
### Packaged CLI and PyPI status
|
|
229
244
|
|
|
230
|
-
AI-KIT
|
|
245
|
+
**AI-KIT 1.4.3 is available on [PyPI](https://pypi.org/project/ai-kit-python/1.4.3/).** Install package `ai-kit-python` and run command `aikit`; Python 3.10+ is required with no mandatory runtime dependencies. The owner-approved GitHub Release workflow published through Trusted Publishing. Both registry files match the tested workflow artifacts; fresh Windows/Python 3.12.14 installation, `aikit --version` and the installed kit check passed. [Publication record](docs/V1_4_3.md#pypi-publication-and-read-back). TestPyPI was not used.
|
|
231
246
|
|
|
232
|
-
|
|
247
|
+
Install into a virtual environment:
|
|
233
248
|
|
|
234
249
|
~~~powershell
|
|
235
250
|
$cliEnv = Join-Path $env:LOCALAPPDATA 'AI-KIT\venv'
|
|
236
251
|
python -m venv "$cliEnv"
|
|
237
252
|
& "$cliEnv\Scripts\Activate.ps1"
|
|
238
|
-
python -m pip install
|
|
253
|
+
python -m pip install ai-kit-python
|
|
239
254
|
aikit --version
|
|
240
255
|
~~~
|
|
241
256
|
|
|
242
|
-
|
|
257
|
+
For an isolated CLI, use `pipx install ai-kit-python`. To install a reviewed source checkout instead, run `python -m pip install .` there. Updating uses `pipx upgrade ai-kit-python` or `python -m pip install --upgrade ai-kit-python`; installed application instructions are updated separately through preview/apply.
|
|
243
258
|
|
|
244
259
|
~~~powershell
|
|
245
260
|
aikit install "C:\Projects\my-app" --agent codex --mode private
|
|
@@ -249,7 +264,22 @@ aikit doctor "C:\Projects\my-app"
|
|
|
249
264
|
|
|
250
265
|
Then open that application in your client and run its bootstrap workflow. The CLI bundles templates and optional integration resources, uses no runtime third-party dependencies and preserves local documents/conflicts. [PyPI description](docs/PYPI_DESCRIPTION.md) contains portable publication copy; the [release guide](docs/PYPI.md) covers local builds, archive/privacy checks, TestPyPI, OIDC publisher fields and later publication.
|
|
251
266
|
|
|
252
|
-
For maintainers, [publish-pypi.yml](.github/workflows/publish-pypi.yml)
|
|
267
|
+
For maintainers, [publish-pypi.yml](.github/workflows/publish-pypi.yml) supports **GitHub Release → checks → your approval → PyPI**. Publishing a stable GitHub Release starts production preparation; the upload waits for your review of environment `pypi`. Manual dispatch remains available and defaults to build-only `validate`. No permanent registry token is needed.
|
|
268
|
+
|
|
269
|
+
#### Publish future releases to PyPI
|
|
270
|
+
|
|
271
|
+
1. Prepare the new version through the normal reviewed Git workflow. For example, put `1.5.0` in `VERSION`, update release documentation and complete the kit/package checks. Assess Docker impact through the existing image-refresh procedure. The tag's source must contain the updated release workflow and event guard.
|
|
272
|
+
2. Create a new tag such as `v1.5.0` at that prepared commit. **The tag and its committed `VERSION` must match exactly.** Preserve previous tags and published versions.
|
|
273
|
+
3. On GitHub, create and publish a normal Release for that tag. `release: published` starts the workflow automatically. Saving a draft, pushing a tag alone, editing an existing Release or marking it as a prerelease does not request automatic production publication.
|
|
274
|
+
4. Open **Actions → Prepare or publish Python package**. Its `build` job checks the release identity, runs kit validation and behavioral tests, builds a source archive and wheel, validates metadata/resources/privacy and the description, then smoke-installs the wheel. A failed check prevents the upload job from proceeding.
|
|
275
|
+
5. After checks pass, the `pypi` job waits at **Review deployments**. Inspect the tag, commit and successful checks, select environment **pypi**, and click **Approve and deploy**. Required reviewer: repository owner `tigusigalpa`. **This confirmation is a human step; agents must not approve or bypass it on your behalf.** For solo maintenance the owner may approve a run they initiated.
|
|
276
|
+
6. GitHub exchanges its OIDC identity for a short-lived PyPI credential and uploads only the same-run validated artifacts. The upload job builds no code. Verify the new version on [PyPI](https://pypi.org/project/ai-kit-python/), compare its file hashes with the run artifacts, and check installation in a fresh environment. The README PyPI badge then follows the published version automatically.
|
|
277
|
+
|
|
278
|
+
The live `pypi` deployment policy accepts **tags `v*`**, so future versions do not need a new allowlist entry. Branches are excluded. The event guard separately requires a canonical stable tag of the form `vMAJOR.MINOR.PATCH`, the canonical repository, a published non-draft/non-prerelease Release and matching `VERSION`. Tests and your approval remain required for each production run.
|
|
279
|
+
|
|
280
|
+
For a manual run, choose **Run workflow**, select the versioned tag, set `destination=pypi`, and type the exact version in `version`. Uploads use the same approval gate. `destination=validate` only builds and tests; `testpypi` is an explicit separate registry with its own environment/publisher setup. Prerelease trials can use that manual route. Republishing the same PyPI version fails rather than replacing or silently skipping files.
|
|
281
|
+
|
|
282
|
+
The Release path is included in **v1.4.3 and later tagged source**. Existing `v1.4.2` stays unchanged. The complete [release procedure](docs/PYPI.md#release-to-pypi-with-owner-approval) includes activation, recovery and configuration verification. Each stable release still needs your human approval before PyPI upload.
|
|
253
283
|
|
|
254
284
|
## Run AI-KIT with Docker
|
|
255
285
|
|
|
@@ -288,7 +318,7 @@ The closed `.dockerignore` includes distribution sources and excludes Git, perso
|
|
|
288
318
|
|
|
289
319
|
The ready-to-publish [Docker Hub Overview](docs/DOCKER_HUB_OVERVIEW.md) covers capabilities, release changes and launch examples; maintain it for every image release using the [release checklist](CONTRIBUTING.md#docker-hub-releases).
|
|
290
320
|
|
|
291
|
-
**Published image:** [tigusigalpa/ai-kit:1.4.
|
|
321
|
+
**Published image:** [tigusigalpa/ai-kit:1.4.3](https://hub.docker.com/r/tigusigalpa/ai-kit/tags?name=1.4.3), for `linux/amd64`. The remote digest and configuration match the tested build; [publication record](docs/V1_4_3.md#docker-hub-143). Download with `docker pull tigusigalpa/ai-kit:1.4.3`. To reuse the local build examples, run `docker tag tigusigalpa/ai-kit:1.4.3 ai-kit:1.4.3` and set `$kitVersion` (PowerShell) or `kit_version` (Bash) to `1.4.3`; alternatively use the full image name. Existing version tags are preserved; no `latest` tag or automated registry push is configured.
|
|
292
322
|
|
|
293
323
|
### Preview and apply on Windows
|
|
294
324
|
|
|
@@ -372,7 +402,7 @@ Its `ai-kit:local` image with `imagePullPolicy: Never` is a local-cluster exampl
|
|
|
372
402
|
~~~sh
|
|
373
403
|
python scripts/check_kit.py
|
|
374
404
|
python -m unittest discover -s tests -v
|
|
375
|
-
python tests/docker_smoke.py ai-kit:1.4.
|
|
405
|
+
python tests/docker_smoke.py ai-kit:1.4.4 --context .
|
|
376
406
|
~~~
|
|
377
407
|
|
|
378
408
|
Use the tag you actually built. The Docker smoke uses disposable synthetic projects, no runtime network and Docker's actual ignore engine; it checks preview/apply, all optional modules, preservation, rerun stability, read-only refusal and SIGTERM. CI builds and tests a local image without publishing it. [Maintainer contract and results](docs/DOCKER.md) records pins, packaging, checks and unavailable environments.
|
|
@@ -451,7 +481,7 @@ Exit codes: 0 success, 1 refusal, 2 unresolved conflicts. The installer works of
|
|
|
451
481
|
|
|
452
482
|

|
|
453
483
|
|
|
454
|
-
Routing recommends controls; confirm actual client activation. Permission rules and ignores reduce risk without being a security boundary. The
|
|
484
|
+
Routing recommends controls; confirm actual client activation. Permission rules and ignores reduce risk without being a security boundary. The benchmark requires its own reviewed protocol worker. Optional OpenRouter text execution is separately enabled and explicitly applied; native client activation and end-to-end savings require independent verification.
|
|
455
485
|
|
|
456
486
|
## Measure, recommend and select context
|
|
457
487
|
|
|
@@ -1032,13 +1062,142 @@ Normalized messages, review files and exports can contain private material. The
|
|
|
1032
1062
|
|
|
1033
1063
|
Files are created exclusively. Edited or conflicting existing artifacts are preserved and cause refusal; exact reruns are stable. Interrupted multi-file writes can leave completed or partial artifacts: inspect the session and use a fresh workspace when necessary. There is no automatic overwrite/recovery or synchronization loop. Source files are never modified. [Full contract, schemas and checks](docs/DIALOGUE_MEMORY.md).
|
|
1034
1064
|
|
|
1065
|
+
## Optional orchestration
|
|
1066
|
+
|
|
1067
|
+
**Prepared for v1.4.4.** Use native Codex helpers for explicitly delegated local work and the bounded OpenRouter executor for selected text tasks. Both are optional. Installing the module performs no API calls, creates no credentials, changes no global Codex configuration and launches no agents. The published PyPI/Docker Hub 1.4.3 artifacts do not contain this module; use the prepared 1.4.4 wheel, source checkout or local image until that release is published.
|
|
1068
|
+
|
|
1069
|
+
### Enable the module in an existing project
|
|
1070
|
+
|
|
1071
|
+
Use a CLI built from this revision. Preview against the same application path and retain the existing client selection:
|
|
1072
|
+
|
|
1073
|
+
```powershell
|
|
1074
|
+
aikit install "C:\Projects\my-app" --with-orchestration
|
|
1075
|
+
aikit install "C:\Projects\my-app" --with-orchestration --apply --check
|
|
1076
|
+
```
|
|
1077
|
+
|
|
1078
|
+
For a first Codex installation, add `--agent codex` to both commands. Existing selected agents, settings and other enabled modules persist. Orchestration is outside all presets, including strict. Its configuration starts with `enabled: false` and `model: null`; API execution needs separate configuration and `--apply`.
|
|
1079
|
+
|
|
1080
|
+
The installer adds:
|
|
1081
|
+
|
|
1082
|
+
| File | Ownership and purpose |
|
|
1083
|
+
| --- | --- |
|
|
1084
|
+
| `ai-kit/ORCHESTRATION.md` | Managed execution, authorization, accounting and recovery rules. |
|
|
1085
|
+
| `ai-kit/orchestration.json` | Created once, then preserved as project configuration. |
|
|
1086
|
+
| `.codex/agents/aikit_explorer.toml` | Read-only evidence gathering, only when Codex is selected. |
|
|
1087
|
+
| `.codex/agents/aikit_worker.toml` | Narrow implementation/mechanical work, only for Codex. |
|
|
1088
|
+
| `.codex/agents/aikit_reviewer.toml` | Independent read-only review, only for Codex. |
|
|
1089
|
+
| `ai-kit/.orchestration/` | Private runtime state, outputs and exclusive lock; created only when executing. |
|
|
1090
|
+
|
|
1091
|
+
Private mode ignores helpers and configuration; team mode can share those instructions while runtime state remains ignored. Ignore rules do not remove previously tracked files. Root private maintainer documents and runtime state remain excluded from packages and Docker builds. Existing helper edits become normal upgrade conflicts; existing `.codex/config.toml` and unrelated helper files are preserved. Deselecting Codex requires normal adapter review/retirement.
|
|
1092
|
+
|
|
1093
|
+
### Delegate bounded work to Codex helpers
|
|
1094
|
+
|
|
1095
|
+
The native helper model/effort defaults are rendered from AI-KIT's canonical OpenAI catalogue: explorer and worker use the cheap role, reviewer the work role. Verify availability in your actual Codex session and edit/accept local adaptations when needed. These files inherit the parent provider, permissions and tools; they do not connect OpenRouter or change the parent's active model. Start a fresh session if required for discovery. [Official custom-agent configuration](https://learn.chatgpt.com/docs/agent-configuration/subagents).
|
|
1096
|
+
|
|
1097
|
+
Example task for the main agent:
|
|
1098
|
+
|
|
1099
|
+
> Inspect the parser change. Delegate read-only path discovery to aikit_explorer. Give aikit_worker only the identified parser and its regression tests, with exact acceptance criteria. Ask aikit_reviewer to review the resulting diff independently. Do not delegate recursively. Return the actual checks and unresolved risks.
|
|
1100
|
+
|
|
1101
|
+
Use the helpers only with explicit task/host authorization. Define file scope and expected evidence before delegation; keep large logs out of the parent thread. A simple task can stay with one agent. Native helpers consume their host's subscription/API limits: the OpenRouter budget below does not govern their spend. End-to-end savings require all planning, helper and review costs, including failed work.
|
|
1102
|
+
|
|
1103
|
+
### Configure the OpenRouter executor
|
|
1104
|
+
|
|
1105
|
+
Edit `ai-kit/orchestration.json` deliberately. Example configuration, using a placeholder that you must replace with a verified available text-model ID:
|
|
1106
|
+
|
|
1107
|
+
```json
|
|
1108
|
+
{
|
|
1109
|
+
"schema": 1,
|
|
1110
|
+
"enabled": true,
|
|
1111
|
+
"model": "provider/model-id",
|
|
1112
|
+
"budget_usd": "1.00",
|
|
1113
|
+
"request_reserve_usd": "0.10",
|
|
1114
|
+
"max_requests": 10,
|
|
1115
|
+
"max_input_bytes": 16000,
|
|
1116
|
+
"max_output_tokens": 1024,
|
|
1117
|
+
"timeout_seconds": 60,
|
|
1118
|
+
"max_price": {"prompt": "1", "completion": "3", "request": "0"}
|
|
1119
|
+
}
|
|
1120
|
+
```
|
|
1121
|
+
|
|
1122
|
+
Select an exact model, not an automatic/free router alias. Confirm that the model supports text completions and the requested output limit. Price ceilings are USD per **million** prompt/completion tokens and USD per request. They filter providers; they are not a pre-billing quote. Set the request ceiling to zero to exclude per-request-priced routes. The runner disables model/provider fallbacks and streaming, sends no tools/plugins, and has no recursive agent or automatic retry loop. [Provider price filters](https://openrouter.ai/docs/guides/routing/provider-selection#max-price).
|
|
1123
|
+
|
|
1124
|
+
Create a **dedicated OpenRouter key** in the provider dashboard. Give it a positive, non-resetting spending limit no greater than `budget_usd`, include BYOK usage in that limit, and reserve it exclusively for this workflow. The runner verifies these settings using `GET /api/v1/key` before inference. It does not create keys or raise their limits. The key must have at least one request reserve remaining. Configure OPENROUTER_API_KEY through your approved secret manager or process environment; never put its value in a prompt, tracked file, task JSON or command-line argument. The CLI never prints it. [Key and budget limits](https://openrouter.ai/docs/api/reference/limits).
|
|
1125
|
+
|
|
1126
|
+
The dollar budget is lifetime accounting for this project's retained ledger, not an automatically resetting daily allowance. Local reservations prevent admitting more work than the remaining recorded budget. An already-sent request can exceed its reserve; server-side key caps provide an additional boundary with the provider's billing semantics. A local timeout does not prove cancellation or zero spend. Keep reserves conservative and input/output limits small.
|
|
1127
|
+
|
|
1128
|
+
### Prepare a task and review the outgoing scope
|
|
1129
|
+
|
|
1130
|
+
Create a UTF-8 task file inside the application, for example `tasks/classify.json`:
|
|
1131
|
+
|
|
1132
|
+
```json
|
|
1133
|
+
{
|
|
1134
|
+
"schema": 1,
|
|
1135
|
+
"id": "comments-001",
|
|
1136
|
+
"instruction": "Classify each supplied comment using bug, feature or other. Preserve each original id. Mark uncertain rows needs_review. Return JSON text and do not omit rows.",
|
|
1137
|
+
"input_files": ["data/comments-sample.txt"]
|
|
1138
|
+
}
|
|
1139
|
+
```
|
|
1140
|
+
|
|
1141
|
+
The input list is explicit and project-relative. There is no implicit repository traversal or upload of project rules/history. Review the instruction and every selected file before permitting data to leave the machine. Hidden/credential paths, linked paths, traversal, nonregular files and oversized serialized messages are refused. Filename checks cannot recognize secrets embedded in ordinary text. Only selected text reaches `https://openrouter.ai/api/v1/chat/completions`; model output is treated as untrusted data.
|
|
1142
|
+
|
|
1143
|
+
```powershell
|
|
1144
|
+
# Preview: no key needed, no writes and no network.
|
|
1145
|
+
aikit orchestrate run "C:\Projects\my-app" --task tasks/classify.json
|
|
1146
|
+
|
|
1147
|
+
# Execute only after reviewing the selected content and configured budget.
|
|
1148
|
+
aikit orchestrate run "C:\Projects\my-app" --task tasks/classify.json --apply
|
|
1149
|
+
|
|
1150
|
+
# Read local accounting without network.
|
|
1151
|
+
aikit orchestrate status "C:\Projects\my-app"
|
|
1152
|
+
```
|
|
1153
|
+
|
|
1154
|
+
Preview reports the model, selected paths, serialized message bytes, request/config fingerprint, reserve and output path. An exact completed rerun uses its retained result; changing inputs/configuration while reusing the task ID refuses. Use a new opaque ID for a deliberately new task. A changed/deleted prior output refuses instead of silently rebilling.
|
|
1155
|
+
|
|
1156
|
+
### Review results and account for costs
|
|
1157
|
+
|
|
1158
|
+
Each completed response is stored under `ai-kit/.orchestration/outputs/<id>.json`; it is never executed or applied to application code. A main agent or human must check coverage, invariants and uncertain cases. Passing transport validation is not semantic correctness.
|
|
1159
|
+
|
|
1160
|
+
```powershell
|
|
1161
|
+
# Preview an explicit acceptance decision after inspecting the result.
|
|
1162
|
+
aikit orchestrate review "C:\Projects\my-app" --task-id comments-001 --outcome accepted
|
|
1163
|
+
|
|
1164
|
+
aikit orchestrate review "C:\Projects\my-app" --task-id comments-001 --outcome accepted --apply
|
|
1165
|
+
```
|
|
1166
|
+
|
|
1167
|
+
Use `rejected` for a reviewed incorrect result. Acceptance binds to the original output hash and requires completed accounting. Status reports requested/served model, generation ID, input/output/cached/reasoning tokens when available, duration, billed USD, review state, incomplete accounting and cost per accepted result. All attempts contribute to spend, including failed and rejected results. Prompt text, input files, raw provider errors and credentials are absent from the accounting ledger; private output files still contain the model's text and need normal access controls. On Windows, filesystem ACLs control access; private modes are not a sandbox.
|
|
1168
|
+
|
|
1169
|
+
Observed `usage.cost` is recorded directly; no price-based token estimate is substituted. Missing token/cost fields remain unknown. Native Codex planning/review costs and manual review time remain separate; this ledger alone cannot establish end-to-end savings. The existing benchmark protocol still needs a reviewed worker for a controlled experiment; this text executor does not silently implement `aikit-worker-v1` or feed mixed-model evidence into adaptive learning. [Usage accounting](https://openrouter.ai/docs/cookbook/administration/usage-accounting).
|
|
1170
|
+
|
|
1171
|
+
### Failures, concurrency and recovery
|
|
1172
|
+
|
|
1173
|
+
- An exclusive project lock serializes applies. A reservation is saved **before** each completion POST; a crash cannot make a potentially billed attempt disappear.
|
|
1174
|
+
- Unknown cost, a pending reservation, a timeout or a cost above the reserve blocks further inference. No automatic retry occurs, including after 429/5xx errors. Known charges for malformed/truncated/wrong-model/tool-call responses are retained.
|
|
1175
|
+
- If a generation ID is known, preview then apply a billing read-back. This never reruns inference:
|
|
1176
|
+
|
|
1177
|
+
```powershell
|
|
1178
|
+
aikit orchestrate reconcile "C:\Projects\my-app" --task-id comments-001
|
|
1179
|
+
aikit orchestrate reconcile "C:\Projects\my-app" --task-id comments-001 --apply
|
|
1180
|
+
```
|
|
1181
|
+
|
|
1182
|
+
- Reconciliation uses `GET /api/v1/generation?id=...`, requires the same generation ID and actual `total_cost`, then settles a valid retained result or a failed attempt. Unavailable billing stays unresolved.
|
|
1183
|
+
- A timeout without a generation ID needs operator investigation in OpenRouter billing. Preserve the state; do not delete it or replace unknown spend with zero. Automatic recovery for that ambiguous case is intentionally unavailable.
|
|
1184
|
+
- A process crash can leave `run.lock`. Confirm its owner stopped before removing that lock only; pending accounting must still be resolved. Never prune a shared Docker builder or delete the project ledger to bypass a budget.
|
|
1185
|
+
|
|
1186
|
+
Exit codes: **0** for preview, completed work or a status report; **1** for refusal/configuration/path/network preflight failure; **2** for a failed or uncertain inference result. Status itself remains read-only even when it reports unresolved accounting.
|
|
1187
|
+
|
|
1188
|
+
### Python package, Docker and verification boundaries
|
|
1189
|
+
|
|
1190
|
+
The prepared 1.4.4 wheel includes the executor, templates, native helper sources and tests, with no new runtime dependencies. Docker must be rebuilt from this revision: use `ai-kit:dev` or `ai-kit:1.4.4` for local verification. Published `tigusigalpa/ai-kit:1.4.3` stays unchanged. Offline preview/status need no network; a future real `run --apply` needs outbound HTTPS and an intentionally supplied key, with a writable project mount. A read-only project mount cannot persist reservations or outputs. No Docker socket or privileged mode is needed.
|
|
1191
|
+
|
|
1192
|
+
Code and tests use synthetic inputs and substituted provider responses. Real API calls, native client activation, account availability and measured savings remain separate. [Maintainer verification and limitations](docs/ORCHESTRATION.md).
|
|
1193
|
+
|
|
1035
1194
|
## Working with OpenRouter
|
|
1036
1195
|
|
|
1037
1196
|

|
|
1038
1197
|
|
|
1039
1198
|
**AI-KIT rules can travel with your API requests.** OpenRouter can provide model access while a client or adapter supplies selected AI-KIT instructions, project facts and task material. This makes the kit useful beyond native coding-client configuration.
|
|
1040
1199
|
|
|
1041
|
-
**Integration status:**
|
|
1200
|
+
**Integration status:** The prepared v1.4.4 source adds the explicit [bounded text executor](#optional-orchestration). Instruction selection, dialogue exports, routing recommendations and opt-in measurements remain available. The general coding-agent/tool-loop architecture below is still a proposal; the shipped executor sends only explicitly selected text and never executes model output. Installing AI-KIT configures no API key or paid call.
|
|
1042
1201
|
|
|
1043
1202
|
### What can be reused
|
|
1044
1203
|
|
|
@@ -1121,9 +1280,9 @@ For a verified model/provider supporting explicit text-block caching, a stable p
|
|
|
1121
1280
|
|
|
1122
1281
|
Inspect `usage.prompt_tokens_details.cached_tokens`, `cache_write_tokens` when supplied, input/output/reasoning usage and `usage.cost`. OpenRouter reports these usage and billing fields; missing values remain unknown. A cache write may have a cost, so a warm-cache hit rate alone cannot establish savings. [Usage accounting](https://openrouter.ai/docs/cookbook/administration/usage-accounting).
|
|
1123
1282
|
|
|
1124
|
-
|
|
1283
|
+
The bounded text executor records observed cached tokens; a broader adapter could map observed cached tokens to AI-KIT's `cached_input_tokens`, record complete billed attempt cost and retain actual served model/provider identity. Include failed requests, retries, tool loops and review calls. Keep prompts, code, credentials and raw debug output out of measurement journals. The existing [benchmark protocol](docs/BENCHMARK.md#worker-protocol) can host a separately implemented worker; the text executor is not a benchmark-protocol worker. Compare equivalent tasks and reviewed correctness, and control cold/warm cache conditions explicitly.
|
|
1125
1284
|
|
|
1126
|
-
###
|
|
1285
|
+
### Further coding-agent adapter scope
|
|
1127
1286
|
|
|
1128
1287
|
Start with read-only analysis and code review: preview selected files and outgoing content, resolve model capabilities, enforce agreed request/time/spend limits, then capture response/usage. Add HTTP timeouts and bounded retries with complete accounting. An API key belongs in an approved external secret mechanism; confirm the destination and permitted source-data scope before sending code.
|
|
1129
1288
|
|
|
@@ -86,7 +86,7 @@ CI and optional integrations stay outside presets. Read the audit, Strix, Contex
|
|
|
86
86
|
|
|
87
87
|
## Unified CLI
|
|
88
88
|
|
|
89
|
-
`python aikit_cli.py --help` lists commands; pip exposes `aikit`. [Dialogue memory](docs/DIALOGUE_MEMORY.md) imports/merges two dialogues and exports reviewed ChatGPT/OpenRouter references. [Docker](README.md#run-ai-kit-with-docker) mounts an application. [PyPI](docs/PYPI.md) covers
|
|
89
|
+
`python aikit_cli.py --help` lists commands; pip exposes `aikit`. [Dialogue memory](docs/DIALOGUE_MEMORY.md) imports/merges two dialogues and exports reviewed ChatGPT/OpenRouter references. [Docker](README.md#run-ai-kit-with-docker) mounts an application. [PyPI](docs/PYPI.md) covers checks and owner-approved release publishing; preparation uploads nothing. Standalone scripts and Makefile also work.
|
|
90
90
|
|
|
91
91
|
## Maintaining AI-KIT itself
|
|
92
92
|
|
|
@@ -98,8 +98,10 @@ CI and optional integrations stay outside presets. Read the audit, Strix, Contex
|
|
|
98
98
|
|
|
99
99
|
## Boundaries
|
|
100
100
|
|
|
101
|
-
AI-KIT
|
|
101
|
+
AI-KIT installs instructions and opt-in helpers. The optional text executor requires explicit apply and configured budget/key limits. Benchmark protocol workers and native client activation remain separate. Ignore/permission rules are not a sandbox; live savings require evidence.
|
|
102
102
|
|
|
103
103
|
## Use this repository as a skill
|
|
104
104
|
|
|
105
|
-
This
|
|
105
|
+
This repository is the skill. For Claude Code, clone it into `~/.claude/skills/ai-kit`; for other clients, use a reviewed checkout beside the project. Follow [README](README.md), [Core](template/ai-kit/CORE.md), [adapters](template/ai-kit/ADAPTERS.md), [containers](template/ai-kit/CONTAINERS.md), [routing](template/ai-kit/router/POLICY.md) and [contribution rules](CONTRIBUTING.md).
|
|
106
|
+
|
|
107
|
+
For explicitly requested [optional orchestration](template/ai-kit/ORCHESTRATION.md), preview installation with --with-orchestration; use `aikit orchestrate run|status|review|reconcile`. Native helpers and paid external requests require separate explicit execution; no real calls during integration tests.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.4.4
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ai-kit-python
|
|
3
|
-
Version: 1.4.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 1.4.4
|
|
4
|
+
Summary: Portable instructions and installer for AI coding agents: project memory, stack rules, model routing, and optional budgeted orchestration.
|
|
5
5
|
Author: Igor Sazonov
|
|
6
6
|
License-Expression: MIT AND Apache-2.0
|
|
7
7
|
Project-URL: Homepage, https://github.com/tigusigalpa/ai-kit
|
|
@@ -121,6 +121,8 @@ The distribution excludes root maintainer AGENTS.md, PROJECT_CONTEXT.md and WIKI
|
|
|
121
121
|
|
|
122
122
|
A separate [Docker image](https://hub.docker.com/r/tigusigalpa/ai-kit) packages the CLI for container use.
|
|
123
123
|
|
|
124
|
+
Package releases follow GitHub Release, automated checks and owner approval before PyPI upload through Trusted Publishing. Future stable tags must match VERSION; manual runs default to validation. See the [release procedure](https://github.com/tigusigalpa/ai-kit/blob/main/docs/PYPI.md#release-to-pypi-with-owner-approval).
|
|
125
|
+
|
|
124
126
|
## Documentation and license
|
|
125
127
|
|
|
126
128
|
- [Repository and full README](https://github.com/tigusigalpa/ai-kit)
|
|
@@ -130,3 +132,7 @@ A separate [Docker image](https://hub.docker.com/r/tigusigalpa/ai-kit) packages
|
|
|
130
132
|
- [Issues](https://github.com/tigusigalpa/ai-kit/issues)
|
|
131
133
|
|
|
132
134
|
AI-KIT's own code and instructions are MIT licensed. Bundled Cloudflare references retain MIT; bundled Strix references retain Apache-2.0. The complete distribution declares `MIT AND Apache-2.0` and includes the corresponding license texts. External runtimes and application dependencies keep their own licenses.
|
|
135
|
+
|
|
136
|
+
## Optional orchestration (v1.4.4)
|
|
137
|
+
|
|
138
|
+
Install with `--with-orchestration` to add scoped Codex helpers and disabled-by-default OpenRouter configuration. `aikit orchestrate` previews selected text tasks, executes only on explicit apply, enforces local admission and capped-key preflight, and retains private observed usage/cost, review and billing reconciliation. It never executes model output. Native helper billing is separate; real trials and savings are unverified. See the [complete guide](https://github.com/tigusigalpa/ai-kit#optional-orchestration).
|