purra 0.3.0__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 (196) hide show
  1. purra-0.3.0/LICENSE +21 -0
  2. purra-0.3.0/MANIFEST.in +1 -0
  3. purra-0.3.0/PKG-INFO +901 -0
  4. purra-0.3.0/README.md +879 -0
  5. purra-0.3.0/conformance/README.md +10 -0
  6. purra-0.3.0/conformance/fixtures/artifact_protocol.json +88 -0
  7. purra-0.3.0/conformance/fixtures/context_protocol.json +28 -0
  8. purra-0.3.0/conformance/fixtures/delegation_protocol.json +53 -0
  9. purra-0.3.0/conformance/fixtures/durable_protocol.json +151 -0
  10. purra-0.3.0/conformance/fixtures/model_protocol.json +120 -0
  11. purra-0.3.0/conformance/fixtures/observability_protocol.json +131 -0
  12. purra-0.3.0/conformance/fixtures/planning_protocol.json +27 -0
  13. purra-0.3.0/conformance/fixtures/recovery_protocol.json +103 -0
  14. purra-0.3.0/conformance/fixtures/tool_security.json +100 -0
  15. purra-0.3.0/pyproject.toml +41 -0
  16. purra-0.3.0/setup.cfg +4 -0
  17. purra-0.3.0/src/purra/__init__.py +8 -0
  18. purra-0.3.0/src/purra/adapters/__init__.py +15 -0
  19. purra-0.3.0/src/purra/adapters/durable_memory.py +1697 -0
  20. purra-0.3.0/src/purra/adapters/memory.py +1322 -0
  21. purra-0.3.0/src/purra/agent_presets.py +663 -0
  22. purra-0.3.0/src/purra/api/__init__.py +101 -0
  23. purra-0.3.0/src/purra/artifacts/__init__.py +87 -0
  24. purra-0.3.0/src/purra/artifacts/access.py +108 -0
  25. purra-0.3.0/src/purra/artifacts/continuity.py +277 -0
  26. purra-0.3.0/src/purra/artifacts/contracts.py +367 -0
  27. purra-0.3.0/src/purra/artifacts/errors.py +39 -0
  28. purra-0.3.0/src/purra/artifacts/lifecycle.py +287 -0
  29. purra-0.3.0/src/purra/artifacts/maintenance.py +137 -0
  30. purra-0.3.0/src/purra/artifacts/ownership.py +28 -0
  31. purra-0.3.0/src/purra/artifacts/ports.py +163 -0
  32. purra-0.3.0/src/purra/cancellation.py +210 -0
  33. purra-0.3.0/src/purra/context_budget.py +432 -0
  34. purra-0.3.0/src/purra/context_orchestration/__init__.py +30 -0
  35. purra-0.3.0/src/purra/context_orchestration/compaction.py +480 -0
  36. purra-0.3.0/src/purra/context_orchestration/contracts.py +125 -0
  37. purra-0.3.0/src/purra/context_orchestration/ledger.py +52 -0
  38. purra-0.3.0/src/purra/context_strategies.py +19 -0
  39. purra-0.3.0/src/purra/contracts/__init__.py +1701 -0
  40. purra-0.3.0/src/purra/contracts/enums.py +163 -0
  41. purra-0.3.0/src/purra/contracts/host.py +149 -0
  42. purra-0.3.0/src/purra/contracts/plans.py +271 -0
  43. purra-0.3.0/src/purra/contracts/tool_paths.py +24 -0
  44. purra-0.3.0/src/purra/delegation/__init__.py +21 -0
  45. purra-0.3.0/src/purra/delegation/coordinator.py +407 -0
  46. purra-0.3.0/src/purra/delegation/dynamic_executor.py +380 -0
  47. purra-0.3.0/src/purra/delegation/policy.py +62 -0
  48. purra-0.3.0/src/purra/delegation/tool.py +233 -0
  49. purra-0.3.0/src/purra/engine/__init__.py +17 -0
  50. purra-0.3.0/src/purra/engine/canonical_sink.py +51 -0
  51. purra-0.3.0/src/purra/engine/compaction_phase.py +309 -0
  52. purra-0.3.0/src/purra/engine/context_capability.py +90 -0
  53. purra-0.3.0/src/purra/engine/context_phase.py +221 -0
  54. purra-0.3.0/src/purra/engine/delegation_assembly.py +110 -0
  55. purra-0.3.0/src/purra/engine/durable_execution.py +494 -0
  56. purra-0.3.0/src/purra/engine/dynamic_planning.py +311 -0
  57. purra-0.3.0/src/purra/engine/options.py +298 -0
  58. purra-0.3.0/src/purra/engine/orchestrator.py +1582 -0
  59. purra-0.3.0/src/purra/engine/planning_phase.py +382 -0
  60. purra-0.3.0/src/purra/engine/planning_validation.py +254 -0
  61. purra-0.3.0/src/purra/engine/task_orchestration.py +100 -0
  62. purra-0.3.0/src/purra/engine/tool_catalog.py +32 -0
  63. purra-0.3.0/src/purra/errors.py +149 -0
  64. purra-0.3.0/src/purra/evaluation/__init__.py +21 -0
  65. purra-0.3.0/src/purra/evaluation/regression.py +161 -0
  66. purra-0.3.0/src/purra/evaluation/security.py +139 -0
  67. purra-0.3.0/src/purra/events.py +92 -0
  68. purra-0.3.0/src/purra/evidence.py +333 -0
  69. purra-0.3.0/src/purra/execution/__init__.py +6 -0
  70. purra-0.3.0/src/purra/execution/handle.py +27 -0
  71. purra-0.3.0/src/purra/execution/supervisor.py +345 -0
  72. purra-0.3.0/src/purra/execution_profiles.py +87 -0
  73. purra-0.3.0/src/purra/host_planned_tool_gateway.py +125 -0
  74. purra-0.3.0/src/purra/json_values.py +200 -0
  75. purra-0.3.0/src/purra/long_tasks/__init__.py +50 -0
  76. purra-0.3.0/src/purra/long_tasks/contracts.py +546 -0
  77. purra-0.3.0/src/purra/long_tasks/coordinator.py +415 -0
  78. purra-0.3.0/src/purra/long_tasks/dispatcher.py +674 -0
  79. purra-0.3.0/src/purra/long_tasks/ports.py +225 -0
  80. purra-0.3.0/src/purra/model_call_parameters.py +127 -0
  81. purra-0.3.0/src/purra/model_execution.py +382 -0
  82. purra-0.3.0/src/purra/model_invocation/__init__.py +23 -0
  83. purra-0.3.0/src/purra/model_invocation/contracts.py +213 -0
  84. purra-0.3.0/src/purra/model_invocation/manager.py +727 -0
  85. purra-0.3.0/src/purra/model_protocol/__init__.py +50 -0
  86. purra-0.3.0/src/purra/model_protocol/capabilities.py +268 -0
  87. purra-0.3.0/src/purra/model_protocol/output_limits.py +89 -0
  88. purra-0.3.0/src/purra/model_protocol/requirements.py +112 -0
  89. purra-0.3.0/src/purra/model_protocol/termination.py +119 -0
  90. purra-0.3.0/src/purra/normalization.py +73 -0
  91. purra-0.3.0/src/purra/observability/__init__.py +45 -0
  92. purra-0.3.0/src/purra/observability/_values.py +46 -0
  93. purra-0.3.0/src/purra/observability/diagnostics.py +302 -0
  94. purra-0.3.0/src/purra/observability/failure_classification.py +331 -0
  95. purra-0.3.0/src/purra/observability/performance.py +308 -0
  96. purra-0.3.0/src/purra/observability/recovery.py +97 -0
  97. purra-0.3.0/src/purra/observability/stability.py +289 -0
  98. purra-0.3.0/src/purra/observability/stability_gate.py +219 -0
  99. purra-0.3.0/src/purra/observability/stability_trend.py +368 -0
  100. purra-0.3.0/src/purra/operations/__init__.py +23 -0
  101. purra-0.3.0/src/purra/operations/contracts.py +213 -0
  102. purra-0.3.0/src/purra/operations/controller.py +196 -0
  103. purra-0.3.0/src/purra/orphan_recovery.py +152 -0
  104. purra-0.3.0/src/purra/output/__init__.py +93 -0
  105. purra-0.3.0/src/purra/output/contracts.py +707 -0
  106. purra-0.3.0/src/purra/output/ports.py +142 -0
  107. purra-0.3.0/src/purra/output/processor.py +871 -0
  108. purra-0.3.0/src/purra/output/response_transaction.py +349 -0
  109. purra-0.3.0/src/purra/output/response_validation.py +293 -0
  110. purra-0.3.0/src/purra/output/run_repository.py +88 -0
  111. purra-0.3.0/src/purra/plan_compiler.py +440 -0
  112. purra-0.3.0/src/purra/planner.py +1055 -0
  113. purra-0.3.0/src/purra/planning_policies.py +53 -0
  114. purra-0.3.0/src/purra/ports/__init__.py +104 -0
  115. purra-0.3.0/src/purra/ports/context.py +105 -0
  116. purra-0.3.0/src/purra/ports/model.py +40 -0
  117. purra-0.3.0/src/purra/ports/persistence.py +189 -0
  118. purra-0.3.0/src/purra/ports/planning.py +127 -0
  119. purra-0.3.0/src/purra/ports/projection.py +64 -0
  120. purra-0.3.0/src/purra/ports/run_lifecycle.py +205 -0
  121. purra-0.3.0/src/purra/ports/tools.py +211 -0
  122. purra-0.3.0/src/purra/recovery/__init__.py +37 -0
  123. purra-0.3.0/src/purra/recovery/contracts.py +254 -0
  124. purra-0.3.0/src/purra/recovery/disposition.py +72 -0
  125. purra-0.3.0/src/purra/recovery/guidance.py +70 -0
  126. purra-0.3.0/src/purra/recovery/ledger.py +82 -0
  127. purra-0.3.0/src/purra/recovery/policy.py +66 -0
  128. purra-0.3.0/src/purra/run_control.py +322 -0
  129. purra-0.3.0/src/purra/run_controller.py +495 -0
  130. purra-0.3.0/src/purra/run_recovery.py +70 -0
  131. purra-0.3.0/src/purra/run_state.py +845 -0
  132. purra-0.3.0/src/purra/runtime/__init__.py +5 -0
  133. purra-0.3.0/src/purra/runtime/model_round.py +495 -0
  134. purra-0.3.0/src/purra/runtime/orchestrator.py +1805 -0
  135. purra-0.3.0/src/purra/runtime/response_finalization.py +478 -0
  136. purra-0.3.0/src/purra/runtime/tool_authorization.py +603 -0
  137. purra-0.3.0/src/purra/runtime/tool_recovery.py +206 -0
  138. purra-0.3.0/src/purra/runtime/tool_round.py +294 -0
  139. purra-0.3.0/src/purra/runtime_context.py +220 -0
  140. purra-0.3.0/src/purra/stream_ownership.py +143 -0
  141. purra-0.3.0/src/purra/structured_output.py +89 -0
  142. purra-0.3.0/src/purra/task_admission/__init__.py +25 -0
  143. purra-0.3.0/src/purra/task_admission/contracts.py +183 -0
  144. purra-0.3.0/src/purra/task_admission/ports.py +60 -0
  145. purra-0.3.0/src/purra/testing.py +1175 -0
  146. purra-0.3.0/src/purra/timing.py +7 -0
  147. purra-0.3.0/src/purra/tools/__init__.py +47 -0
  148. purra-0.3.0/src/purra/tools/approval.py +188 -0
  149. purra-0.3.0/src/purra/tools/contract.py +473 -0
  150. purra-0.3.0/src/purra/tools/display_names.py +79 -0
  151. purra-0.3.0/src/purra/tools/executor.py +908 -0
  152. purra-0.3.0/src/purra/tools/policy.py +61 -0
  153. purra-0.3.0/src/purra/tools/registry.py +71 -0
  154. purra-0.3.0/src/purra/tools/security.py +804 -0
  155. purra-0.3.0/src/purra.egg-info/PKG-INFO +901 -0
  156. purra-0.3.0/src/purra.egg-info/SOURCES.txt +194 -0
  157. purra-0.3.0/src/purra.egg-info/dependency_links.txt +1 -0
  158. purra-0.3.0/src/purra.egg-info/requires.txt +5 -0
  159. purra-0.3.0/src/purra.egg-info/top_level.txt +1 -0
  160. purra-0.3.0/tests/test_agent_presets.py +343 -0
  161. purra-0.3.0/tests/test_artifact_protocol_fixture.py +50 -0
  162. purra-0.3.0/tests/test_context_conformance.py +125 -0
  163. purra-0.3.0/tests/test_context_protocol_fixture.py +43 -0
  164. purra-0.3.0/tests/test_delegation_coordinator.py +372 -0
  165. purra-0.3.0/tests/test_delegation_protocol_fixture.py +75 -0
  166. purra-0.3.0/tests/test_durable_execution.py +1190 -0
  167. purra-0.3.0/tests/test_durable_memory_adapters.py +350 -0
  168. purra-0.3.0/tests/test_durable_protocol_fixture.py +85 -0
  169. purra-0.3.0/tests/test_durable_state_contracts.py +126 -0
  170. purra-0.3.0/tests/test_evaluation_observability.py +64 -0
  171. purra-0.3.0/tests/test_memory_adapters.py +236 -0
  172. purra-0.3.0/tests/test_model_execution.py +239 -0
  173. purra-0.3.0/tests/test_model_invocation_manager.py +525 -0
  174. purra-0.3.0/tests/test_model_protocol_fixture.py +84 -0
  175. purra-0.3.0/tests/test_model_tool_gateway_conformance.py +231 -0
  176. purra-0.3.0/tests/test_observability_protocol_fixture.py +43 -0
  177. purra-0.3.0/tests/test_operation_contracts.py +87 -0
  178. purra-0.3.0/tests/test_operation_controller.py +184 -0
  179. purra-0.3.0/tests/test_orphan_recovery.py +186 -0
  180. purra-0.3.0/tests/test_output_contracts.py +195 -0
  181. purra-0.3.0/tests/test_output_processor.py +531 -0
  182. purra-0.3.0/tests/test_package_boundaries.py +107 -0
  183. purra-0.3.0/tests/test_planning_contract.py +496 -0
  184. purra-0.3.0/tests/test_public_api.py +179 -0
  185. purra-0.3.0/tests/test_purra_boundaries.py +187 -0
  186. purra-0.3.0/tests/test_purra_structure.py +504 -0
  187. purra-0.3.0/tests/test_recovery_protocol_fixture.py +52 -0
  188. purra-0.3.0/tests/test_response_transaction.py +410 -0
  189. purra-0.3.0/tests/test_run_control.py +186 -0
  190. purra-0.3.0/tests/test_run_supervisor.py +304 -0
  191. purra-0.3.0/tests/test_second_host_conformance.py +786 -0
  192. purra-0.3.0/tests/test_standalone_agent_conformance.py +382 -0
  193. purra-0.3.0/tests/test_structured_output.py +44 -0
  194. purra-0.3.0/tests/test_task_orchestration_conformance.py +261 -0
  195. purra-0.3.0/tests/test_tool_security.py +210 -0
  196. purra-0.3.0/tests/test_tool_security_fixture.py +29 -0
purra-0.3.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Lybrands
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ recursive-include conformance *.json *.md