ai-kit-python 1.4.2__tar.gz → 1.4.3__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.3}/.agents/skills/project-continuity/SKILL.md +2 -2
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/.github/workflows/publish-pypi.yml +17 -8
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/CHANGELOG.md +9 -5
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/CONTRIBUTING.md +1 -1
- {ai_kit_python-1.4.2/ai_kit_python.egg-info → ai_kit_python-1.4.3}/PKG-INFO +3 -1
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/README.md +22 -6
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/SKILL.md +1 -1
- ai_kit_python-1.4.3/VERSION +1 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3/ai_kit_python.egg-info}/PKG-INFO +3 -1
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/ai_kit_python.egg-info/SOURCES.txt +6 -0
- ai_kit_python-1.4.3/docs/PYPI.md +103 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/PYPI_DESCRIPTION.md +2 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/V1_4_2.md +17 -2
- ai_kit_python-1.4.3/docs/V1_4_3.md +33 -0
- ai_kit_python-1.4.3/docs/history/v0.13.0-changelog.md +8 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/check_distribution.py +59 -4
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/check_kit.py +1 -1
- ai_kit_python-1.4.3/tests/test_pypi_events.py +201 -0
- 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.3}/.agents/skills/go-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/.agents/skills/laravel-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/.agents/skills/moodle-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/.agents/skills/python-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/.dockerignore +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/.gitattributes +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/.github/workflows/check-kit.yml +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/.gitignore +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/BOOTSTRAP_PROMPT.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/CLAUDE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/Dockerfile +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/KIMI.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/LICENSE +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/MANIFEST.in +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/MANUS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/Makefile +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/SECURITY.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/__init__.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/ai-kit/ADAPTERS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/ai-kit/CONTAINERS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/ai-kit/ENGINEERING.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/ai-kit/INTENT.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/ai-kit/MODELS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/ai-kit/SKILLS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/ai-kit/adr/0001-adaptive-model-routing.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/ai-kit/stacks/GO.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/ai-kit/stacks/LARAVEL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/ai-kit/stacks/MOODLE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/ai-kit/stacks/PYTHON.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/ai_kit_python.egg-info/dependency_links.txt +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/ai_kit_python.egg-info/entry_points.txt +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/ai_kit_python.egg-info/top_level.txt +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/aikit_cli.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/deploy/k8s/install-preview-job.yaml +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docker/build-requirements.txt +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docker/check_version.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docker/pypi-requirements.txt +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/ADAPTER_PATH_FIX.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/BENCHMARK.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/CONTEXT7.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/DECISIONS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/DEVELOPMENT_PLAN.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/DIALOGUE_MEMORY.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/DOCKER.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/DOCKER_HUB_OVERVIEW.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/EVALUATION.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/IMPLEMENTATION.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/MANUS_REVIEW.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/SECURITY_AUDIT.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/STRIX.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/V0_5_0.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/V0_6_4.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/V1_4_0.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/V1_4_1.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/WEB_DESIGN.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/WINDOWS_CI_FIX.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/adr/0000-template.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/adr/0001-adaptive-model-routing.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/adr/0002-template-separation.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/adr/0003-agent-registry-and-router.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/adr/0004-onboarding-and-project-facts.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/adr/0005-client-settings-ownership.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/adr/0006-routing-evidence-and-local-measurements.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/adr/0007-generated-client-configuration-and-presets.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/adr/0008-unified-cli-and-fact-drift.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/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.3}/docs/adr/0010-metrics-analysis-and-gemini-verification.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/adr/0011-evidence-lifecycle-and-evaluation.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/adr/0012-measurement-led-routing.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/adr/0013-docker-cli-image.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/adr/0014-local-dialogue-memory.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/history/original-bundle-checks.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/history/v0.1-changelog.txt +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/history/v0.10-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/history/v0.2-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/history/v0.3-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/history/v0.4-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/history/v0.5-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/history/v0.6.4-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/history/v0.6.5-v0.9-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/history/v1.1.0-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/history/v1.2.0-changelog.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/docs/history/verification-before-measurements.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/integrations/CONVENTIONS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/integrations/README.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/integrations/agents.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/integrations/ai-kit-check.yml +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/integrations/ai-kit-cline.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/integrations/ai-kit-roo.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/integrations/ai-kit-windsurf.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/integrations/ai-kit.mdc +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/integrations/claude-settings.data-ask.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/integrations/claude-settings.git-ask.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/integrations/copilot-instructions.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/integrations/security-audit.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/integrations/strix.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/pyproject.toml +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/__init__.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/adapters.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/adaptive.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/adr.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/benchmark.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/changelog.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/context.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/docker_test_usage.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/doctor.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/evaluate.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/install.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/learning.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/memory.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/memory_import.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/memory_store.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/metrics.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/scripts/router.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/setup.cfg +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/hooks/session-start.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/hooks/session-start.sh +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/ai-kit-bootstrap/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/ai-kit-review/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/ai-kit-sync-context/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/context7-docs/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/design-extract/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/dotnet-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/filament-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/frontend-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/go-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/infra-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/java-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/laravel-blade-ui/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/laravel-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/library-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/moodle-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/php-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/project-continuity/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/python-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/rust-work/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/security-audit/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/security-audit/agents/openai.yaml +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/strix/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/strix/agents/openai.yaml +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/ui-review/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/.agents/skills/web-design/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/AGENTS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/CHANGELOG.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/CLAUDE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/GEMINI.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/KIMI.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/MANUS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/PROJECT_CONTEXT.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/README.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/WIKI.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/ADAPTERS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/BOOTSTRAP.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/CONTAINERS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/CONTEXT7.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/CORE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/ENGINEERING.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/MCP.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/METRICS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/SECURITY-AUDIT.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/SECURITY.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/SKILLS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/STRIX.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/UPSTREAM.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/WEB-DESIGN.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/profiles/OWNER.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/project.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/router/POLICY.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/router/providers/anthropic.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/router/providers/anthropic.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/router/providers/gemini.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/router/providers/gemini.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/router/providers/kimi.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/router/providers/kimi.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/router/providers/local.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/router/providers/local.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/router/providers/openai.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/router/providers/openai.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/router/routing.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/router/selection.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/settings.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/stacks/DOTNET.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/stacks/FILAMENT.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/stacks/FRONTEND.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/stacks/GO.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/stacks/INFRA.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/stacks/JAVA.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/stacks/LARAVEL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/stacks/LIBRARY.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/stacks/MOODLE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/stacks/PHP.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/stacks/PYTHON.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/stacks/RUST.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/AI-AND-LLM.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/ATTACK-CLASSES.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/CLIENT-SIDE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/CLOUD-AND-DEPLOYMENT.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/DATA-ISOLATION-AND-LIFECYCLE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/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.3}/template/ai-kit/vendor/security-audit/HUNTING.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/LICENSE +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/MEMORY-SAFETY-AND-BINARY.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/PROTOCOLS-RPC-AND-MESSAGING.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/RECONNAISSANCE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/RESOURCE-EXHAUSTION-AND-AVAILABILITY.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/SUPPLY-CHAIN-AND-RELEASE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/VALIDATION-AND-REPORTING.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/WEB-PROTOCOL-AND-AUTH.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/report-schema.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/validate-coverage-ledger.cjs +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/validate-coverage-ledger.test.cjs +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/validate-findings.cjs +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/security-audit/validate-findings.test.cjs +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/strix/LICENSE +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/strix/api-security-testing/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/strix/application-security-testing/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/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.3}/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.3}/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.3}/template/ai-kit/vendor/strix/managed-pentesting-with-strix/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/strix/owasp-top-10-testing/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/strix/penetration-testing-with-strix/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/vendor/strix/web-app-penetration-testing/SKILL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/web-design/LARAVEL.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/web-design/LIBRARIES.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/web-design/REVIEW.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/ai-kit/web-design/TOOLS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/docs/DECISIONS.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/docs/adr/0000-template.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/docs/design/ACCEPTANCE.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/docs/design/BRIEF.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/template/docs/design/SYSTEM.md +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/templates/agent-secrets.ignore +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/templates/gitignore.private +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/templates/gitignore.team +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/build_distribution.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/docker_smoke.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/fixtures/create-junction.ps1 +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/fixtures/golden/claude-settings-local.json +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_adapters.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_aikit.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_benchmark.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_check_kit.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_context.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_context7.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_context_selection.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_distribution.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_docker_image.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_docker_test_usage.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_doctor.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_evaluate.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_install.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_learning.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_memory.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_metrics.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_native.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_onboarding.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_router.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_security_audit.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_strix.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/test_web_design.py +0 -0
- {ai_kit_python-1.4.2 → ai_kit_python-1.4.3}/tests/wheel_smoke.py +0 -0
|
@@ -21,14 +21,14 @@ For measurement-led changes, test schema 1/2/3 compatibility, fixed A/B controls
|
|
|
21
21
|
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
22
|
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
23
|
When editing onboarding docs, verify examples against the actual CLI/defaults and preserve links to policy owners. Keep installation, native discovery, and measured execution claims distinct. 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.
|
|
24
|
-
For [PyPI releases](../../../docs/PYPI.md), verify
|
|
24
|
+
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
25
|
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
26
|
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
27
|
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
28
|
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
29
|
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
30
|
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
|
|
31
|
+
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 owner-approved release path](../../../docs/V1_4_3.md): 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
32
|
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
33
|
For the current Docker/privacy release, follow [v1.4.1 preparation](../../../docs/V1_4_1.md); 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
34
|
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,16 @@
|
|
|
1
1
|
# AI-KIT changelog
|
|
2
2
|
|
|
3
|
+
## v1.4.3 (2026-10-16)
|
|
4
|
+
|
|
5
|
+
- Added a live PyPI version badge to README.
|
|
6
|
+
- Added stable GitHub Release publication preparation, event/version/repository guards and regression tests; manual validation stays the default. PyPI upload waits for the owner. The live tag policy now accepts v* with reviewer protections preserved. [Procedure](docs/PYPI.md#release-to-pypi-with-owner-approval). Archived v0.13.0 text intact to retain the changelog budget.
|
|
7
|
+
- Added fifteen event regression tests. Before release labeling, 32 hosted CI checks and build-only workflow verification passed; kit checks, 368 packaged Linux tests (two platform skips), archive/privacy/Twine/offline wheel checks and Docker smoke also passed. [Release verification](docs/V1_4_3.md).
|
|
8
|
+
- Verified 1.4.3 CLI/archive/image identity, offline packaging, Docker smoke, 368 Linux tests and preserved private/team upgrades from v1.4.2.
|
|
9
|
+
|
|
3
10
|
## v1.4.2 (2026-10-16)
|
|
4
11
|
|
|
5
12
|
- 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
|
-
-
|
|
13
|
+
- 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
14
|
- Fixed quoted Twine wildcards for Windows CI.
|
|
8
15
|
- 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
16
|
- 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,10 +53,7 @@
|
|
|
46
53
|
|
|
47
54
|
## v0.13.0 (2026-10-11)
|
|
48
55
|
|
|
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.
|
|
56
|
+
[Archived release entry](docs/history/v0.13.0-changelog.md#v0130-2026-10-11).
|
|
53
57
|
|
|
54
58
|
## v0.12.0 (2026-10-11)
|
|
55
59
|
|
|
@@ -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,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ai-kit-python
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.3
|
|
4
4
|
Summary: Offline installer and portable instructions that give AI coding agents project memory, stack rules, guardrails, and adaptive model routing.
|
|
5
5
|
Author: Igor Sazonov
|
|
6
6
|
License-Expression: MIT AND Apache-2.0
|
|
@@ -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)
|
|
@@ -6,9 +6,10 @@
|
|
|
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.
|
|
9
|
+
**[v1.4.3](CHANGELOG.md#v143-2026-10-16)** adds **GitHub Release → checks → your approval → PyPI**, future release-tag support, fifteen event regression tests and a live PyPI version badge. [Release verification](docs/V1_4_3.md) separates GitHub release preparation from registry publication. The latest verified PyPI package is [ai-kit-python 1.4.2](https://pypi.org/project/ai-kit-python/1.4.2/); the published Docker Hub image remains **1.4.1**. Shared dialogue memory and all optional modules remain available.
|
|
10
10
|
|
|
11
11
|
[](#install)
|
|
12
|
+
[](https://pypi.org/project/ai-kit-python/)
|
|
12
13
|
[](scripts/install.py)
|
|
13
14
|
[](#-works-with-your-ai-clients)
|
|
14
15
|
[](https://hub.docker.com/r/tigusigalpa/ai-kit)
|
|
@@ -227,19 +228,19 @@ Every command also runs through one CLI: `python aikit_cli.py install|doctor|rou
|
|
|
227
228
|
|
|
228
229
|
### Packaged CLI and PyPI status
|
|
229
230
|
|
|
230
|
-
AI-KIT
|
|
231
|
+
**AI-KIT 1.4.2 is available on [PyPI](https://pypi.org/project/ai-kit-python/1.4.2/).** Install package `ai-kit-python` and run command `aikit`; Python 3.10+ is required with no mandatory runtime dependencies. Publication uses GitHub Trusted Publishing. Uploaded wheel/source hashes and installation directly from PyPI were verified. TestPyPI was not used.
|
|
231
232
|
|
|
232
|
-
|
|
233
|
+
Install into a virtual environment:
|
|
233
234
|
|
|
234
235
|
~~~powershell
|
|
235
236
|
$cliEnv = Join-Path $env:LOCALAPPDATA 'AI-KIT\venv'
|
|
236
237
|
python -m venv "$cliEnv"
|
|
237
238
|
& "$cliEnv\Scripts\Activate.ps1"
|
|
238
|
-
python -m pip install
|
|
239
|
+
python -m pip install ai-kit-python
|
|
239
240
|
aikit --version
|
|
240
241
|
~~~
|
|
241
242
|
|
|
242
|
-
|
|
243
|
+
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
244
|
|
|
244
245
|
~~~powershell
|
|
245
246
|
aikit install "C:\Projects\my-app" --agent codex --mode private
|
|
@@ -249,7 +250,22 @@ aikit doctor "C:\Projects\my-app"
|
|
|
249
250
|
|
|
250
251
|
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
252
|
|
|
252
|
-
For maintainers, [publish-pypi.yml](.github/workflows/publish-pypi.yml)
|
|
253
|
+
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.
|
|
254
|
+
|
|
255
|
+
#### Publish future releases to PyPI
|
|
256
|
+
|
|
257
|
+
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.
|
|
258
|
+
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.
|
|
259
|
+
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.
|
|
260
|
+
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.
|
|
261
|
+
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.
|
|
262
|
+
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.
|
|
263
|
+
|
|
264
|
+
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.
|
|
265
|
+
|
|
266
|
+
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.
|
|
267
|
+
|
|
268
|
+
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
269
|
|
|
254
270
|
## Run AI-KIT with Docker
|
|
255
271
|
|
|
@@ -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
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.4.3
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ai-kit-python
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.3
|
|
4
4
|
Summary: Offline installer and portable instructions that give AI coding agents project memory, stack rules, guardrails, and adaptive model routing.
|
|
5
5
|
Author: Igor Sazonov
|
|
6
6
|
License-Expression: MIT AND Apache-2.0
|
|
@@ -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)
|
|
@@ -79,6 +79,7 @@ pyproject.toml
|
|
|
79
79
|
./docs/V1_4_0.md
|
|
80
80
|
./docs/V1_4_1.md
|
|
81
81
|
./docs/V1_4_2.md
|
|
82
|
+
./docs/V1_4_3.md
|
|
82
83
|
./docs/WEB_DESIGN.md
|
|
83
84
|
./docs/WINDOWS_CI_FIX.md
|
|
84
85
|
./docs/adr/0000-template.md
|
|
@@ -99,6 +100,7 @@ pyproject.toml
|
|
|
99
100
|
./docs/history/original-bundle-checks.md
|
|
100
101
|
./docs/history/v0.1-changelog.txt
|
|
101
102
|
./docs/history/v0.10-changelog.md
|
|
103
|
+
./docs/history/v0.13.0-changelog.md
|
|
102
104
|
./docs/history/v0.2-changelog.md
|
|
103
105
|
./docs/history/v0.3-changelog.md
|
|
104
106
|
./docs/history/v0.4-changelog.md
|
|
@@ -262,6 +264,7 @@ pyproject.toml
|
|
|
262
264
|
./tests/test_metrics.py
|
|
263
265
|
./tests/test_native.py
|
|
264
266
|
./tests/test_onboarding.py
|
|
267
|
+
./tests/test_pypi_events.py
|
|
265
268
|
./tests/test_router.py
|
|
266
269
|
./tests/test_security_audit.py
|
|
267
270
|
./tests/test_strix.py
|
|
@@ -316,6 +319,7 @@ docs/V0_6_4.md
|
|
|
316
319
|
docs/V1_4_0.md
|
|
317
320
|
docs/V1_4_1.md
|
|
318
321
|
docs/V1_4_2.md
|
|
322
|
+
docs/V1_4_3.md
|
|
319
323
|
docs/WEB_DESIGN.md
|
|
320
324
|
docs/WINDOWS_CI_FIX.md
|
|
321
325
|
docs/adr/0000-template.md
|
|
@@ -336,6 +340,7 @@ docs/adr/0014-local-dialogue-memory.md
|
|
|
336
340
|
docs/history/original-bundle-checks.md
|
|
337
341
|
docs/history/v0.1-changelog.txt
|
|
338
342
|
docs/history/v0.10-changelog.md
|
|
343
|
+
docs/history/v0.13.0-changelog.md
|
|
339
344
|
docs/history/v0.2-changelog.md
|
|
340
345
|
docs/history/v0.3-changelog.md
|
|
341
346
|
docs/history/v0.4-changelog.md
|
|
@@ -518,6 +523,7 @@ tests/test_memory.py
|
|
|
518
523
|
tests/test_metrics.py
|
|
519
524
|
tests/test_native.py
|
|
520
525
|
tests/test_onboarding.py
|
|
526
|
+
tests/test_pypi_events.py
|
|
521
527
|
tests/test_router.py
|
|
522
528
|
tests/test_security_audit.py
|
|
523
529
|
tests/test_strix.py
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# PyPI package preparation and release
|
|
2
|
+
|
|
3
|
+
## Status and package identity
|
|
4
|
+
|
|
5
|
+
Version [1.4.3](V1_4_3.md) includes the owner-approved Release path; publication requires human approval. Release [1.4.2 is published on PyPI](https://pypi.org/project/ai-kit-python/1.4.2/); [evidence](V1_4_2.md) records its workflow, uploaded hashes and clean registry installation. Trusted Publishing uses repository `tigusigalpa/ai-kit`, workflow `publish-pypi.yml`, environment `pypi`. On 2026-10-16 that environment was extended to future `v*` tags with owner review preserved. VERSION is the version source; distribution `ai-kit-python`, import package and executable `aikit`, Python 3.10+, no runtime dependencies. TestPyPI remains unconfigured.
|
|
6
|
+
|
|
7
|
+
PyPI rejected `ai-kit` and `ai-kit-cli` as too similar to existing projects; the owner selected `ai-kit-python`, whose pending-publisher registration succeeded. A public JSON 404 alone does not establish eligibility, and a pending publisher does not reserve a name. For a rename synchronize pyproject, archive checks, metadata smoke tests, workflow URLs, publisher configuration and install examples before rebuilding.
|
|
8
|
+
|
|
9
|
+
[pyproject.toml](../pyproject.toml) owns metadata. [PYPI_DESCRIPTION.md](PYPI_DESCRIPTION.md) is the complete Markdown description, with absolute public links and no GitHub-only diagrams. AI-KIT's own code remains MIT; the distribution also bundles Apache-2.0 Strix resources, so its SPDX expression is `MIT AND Apache-2.0`. All three declared license files are included under wheel dist-info/licenses and retained beside their payload resources.
|
|
10
|
+
|
|
11
|
+
## Install the published package
|
|
12
|
+
|
|
13
|
+
Use an isolated CLI installation with `pipx install ai-kit-python`, or a Python virtual environment:
|
|
14
|
+
|
|
15
|
+
~~~powershell
|
|
16
|
+
$cliEnv = Join-Path $env:LOCALAPPDATA 'AI-KIT\venv'
|
|
17
|
+
python -m venv "$cliEnv"
|
|
18
|
+
& "$cliEnv\Scripts\Activate.ps1"
|
|
19
|
+
python -m pip install ai-kit-python
|
|
20
|
+
aikit --version
|
|
21
|
+
~~~
|
|
22
|
+
|
|
23
|
+
Keep that environment local; it is not an application dependency. For a reviewed checkout, `python -m pip install .` remains available. Update via `pipx upgrade ai-kit-python` or `python -m pip install --upgrade ai-kit-python`. Upgrading the CLI does not rewrite installed project instructions: preview `aikit install TARGET` and apply after review. [Usage](../README.md#packaged-cli-and-pypi-status).
|
|
24
|
+
|
|
25
|
+
## Build and validate without uploading
|
|
26
|
+
|
|
27
|
+
Use an isolated checkout/source copy and an output directory outside it. This keeps archive binaries, temporary metadata and private maintainer files away from source validation and test fixture copies. Example from that source copy in PowerShell:
|
|
28
|
+
|
|
29
|
+
~~~powershell
|
|
30
|
+
$releaseEnv = Join-Path ([System.IO.Path]::GetTempPath()) ('ai-kit-build-env-' + [guid]::NewGuid())
|
|
31
|
+
python -m venv "$releaseEnv"
|
|
32
|
+
& "$releaseEnv\Scripts\Activate.ps1"
|
|
33
|
+
python -m pip install --require-hashes -r docker/build-requirements.txt
|
|
34
|
+
python -m pip install -r docker/pypi-requirements.txt
|
|
35
|
+
|
|
36
|
+
python scripts/check_kit.py
|
|
37
|
+
python -m unittest discover -s tests -v
|
|
38
|
+
|
|
39
|
+
$distPath = Join-Path ([System.IO.Path]::GetTempPath()) ('ai-kit-dist-' + [guid]::NewGuid())
|
|
40
|
+
python tests/build_distribution.py "$distPath"
|
|
41
|
+
python scripts/check_distribution.py archives "$distPath"
|
|
42
|
+
python -m twine check --strict "$distPath/*"
|
|
43
|
+
python tests/wheel_smoke.py "$distPath"
|
|
44
|
+
~~~
|
|
45
|
+
|
|
46
|
+
Use separate commands or stop on each nonzero exit. The build helper copies public source inputs into a disposable directory, injects synthetic private files, runs `build` to create sdist then wheel from sdist, and rejects leaked markers. Output inside the checkout or mixed with old archives refuses. The archive checker inspects paths without extracting, confirms metadata/version, description, CLI, resources, licenses and private-file exclusions, and reports SHA-256. Fresh-venv smoke exercises the installed CLI, optional resources and dialogue pipeline offline. Also check Python 3.10 compatibility and preserve the cross-platform CI matrix. Synthetic probes never read real credentials or conversations.
|
|
47
|
+
|
|
48
|
+
The source checker and publication identity helper upload nothing:
|
|
49
|
+
|
|
50
|
+
~~~sh
|
|
51
|
+
python scripts/check_distribution.py identity
|
|
52
|
+
~~~
|
|
53
|
+
|
|
54
|
+
## Trusted Publishing configuration
|
|
55
|
+
|
|
56
|
+
[publish-pypi.yml](../.github/workflows/publish-pypi.yml) supports `release: published` for stable releases and `workflow_dispatch` for manual runs. The Release path prepares production PyPI artifacts automatically, then waits for the owner's environment approval. Drafts and prereleases skip automatic production preparation. Pushes, tag pushes and Release edits do not request publication. Manual dispatch defaults to `validate`, which builds/tests/retains artifacts and skips both upload jobs. Existing required CI names remain unchanged.
|
|
57
|
+
|
|
58
|
+
Configure these account settings separately when publication is authorized. PyPI and TestPyPI are separate services/accounts; use a pending publisher for a new project or add a publisher to an owned project.
|
|
59
|
+
|
|
60
|
+
| Field | Production | Test registry |
|
|
61
|
+
| --- | --- | --- |
|
|
62
|
+
| Registry | pypi.org | test.pypi.org |
|
|
63
|
+
| Project name | ai-kit-python | ai-kit-python, subject to availability |
|
|
64
|
+
| GitHub owner | tigusigalpa | tigusigalpa |
|
|
65
|
+
| Repository | ai-kit | ai-kit |
|
|
66
|
+
| Workflow filename | publish-pypi.yml | publish-pypi.yml |
|
|
67
|
+
| Environment | pypi | testpypi |
|
|
68
|
+
|
|
69
|
+
The verified production environment requires reviewer `tigusigalpa` (GitHub user ID 2721390). Its custom deployment policy is **type `tag`, pattern `v*`**; matching branch names are not admitted. The same reviewer and all other environment protections were preserved when replacing the earlier v1.4.2-only policy. Self-review remains allowed so the sole owner can approve a run they started. The required confirmation must be performed by the human owner: agents must not approve or bypass it. [Contribution policy](../CONTRIBUTING.md#python-package-releases).
|
|
70
|
+
|
|
71
|
+
Keep publisher/environment names identical. No PyPI API token is stored: the pinned PyPA action exchanges GitHub OIDC identity for a short-lived credential after approval. Only upload jobs receive `id-token: write`; build/tests have read-only repository access. Upload jobs consume the validated same-run artifact without checking out or building source. Manual and Release production runs share a per-tag concurrency group and do not cancel each other during approval.
|
|
72
|
+
|
|
73
|
+
## Release to PyPI with owner approval
|
|
74
|
+
|
|
75
|
+
1. Review VERSION, metadata, description, README, licenses and changes since the prior release; complete checks and Docker-impact handling. Any Git commit/tag/push needs its own authorization. The reviewed release commit must contain the updated workflow and event guard. Existing tags, including v1.4.2, stay unchanged.
|
|
76
|
+
2. Prepare a new version, for example VERSION `1.5.0`, and a new tag `v1.5.0` at that commit. The automatic path accepts canonical stable `vMAJOR.MINOR.PATCH` tags; release tag, runner ref and the tag's VERSION must agree exactly. The guard also checks the event's repository against the canonical runner repository. Release notes/body are not commands or publication inputs.
|
|
77
|
+
3. Publish a stable GitHub Release for that tag. The workflow first verifies event identity, then validates the kit, runs tests, builds sdist followed by wheel, checks metadata/resources/privacy/licenses/description and smoke-installs offline. A failure stops the upload job.
|
|
78
|
+
4. In **Actions → Prepare or publish Python package**, wait for `build` to succeed. The `pypi` job then pauses at **Review deployments**. The human owner inspects the tag, commit and checks, selects `pypi`, and clicks **Approve and deploy**. Rejecting or leaving it pending uploads nothing. GitHub's required reviewer is the final gate; the agent does not submit this approval.
|
|
79
|
+
5. The approved upload job obtains OIDC credentials and publishes only that run's tested files. Verify the public version, metadata, files, hashes and fresh installation from PyPI; compare downloads against the actual hosted artifacts. Update publication receipts after read-back. The README badge follows PyPI availability, not GitHub Release creation.
|
|
80
|
+
|
|
81
|
+
### Manual runs and recovery
|
|
82
|
+
|
|
83
|
+
- **Build only:** use Run workflow with destination `validate`; a branch is allowed. No upload or environment approval occurs.
|
|
84
|
+
- **Manual upload:** select a `vVERSION` tag, choose `pypi` or `testpypi` and enter that exact version. Event inputs are checked before building; production uses the same human approval gate. Explicit manual prerelease trials remain possible.
|
|
85
|
+
- **TestPyPI:** configure its separate environment/publisher before an authorized trial. Install with `--index-url https://test.pypi.org/simple/ --no-deps`; do not mix it with PyPI using an extra index. Production does not automatically upload there.
|
|
86
|
+
- **Failed checks:** fix through the reviewed Git workflow and prepare a new release tag as needed. Do not move a released tag. The release workflow must exist in the tagged source; creating a Release for an older tag does not retrofit this implementation.
|
|
87
|
+
- **Duplicate version:** uploads fail instead of replacing files or silently skipping them. Use a new version for changed packages; check public files and hashes before considering a retry of a partial upload.
|
|
88
|
+
|
|
89
|
+
Committing these files alone neither creates a GitHub Release nor uploads a package. Keep prepared source, hosted checks, environment approval and registry evidence distinct. No future version is available on PyPI until read-back verifies it.
|
|
90
|
+
|
|
91
|
+
## Release-chain verification
|
|
92
|
+
|
|
93
|
+
Verified on 2026-10-16: kit checks returned no errors/warnings; 368 packaged Linux/Python 3.13.16 tests ran with two Windows-only skips. Fifteen new event tests cover future tags, invalid release identities, manual defaults and untrusted payloads. Workflow YAML/security assertions and Python 3.10 grammar passed. Isolated sdist-to-wheel, privacy probes, strict Twine and offline Windows wheel smoke passed. Local ai-kit:dev was rebuilt and passed Docker smoke; ten changed packaged resources matched source. These local runs did not cover macOS or a hosted Release event. No package/image was uploaded. The tested image retains the earlier documentation snapshot preceding this verification receipt.
|
|
94
|
+
|
|
95
|
+
## Docker and documentation continuity
|
|
96
|
+
|
|
97
|
+
Packaging metadata, description selection and bundled resource changes affect the CLI image: rebuild/test `ai-kit:dev`, verify new resources/version and preserve published release identities. Docker publication is separate. Follow [image refresh](DOCKER.md#change-impact-and-image-refresh) and the [Docker Hub checklist](../CONTRIBUTING.md#docker-hub-releases) when preparing an image release. Publication receipts alone may retain the tested image snapshot; record that boundary.
|
|
98
|
+
|
|
99
|
+
For every Python package release, refresh metadata/description/README, run archive checks, strict Twine validation and offline installation, and record unavailable OS/runtime checks. [Contribution rules](../CONTRIBUTING.md#python-package-releases) own the release-maintenance trigger.
|
|
100
|
+
|
|
101
|
+
Primary sources checked on 2026-10-16: [project metadata](https://packaging.python.org/en/latest/guides/writing-pyproject-toml/), [license expressions](https://packaging.python.org/en/latest/specifications/license-expression/), [PyPI descriptions](https://packaging.python.org/en/latest/guides/making-a-pypi-friendly-readme/), [pending publishers](https://docs.pypi.org/trusted-publishers/creating-a-project-through-oidc/), [OIDC publication](https://docs.pypi.org/trusted-publishers/using-a-publisher/), [PyPA action](https://github.com/pypa/gh-action-pypi-publish).
|
|
102
|
+
|
|
103
|
+
Release/approval sources checked on 2026-10-16: [release events](https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#release), [deployment tag policies](https://docs.github.com/en/rest/deployments/branch-policies), [human deployment review](https://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/review-deployments).
|
|
@@ -92,6 +92,8 @@ The distribution excludes root maintainer AGENTS.md, PROJECT_CONTEXT.md and WIKI
|
|
|
92
92
|
|
|
93
93
|
A separate [Docker image](https://hub.docker.com/r/tigusigalpa/ai-kit) packages the CLI for container use.
|
|
94
94
|
|
|
95
|
+
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).
|
|
96
|
+
|
|
95
97
|
## Documentation and license
|
|
96
98
|
|
|
97
99
|
- [Repository and full README](https://github.com/tigusigalpa/ai-kit)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# AI-KIT v1.4.2
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Published on 2026-10-16. [CHANGELOG](../CHANGELOG.md#v142-2026-10-16) owns release history; [PyPI procedure](PYPI.md) owns publishing instructions.
|
|
4
4
|
|
|
5
5
|
## Release contents
|
|
6
6
|
|
|
@@ -28,6 +28,21 @@ PyPI rejected `ai-kit` and `ai-kit-cli` as too similar to existing projects. The
|
|
|
28
28
|
|
|
29
29
|
The GitHub environment was independently read back: only tag `v1.4.2`, required reviewer `tigusigalpa`, self-review permitted for solo maintenance. TestPyPI remains unconfigured and no TestPyPI upload was requested. A pending publisher does not reserve a project name or establish package availability.
|
|
30
30
|
|
|
31
|
-
The
|
|
31
|
+
The first hosted run exposed incorrect Twine wildcard quoting on Windows. The corrected complete glob passed PowerShell validation with a space-containing path. All 32 final push/PR CI checks succeeded, including the required Linux/Windows/macOS matrices and Docker. [PR 1](https://github.com/tigusigalpa/ai-kit/pull/1) was merged without bypassing checks. Tag `v1.4.2` points to `36e804a43f9a8a7912da050e7117821a407904b0`; the existing v1.4.1 tag and Docker Hub image were preserved.
|
|
32
|
+
|
|
33
|
+
## PyPI publication and read-back
|
|
34
|
+
|
|
35
|
+
[Publication workflow 38891485311](https://github.com/tigusigalpa/ai-kit/actions/runs/38891485311) completed successfully from that exact tag/commit. The build job validated the source, tests, both archives, description and offline wheel installation. The owner-approved `pypi` environment released only those artifacts through GitHub OIDC; TestPyPI was skipped.
|
|
36
|
+
|
|
37
|
+
The public [ai-kit-python 1.4.2 page](https://pypi.org/project/ai-kit-python/1.4.2/) and version JSON were read back. Both downloaded files match the SHA-256 values in the same-run GitHub artifacts:
|
|
38
|
+
|
|
39
|
+
| Published file | SHA-256 |
|
|
40
|
+
| --- | --- |
|
|
41
|
+
| ai_kit_python-1.4.2-py3-none-any.whl | `7bda41d548597ddbba318e0a006eedb886238b89a96168d0ee1514b73881d4f5` |
|
|
42
|
+
| ai_kit_python-1.4.2.tar.gz | `c4a278bcc94945b91363722929e8f1b1f3ec7b28604681348afd85f7b1082174` |
|
|
43
|
+
|
|
44
|
+
A fresh Windows/Python 3.12.14 environment installed `ai-kit-python==1.4.2` directly from `https://pypi.org/simple`, with the wheel hash required and dependencies/cache disabled. The installed import path belongs to that environment, `aikit --version` returned `aikit 1.4.2`, and the installed kit check reported zero errors/warnings. Complete smoke verification of the downloaded wheel also passed the optional resources and dialogue pipeline.
|
|
45
|
+
|
|
46
|
+
These are registry receipts, not local preparation hashes. The CLI image remains the tested 1.4.2 development snapshot; descriptive receipts added afterward do not require replacing it. Docker Hub still serves the previously published 1.4.1 image. Raw verification files, downloaded packages and logs are stored outside the repository.
|
|
32
47
|
|
|
33
48
|
[Core](../template/ai-kit/CORE.md#git-authorization) governs Git authorization. No account secrets belong in source, artifacts or chat. Future image publication remains separate; preserve existing release tags and Docker identities.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# AI-KIT v1.4.3
|
|
2
|
+
|
|
3
|
+
Release date: 2026-10-16. [CHANGELOG](../CHANGELOG.md#v143-2026-10-16) owns history; [PyPI procedure](PYPI.md#release-to-pypi-with-owner-approval) owns publishing instructions.
|
|
4
|
+
|
|
5
|
+
## Release contents
|
|
6
|
+
|
|
7
|
+
- Published stable GitHub Releases automatically prepare the Python package: verify the event, run source/behavior checks, build sdist and wheel, check metadata/resources/privacy/licenses/description and smoke-install offline.
|
|
8
|
+
- PyPI upload waits for the human owner of environment `pypi`. Agents must not approve or bypass this confirmation. The upload uses OIDC and only the same run's validated artifacts; build jobs receive no OIDC permission.
|
|
9
|
+
- Future canonical `vMAJOR.MINOR.PATCH` tags work with the existing tag-only `v*` environment policy. Release tag, runner ref, committed VERSION and canonical repository must agree. Drafts and prereleases skip automatic production preparation.
|
|
10
|
+
- Manual dispatch stays available and defaults to build-only validation. Explicit manual uploads require an exact version/tag and production still requires owner approval. TestPyPI remains separate and unconfigured.
|
|
11
|
+
- Fifteen event regression tests, a live README PyPI version badge, updated release/recovery instructions and preserved archived changelog text.
|
|
12
|
+
|
|
13
|
+
VERSION, CLI, package metadata and the local development image advance to 1.4.3. The existing v1.4.2 tag and PyPI files stay unchanged. Docker Hub remains at the separately published 1.4.1 image; this GitHub release does not publish an image there.
|
|
14
|
+
|
|
15
|
+
## Verification
|
|
16
|
+
|
|
17
|
+
Before labeling, [PR 3](https://github.com/tigusigalpa/ai-kit/pull/3) passed all 32 push/PR CI checks across Linux, Windows and macOS, including the Python validation/wheel matrices and Docker. [Validate-only run 38897526857](https://github.com/tigusigalpa/ai-kit/actions/runs/38897526857) passed on the merged workflow: 368 tests, source/archive/description/private-probe checks and offline wheel smoke; both upload jobs skipped.
|
|
18
|
+
|
|
19
|
+
After labeling 1.4.3, verified locally on 2026-10-16:
|
|
20
|
+
|
|
21
|
+
- Kit validation returned zero errors/warnings; ten Windows/Python 3.12.14 CLI tests passed. The CLI and archive identity guard report 1.4.3.
|
|
22
|
+
- The packaged Linux/Python 3.13.16 image ran 368 tests in 30.323 seconds: 366 passed, two Windows-only skips.
|
|
23
|
+
- Isolated sdist-to-wheel builds, synthetic private-file probes, archive metadata/licenses/resources, strict Twine and offline Windows wheel smoke passed. The package description includes the owner-approved release procedure.
|
|
24
|
+
- Docker smoke passed offline/read-only execution, installation/refusal, all optional modules, preserved files, stable rerun, SIGTERM and the actual context-exclusion engine. The version label is 1.4.3. No test volumes were created; shared cache ownership is unknown, so no pruning was performed.
|
|
25
|
+
- Private/team upgrade fixtures used a Git archive of the actual v1.4.2 tag. README, MCP configuration, project facts, design brief, private dialogue data and settings including a custom extension survived; doctor reported 1.4.3 with no errors, private memory stayed ignored and reruns wrote nothing.
|
|
26
|
+
|
|
27
|
+
Build binaries, hashes and raw logs remain outside the source checkout. Descriptive verification receipts follow the tested image snapshot. These local runs do not cover macOS; hosted CI is verified separately before release creation. Synthetic tests do not establish live model/client activation, application benchmarks or Kubernetes deployment.
|
|
28
|
+
|
|
29
|
+
## GitHub Release and owner confirmation
|
|
30
|
+
|
|
31
|
+
Create the new v1.4.3 tag at the reviewed, checked release commit, preserving old tags. Publishing its stable GitHub Release triggers `publish-pypi.yml`. Wait for `build` to succeed, then the owner selects **Actions -> Review deployments -> pypi -> Approve and deploy**. Rejecting or leaving the request pending uploads nothing.
|
|
32
|
+
|
|
33
|
+
This record describes release preparation and the approval procedure; it is not a PyPI publication receipt. Verify public files/hashes and a fresh registry installation after the owner's approval before claiming publication. The last verified registry release at preparation was [1.4.2](V1_4_2.md). Descriptive verification/publication receipts added after building may retain the tested image's earlier documentation snapshot.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Archived AI-KIT release history
|
|
2
|
+
|
|
3
|
+
## v0.13.0 (2026-10-11)
|
|
4
|
+
|
|
5
|
+
- Added Rust, .NET, Java (Maven/Gradle), and Terraform/Helm stack profiles with evidence-based per-module detection: Cargo.toml (rust-version, cargo test/build/clippy), *.csproj/*.fsproj/*.vbproj and global.json (TargetFramework, dotnet test/build), pom.xml/mvnw/build.gradle(.kts)/gradlew (language level, wrapper-aware commands), and .tf files or Chart.yaml (fmt/validate, helm lint). Drafts remain suggestions until bootstrap confirms them.
|
|
6
|
+
- Added rust-work, dotnet-work, java-work, and infra-work skills to the registry; Claude native copies install with the claude agent selection.
|
|
7
|
+
- Benchmark packs accept the new stack names; README, SKILL.md, and WIKI profile lists updated.
|
|
8
|
+
- 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.
|