petfishframework 0.5.1__tar.gz → 0.5.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 (211) hide show
  1. {petfishframework-0.5.1 → petfishframework-0.5.2}/CHANGELOG.md +25 -0
  2. {petfishframework-0.5.1 → petfishframework-0.5.2}/PKG-INFO +17 -3
  3. {petfishframework-0.5.1 → petfishframework-0.5.2}/README.md +16 -2
  4. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/api.md +1 -1
  5. petfishframework-0.5.2/docs/feedbacks/petfishframework_v0_5_1_review.md +947 -0
  6. {petfishframework-0.5.1 → petfishframework-0.5.2}/pyproject.toml +1 -1
  7. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/__init__.py +1 -1
  8. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/core/agent.py +2 -0
  9. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/core/environment.py +16 -16
  10. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/core/session.py +6 -0
  11. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/mcp/server.py +2 -1
  12. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/permissions/model.py +1 -0
  13. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/tools/__init__.py +2 -0
  14. petfishframework-0.5.2/src/petfishframework/tools/governance.py +40 -0
  15. {petfishframework-0.5.1 → petfishframework-0.5.2}/uv.lock +1 -1
  16. {petfishframework-0.5.1 → petfishframework-0.5.2}/.env.example +0 -0
  17. {petfishframework-0.5.1 → petfishframework-0.5.2}/.gitattributes +0 -0
  18. {petfishframework-0.5.1 → petfishframework-0.5.2}/.github/workflows/ci.yml +0 -0
  19. {petfishframework-0.5.1 → petfishframework-0.5.2}/.github/workflows/publish.yml +0 -0
  20. {petfishframework-0.5.1 → petfishframework-0.5.2}/.gitignore +0 -0
  21. {petfishframework-0.5.1 → petfishframework-0.5.2}/.sisyphus/plans/v0.1.6-plan.md +0 -0
  22. {petfishframework-0.5.1 → petfishframework-0.5.2}/.sisyphus/plans/v0.2.0-plan.md +0 -0
  23. {petfishframework-0.5.1 → petfishframework-0.5.2}/.sisyphus/plans/v0.3.0-plan.md +0 -0
  24. {petfishframework-0.5.1 → petfishframework-0.5.2}/.sisyphus/plans/v0.4.0-plan.md +0 -0
  25. {petfishframework-0.5.1 → petfishframework-0.5.2}/.sisyphus/plans/v0.5.0-plan.md +0 -0
  26. {petfishframework-0.5.1 → petfishframework-0.5.2}/AGENTS.md +0 -0
  27. {petfishframework-0.5.1 → petfishframework-0.5.2}/AGENTS.md.new +0 -0
  28. {petfishframework-0.5.1 → petfishframework-0.5.2}/CONTRIBUTING.md +0 -0
  29. {petfishframework-0.5.1 → petfishframework-0.5.2}/Dockerfile +0 -0
  30. {petfishframework-0.5.1 → petfishframework-0.5.2}/LICENSE +0 -0
  31. {petfishframework-0.5.1 → petfishframework-0.5.2}/SECURITY.md +0 -0
  32. {petfishframework-0.5.1 → petfishframework-0.5.2}/conftest.py +0 -0
  33. {petfishframework-0.5.1 → petfishframework-0.5.2}/docker-compose.yml +0 -0
  34. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/api-stability.md +0 -0
  35. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/architecture.md +0 -0
  36. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/benchmark-results.md +0 -0
  37. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/deployment.md +0 -0
  38. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/development-plan.md +0 -0
  39. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/development.md +0 -0
  40. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/enterprise-expense-demo.md +0 -0
  41. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/feedbacks/archives/petfishframework_0_1_4_playground_recommendations.md +0 -0
  42. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/feedbacks/archives/petfishframework_playground_report.md +0 -0
  43. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/feedbacks/archives/petfishframework_production_readiness_roadmap.md +0 -0
  44. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/feedbacks/archives/petfishframework_recommendations.md +0 -0
  45. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/feedbacks/archives/petfishframework_v0_1_6_playground_review.md +0 -0
  46. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/feedbacks/archives/petfishframework_v0_1_7_review.md +0 -0
  47. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/feedbacks/archives/petfishframework_v0_1_8_review.md +0 -0
  48. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/feedbacks/archives/petfishframework_v0_2_1_review.md +0 -0
  49. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/feedbacks/archives/petfishframework_v0_2_2_review.md +0 -0
  50. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/feedbacks/archives/petfishframework_v0_3_0_review.md +0 -0
  51. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/feedbacks/archives/petfishframework_v0_4_0_review.md +0 -0
  52. {petfishframework-0.5.1/docs/feedbacks → petfishframework-0.5.2/docs/feedbacks/archives}/petfishframework_v0_4_1_review.md +0 -0
  53. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/release-checklist.md +0 -0
  54. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/release-protocol.md +0 -0
  55. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/research/competitor-analysis/README.md +0 -0
  56. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/research/competitor-analysis/competitor-matrix.md +0 -0
  57. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/research/competitor-analysis/market-brief.md +0 -0
  58. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/research/competitor-analysis/positioning-map.md +0 -0
  59. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/research/competitor-analysis/swot-analysis.md +0 -0
  60. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/research/literature-review/inclusion-exclusion-criteria.md +0 -0
  61. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/research/literature-review/literature-matrix.md +0 -0
  62. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/research/literature-review/literature-review.md +0 -0
  63. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/research/literature-review/search-strategy.md +0 -0
  64. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/research/reference-repos-absorption.md +0 -0
  65. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/skeleton-completeness-checklist.md +0 -0
  66. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/test-results-report.md +0 -0
  67. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/threat-model.md +0 -0
  68. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/usage-guide.md +0 -0
  69. {petfishframework-0.5.1 → petfishframework-0.5.2}/docs/validation-roadmap.md +0 -0
  70. {petfishframework-0.5.1 → petfishframework-0.5.2}/initialization-report.md +0 -0
  71. {petfishframework-0.5.1 → petfishframework-0.5.2}/mcp/README.md +0 -0
  72. {petfishframework-0.5.1 → petfishframework-0.5.2}/mcp/connection-checklist.md +0 -0
  73. {petfishframework-0.5.1 → petfishframework-0.5.2}/mcp/mcp-config.example.json +0 -0
  74. {petfishframework-0.5.1 → petfishframework-0.5.2}/opencode.json +0 -0
  75. {petfishframework-0.5.1 → petfishframework-0.5.2}/qa/code-review-checklist.md +0 -0
  76. {petfishframework-0.5.1 → petfishframework-0.5.2}/qa/qa-review.md +0 -0
  77. {petfishframework-0.5.1 → petfishframework-0.5.2}/qa/qc-gate-decision.md +0 -0
  78. {petfishframework-0.5.1 → petfishframework-0.5.2}/qa/test-plan.md +0 -0
  79. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/__main__.py +0 -0
  80. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/config.py +0 -0
  81. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/core/__init__.py +0 -0
  82. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/core/compiled.py +0 -0
  83. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/core/contracts.py +0 -0
  84. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/core/conversation.py +0 -0
  85. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/core/events.py +0 -0
  86. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/core/structured.py +0 -0
  87. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/core/types.py +0 -0
  88. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/credentials/__init__.py +0 -0
  89. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/credentials/broker.py +0 -0
  90. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/credentials/token.py +0 -0
  91. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/credentials/vault_adapter.py +0 -0
  92. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/mcp/__init__.py +0 -0
  93. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/mcp/allowlist.py +0 -0
  94. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/mcp/client.py +0 -0
  95. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/mcp/exceptions.py +0 -0
  96. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/mcp/risk_mapper.py +0 -0
  97. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/mcp/schema_pin.py +0 -0
  98. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/mcp/stdio_transport.py +0 -0
  99. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/mcp/wrapper.py +0 -0
  100. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/models/__init__.py +0 -0
  101. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/models/anthropic.py +0 -0
  102. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/models/fake.py +0 -0
  103. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/models/openai.py +0 -0
  104. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/observability/__init__.py +0 -0
  105. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/observability/otel_sink.py +0 -0
  106. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/observability/siem_sink.py +0 -0
  107. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/observability/sinks.py +0 -0
  108. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/permissions/__init__.py +0 -0
  109. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/permissions/risk_policy.py +0 -0
  110. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/policies/__init__.py +0 -0
  111. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/policies/conditions.py +0 -0
  112. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/policies/engine.py +0 -0
  113. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/policies/hot_reload.py +0 -0
  114. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/policies/rule.py +0 -0
  115. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/policies/test_runner.py +0 -0
  116. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/policies/validator.py +0 -0
  117. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/reasoning/__init__.py +0 -0
  118. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/reasoning/lats.py +0 -0
  119. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/reasoning/llm_plus_p.py +0 -0
  120. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/reasoning/react.py +0 -0
  121. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/reasoning/reflexion.py +0 -0
  122. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/reliability/__init__.py +0 -0
  123. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/reliability/audit_report.py +0 -0
  124. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/reliability/circuit_breaker.py +0 -0
  125. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/reliability/cost.py +0 -0
  126. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/reliability/cost_report.py +0 -0
  127. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/reliability/pass_at_k.py +0 -0
  128. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/reliability/replay.py +0 -0
  129. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/reliability/retry.py +0 -0
  130. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/reliability/timeout.py +0 -0
  131. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/retrieval/__init__.py +0 -0
  132. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/retrieval/adaptive.py +0 -0
  133. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/retrieval/crag.py +0 -0
  134. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/retrieval/memory_store.py +0 -0
  135. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/tools/agent_tool.py +0 -0
  136. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/tools/base.py +0 -0
  137. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/tools/calculator.py +0 -0
  138. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/tools/idempotency.py +0 -0
  139. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/tools/metadata_policy.py +0 -0
  140. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/tools/path_planner.py +0 -0
  141. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/tools/rate_limiter.py +0 -0
  142. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/tools/registry.py +0 -0
  143. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/tools/sandbox.py +0 -0
  144. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/tools/schema_validator.py +0 -0
  145. {petfishframework-0.5.1 → petfishframework-0.5.2}/src/petfishframework/tools/word_sorter.py +0 -0
  146. {petfishframework-0.5.1 → petfishframework-0.5.2}/tasks/backlog.md +0 -0
  147. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/integration/__init__.py +0 -0
  148. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/integration/test_anthropic_integration.py +0 -0
  149. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/integration/test_openai_integration.py +0 -0
  150. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/policies/enterprise-expense.tests.yaml +0 -0
  151. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_agent_tool.py +0 -0
  152. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_anthropic_adapter.py +0 -0
  153. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_api_agent_lifecycle.py +0 -0
  154. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_api_edge_cases.py +0 -0
  155. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_api_integration.py +0 -0
  156. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_api_public_surface.py +0 -0
  157. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_api_type_safety.py +0 -0
  158. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_async.py +0 -0
  159. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_audit_report_v2.py +0 -0
  160. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_circuit_breaker.py +0 -0
  161. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_conversation.py +0 -0
  162. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_credential_broker.py +0 -0
  163. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_credential_integration.py +0 -0
  164. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_degrade.py +0 -0
  165. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_degrade_failclosed.py +0 -0
  166. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_enterprise_demo.py +0 -0
  167. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_lats_mcts.py +0 -0
  168. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_llm_plus_p_general.py +0 -0
  169. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_m2_m3_m4.py +0 -0
  170. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_main_entry.py +0 -0
  171. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_mcp.py +0 -0
  172. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_mcp_allowlist.py +0 -0
  173. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_mcp_lifecycle.py +0 -0
  174. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_mcp_risk_mapping.py +0 -0
  175. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_mcp_schema_pin.py +0 -0
  176. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_mcp_server.py +0 -0
  177. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_openai_adapter.py +0 -0
  178. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_otel_sink.py +0 -0
  179. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_pass_at_k.py +0 -0
  180. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_permission_semantics.py +0 -0
  181. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_policy_hot_reload.py +0 -0
  182. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_quickstart_smoke.py +0 -0
  183. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_rate_limiter.py +0 -0
  184. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_reflexion.py +0 -0
  185. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_replay.py +0 -0
  186. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_replay_rerun.py +0 -0
  187. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_replay_resume.py +0 -0
  188. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_retrieval.py +0 -0
  189. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_retry.py +0 -0
  190. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_risk_classification.py +0 -0
  191. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_sandbox.py +0 -0
  192. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_siem_export.py +0 -0
  193. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_skeleton.py +0 -0
  194. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_stdio_transport.py +0 -0
  195. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_streaming.py +0 -0
  196. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_structured.py +0 -0
  197. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_tool_idempotency.py +0 -0
  198. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_tool_metadata.py +0 -0
  199. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_tool_registry.py +0 -0
  200. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_tool_retry.py +0 -0
  201. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_tool_schema.py +0 -0
  202. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_tool_timeout.py +0 -0
  203. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_v016_semantics.py +0 -0
  204. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_v018.py +0 -0
  205. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_v019.py +0 -0
  206. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_v2_interface_compatibility.py +0 -0
  207. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_v2_lats.py +0 -0
  208. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_v2_llm_plus_p.py +0 -0
  209. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_vault_adapter.py +0 -0
  210. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_yaml_policy.py +0 -0
  211. {petfishframework-0.5.1 → petfishframework-0.5.2}/tests/test_yaml_policy_suite.py +0 -0
@@ -2,6 +2,31 @@
2
2
 
3
3
  All notable changes to petfishFramework will be documented in this file.
4
4
 
5
+ ## [0.5.2] — 2026-07-09
6
+
7
+ ### Review Fix Patch
8
+
9
+ #### MCP Server Version Fix
10
+ - `serve_as_mcp()` now returns dynamic `__version__` instead of hardcoded "0.5.0"
11
+
12
+ #### README Status Sync
13
+ - MCP server mode: `📋 Planned` → `✅ MVP (stdio JSON-RPC: initialize/tools.list/tools.call)`
14
+ - Examples run instruction: added "from a repository checkout" clarification
15
+
16
+ #### ToolGovernance First-Class API
17
+ - New `ToolGovernance` dataclass bundles schema_validator + rate_limiter + idempotency_store + timeout_policy
18
+ - `Agent(tool_governance=...)` wires governance into Session → RuntimeEnvironment
19
+ - No more need to construct RuntimeEnvironment directly for governance features
20
+ - README now includes Tool Governance usage example
21
+
22
+ #### Resource Type Fix
23
+ - `Resource` dataclass gains `risk_level: RiskLevel | None` field
24
+ - `RiskClassificationPolicy` now works with standard Resource objects
25
+
26
+ #### Rate-Limit / Idempotency Order Fix
27
+ - Idempotency cache check moved BEFORE rate limiting
28
+ - Cache hits no longer consume rate quota (correct semantic: rate limit counts real executions)
29
+
5
30
  ## [0.5.1] — 2026-07-09
6
31
 
7
32
  ### Deferred Items Completion + Reasoning Strategy Upgrades
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: petfishframework
3
- Version: 0.5.1
3
+ Version: 0.5.2
4
4
  Summary: A lightweight runtime framework for reliable, auditable, budget-aware, and permission-aware AI agents.
5
5
  Project-URL: Homepage, https://github.com/kylecui/petfishFramework
6
6
  Project-URL: Documentation, https://github.com/kylecui/petfishFramework/tree/master/docs
@@ -218,7 +218,7 @@ print(result.summary())
218
218
 
219
219
  See `examples/05_enterprise_expense.py` and `tests/test_enterprise_demo.py` for a complete enterprise expense approval scenario demonstrating all 6 DecisionEffects.
220
220
 
221
- Run: `python examples/05_enterprise_expense.py`
221
+ Run (from a repository checkout): `python examples/05_enterprise_expense.py`
222
222
 
223
223
  ## YAML Policy Engine
224
224
 
@@ -271,6 +271,20 @@ session.events.subscribe(siem_sink)
271
271
  result = session.run()
272
272
  ```
273
273
 
274
+ ## Tool Governance
275
+
276
+ ```python
277
+ from petfishframework.tools import ToolGovernance, ToolSchemaValidator
278
+ from petfishframework.tools.rate_limiter import RateLimiter, RateLimitPolicy
279
+
280
+ governance = ToolGovernance(
281
+ schema_validator=ToolSchemaValidator(), # validate tool args before execution
282
+ rate_limiter=RateLimiter(), # per-tool sliding-window rate limit
283
+ )
284
+
285
+ agent = Agent(model=model, reasoning=ReAct(), tools=tools, tool_governance=governance)
286
+ ```
287
+
274
288
  ## Roadmap
275
289
 
276
290
  - **v0.2.x**: Core runtime, permission semantics, enterprise PoC, Trusted Publishing ✅
@@ -293,7 +307,7 @@ petfishFramework is **Alpha**. API may change before v1.0.
293
307
  | Session replay / deterministic rerun / resume | ✅ Available |
294
308
  | OpenTelemetry + SIEM observability | ✅ Available |
295
309
  | MCP client stdio | ✅ Available |
296
- | MCP server mode | 📋 Planned |
310
+ | MCP server mode | MVP (stdio JSON-RPC: initialize/tools.list/tools.call) |
297
311
  | Structured output / conversation memory | ✅ Available |
298
312
  | YAML Policy Engine | ✅ Available |
299
313
  | Credential Broker | ✅ Available |
@@ -183,7 +183,7 @@ print(result.summary())
183
183
 
184
184
  See `examples/05_enterprise_expense.py` and `tests/test_enterprise_demo.py` for a complete enterprise expense approval scenario demonstrating all 6 DecisionEffects.
185
185
 
186
- Run: `python examples/05_enterprise_expense.py`
186
+ Run (from a repository checkout): `python examples/05_enterprise_expense.py`
187
187
 
188
188
  ## YAML Policy Engine
189
189
 
@@ -236,6 +236,20 @@ session.events.subscribe(siem_sink)
236
236
  result = session.run()
237
237
  ```
238
238
 
239
+ ## Tool Governance
240
+
241
+ ```python
242
+ from petfishframework.tools import ToolGovernance, ToolSchemaValidator
243
+ from petfishframework.tools.rate_limiter import RateLimiter, RateLimitPolicy
244
+
245
+ governance = ToolGovernance(
246
+ schema_validator=ToolSchemaValidator(), # validate tool args before execution
247
+ rate_limiter=RateLimiter(), # per-tool sliding-window rate limit
248
+ )
249
+
250
+ agent = Agent(model=model, reasoning=ReAct(), tools=tools, tool_governance=governance)
251
+ ```
252
+
239
253
  ## Roadmap
240
254
 
241
255
  - **v0.2.x**: Core runtime, permission semantics, enterprise PoC, Trusted Publishing ✅
@@ -258,7 +272,7 @@ petfishFramework is **Alpha**. API may change before v1.0.
258
272
  | Session replay / deterministic rerun / resume | ✅ Available |
259
273
  | OpenTelemetry + SIEM observability | ✅ Available |
260
274
  | MCP client stdio | ✅ Available |
261
- | MCP server mode | 📋 Planned |
275
+ | MCP server mode | MVP (stdio JSON-RPC: initialize/tools.list/tools.call) |
262
276
  | Structured output / conversation memory | ✅ Available |
263
277
  | YAML Policy Engine | ✅ Available |
264
278
  | Credential Broker | ✅ Available |
@@ -1,6 +1,6 @@
1
1
  # petfishFramework API Reference
2
2
 
3
- This document is the authoritative reference for the public API of petfishFramework v0.5.1. Every signature, field, and example below is derived from the source code and from the tests that exercise it.
3
+ This document is the authoritative reference for the public API of petfishFramework v0.5.2. Every signature, field, and example below is derived from the source code and from the tests that exercise it.
4
4
 
5
5
  ## 1. Overview
6
6