deepstrike 0.2.44__tar.gz → 0.2.45__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 (190) hide show
  1. {deepstrike-0.2.44 → deepstrike-0.2.45}/Cargo.lock +6 -6
  2. {deepstrike-0.2.44 → deepstrike-0.2.45}/Cargo.toml +2 -2
  3. {deepstrike-0.2.44 → deepstrike-0.2.45}/PKG-INFO +1 -1
  4. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/execution_plane.py +6 -3
  5. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/tools/execution.py +3 -1
  6. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/tools/registry.py +60 -2
  7. {deepstrike-0.2.44 → deepstrike-0.2.45}/pyproject.toml +1 -1
  8. {deepstrike-0.2.44 → deepstrike-0.2.45}/README.md +0 -0
  9. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/Cargo.toml +0 -0
  10. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/benches/kernel_baseline.rs +0 -0
  11. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/benchmark/mod.rs +0 -0
  12. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/compression.rs +0 -0
  13. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/config.rs +0 -0
  14. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/fault.rs +0 -0
  15. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/manager.rs +0 -0
  16. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/mod.rs +0 -0
  17. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/partitions.rs +0 -0
  18. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/policy.rs +0 -0
  19. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/pressure.rs +0 -0
  20. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/renderer.rs +0 -0
  21. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/renewal.rs +0 -0
  22. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/skill_catalog.rs +0 -0
  23. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/summarizer.rs +0 -0
  24. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/task_state.rs +0 -0
  25. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/text.rs +0 -0
  26. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/token_engine.rs +0 -0
  27. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/units.rs +0 -0
  28. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/context/utility.rs +0 -0
  29. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/governance/constraint.rs +0 -0
  30. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/governance/mod.rs +0 -0
  31. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/governance/permission.rs +0 -0
  32. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/governance/pipeline.rs +0 -0
  33. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/governance/quota.rs +0 -0
  34. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/governance/rate_limit.rs +0 -0
  35. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/governance/repeat_fuse.rs +0 -0
  36. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/governance/veto.rs +0 -0
  37. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/harness/eval.rs +0 -0
  38. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/harness/mod.rs +0 -0
  39. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/lexical.rs +0 -0
  40. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/lib.rs +0 -0
  41. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/memory/curator.rs +0 -0
  42. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/memory/durable.rs +0 -0
  43. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/memory/mod.rs +0 -0
  44. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/mm/handle.rs +0 -0
  45. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/mm/memory.rs +0 -0
  46. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/mm/mod.rs +0 -0
  47. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/mm/value.rs +0 -0
  48. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/orchestration/mod.rs +0 -0
  49. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/orchestration/task_graph.rs +0 -0
  50. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/orchestration/tournament.rs +0 -0
  51. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/orchestration/workflow/mod.rs +0 -0
  52. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/orchestration/workflow/run.rs +0 -0
  53. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/proc/mod.rs +0 -0
  54. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/runtime/event_log.rs +0 -0
  55. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/runtime/kernel/protocol.rs +0 -0
  56. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/runtime/kernel/runtime.rs +0 -0
  57. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/runtime/kernel/tests.rs +0 -0
  58. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/runtime/kernel.rs +0 -0
  59. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/runtime/mod.rs +0 -0
  60. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/runtime/repair.rs +0 -0
  61. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/runtime/replay.rs +0 -0
  62. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/runtime/session.rs +0 -0
  63. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/scheduler/entropy.rs +0 -0
  64. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/scheduler/milestone.rs +0 -0
  65. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/scheduler/mod.rs +0 -0
  66. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/scheduler/policy.rs +0 -0
  67. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/scheduler/rollback.rs +0 -0
  68. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/scheduler/state_machine/cancellation.rs +0 -0
  69. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/scheduler/state_machine/capability.rs +0 -0
  70. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/scheduler/state_machine/eviction.rs +0 -0
  71. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/scheduler/state_machine/gate.rs +0 -0
  72. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/scheduler/state_machine/milestone_exec.rs +0 -0
  73. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/scheduler/state_machine/mod.rs +0 -0
  74. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/scheduler/state_machine/process.rs +0 -0
  75. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/scheduler/state_machine/signal.rs +0 -0
  76. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/scheduler/state_machine/tests.rs +0 -0
  77. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/scheduler/state_machine/workflow.rs +0 -0
  78. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/scheduler/tcb.rs +0 -0
  79. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/signals/attention.rs +0 -0
  80. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/signals/mod.rs +0 -0
  81. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/signals/queue.rs +0 -0
  82. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/signals/router.rs +0 -0
  83. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/syscall/mod.rs +0 -0
  84. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/types/agent.rs +0 -0
  85. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/types/capability.rs +0 -0
  86. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/types/contract.rs +0 -0
  87. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/types/error.rs +0 -0
  88. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/types/message.rs +0 -0
  89. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/types/milestone.rs +0 -0
  90. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/types/mod.rs +0 -0
  91. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/types/policy.rs +0 -0
  92. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/types/result.rs +0 -0
  93. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/types/signal.rs +0 -0
  94. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/types/skill.rs +0 -0
  95. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-core/src/types/task.rs +0 -0
  96. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-py/Cargo.toml +0 -0
  97. {deepstrike-0.2.44 → deepstrike-0.2.45}/crates/deepstrike-py/src/lib.rs +0 -0
  98. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/__init__.py +0 -0
  99. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/collaboration/__init__.py +0 -0
  100. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/collaboration/contract.py +0 -0
  101. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/collaboration/handoff.py +0 -0
  102. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/collaboration/harness.py +0 -0
  103. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/collaboration/modes.py +0 -0
  104. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/collaboration/pool.py +0 -0
  105. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/governance.py +0 -0
  106. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/harness/__init__.py +0 -0
  107. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/harness/harness.py +0 -0
  108. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/harness/judge.py +0 -0
  109. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/kernel/__init__.py +0 -0
  110. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/knowledge/__init__.py +0 -0
  111. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/knowledge/source.py +0 -0
  112. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/memory/__init__.py +0 -0
  113. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/memory/agent.py +0 -0
  114. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/memory/extraction.py +0 -0
  115. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/memory/in_memory_store.py +0 -0
  116. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/memory/protocols.py +0 -0
  117. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/memory/ranking.py +0 -0
  118. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/memory/retention.py +0 -0
  119. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/memory/working.py +0 -0
  120. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/__init__.py +0 -0
  121. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/anthropic.py +0 -0
  122. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/anthropic_compatible.py +0 -0
  123. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/base.py +0 -0
  124. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/deepseek.py +0 -0
  125. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/factories.py +0 -0
  126. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/gemini.py +0 -0
  127. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/glm.py +0 -0
  128. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/kimi.py +0 -0
  129. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/minimax.py +0 -0
  130. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/ollama.py +0 -0
  131. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/openai.py +0 -0
  132. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/openai_responses.py +0 -0
  133. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/qwen.py +0 -0
  134. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/replay.py +0 -0
  135. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/replay_validator.py +0 -0
  136. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/stream.py +0 -0
  137. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/providers/vendor_profiles.py +0 -0
  138. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/__init__.py +0 -0
  139. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/archive.py +0 -0
  140. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/context_policy.py +0 -0
  141. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/credential_vault.py +0 -0
  142. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/eval.py +0 -0
  143. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/event_stream.py +0 -0
  144. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/facade.py +0 -0
  145. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/filtered_plane.py +0 -0
  146. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/kernel_event_log.py +0 -0
  147. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/kernel_rebuild.py +0 -0
  148. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/kernel_step.py +0 -0
  149. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/kernel_transaction_log.py +0 -0
  150. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/large_result_spool.py +0 -0
  151. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/loop_driver.py +0 -0
  152. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/mcp_proxy_plane.py +0 -0
  153. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/os_profile.py +0 -0
  154. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/os_snapshot.py +0 -0
  155. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/output_schema.py +0 -0
  156. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/process_sandbox_plane.py +0 -0
  157. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/provider_replay.py +0 -0
  158. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/reaction_checkpoint.py +0 -0
  159. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/reactive_session.py +0 -0
  160. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/reducers.py +0 -0
  161. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/reliability.py +0 -0
  162. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/remote_vpc_plane.py +0 -0
  163. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/replay_fixture.py +0 -0
  164. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/replay_provider.py +0 -0
  165. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/replay_sanitize.py +0 -0
  166. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/run_group.py +0 -0
  167. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/runner.py +0 -0
  168. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/session_log.py +0 -0
  169. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/session_repair.py +0 -0
  170. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/sub_agent_orchestrator.py +0 -0
  171. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/turn_policy.py +0 -0
  172. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/workflow_control_flow.py +0 -0
  173. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/workflow_store.py +0 -0
  174. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/runtime/worktree_plane.py +0 -0
  175. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/safety/__init__.py +0 -0
  176. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/safety/permissions.py +0 -0
  177. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/signals/__init__.py +0 -0
  178. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/signals/gateway.py +0 -0
  179. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/signals/scheduled.py +0 -0
  180. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/signals/types.py +0 -0
  181. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/skills/__init__.py +0 -0
  182. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/skills/loader.py +0 -0
  183. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/skills/registry.py +0 -0
  184. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/skills/watcher.py +0 -0
  185. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/tools/__init__.py +0 -0
  186. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/tools/builtin/__init__.py +0 -0
  187. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/tools/builtin/read_file.py +0 -0
  188. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/tools/errors.py +0 -0
  189. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/types/__init__.py +0 -0
  190. {deepstrike-0.2.44 → deepstrike-0.2.45}/deepstrike/types/agent.py +0 -0
@@ -194,7 +194,7 @@ dependencies = [
194
194
 
195
195
  [[package]]
196
196
  name = "deepstrike-core"
197
- version = "0.2.44"
197
+ version = "0.2.45"
198
198
  dependencies = [
199
199
  "compact_str",
200
200
  "pretty_assertions",
@@ -206,7 +206,7 @@ dependencies = [
206
206
 
207
207
  [[package]]
208
208
  name = "deepstrike-lab"
209
- version = "0.2.44"
209
+ version = "0.2.45"
210
210
  dependencies = [
211
211
  "deepstrike-core",
212
212
  "serde",
@@ -216,7 +216,7 @@ dependencies = [
216
216
 
217
217
  [[package]]
218
218
  name = "deepstrike-node"
219
- version = "0.2.44"
219
+ version = "0.2.45"
220
220
  dependencies = [
221
221
  "compact_str",
222
222
  "deepstrike-core",
@@ -228,7 +228,7 @@ dependencies = [
228
228
 
229
229
  [[package]]
230
230
  name = "deepstrike-py"
231
- version = "0.2.44"
231
+ version = "0.2.45"
232
232
  dependencies = [
233
233
  "compact_str",
234
234
  "deepstrike-core",
@@ -239,7 +239,7 @@ dependencies = [
239
239
 
240
240
  [[package]]
241
241
  name = "deepstrike-sdk"
242
- version = "0.2.44"
242
+ version = "0.2.45"
243
243
  dependencies = [
244
244
  "async-stream",
245
245
  "async-trait",
@@ -273,7 +273,7 @@ dependencies = [
273
273
 
274
274
  [[package]]
275
275
  name = "deepstrike-wasm"
276
- version = "0.2.44"
276
+ version = "0.2.45"
277
277
  dependencies = [
278
278
  "compact_str",
279
279
  "deepstrike-core",
@@ -3,13 +3,13 @@ resolver = "2"
3
3
  members = ["crates/deepstrike-core", "crates/deepstrike-py"]
4
4
 
5
5
  [workspace.package]
6
- version = "0.2.44"
6
+ version = "0.2.45"
7
7
  edition = "2024"
8
8
  license = "MIT"
9
9
  repository = "https://github.com/kongusen/deepstrike"
10
10
 
11
11
  [workspace.dependencies]
12
- deepstrike-core = { path = "crates/deepstrike-core", version = "0.2.44" }
12
+ deepstrike-core = { path = "crates/deepstrike-core", version = "0.2.45" }
13
13
  notify = "6"
14
14
  serde = { version = "1", features = ["derive"] }
15
15
  serde_json = "1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deepstrike
3
- Version: 0.2.44
3
+ Version: 0.2.45
4
4
  Requires-Dist: httpx>=0.27
5
5
  Requires-Dist: pyyaml>=6.0
6
6
  Requires-Dist: anyio>=4.0
@@ -248,9 +248,11 @@ class LocalExecutionPlane:
248
248
  audit=_audit,
249
249
  )
250
250
  try:
251
- kwargs = json.loads(call.arguments or "{}")
252
- original_args_str = json.dumps(kwargs)
253
- validation = validate_tool_arguments(registered.schema.parameters, kwargs)
251
+ raw_kwargs = json.loads(call.arguments or "{}")
252
+ original_args_str = json.dumps(raw_kwargs)
253
+ # validation["args"], not raw_kwargs, from here on: a oneOf/anyOf ROOT accepts a repaired
254
+ # probe deep-copy — the original dict never sees those repairs (auto-casts, strips, defaults).
255
+ validation = validate_tool_arguments(registered.schema.parameters, raw_kwargs)
254
256
  if validation.get("error"):
255
257
  yield ToolResultEvent(
256
258
  call_id=call.id,
@@ -261,6 +263,7 @@ class LocalExecutionPlane:
261
263
  error_kind="recoverable",
262
264
  )
263
265
  return
266
+ kwargs = validation["args"]
264
267
  if validation.get("repaired"):
265
268
  yield ToolArgumentRepairedEvent(
266
269
  call_id=call.id,
@@ -22,7 +22,9 @@ async def execute_tools(
22
22
  if validation.get("error"):
23
23
  results.append(ToolResult(call_id=call.id, output=f"invalid arguments: {validation['error']}", is_error=True))
24
24
  continue
25
- output = await tool(**kwargs)
25
+ # validation["args"], not kwargs: a oneOf/anyOf ROOT accepts a repaired probe
26
+ # deep-copy — the original dict never sees those repairs (auto-casts, strips, defaults).
27
+ output = await tool(**validation["args"])
26
28
  if isinstance(output, AsyncIterable):
27
29
  chunks = []
28
30
  async for chunk in output:
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
  import copy
3
3
  import inspect
4
4
  import json
5
+ import re
5
6
  from collections.abc import AsyncIterable
6
7
  from typing import Any, Callable
7
8
  from deepstrike._kernel import ToolSchema
@@ -73,11 +74,13 @@ def validate_tool_arguments(schema_json: str, args: dict[str, Any]) -> dict[str,
73
74
  try:
74
75
  schema = json.loads(schema_json)
75
76
  except Exception:
76
- return {"error": "invalid tool schema", "repaired": False}
77
+ return {"error": "invalid tool schema", "repaired": False, "args": args}
77
78
  state = {"repaired": False}
78
79
  wrapper = {"root": args}
79
80
  error = _validate_value(schema, wrapper, "root", "$", state)
80
- return {"error": error, "repaired": state["repaired"]}
81
+ # A oneOf/anyOf ROOT replaces the value with its accepted probe deep-copy — in-place mutation
82
+ # of the caller's dict only covers non-union roots. Callers must use the returned "args".
83
+ return {"error": error, "repaired": state["repaired"], "args": wrapper["root"]}
81
84
 
82
85
 
83
86
  def _validate_value(schema: dict[str, Any], parent: Any, key: Any, path: str, state: dict[str, bool]) -> str | None:
@@ -200,10 +203,65 @@ def _validate_value(schema: dict[str, Any], parent: Any, key: Any, path: str, st
200
203
  return f"{path} must be integer"
201
204
  elif expected == "boolean" and not isinstance(value, bool):
202
205
  return f"{path} must be boolean"
206
+ elif expected == "null" and value is not None:
207
+ return f"{path} must be null"
203
208
  elif path == "$" and not isinstance(value, dict):
204
209
  return f"{path} must be object"
205
210
 
206
211
  enum_values = schema.get("enum")
207
212
  if enum_values is not None and value not in enum_values:
208
213
  return f"{path} must be one of enum values"
214
+ # `const` is THE discriminator convention for oneOf variants (kind: {const: "edit"}). Without
215
+ # it, union branches match on required+type alone and the WRONG branch can win — then its
216
+ # allow-list strips keys the right branch declared.
217
+ if "const" in schema:
218
+ want = schema["const"]
219
+ if isinstance(want, bool) or isinstance(value, bool):
220
+ matches = value is want
221
+ else:
222
+ matches = value == want
223
+ if not matches:
224
+ return f"{path} must equal the const value {json.dumps(want)}"
225
+ # Constraint keywords, checked per the value's actual type (JSON Schema semantics: string
226
+ # constraints ignore non-strings, etc.). Keywords outside this set (allOf, multipleOf,
227
+ # uniqueItems, format, if/then/else, …) are ignored, not rejected.
228
+ if isinstance(value, str):
229
+ min_length = schema.get("minLength")
230
+ if isinstance(min_length, int) and len(value) < min_length:
231
+ return f"{path} must be at least {min_length} characters"
232
+ max_length = schema.get("maxLength")
233
+ if isinstance(max_length, int) and len(value) > max_length:
234
+ return f"{path} must be at most {max_length} characters"
235
+ pattern = schema.get("pattern")
236
+ if isinstance(pattern, str):
237
+ try:
238
+ compiled = re.compile(pattern)
239
+ except re.error:
240
+ compiled = None # author-side bad regex: skip, never fail the call
241
+ if compiled is not None and compiled.search(value) is None:
242
+ return f"{path} must match pattern {pattern}"
243
+ elif isinstance(value, (int, float)) and not isinstance(value, bool):
244
+ for keyword, ok in (
245
+ ("minimum", lambda bound: value >= bound),
246
+ ("maximum", lambda bound: value <= bound),
247
+ ("exclusiveMinimum", lambda bound: value > bound),
248
+ ("exclusiveMaximum", lambda bound: value < bound),
249
+ ):
250
+ bound = schema.get(keyword)
251
+ if isinstance(bound, (int, float)) and not isinstance(bound, bool) and not ok(bound):
252
+ op = {"minimum": ">=", "maximum": "<=", "exclusiveMinimum": ">", "exclusiveMaximum": "<"}[keyword]
253
+ return f"{path} must be {op} {bound}"
254
+ elif isinstance(value, list):
255
+ min_items = schema.get("minItems")
256
+ if isinstance(min_items, int) and len(value) < min_items:
257
+ return f"{path} must have at least {min_items} items"
258
+ max_items = schema.get("maxItems")
259
+ if isinstance(max_items, int) and len(value) > max_items:
260
+ return f"{path} must have at most {max_items} items"
261
+ # `not`: probe on a deep copy so a matching (= rejected) subschema's repairs never leak out.
262
+ not_schema = schema.get("not")
263
+ if isinstance(not_schema, dict):
264
+ probe = {"v": copy.deepcopy(value)}
265
+ if _validate_value(not_schema, probe, "v", path, {"repaired": False}) is None:
266
+ return f"{path} must not match the disallowed shape"
209
267
  return None
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "deepstrike"
7
- version = "0.2.44"
7
+ version = "0.2.45"
8
8
  requires-python = ">=3.10"
9
9
  readme = "README.md"
10
10
  dependencies = [
File without changes