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.
Files changed (294) hide show
  1. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.agents/skills/project-continuity/SKILL.md +6 -7
  2. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.dockerignore +2 -0
  3. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.github/workflows/publish-pypi.yml +17 -8
  4. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.gitignore +2 -0
  5. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/CHANGELOG.md +18 -11
  6. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/CONTRIBUTING.md +1 -1
  7. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/MANIFEST.in +1 -0
  8. {ai_kit_python-1.4.2/ai_kit_python.egg-info → ai_kit_python-1.4.4}/PKG-INFO +8 -2
  9. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/README.md +172 -13
  10. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/SKILL.md +5 -3
  11. ai_kit_python-1.4.4/VERSION +1 -0
  12. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4/ai_kit_python.egg-info}/PKG-INFO +8 -2
  13. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai_kit_python.egg-info/SOURCES.txt +27 -0
  14. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/aikit_cli.py +1 -0
  15. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/DEVELOPMENT_PLAN.md +1 -1
  16. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/DOCKER.md +2 -2
  17. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/DOCKER_HUB_OVERVIEW.md +26 -34
  18. ai_kit_python-1.4.4/docs/ORCHESTRATION.md +37 -0
  19. ai_kit_python-1.4.4/docs/PYPI.md +103 -0
  20. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/PYPI_DESCRIPTION.md +6 -0
  21. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/V1_4_2.md +17 -2
  22. ai_kit_python-1.4.4/docs/V1_4_3.md +70 -0
  23. ai_kit_python-1.4.4/docs/V1_4_4.md +20 -0
  24. ai_kit_python-1.4.4/docs/adr/0015-optional-bounded-orchestration.md +17 -0
  25. ai_kit_python-1.4.4/docs/changelog/v0.12.0.md +11 -0
  26. ai_kit_python-1.4.4/docs/history/v0.13.0-changelog.md +8 -0
  27. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/agents.json +2 -2
  28. ai_kit_python-1.4.4/integrations/codex-agents/aikit_explorer.toml +10 -0
  29. ai_kit_python-1.4.4/integrations/codex-agents/aikit_reviewer.toml +10 -0
  30. ai_kit_python-1.4.4/integrations/codex-agents/aikit_worker.toml +10 -0
  31. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/pyproject.toml +2 -2
  32. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/check_distribution.py +61 -5
  33. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/check_kit.py +4 -3
  34. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/doctor.py +7 -0
  35. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/install.py +28 -5
  36. ai_kit_python-1.4.4/scripts/orchestrate.py +452 -0
  37. ai_kit_python-1.4.4/template/ai-kit/ORCHESTRATION.md +27 -0
  38. ai_kit_python-1.4.4/template/ai-kit/orchestration.json +12 -0
  39. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/templates/gitignore.private +1 -0
  40. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/templates/gitignore.team +1 -0
  41. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/build_distribution.py +2 -2
  42. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/docker_smoke.py +7 -2
  43. ai_kit_python-1.4.4/tests/test_orchestration.py +418 -0
  44. ai_kit_python-1.4.4/tests/test_pypi_events.py +201 -0
  45. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/wheel_smoke.py +8 -2
  46. ai_kit_python-1.4.2/VERSION +0 -1
  47. ai_kit_python-1.4.2/docs/PYPI.md +0 -87
  48. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.agents/skills/go-work/SKILL.md +0 -0
  49. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.agents/skills/laravel-work/SKILL.md +0 -0
  50. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.agents/skills/moodle-work/SKILL.md +0 -0
  51. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.agents/skills/python-work/SKILL.md +0 -0
  52. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.gitattributes +0 -0
  53. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/.github/workflows/check-kit.yml +0 -0
  54. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/BOOTSTRAP_PROMPT.md +0 -0
  55. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/CLAUDE.md +0 -0
  56. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/Dockerfile +0 -0
  57. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/KIMI.md +0 -0
  58. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/LICENSE +0 -0
  59. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/MANUS.md +0 -0
  60. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/Makefile +0 -0
  61. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/SECURITY.md +0 -0
  62. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/__init__.py +0 -0
  63. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/ADAPTERS.md +0 -0
  64. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/CONTAINERS.md +0 -0
  65. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/ENGINEERING.md +0 -0
  66. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/INTENT.md +0 -0
  67. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/MODELS.md +0 -0
  68. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/SKILLS.md +0 -0
  69. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/adr/0001-adaptive-model-routing.md +0 -0
  70. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/stacks/GO.md +0 -0
  71. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/stacks/LARAVEL.md +0 -0
  72. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/stacks/MOODLE.md +0 -0
  73. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai-kit/stacks/PYTHON.md +0 -0
  74. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai_kit_python.egg-info/dependency_links.txt +0 -0
  75. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai_kit_python.egg-info/entry_points.txt +0 -0
  76. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/ai_kit_python.egg-info/top_level.txt +0 -0
  77. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/deploy/k8s/install-preview-job.yaml +0 -0
  78. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docker/build-requirements.txt +0 -0
  79. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docker/check_version.py +0 -0
  80. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docker/pypi-requirements.txt +0 -0
  81. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/ADAPTER_PATH_FIX.md +0 -0
  82. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/BENCHMARK.md +0 -0
  83. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/CONTEXT7.md +0 -0
  84. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/DECISIONS.md +0 -0
  85. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/DIALOGUE_MEMORY.md +0 -0
  86. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/EVALUATION.md +0 -0
  87. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/IMPLEMENTATION.md +0 -0
  88. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/MANUS_REVIEW.md +0 -0
  89. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/SECURITY_AUDIT.md +0 -0
  90. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/STRIX.md +0 -0
  91. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/V0_5_0.md +0 -0
  92. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/V0_6_4.md +0 -0
  93. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/V1_4_0.md +0 -0
  94. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/V1_4_1.md +0 -0
  95. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/WEB_DESIGN.md +0 -0
  96. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/WINDOWS_CI_FIX.md +0 -0
  97. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0000-template.md +0 -0
  98. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0001-adaptive-model-routing.md +0 -0
  99. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0002-template-separation.md +0 -0
  100. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0003-agent-registry-and-router.md +0 -0
  101. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0004-onboarding-and-project-facts.md +0 -0
  102. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0005-client-settings-ownership.md +0 -0
  103. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0006-routing-evidence-and-local-measurements.md +0 -0
  104. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0007-generated-client-configuration-and-presets.md +0 -0
  105. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0008-unified-cli-and-fact-drift.md +0 -0
  106. {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
  107. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0010-metrics-analysis-and-gemini-verification.md +0 -0
  108. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0011-evidence-lifecycle-and-evaluation.md +0 -0
  109. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0012-measurement-led-routing.md +0 -0
  110. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0013-docker-cli-image.md +0 -0
  111. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/adr/0014-local-dialogue-memory.md +0 -0
  112. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/original-bundle-checks.md +0 -0
  113. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v0.1-changelog.txt +0 -0
  114. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v0.10-changelog.md +0 -0
  115. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v0.2-changelog.md +0 -0
  116. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v0.3-changelog.md +0 -0
  117. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v0.4-changelog.md +0 -0
  118. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v0.5-changelog.md +0 -0
  119. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v0.6.4-changelog.md +0 -0
  120. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v0.6.5-v0.9-changelog.md +0 -0
  121. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v1.1.0-changelog.md +0 -0
  122. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/v1.2.0-changelog.md +0 -0
  123. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/docs/history/verification-before-measurements.md +0 -0
  124. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/CONVENTIONS.md +0 -0
  125. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/README.md +0 -0
  126. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/ai-kit-check.yml +0 -0
  127. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/ai-kit-cline.md +0 -0
  128. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/ai-kit-roo.md +0 -0
  129. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/ai-kit-windsurf.md +0 -0
  130. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/ai-kit.mdc +0 -0
  131. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/claude-settings.data-ask.json +0 -0
  132. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/claude-settings.git-ask.json +0 -0
  133. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/copilot-instructions.md +0 -0
  134. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/security-audit.json +0 -0
  135. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/integrations/strix.json +0 -0
  136. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/__init__.py +0 -0
  137. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/adapters.py +0 -0
  138. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/adaptive.py +0 -0
  139. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/adr.py +0 -0
  140. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/benchmark.py +0 -0
  141. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/changelog.py +0 -0
  142. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/context.py +0 -0
  143. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/docker_test_usage.py +0 -0
  144. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/evaluate.py +0 -0
  145. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/learning.py +0 -0
  146. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/memory.py +0 -0
  147. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/memory_import.py +0 -0
  148. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/memory_store.py +0 -0
  149. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/metrics.py +0 -0
  150. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/scripts/router.py +0 -0
  151. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/setup.cfg +0 -0
  152. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/hooks/session-start.md +0 -0
  153. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/hooks/session-start.sh +0 -0
  154. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/ai-kit-bootstrap/SKILL.md +0 -0
  155. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/ai-kit-review/SKILL.md +0 -0
  156. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/ai-kit-sync-context/SKILL.md +0 -0
  157. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/context7-docs/SKILL.md +0 -0
  158. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/design-extract/SKILL.md +0 -0
  159. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/dotnet-work/SKILL.md +0 -0
  160. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/filament-work/SKILL.md +0 -0
  161. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/frontend-work/SKILL.md +0 -0
  162. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/go-work/SKILL.md +0 -0
  163. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/infra-work/SKILL.md +0 -0
  164. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/java-work/SKILL.md +0 -0
  165. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/laravel-blade-ui/SKILL.md +0 -0
  166. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/laravel-work/SKILL.md +0 -0
  167. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/library-work/SKILL.md +0 -0
  168. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/moodle-work/SKILL.md +0 -0
  169. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/php-work/SKILL.md +0 -0
  170. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/project-continuity/SKILL.md +0 -0
  171. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/python-work/SKILL.md +0 -0
  172. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/rust-work/SKILL.md +0 -0
  173. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/security-audit/SKILL.md +0 -0
  174. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/security-audit/agents/openai.yaml +0 -0
  175. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/strix/SKILL.md +0 -0
  176. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/strix/agents/openai.yaml +0 -0
  177. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/ui-review/SKILL.md +0 -0
  178. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/.agents/skills/web-design/SKILL.md +0 -0
  179. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/AGENTS.md +0 -0
  180. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/CHANGELOG.md +0 -0
  181. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/CLAUDE.md +0 -0
  182. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/GEMINI.md +0 -0
  183. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/KIMI.md +0 -0
  184. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/MANUS.md +0 -0
  185. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/PROJECT_CONTEXT.md +0 -0
  186. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/README.md +0 -0
  187. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/WIKI.md +0 -0
  188. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/ADAPTERS.md +0 -0
  189. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/BOOTSTRAP.md +0 -0
  190. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/CONTAINERS.md +0 -0
  191. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/CONTEXT7.md +0 -0
  192. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/CORE.md +0 -0
  193. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/ENGINEERING.md +0 -0
  194. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/MCP.md +0 -0
  195. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/METRICS.md +0 -0
  196. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/SECURITY-AUDIT.md +0 -0
  197. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/SECURITY.md +0 -0
  198. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/SKILLS.md +0 -0
  199. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/STRIX.md +0 -0
  200. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/UPSTREAM.md +0 -0
  201. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/WEB-DESIGN.md +0 -0
  202. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/profiles/OWNER.md +0 -0
  203. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/project.json +0 -0
  204. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/POLICY.md +0 -0
  205. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/anthropic.json +0 -0
  206. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/anthropic.md +0 -0
  207. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/gemini.json +0 -0
  208. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/gemini.md +0 -0
  209. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/kimi.json +0 -0
  210. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/kimi.md +0 -0
  211. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/local.json +0 -0
  212. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/local.md +0 -0
  213. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/openai.json +0 -0
  214. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/providers/openai.md +0 -0
  215. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/routing.json +0 -0
  216. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/router/selection.json +0 -0
  217. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/settings.json +0 -0
  218. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/DOTNET.md +0 -0
  219. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/FILAMENT.md +0 -0
  220. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/FRONTEND.md +0 -0
  221. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/GO.md +0 -0
  222. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/INFRA.md +0 -0
  223. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/JAVA.md +0 -0
  224. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/LARAVEL.md +0 -0
  225. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/LIBRARY.md +0 -0
  226. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/MOODLE.md +0 -0
  227. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/PHP.md +0 -0
  228. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/PYTHON.md +0 -0
  229. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/stacks/RUST.md +0 -0
  230. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/AI-AND-LLM.md +0 -0
  231. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/ATTACK-CLASSES.md +0 -0
  232. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/CLIENT-SIDE.md +0 -0
  233. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/CLOUD-AND-DEPLOYMENT.md +0 -0
  234. {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
  235. {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
  236. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/HUNTING.md +0 -0
  237. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/LICENSE +0 -0
  238. {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
  239. {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
  240. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/RECONNAISSANCE.md +0 -0
  241. {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
  242. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/SKILL.md +0 -0
  243. {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
  244. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/VALIDATION-AND-REPORTING.md +0 -0
  245. {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
  246. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/report-schema.json +0 -0
  247. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/validate-coverage-ledger.cjs +0 -0
  248. {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
  249. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/validate-findings.cjs +0 -0
  250. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/security-audit/validate-findings.test.cjs +0 -0
  251. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/strix/LICENSE +0 -0
  252. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/strix/api-security-testing/SKILL.md +0 -0
  253. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/vendor/strix/application-security-testing/SKILL.md +0 -0
  254. {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
  255. {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
  256. {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
  257. {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
  258. {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
  259. {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
  260. {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
  261. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/web-design/LARAVEL.md +0 -0
  262. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/web-design/LIBRARIES.md +0 -0
  263. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/web-design/REVIEW.md +0 -0
  264. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/ai-kit/web-design/TOOLS.md +0 -0
  265. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/docs/DECISIONS.md +0 -0
  266. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/docs/adr/0000-template.md +0 -0
  267. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/docs/design/ACCEPTANCE.md +0 -0
  268. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/docs/design/BRIEF.md +0 -0
  269. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/template/docs/design/SYSTEM.md +0 -0
  270. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/templates/agent-secrets.ignore +0 -0
  271. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/fixtures/create-junction.ps1 +0 -0
  272. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/fixtures/golden/claude-settings-local.json +0 -0
  273. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_adapters.py +0 -0
  274. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_aikit.py +0 -0
  275. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_benchmark.py +0 -0
  276. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_check_kit.py +0 -0
  277. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_context.py +0 -0
  278. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_context7.py +0 -0
  279. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_context_selection.py +0 -0
  280. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_distribution.py +0 -0
  281. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_docker_image.py +0 -0
  282. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_docker_test_usage.py +0 -0
  283. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_doctor.py +0 -0
  284. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_evaluate.py +0 -0
  285. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_install.py +0 -0
  286. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_learning.py +0 -0
  287. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_memory.py +0 -0
  288. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_metrics.py +0 -0
  289. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_native.py +0 -0
  290. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_onboarding.py +0 -0
  291. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_router.py +0 -0
  292. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_security_audit.py +0 -0
  293. {ai_kit_python-1.4.2 → ai_kit_python-1.4.4}/tests/test_strix.py +0 -0
  294. {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
- For a procedure change, update current maintainer commands, this pointer contract, and relevant implementation docs in the same task.
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); defer live adapters/orchestration until their mechanisms and total coordination costs are verified.
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
- 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 wheel/sdist metadata, VERSION, licenses, description, resources and private/path exclusions; build the wheel from sdist and smoke-install offline. Quote complete Twine globs; report OS gaps. A JSON 404 does not prove name eligibility; verify publisher registration. Test identity guards without uploads; preserve CI names and existing release tags. Use a new patch when an old tag predates publication support. Trusted Publishing stays manual/build-only by default, with exact version/tag/repository gates, OIDC only in upload jobs and validated same-run artifacts; setup and publication are separate. Keep MCP posture separate from live client activation.
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 an explicitly requested release version, update VERSION, the root changelog, README release pointer, WIKI and maintainer context together; keep release history out of project templates. Recheck CLI version, kit validation and wheel metadata/install; build in an isolated source copy and exercise preservation across the prior-version baseline. State which behavioral results preceded release labeling; publication/tagging remain separate actions under Core. In release notes, distinguish Web Design instructions from external tools and generated-site acceptance, Context7 setup from installation, and OpenRouter guidance from a live adapter; verify security examples against pinned contracts.
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 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.
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.
@@ -82,6 +82,8 @@ ai-kit/.metrics
82
82
  ai-kit/.metrics/**
83
83
  ai-kit/.memory
84
84
  ai-kit/.memory/**
85
+ ai-kit/.orchestration
86
+ ai-kit/.orchestration/**
85
87
  ai-kit/.upstream-cache
86
88
  ai-kit/.upstream-cache/**
87
89
  ai-kit/.design
@@ -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 explicit release identity before building
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
- --expected-version "$RELEASE_VERSION" --destination "$DESTINATION"
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: inputs.destination == 'testpypi' && github.repository == 'tigusigalpa/ai-kit' && startsWith(github.ref, 'refs/tags/v')
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: inputs.destination == 'pypi' && github.repository == 'tigusigalpa/ai-kit' && startsWith(github.ref, 'refs/tags/v')
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
@@ -58,3 +58,5 @@ build/
58
58
  .DS_Store
59
59
  Thumbs.db
60
60
  Desktop.ini
61
+
62
+ /ai-kit/.orchestration/
@@ -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
- - Prepared `ai-kit-python` 1.4.2; PyPI publisher/GitHub pypi environment verified. Preserve v1.4.1 Git/Docker. [Status](docs/V1_4_2.md).
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
- - 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.
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
- - Benchmark packs accept optional `kit_agents`/`kit_preset` (default codex/minimal), so kit arms install the client's real adapter set and preset instead of a hard-coded arm; both are validated against the installer registry.
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
- Trusted Publishing remains manual and build-only by default. Registry uploads require the matching version/tag, canonical repository and the separately configured registry environment/publisher. Build tests have no OIDC permission; upload jobs consume only validated same-run artifacts. Record local, hosted and registry results separately. No upload, publisher/account setup or Git operation is authorized by preparation alone.
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
 
@@ -6,6 +6,7 @@ include pyproject.toml Makefile MANIFEST.in
6
6
  recursive-include ai-kit *.md
7
7
  prune ai-kit/.metrics
8
8
  prune ai-kit/.memory
9
+ prune ai-kit/.orchestration
9
10
  prune ai-kit/.upstream-cache
10
11
  prune ai-kit/.design
11
12
  recursive-include .agents *
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ai-kit-python
3
- Version: 1.4.2
4
- Summary: Offline installer and portable instructions that give AI coding agents project memory, stack rules, guardrails, and adaptive model routing.
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
  [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-3776AB?logo=python&logoColor=white)](#install)
10
+ [![PyPI version](https://img.shields.io/pypi/v/ai-kit-python?logo=pypi&logoColor=white)](https://pypi.org/project/ai-kit-python/)
12
11
  [![Dependencies: none](https://img.shields.io/badge/dependencies-none-2ea44f)](scripts/install.py)
13
12
  [![AI clients: 11](https://img.shields.io/badge/AI%20clients-11-7c3aed)](#-works-with-your-ai-clients)
14
13
  [![Docker Hub](https://img.shields.io/badge/Docker%20Hub-ai--kit-2496ED?logo=docker&logoColor=white)](https://hub.docker.com/r/tigusigalpa/ai-kit)
15
14
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue)](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 includes a portable Python package and a manual Trusted Publishing workflow. **PyPI/TestPyPI publication is prepared, not performed.** The package name is `ai-kit-python`, the executable is `aikit`, and Python 3.10+ is required. PyPI rejected the initial `ai-kit` name as too similar to an existing project; registry activation must finish before the first upload.
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
- From a reviewed AI-KIT checkout, you can install it now inside a virtual environment:
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
- After a verified PyPI release under that name, installation becomes `pipx install ai-kit-python`, or `python -m pip install ai-kit-python` inside a virtual environment. 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.
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) runs only by manual dispatch and defaults to build-only `validate`. Upload jobs require an explicit registry, exact version confirmation, a matching release tag and the canonical repository. They use separate `testpypi`/`pypi` environments and receive OIDC permission only in those jobs. Account/environment setup and any actual upload remain separate authorized operations. No permanent registry token is needed.
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.1](https://hub.docker.com/r/tigusigalpa/ai-kit/tags?name=1.4.1), for `linux/amd64`. Download with `docker pull tigusigalpa/ai-kit:1.4.1`. The mount examples below use the local name `ai-kit:1.4.1`; give the downloaded image that alias with `docker tag tigusigalpa/ai-kit:1.4.1 ai-kit:1.4.1` and set the version variable to `1.4.1`, or use the full namespaced image name in your commands. [Publication record](docs/V1_4_1.md#docker-hub-publication) records publication status and the verified digest. No `latest` tag was assigned and no automated registry push is configured.
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.1 --context .
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
  ![Honest boundaries](https://i.postimg.cc/kgHZybJq/09-honest-boundaries.jpg)
453
483
 
454
- Routing recommends controls; confirm actual client activation. Permission rules and ignores reduce risk without being a security boundary. The optional benchmark requires an explicitly configured worker; no live vendor adapter is shipped.
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
  ![Working with OpenRouter](https://i.postimg.cc/BnzyCKSS/13-working-with-openrouter.jpg)
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:** AI-KIT ships offline instruction selection, [dialogue memory and messages export](#shared-context-from-two-dialogues), routing recommendations and opt-in measurements. It does not ship an OpenRouter HTTP adapter, provider profile or live model executor. The workflow below describes proposed API execution; local dialogue exports are already available. No API key, paid call or code upload is configured by installing AI-KIT.
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
- An 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; it does not supply an OpenRouter worker today. Compare equivalent tasks and reviewed correctness, and control cold/warm cache conditions explicitly.
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
- ### Proposed adapter scope
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 package validation and manual Trusted Publishing; preparation uploads nothing. Standalone scripts and Makefile also work.
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 writes instructions and configuration; its opt-in benchmark invokes only an explicitly configured protocol worker. No live vendor adapter is shipped. Confirm activation in the actual client. Permission rules, ignore files, and MCP posture reduce risk but are not a security boundary. Hosted CI and real application trials are recorded as unverified unless evidence exists.
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 SKILL.md sits at the root of the AI-KIT repository, so the repository itself is the skill and carries its installer, templates, and documents. For Claude Code across all projects, clone it into the skills directory: `git clone https://github.com/tigusigalpa/ai-kit.git ~/.claude/skills/ai-kit`; the commands above then run from that folder. For other assistants, clone the repository next to the project or paste this file as context. Canonical documents: [README](README.md), [Core](template/ai-kit/CORE.md), [adapters and presets](template/ai-kit/ADAPTERS.md), [containers](template/ai-kit/CONTAINERS.md), [routing](template/ai-kit/router/POLICY.md), [contribution rules](CONTRIBUTING.md).
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.2
4
- Summary: Offline installer and portable instructions that give AI coding agents project memory, stack rules, guardrails, and adaptive model routing.
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).