acpkit 0.8.0__tar.gz → 0.8.2__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 (209) hide show
  1. {acpkit-0.8.0 → acpkit-0.8.2}/.gitignore +1 -0
  2. acpkit-0.8.2/PKG-INFO +402 -0
  3. acpkit-0.8.2/README.md +336 -0
  4. acpkit-0.8.2/VERSION +1 -0
  5. acpkit-0.8.2/packages/adapters/pydantic-acp/VERSION +1 -0
  6. {acpkit-0.8.0/src/acpkit → acpkit-0.8.2/packages/adapters/pydantic-acp/src/pydantic_acp}/_version.py +1 -1
  7. acpkit-0.8.2/packages/helpers/codex-auth-helper/VERSION +1 -0
  8. {acpkit-0.8.0 → acpkit-0.8.2}/packages/helpers/codex-auth-helper/src/codex_auth_helper/_version.py +1 -1
  9. {acpkit-0.8.0/packages/adapters/pydantic-acp/src/pydantic_acp → acpkit-0.8.2/src/acpkit}/_version.py +1 -1
  10. acpkit-0.8.0/PKG-INFO +0 -656
  11. acpkit-0.8.0/README.md +0 -590
  12. acpkit-0.8.0/VERSION +0 -1
  13. acpkit-0.8.0/packages/adapters/pydantic-acp/VERSION +0 -1
  14. acpkit-0.8.0/packages/helpers/codex-auth-helper/VERSION +0 -1
  15. {acpkit-0.8.0 → acpkit-0.8.2}/.agents/skills/acpkit-sdk/SKILL.md +0 -0
  16. {acpkit-0.8.0 → acpkit-0.8.2}/.agents/skills/acpkit-sdk/agents/openai.yaml +0 -0
  17. {acpkit-0.8.0 → acpkit-0.8.2}/.agents/skills/acpkit-sdk/resources/intro.md +0 -0
  18. {acpkit-0.8.0 → acpkit-0.8.2}/.agents/skills/acpkit-sdk/scripts/list_examples.py +0 -0
  19. {acpkit-0.8.0 → acpkit-0.8.2}/.agents/skills/acpkit-sdk/scripts/list_public_exports.py +0 -0
  20. {acpkit-0.8.0 → acpkit-0.8.2}/.cursorrules +0 -0
  21. {acpkit-0.8.0 → acpkit-0.8.2}/.editorconfig +0 -0
  22. {acpkit-0.8.0 → acpkit-0.8.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  23. {acpkit-0.8.0 → acpkit-0.8.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  24. {acpkit-0.8.0 → acpkit-0.8.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  25. {acpkit-0.8.0 → acpkit-0.8.2}/.github/dependabot.yml +0 -0
  26. {acpkit-0.8.0 → acpkit-0.8.2}/.github/workflows/ci.yml +0 -0
  27. {acpkit-0.8.0 → acpkit-0.8.2}/.github/workflows/codecov.yml +0 -0
  28. {acpkit-0.8.0 → acpkit-0.8.2}/.github/workflows/docs.yml +0 -0
  29. {acpkit-0.8.0 → acpkit-0.8.2}/.github/workflows/publish.yml +0 -0
  30. {acpkit-0.8.0 → acpkit-0.8.2}/.github/workflows/test.yml +0 -0
  31. {acpkit-0.8.0 → acpkit-0.8.2}/.pre-commit-config.yaml +0 -0
  32. {acpkit-0.8.0 → acpkit-0.8.2}/.python-version +0 -0
  33. {acpkit-0.8.0 → acpkit-0.8.2}/CHANGELOG +0 -0
  34. {acpkit-0.8.0 → acpkit-0.8.2}/CODE_OF_CONDUCT.md +0 -0
  35. {acpkit-0.8.0 → acpkit-0.8.2}/CONTRIBUTING.md +0 -0
  36. {acpkit-0.8.0 → acpkit-0.8.2}/COVERAGE +0 -0
  37. {acpkit-0.8.0 → acpkit-0.8.2}/LICENSE +0 -0
  38. {acpkit-0.8.0 → acpkit-0.8.2}/Makefile +0 -0
  39. {acpkit-0.8.0 → acpkit-0.8.2}/SECURITY.md +0 -0
  40. {acpkit-0.8.0 → acpkit-0.8.2}/context7.json +0 -0
  41. {acpkit-0.8.0 → acpkit-0.8.2}/docs/.partials/index-header.html +0 -0
  42. {acpkit-0.8.0 → acpkit-0.8.2}/docs/about/index.md +0 -0
  43. {acpkit-0.8.0 → acpkit-0.8.2}/docs/api/acpkit.md +0 -0
  44. {acpkit-0.8.0 → acpkit-0.8.2}/docs/api/codex_auth_helper.md +0 -0
  45. {acpkit-0.8.0 → acpkit-0.8.2}/docs/api/pydantic_acp.md +0 -0
  46. {acpkit-0.8.0 → acpkit-0.8.2}/docs/bridges.md +0 -0
  47. {acpkit-0.8.0 → acpkit-0.8.2}/docs/cli.md +0 -0
  48. {acpkit-0.8.0 → acpkit-0.8.2}/docs/compatibility-matrix-template.md +0 -0
  49. {acpkit-0.8.0 → acpkit-0.8.2}/docs/examples/finance.md +0 -0
  50. {acpkit-0.8.0 → acpkit-0.8.2}/docs/examples/index.md +0 -0
  51. {acpkit-0.8.0 → acpkit-0.8.2}/docs/examples/travel.md +0 -0
  52. {acpkit-0.8.0 → acpkit-0.8.2}/docs/getting-started/installation.md +0 -0
  53. {acpkit-0.8.0 → acpkit-0.8.2}/docs/getting-started/quickstart.md +0 -0
  54. {acpkit-0.8.0 → acpkit-0.8.2}/docs/helpers.md +0 -0
  55. {acpkit-0.8.0 → acpkit-0.8.2}/docs/host-backends.md +0 -0
  56. {acpkit-0.8.0 → acpkit-0.8.2}/docs/index.md +0 -0
  57. {acpkit-0.8.0 → acpkit-0.8.2}/docs/integration-audit.md +0 -0
  58. {acpkit-0.8.0 → acpkit-0.8.2}/docs/integration-readiness.md +0 -0
  59. {acpkit-0.8.0 → acpkit-0.8.2}/docs/integration-testing.md +0 -0
  60. {acpkit-0.8.0 → acpkit-0.8.2}/docs/llms-full.txt +0 -0
  61. {acpkit-0.8.0 → acpkit-0.8.2}/docs/llms.txt +0 -0
  62. {acpkit-0.8.0 → acpkit-0.8.2}/docs/projection-cookbook.md +0 -0
  63. {acpkit-0.8.0 → acpkit-0.8.2}/docs/providers.md +0 -0
  64. {acpkit-0.8.0 → acpkit-0.8.2}/docs/pydantic-acp/adapter-config.md +0 -0
  65. {acpkit-0.8.0 → acpkit-0.8.2}/docs/pydantic-acp/plans-thinking-approvals.md +0 -0
  66. {acpkit-0.8.0 → acpkit-0.8.2}/docs/pydantic-acp/prompt-resources.md +0 -0
  67. {acpkit-0.8.0 → acpkit-0.8.2}/docs/pydantic-acp/runtime-controls.md +0 -0
  68. {acpkit-0.8.0 → acpkit-0.8.2}/docs/pydantic-acp/session-state.md +0 -0
  69. {acpkit-0.8.0 → acpkit-0.8.2}/docs/pydantic-acp.md +0 -0
  70. {acpkit-0.8.0 → acpkit-0.8.2}/docs/stylesheets/tweaks.css +0 -0
  71. {acpkit-0.8.0 → acpkit-0.8.2}/docs/testing.md +0 -0
  72. {acpkit-0.8.0 → acpkit-0.8.2}/examples/__init__.py +0 -0
  73. {acpkit-0.8.0 → acpkit-0.8.2}/examples/pydantic/.gitignore +0 -0
  74. {acpkit-0.8.0 → acpkit-0.8.2}/examples/pydantic/.travel-agent/ideas.txt +0 -0
  75. {acpkit-0.8.0 → acpkit-0.8.2}/examples/pydantic/.travel-agent/itinerary.md +0 -0
  76. {acpkit-0.8.0 → acpkit-0.8.2}/examples/pydantic/README.md +0 -0
  77. {acpkit-0.8.0 → acpkit-0.8.2}/examples/pydantic/__init__.py +0 -0
  78. {acpkit-0.8.0 → acpkit-0.8.2}/examples/pydantic/finance_agent.py +0 -0
  79. {acpkit-0.8.0 → acpkit-0.8.2}/examples/pydantic/travel_agent.py +0 -0
  80. {acpkit-0.8.0 → acpkit-0.8.2}/mkdocs.yml +0 -0
  81. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/README.md +0 -0
  82. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/pyproject.toml +0 -0
  83. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/__init__.py +0 -0
  84. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/_projection_risk.py +0 -0
  85. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/_projection_text.py +0 -0
  86. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/_slash_commands.py +0 -0
  87. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/agent_source.py +0 -0
  88. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/agent_types.py +0 -0
  89. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/approvals.py +0 -0
  90. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/awaitables.py +0 -0
  91. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/bridges/__init__.py +0 -0
  92. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/bridges/_hook_capability.py +0 -0
  93. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/bridges/base.py +0 -0
  94. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/bridges/capability_support.py +0 -0
  95. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/bridges/history_processor.py +0 -0
  96. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/bridges/hooks.py +0 -0
  97. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/bridges/mcp.py +0 -0
  98. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/bridges/prepare_tools.py +0 -0
  99. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/bridges/thinking.py +0 -0
  100. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/builders/__init__.py +0 -0
  101. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/builders/agent.py +0 -0
  102. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/config.py +0 -0
  103. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/hook_projection.py +0 -0
  104. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/host/__init__.py +0 -0
  105. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/host/_policy_commands.py +0 -0
  106. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/host/_policy_paths.py +0 -0
  107. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/host/context.py +0 -0
  108. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/host/filesystem.py +0 -0
  109. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/host/policy.py +0 -0
  110. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/host/terminal.py +0 -0
  111. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/models.py +0 -0
  112. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/projection.py +0 -0
  113. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/projection_helpers.py +0 -0
  114. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/providers.py +0 -0
  115. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/py.typed +0 -0
  116. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/__init__.py +0 -0
  117. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/_adapter_mixins.py +0 -0
  118. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/_adapter_prompt.py +0 -0
  119. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/_agent_state.py +0 -0
  120. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/_compat.py +0 -0
  121. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/_native_plan_runtime.py +0 -0
  122. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/_prompt_execution.py +0 -0
  123. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/_prompt_model_runtime.py +0 -0
  124. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/_prompt_runtime.py +0 -0
  125. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/_session_lifecycle.py +0 -0
  126. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/_session_model_runtime.py +0 -0
  127. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/_session_runtime.py +0 -0
  128. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/_session_surface_runtime.py +0 -0
  129. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/adapter.py +0 -0
  130. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/bridge_manager.py +0 -0
  131. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/hook_introspection.py +0 -0
  132. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/prompts.py +0 -0
  133. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/server.py +0 -0
  134. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/session_surface.py +0 -0
  135. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/runtime/slash_commands.py +0 -0
  136. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/serialization.py +0 -0
  137. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/session/__init__.py +0 -0
  138. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/session/state.py +0 -0
  139. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/session/store.py +0 -0
  140. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/testing/__init__.py +0 -0
  141. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/testing/fakes.py +0 -0
  142. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/testing/harness.py +0 -0
  143. {acpkit-0.8.0 → acpkit-0.8.2}/packages/adapters/pydantic-acp/src/pydantic_acp/types.py +0 -0
  144. {acpkit-0.8.0 → acpkit-0.8.2}/packages/helpers/codex-auth-helper/.gitignore +0 -0
  145. {acpkit-0.8.0 → acpkit-0.8.2}/packages/helpers/codex-auth-helper/LICENSE +0 -0
  146. {acpkit-0.8.0 → acpkit-0.8.2}/packages/helpers/codex-auth-helper/README.md +0 -0
  147. {acpkit-0.8.0 → acpkit-0.8.2}/packages/helpers/codex-auth-helper/pyproject.toml +0 -0
  148. {acpkit-0.8.0 → acpkit-0.8.2}/packages/helpers/codex-auth-helper/src/codex_auth_helper/__init__.py +0 -0
  149. {acpkit-0.8.0 → acpkit-0.8.2}/packages/helpers/codex-auth-helper/src/codex_auth_helper/auth/__init__.py +0 -0
  150. {acpkit-0.8.0 → acpkit-0.8.2}/packages/helpers/codex-auth-helper/src/codex_auth_helper/auth/config.py +0 -0
  151. {acpkit-0.8.0 → acpkit-0.8.2}/packages/helpers/codex-auth-helper/src/codex_auth_helper/auth/manager.py +0 -0
  152. {acpkit-0.8.0 → acpkit-0.8.2}/packages/helpers/codex-auth-helper/src/codex_auth_helper/auth/state.py +0 -0
  153. {acpkit-0.8.0 → acpkit-0.8.2}/packages/helpers/codex-auth-helper/src/codex_auth_helper/auth/store.py +0 -0
  154. {acpkit-0.8.0 → acpkit-0.8.2}/packages/helpers/codex-auth-helper/src/codex_auth_helper/client.py +0 -0
  155. {acpkit-0.8.0 → acpkit-0.8.2}/packages/helpers/codex-auth-helper/src/codex_auth_helper/factory.py +0 -0
  156. {acpkit-0.8.0 → acpkit-0.8.2}/packages/helpers/codex-auth-helper/src/codex_auth_helper/model.py +0 -0
  157. {acpkit-0.8.0 → acpkit-0.8.2}/packages/helpers/codex-auth-helper/src/codex_auth_helper/py.typed +0 -0
  158. {acpkit-0.8.0 → acpkit-0.8.2}/pyproject.toml +0 -0
  159. {acpkit-0.8.0 → acpkit-0.8.2}/pyrightconfig.json +0 -0
  160. {acpkit-0.8.0 → acpkit-0.8.2}/scripts/check_pypi_versions.py +0 -0
  161. {acpkit-0.8.0 → acpkit-0.8.2}/scripts/demo_mcp_server.py +0 -0
  162. {acpkit-0.8.0 → acpkit-0.8.2}/scripts/generate_llms_docs.py +0 -0
  163. {acpkit-0.8.0 → acpkit-0.8.2}/scripts/mock_hook_audit.py +0 -0
  164. {acpkit-0.8.0 → acpkit-0.8.2}/scripts/mock_hook_snapshot.py +0 -0
  165. {acpkit-0.8.0 → acpkit-0.8.2}/scripts/run_if_major_change.py +0 -0
  166. {acpkit-0.8.0 → acpkit-0.8.2}/scripts/save_coverage_summary.py +0 -0
  167. {acpkit-0.8.0 → acpkit-0.8.2}/src/acpkit/__init__.py +0 -0
  168. {acpkit-0.8.0 → acpkit-0.8.2}/src/acpkit/__main__.py +0 -0
  169. {acpkit-0.8.0 → acpkit-0.8.2}/src/acpkit/_compatibility_schema.py +0 -0
  170. {acpkit-0.8.0 → acpkit-0.8.2}/src/acpkit/adapters.py +0 -0
  171. {acpkit-0.8.0 → acpkit-0.8.2}/src/acpkit/cli.py +0 -0
  172. {acpkit-0.8.0 → acpkit-0.8.2}/src/acpkit/compatibility.py +0 -0
  173. {acpkit-0.8.0 → acpkit-0.8.2}/src/acpkit/py.typed +0 -0
  174. {acpkit-0.8.0 → acpkit-0.8.2}/src/acpkit/runtime.py +0 -0
  175. {acpkit-0.8.0 → acpkit-0.8.2}/tests/__init__.py +0 -0
  176. {acpkit-0.8.0 → acpkit-0.8.2}/tests/codex_auth_helper/__init__.py +0 -0
  177. {acpkit-0.8.0 → acpkit-0.8.2}/tests/codex_auth_helper/support.py +0 -0
  178. {acpkit-0.8.0 → acpkit-0.8.2}/tests/codex_auth_helper/test_auth.py +0 -0
  179. {acpkit-0.8.0 → acpkit-0.8.2}/tests/codex_auth_helper/test_factory.py +0 -0
  180. {acpkit-0.8.0 → acpkit-0.8.2}/tests/conftest.py +0 -0
  181. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/__init__.py +0 -0
  182. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/support.py +0 -0
  183. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_adapter_helpers.py +0 -0
  184. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_approvals.py +0 -0
  185. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_bridge_builder.py +0 -0
  186. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_bridge_capability_support.py +0 -0
  187. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_bridge_hooks.py +0 -0
  188. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_bridge_mcp.py +0 -0
  189. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_bridge_prepare_tools.py +0 -0
  190. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_bridge_thinking.py +0 -0
  191. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_bridge_web_capabilities.py +0 -0
  192. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_compat.py +0 -0
  193. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_examples.py +0 -0
  194. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_hook_introspection.py +0 -0
  195. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_host.py +0 -0
  196. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_host_policy.py +0 -0
  197. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_low_level_helpers.py +0 -0
  198. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_models.py +0 -0
  199. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_projection.py +0 -0
  200. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_projection_helpers.py +0 -0
  201. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_runtime.py +0 -0
  202. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_session_runtime_helpers.py +0 -0
  203. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_slash_commands.py +0 -0
  204. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_sources.py +0 -0
  205. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_testing_fakes.py +0 -0
  206. {acpkit-0.8.0 → acpkit-0.8.2}/tests/pydantic/test_testing_harness.py +0 -0
  207. {acpkit-0.8.0 → acpkit-0.8.2}/tests/test_acpkit_cli.py +0 -0
  208. {acpkit-0.8.0 → acpkit-0.8.2}/tests/test_compatibility_manifest.py +0 -0
  209. {acpkit-0.8.0 → acpkit-0.8.2}/tests/test_native_pydantic_agent.py +0 -0
@@ -82,6 +82,7 @@ coverage.json
82
82
  /acprouter
83
83
 
84
84
  # Draft Plans
85
+ *_feedback.md
85
86
  *-integration.md
86
87
  *-improvement.md
87
88
  *-plan.md
acpkit-0.8.2/PKG-INFO ADDED
@@ -0,0 +1,402 @@
1
+ Metadata-Version: 2.4
2
+ Name: acpkit
3
+ Version: 0.8.2
4
+ Summary: ACP Kit provides a common adapter for Agent Frameworks.
5
+ Project-URL: Homepage, https://github.com/vcoderun/acpkit
6
+ Project-URL: Issues, https://github.com/vcoderun/acpkit/issues
7
+ Project-URL: Repository, https://github.com/vcoderun/acpkit
8
+ License: Apache 2.0
9
+ License-File: LICENSE
10
+ Keywords: acp,agents,protocol,pydantic-ai
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Requires-Python: >=3.11
18
+ Requires-Dist: click>=8.1.8
19
+ Requires-Dist: mcp>=1.27.0
20
+ Requires-Dist: typing-extensions>=4.12.0
21
+ Provides-Extra: all
22
+ Requires-Dist: agent-client-protocol>=0.9.0; extra == 'all'
23
+ Requires-Dist: basedpyright; extra == 'all'
24
+ Requires-Dist: codex-auth-helper; extra == 'all'
25
+ Requires-Dist: mkdocs-material; extra == 'all'
26
+ Requires-Dist: mkdocstrings[python]; extra == 'all'
27
+ Requires-Dist: pre-commit; extra == 'all'
28
+ Requires-Dist: pydantic-acp; extra == 'all'
29
+ Requires-Dist: pydantic-ai-slim; extra == 'all'
30
+ Requires-Dist: pydantic-graph; extra == 'all'
31
+ Requires-Dist: pydantic>=2.7; extra == 'all'
32
+ Requires-Dist: pytest; extra == 'all'
33
+ Requires-Dist: pytest-asyncio; extra == 'all'
34
+ Requires-Dist: pytest-cov; extra == 'all'
35
+ Requires-Dist: python-dotenv; extra == 'all'
36
+ Requires-Dist: ruff; extra == 'all'
37
+ Requires-Dist: ty; extra == 'all'
38
+ Requires-Dist: typing-extensions>=4.12.0; extra == 'all'
39
+ Requires-Dist: uv>=0.8.3; extra == 'all'
40
+ Provides-Extra: codex
41
+ Requires-Dist: codex-auth-helper; extra == 'codex'
42
+ Provides-Extra: dev
43
+ Requires-Dist: agent-client-protocol>=0.9.0; extra == 'dev'
44
+ Requires-Dist: basedpyright; extra == 'dev'
45
+ Requires-Dist: codex-auth-helper; extra == 'dev'
46
+ Requires-Dist: pre-commit; extra == 'dev'
47
+ Requires-Dist: pydantic-acp; extra == 'dev'
48
+ Requires-Dist: pydantic-ai-slim; extra == 'dev'
49
+ Requires-Dist: pydantic-graph; extra == 'dev'
50
+ Requires-Dist: pydantic>=2.7; extra == 'dev'
51
+ Requires-Dist: pytest; extra == 'dev'
52
+ Requires-Dist: pytest-asyncio; extra == 'dev'
53
+ Requires-Dist: pytest-cov; extra == 'dev'
54
+ Requires-Dist: python-dotenv; extra == 'dev'
55
+ Requires-Dist: ruff; extra == 'dev'
56
+ Requires-Dist: ty; extra == 'dev'
57
+ Requires-Dist: typing-extensions>=4.12.0; extra == 'dev'
58
+ Provides-Extra: docs
59
+ Requires-Dist: mkdocs-material; extra == 'docs'
60
+ Requires-Dist: mkdocstrings[python]; extra == 'docs'
61
+ Provides-Extra: launch
62
+ Requires-Dist: uv>=0.8.3; extra == 'launch'
63
+ Provides-Extra: pydantic
64
+ Requires-Dist: pydantic-acp; extra == 'pydantic'
65
+ Description-Content-Type: text/markdown
66
+
67
+ # ACP Kit
68
+
69
+ [![CI](https://github.com/vcoderun/acpkit/actions/workflows/ci.yml/badge.svg?event=push)](https://github.com/vcoderun/acpkit/actions/workflows/ci.yml) [![codecov](https://codecov.io/gh/vcoderun/acpkit/branch/main/graph/badge.svg?token=ZQL4NY4FK6)](https://codecov.io/gh/vcoderun/acpkit) [![PyPI version](https://img.shields.io/pypi/v/acpkit.svg)](https://pypi.org/project/acpkit/) [![Python versions](https://img.shields.io/pypi/pyversions/acpkit.svg)](https://pypi.org/project/acpkit/) [![GitHub release](https://img.shields.io/github/v/release/vcoderun/acpkit)](https://github.com/vcoderun/acpkit/releases) [![License](https://img.shields.io/github/license/vcoderun/acpkit)](https://github.com/vcoderun/acpkit/blob/main/LICENSE)
70
+
71
+ ACP Kit is the adapter toolkit and monorepo for turning an existing agent surface into a truthful ACP server boundary.
72
+
73
+ Today the production focus is `pydantic-acp`: exposing an existing `pydantic_ai.Agent` through ACP without rewriting the agent or inventing ACP state the runtime cannot really honor.
74
+
75
+ The repo currently ships three main Python packages:
76
+
77
+ - `acpkit`
78
+ Root CLI, target resolver, and launch helpers.
79
+ - `pydantic-acp`
80
+ Production-grade ACP adapter for `pydantic_ai.Agent`.
81
+ - `codex-auth-helper`
82
+ Helper package for building Codex-backed Pydantic AI Responses models from a local Codex login.
83
+
84
+ ACP Kit is not a new agent framework. The intended workflow is:
85
+
86
+ 1. Keep your existing agent surface.
87
+ 2. Expose it through ACP with `run_acp(...)` or `create_acp_agent(...)`.
88
+ 3. Add only the ACP-visible state your runtime can actually honor: models, modes, plans, approvals, projection maps, MCP metadata, and host-backed tools.
89
+
90
+ ## Installation
91
+
92
+ Production:
93
+
94
+ ```bash
95
+ uv add "acpkit[pydantic]"
96
+ ```
97
+
98
+ ```bash
99
+ pip install "acpkit[pydantic]"
100
+ ```
101
+
102
+ With `acpkit launch` support:
103
+
104
+ ```bash
105
+ uv add "acpkit[pydantic,launch]"
106
+ ```
107
+
108
+ ```bash
109
+ pip install "acpkit[pydantic,launch]"
110
+ ```
111
+
112
+ Contributor setup:
113
+
114
+ ```bash
115
+ uv sync --extra dev --extra docs --extra pydantic
116
+ ```
117
+
118
+ ```bash
119
+ pip install -e ".[dev,docs,pydantic]"
120
+ ```
121
+
122
+ Contributor setup and validation commands are documented in [CONTRIBUTING.md](https://github.com/vcoderun/acpkit/blob/main/CONTRIBUTING.md).
123
+
124
+ ## Quickstart
125
+
126
+ ```python
127
+ from pydantic_ai import Agent
128
+ from pydantic_acp import run_acp
129
+
130
+ agent = Agent("openai:gpt-5", name="weather-agent")
131
+
132
+
133
+ @agent.tool_plain
134
+ def get_weather(city: str) -> str:
135
+ return f"Weather in {city}: sunny"
136
+
137
+
138
+ run_acp(agent=agent)
139
+ ```
140
+
141
+ If you want the ACP agent object without starting the server immediately:
142
+
143
+ ```python
144
+ from acp import run_agent
145
+ from pydantic_ai import Agent
146
+ from pydantic_acp import AdapterConfig, MemorySessionStore, create_acp_agent
147
+
148
+ agent = Agent("openai:gpt-5", name="composable-agent")
149
+
150
+ acp_agent = create_acp_agent(
151
+ agent=agent,
152
+ config=AdapterConfig(session_store=MemorySessionStore()),
153
+ )
154
+
155
+ run_agent(acp_agent)
156
+ ```
157
+
158
+ ## CLI
159
+
160
+ Expose a supported target through ACP:
161
+
162
+ ```bash
163
+ acpkit run my_agent
164
+ acpkit run my_agent:agent
165
+ acpkit run app.agents.demo:agent -p ./examples
166
+ ```
167
+
168
+ `acpkit` resolves `module` or `module:attribute` targets, auto-detects supported agent instances, and dispatches them to the installed adapter package. If only the module is given, it selects the last defined supported agent instance in that module.
169
+
170
+ Launch a target through Toad ACP:
171
+
172
+ ```bash
173
+ acpkit launch my_agent
174
+ acpkit launch my_agent:agent -p ./examples
175
+ ```
176
+
177
+ If the script already starts its own ACP server and should be launched directly:
178
+
179
+ ```bash
180
+ acpkit launch -c "python3.11 finance_agent.py"
181
+ ```
182
+
183
+ `launch TARGET` and `launch --command ...` are mutually exclusive. `-p/--path` only applies to `TARGET` mode.
184
+
185
+ ## What `pydantic-acp` Supports
186
+
187
+ `AdapterConfig` is the main runtime surface. Common ownership seams include:
188
+
189
+ - session stores and lifecycle
190
+ - model selection
191
+ - mode and config state
192
+ - approval bridges
193
+ - native plan state or host-owned plan providers
194
+ - capability bridges
195
+ - projection maps and tool classification
196
+ - prompt-model override providers
197
+
198
+ Prompt resource support includes:
199
+
200
+ - ACP text blocks
201
+ - resource links
202
+ - embedded text resources
203
+ - image blocks
204
+ - audio blocks
205
+ - embedded binary resources
206
+
207
+ Host-facing utilities include:
208
+
209
+ - `HostAccessPolicy` for typed filesystem and terminal guardrails
210
+ - `ClientHostContext` for ACP client-backed host access
211
+ - `BlackBoxHarness` for ACP boundary integration tests
212
+ - `CompatibilityManifest` for documenting the ACP surface an integration truly supports
213
+
214
+ ## Native Plan Mode And `TaskPlan`
215
+
216
+ `pydantic-acp` now uses `TaskPlan` as the structured native plan output surface.
217
+
218
+ Native plan mode is typically enabled through `PrepareToolsBridge`:
219
+
220
+ ```python
221
+ from pydantic_ai import Agent
222
+ from pydantic_ai.tools import RunContext, ToolDefinition
223
+ from pydantic_acp import (
224
+ AdapterConfig,
225
+ PrepareToolsBridge,
226
+ PrepareToolsMode,
227
+ run_acp,
228
+ )
229
+
230
+
231
+ def read_only_tools(
232
+ ctx: RunContext[None],
233
+ tool_defs: list[ToolDefinition],
234
+ ) -> list[ToolDefinition]:
235
+ del ctx
236
+ return list(tool_defs)
237
+
238
+
239
+ agent = Agent("openai:gpt-5", name="plan-agent")
240
+
241
+ run_acp(
242
+ agent=agent,
243
+ config=AdapterConfig(
244
+ capability_bridges=[
245
+ PrepareToolsBridge(
246
+ default_mode_id="plan",
247
+ default_plan_generation_type="structured",
248
+ modes=[
249
+ PrepareToolsMode(
250
+ id="plan",
251
+ name="Plan",
252
+ description="Return a structured ACP task plan.",
253
+ prepare_func=read_only_tools,
254
+ plan_mode=True,
255
+ ),
256
+ ],
257
+ ),
258
+ ],
259
+ ),
260
+ )
261
+ ```
262
+
263
+ Key rules:
264
+
265
+ - `plan_generation_type="structured"` is the default native plan-mode behavior.
266
+ - In `structured` mode, the adapter expects structured `TaskPlan` output instead of exposing `acp_set_plan`.
267
+ - Switch to `plan_generation_type="tools"` when you explicitly want tool-based native plan recording.
268
+ - Keep `plan_tools=True` for progress tools such as `acp_update_plan_entry` and `acp_mark_plan_done`.
269
+ - Native plan state and a host-owned `plan_provider` are separate seams. Use one truth source per workflow.
270
+
271
+ ## Projection Maps
272
+
273
+ Projection maps decide how known tool families render into ACP-visible updates instead of raw text blobs.
274
+
275
+ Built-in projection helpers:
276
+
277
+ - `FileSystemProjectionMap`
278
+ Filesystem reads, writes, and command previews into ACP diffs and rich status cards.
279
+ - `HookProjectionMap`
280
+ Re-label or hide selected `Hooks(...)` lifecycle events.
281
+ - `WebToolProjectionMap`
282
+ Rich rendering for web-search and web-fetch style tool families.
283
+ - `BuiltinToolProjectionMap`
284
+ Rich rendering for built-in upstream capability tools such as web search, web fetch, image generation, and upstream MCP capability calls.
285
+
286
+ Example:
287
+
288
+ ```python
289
+ from pydantic_acp import (
290
+ AdapterConfig,
291
+ BuiltinToolProjectionMap,
292
+ FileSystemProjectionMap,
293
+ HookProjectionMap,
294
+ run_acp,
295
+ )
296
+
297
+ run_acp(
298
+ agent=agent,
299
+ config=AdapterConfig(
300
+ projection_maps=[
301
+ FileSystemProjectionMap(
302
+ default_read_tool="read_file",
303
+ default_write_tool="write_file",
304
+ ),
305
+ HookProjectionMap(
306
+ hidden_event_ids=frozenset({"after_model_request"}),
307
+ event_labels={"before_model_request": "Preparing Request"},
308
+ ),
309
+ BuiltinToolProjectionMap(),
310
+ ],
311
+ ),
312
+ )
313
+ ```
314
+
315
+ ## Capability Bridges
316
+
317
+ Capability bridges extend runtime behavior without hard-coding one product shape into the adapter core.
318
+
319
+ Current built-in bridges include:
320
+
321
+ - `ThinkingBridge`
322
+ - `PrepareToolsBridge`
323
+ - `ThreadExecutorBridge`
324
+ - `SetToolMetadataBridge`
325
+ - `IncludeToolReturnSchemasBridge`
326
+ - `WebSearchBridge`
327
+ - `WebFetchBridge`
328
+ - `ImageGenerationBridge`
329
+ - `McpCapabilityBridge`
330
+ - `ToolsetBridge`
331
+ - `PrefixToolsBridge`
332
+ - `OpenAICompactionBridge`
333
+ - `AnthropicCompactionBridge`
334
+
335
+ Use bridges when the runtime should gain upstream Pydantic AI capabilities and ACP-visible metadata without rewriting the adapter core.
336
+
337
+ ## Maintained Examples
338
+
339
+ The maintained example set is intentionally small. Each example is broad enough to be useful on its own instead of only demonstrating one narrow helper.
340
+
341
+ - [Finance Agent](https://github.com/vcoderun/acpkit/blob/main/examples/pydantic/finance_agent.py)
342
+ Session-aware finance workspace with ACP plans, approvals, mode-aware tool shaping, and projected note diffs.
343
+ - [Travel Agent](https://github.com/vcoderun/acpkit/blob/main/examples/pydantic/travel_agent.py)
344
+ Travel planning runtime with hook projection, approval-gated trip files, and prompt-model override behavior for media prompts.
345
+
346
+ Run them with:
347
+
348
+ ```bash
349
+ uv run python -m examples.pydantic.finance_agent
350
+ uv run python -m examples.pydantic.travel_agent
351
+ ```
352
+
353
+ ## Documentation Map
354
+
355
+ Top-level docs:
356
+
357
+ - [Getting Started](https://vcoderun.github.io/acpkit/getting-started/quickstart/)
358
+ - [CLI](https://vcoderun.github.io/acpkit/cli/)
359
+ - [Pydantic ACP Overview](https://vcoderun.github.io/acpkit/pydantic-acp/)
360
+ - [AdapterConfig](https://vcoderun.github.io/acpkit/pydantic-acp/adapter-config/)
361
+ - [Plans, Thinking, and Approvals](https://vcoderun.github.io/acpkit/pydantic-acp/plans-thinking-approvals/)
362
+ - [Prompt Resources and Context](https://vcoderun.github.io/acpkit/pydantic-acp/prompt-resources/)
363
+ - [Session State and Lifecycle](https://vcoderun.github.io/acpkit/pydantic-acp/session-state/)
364
+ - [Models, Modes, and Slash Commands](https://vcoderun.github.io/acpkit/pydantic-acp/runtime-controls/)
365
+ - [Bridges](https://vcoderun.github.io/acpkit/bridges/)
366
+ - [Providers](https://vcoderun.github.io/acpkit/providers/)
367
+ - [Host Backends and Projections](https://vcoderun.github.io/acpkit/host-backends/)
368
+ - [Projection Cookbook](https://vcoderun.github.io/acpkit/projection-cookbook/)
369
+ - [Examples](https://vcoderun.github.io/acpkit/examples/)
370
+ - [Testing](https://vcoderun.github.io/acpkit/testing/)
371
+
372
+ Reference docs:
373
+
374
+ - [`acpkit` API](https://vcoderun.github.io/acpkit/api/acpkit/)
375
+ - [`pydantic_acp` API](https://vcoderun.github.io/acpkit/api/pydantic_acp/)
376
+ - [`codex_auth_helper` API](https://vcoderun.github.io/acpkit/api/codex_auth_helper/)
377
+
378
+ ## ACP Kit Skill
379
+
380
+ This repo also ships an `acpkit-sdk` skill package for Codex.
381
+
382
+ Use it when you want Codex to help integrate ACP into an existing agent surface, especially for:
383
+
384
+ - exposing an existing `pydantic_ai.Agent` through ACP
385
+ - choosing between `run_acp(...)`, `create_acp_agent(...)`, providers, bridges, and `AgentSource`
386
+ - wiring plans, approvals, session stores, thinking, MCP metadata, and host-backed tools
387
+ - keeping docs and examples aligned with the real SDK surface
388
+
389
+ Install with just one command:
390
+
391
+ ```bash
392
+ npx ctx7 skills install /vcoderun/acpkit acpkit-sdk
393
+ ```
394
+
395
+ Canonical skill package:
396
+
397
+ - [`.agents/skills/acpkit-sdk/`](https://github.com/vcoderun/acpkit/tree/main/.agents/skills/acpkit-sdk)
398
+
399
+ Example prompts:
400
+
401
+ - `Use $acpkit-sdk to expose my existing pydantic_ai.Agent through ACP.`
402
+ - `Use $acpkit-sdk to add ACP plans, approvals, slash-command mode switching, and projection maps to this agent.`