deepstrike 0.2.63__tar.gz → 0.2.64__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 (251) hide show
  1. {deepstrike-0.2.63 → deepstrike-0.2.64}/Cargo.lock +6 -6
  2. {deepstrike-0.2.63 → deepstrike-0.2.64}/Cargo.toml +3 -3
  3. {deepstrike-0.2.63 → deepstrike-0.2.64}/PKG-INFO +1 -1
  4. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/bin/ds-chain-validator.rs +118 -19
  5. deepstrike-0.2.64/crates/deepstrike-core/src/runtime/chain_validator/mod.rs +2577 -0
  6. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/request_plan.py +9 -7
  7. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/execution_evidence.py +93 -7
  8. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/runner.py +185 -4
  9. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/session_log.py +33 -0
  10. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/session_repair.py +11 -0
  11. {deepstrike-0.2.63 → deepstrike-0.2.64}/pyproject.toml +1 -1
  12. deepstrike-0.2.63/crates/deepstrike-core/src/runtime/chain_validator/mod.rs +0 -1181
  13. {deepstrike-0.2.63 → deepstrike-0.2.64}/LICENSE +0 -0
  14. {deepstrike-0.2.63 → deepstrike-0.2.64}/README.md +0 -0
  15. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/Cargo.toml +0 -0
  16. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/LICENSE +0 -0
  17. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/benches/kernel_baseline.rs +0 -0
  18. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/benches/wait_index_baseline.rs +0 -0
  19. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/benchmark/mod.rs +0 -0
  20. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/compression.rs +0 -0
  21. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/config.rs +0 -0
  22. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/fault.rs +0 -0
  23. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/manager.rs +0 -0
  24. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/measurement.rs +0 -0
  25. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/mod.rs +0 -0
  26. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/partitions.rs +0 -0
  27. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/policy.rs +0 -0
  28. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/pressure.rs +0 -0
  29. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/renderer.rs +0 -0
  30. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/renewal.rs +0 -0
  31. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/skill_catalog.rs +0 -0
  32. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/summarizer.rs +0 -0
  33. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/task_state.rs +0 -0
  34. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/text.rs +0 -0
  35. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/token_engine.rs +0 -0
  36. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/units.rs +0 -0
  37. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/utility.rs +0 -0
  38. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/governance/constraint.rs +0 -0
  39. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/governance/mod.rs +0 -0
  40. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/governance/permission.rs +0 -0
  41. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/governance/pipeline.rs +0 -0
  42. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/governance/quota.rs +0 -0
  43. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/governance/rate_limit.rs +0 -0
  44. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/governance/repeat_fuse.rs +0 -0
  45. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/governance/veto.rs +0 -0
  46. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/harness/eval.rs +0 -0
  47. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/harness/mod.rs +0 -0
  48. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/lexical.rs +0 -0
  49. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/lib.rs +0 -0
  50. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/memory/curator.rs +0 -0
  51. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/memory/durable.rs +0 -0
  52. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/memory/mod.rs +0 -0
  53. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/mm/handle.rs +0 -0
  54. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/mm/memory.rs +0 -0
  55. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/mm/mod.rs +0 -0
  56. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/mm/value.rs +0 -0
  57. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/orchestration/mod.rs +0 -0
  58. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/orchestration/task_graph.rs +0 -0
  59. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/orchestration/tournament.rs +0 -0
  60. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/orchestration/workflow/mod.rs +0 -0
  61. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/orchestration/workflow/run.rs +0 -0
  62. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/proc/mod.rs +0 -0
  63. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/event_log.rs +0 -0
  64. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/observation.rs +0 -0
  65. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/binding.rs +0 -0
  66. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/checkpoint.rs +0 -0
  67. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/command.rs +0 -0
  68. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/config.rs +0 -0
  69. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver/continuation.rs +0 -0
  70. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver/effects.rs +0 -0
  71. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver/events.rs +0 -0
  72. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver/planning.rs +0 -0
  73. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver/projection.rs +0 -0
  74. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver/provider.rs +0 -0
  75. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver/syscall.rs +0 -0
  76. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver/tests.rs +0 -0
  77. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver.rs +0 -0
  78. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/effect.rs +0 -0
  79. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/envelope.rs +0 -0
  80. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/event.rs +0 -0
  81. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/fault.rs +0 -0
  82. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/projection.rs +0 -0
  83. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/record.rs +0 -0
  84. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/restore.rs +0 -0
  85. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/root.rs +0 -0
  86. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/scalar.rs +0 -0
  87. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/syscall.rs +0 -0
  88. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/terminal.rs +0 -0
  89. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/tests.rs +0 -0
  90. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/transaction.rs +0 -0
  91. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire.rs +0 -0
  92. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel.rs +0 -0
  93. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/mod.rs +0 -0
  94. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/repair.rs +0 -0
  95. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/replay.rs +0 -0
  96. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/session.rs +0 -0
  97. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/budget_grant.rs +0 -0
  98. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/cross_operation.rs +0 -0
  99. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/entropy.rs +0 -0
  100. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/mailbox.rs +0 -0
  101. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/milestone.rs +0 -0
  102. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/mod.rs +0 -0
  103. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/policy.rs +0 -0
  104. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/rollback.rs +0 -0
  105. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/runnable.rs +0 -0
  106. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/cancellation.rs +0 -0
  107. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/capability.rs +0 -0
  108. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/eviction.rs +0 -0
  109. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/gate.rs +0 -0
  110. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/milestone_exec.rs +0 -0
  111. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/mod.rs +0 -0
  112. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/process.rs +0 -0
  113. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/signal.rs +0 -0
  114. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/tests.rs +0 -0
  115. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/workflow.rs +0 -0
  116. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/tcb.rs +0 -0
  117. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/wait_index.rs +0 -0
  118. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/signals/attention.rs +0 -0
  119. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/signals/mod.rs +0 -0
  120. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/signals/queue.rs +0 -0
  121. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/signals/router.rs +0 -0
  122. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/syscall/mod.rs +0 -0
  123. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/agent.rs +0 -0
  124. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/capability.rs +0 -0
  125. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/contract.rs +0 -0
  126. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/durable_content.rs +0 -0
  127. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/error.rs +0 -0
  128. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/message.rs +0 -0
  129. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/milestone.rs +0 -0
  130. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/mod.rs +0 -0
  131. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/policy.rs +0 -0
  132. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/result.rs +0 -0
  133. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/signal.rs +0 -0
  134. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/skill.rs +0 -0
  135. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/task.rs +0 -0
  136. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-py/Cargo.toml +0 -0
  137. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-py/LICENSE +0 -0
  138. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-py/src/lib.rs +0 -0
  139. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-tokenizer/Cargo.toml +0 -0
  140. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-tokenizer/LICENSE +0 -0
  141. {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-tokenizer/src/lib.rs +0 -0
  142. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/__init__.py +0 -0
  143. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/agent.py +0 -0
  144. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/agent_ir.py +0 -0
  145. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/collaboration/__init__.py +0 -0
  146. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/collaboration/contract.py +0 -0
  147. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/collaboration/handoff.py +0 -0
  148. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/collaboration/harness.py +0 -0
  149. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/collaboration/modes.py +0 -0
  150. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/collaboration/pool.py +0 -0
  151. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/governance.py +0 -0
  152. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/harness/__init__.py +0 -0
  153. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/harness/harness.py +0 -0
  154. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/harness/judge.py +0 -0
  155. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/kernel/__init__.py +0 -0
  156. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/kernel/canonical.py +0 -0
  157. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/knowledge/__init__.py +0 -0
  158. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/knowledge/source.py +0 -0
  159. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/__init__.py +0 -0
  160. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/agent.py +0 -0
  161. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/durable.py +0 -0
  162. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/extraction.py +0 -0
  163. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/in_memory_store.py +0 -0
  164. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/protocols.py +0 -0
  165. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/ranking.py +0 -0
  166. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/retention.py +0 -0
  167. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/working.py +0 -0
  168. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/__init__.py +0 -0
  169. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/anthropic.py +0 -0
  170. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/anthropic_adapter.py +0 -0
  171. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/anthropic_compatible.py +0 -0
  172. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/base.py +0 -0
  173. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/capability_router.py +0 -0
  174. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/credentials.py +0 -0
  175. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/embedding.py +0 -0
  176. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/factories.py +0 -0
  177. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/gemini.py +0 -0
  178. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/gemini_adapter.py +0 -0
  179. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/model_catalog.py +0 -0
  180. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/model_registry.py +0 -0
  181. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/ollama.py +0 -0
  182. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/ollama_adapter.py +0 -0
  183. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/openai.py +0 -0
  184. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/openai_chat_adapter.py +0 -0
  185. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/openai_responses.py +0 -0
  186. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/protocol_adapter.py +0 -0
  187. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/provider_error.py +0 -0
  188. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/qwen.py +0 -0
  189. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/replay.py +0 -0
  190. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/replay_validator.py +0 -0
  191. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/runtime_registry.py +0 -0
  192. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/stop_reason.py +0 -0
  193. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/stream.py +0 -0
  194. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/usage.py +0 -0
  195. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/vendor_profiles.py +0 -0
  196. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/__init__.py +0 -0
  197. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/archive.py +0 -0
  198. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/canonical_kernel_step.py +0 -0
  199. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/context_policy.py +0 -0
  200. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/credential_vault.py +0 -0
  201. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/durable_content.py +0 -0
  202. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/eval.py +0 -0
  203. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/event_stream.py +0 -0
  204. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/execution_plane.py +0 -0
  205. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/facade.py +0 -0
  206. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/filtered_plane.py +0 -0
  207. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/kernel_event_log.py +0 -0
  208. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/kernel_journal.py +0 -0
  209. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/kernel_step.py +0 -0
  210. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/loop_driver.py +0 -0
  211. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/mcp_proxy_plane.py +0 -0
  212. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/os_profile.py +0 -0
  213. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/os_snapshot.py +0 -0
  214. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/output_schema.py +0 -0
  215. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/payload_store.py +0 -0
  216. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/process_sandbox_plane.py +0 -0
  217. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/provider_replay.py +0 -0
  218. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/reaction_checkpoint.py +0 -0
  219. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/reactive_session.py +0 -0
  220. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/reducers.py +0 -0
  221. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/reliability.py +0 -0
  222. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/remote_vpc_plane.py +0 -0
  223. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/replay_fixture.py +0 -0
  224. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/replay_provider.py +0 -0
  225. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/replay_sanitize.py +0 -0
  226. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/run_group.py +0 -0
  227. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/sub_agent_orchestrator.py +0 -0
  228. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/turn_policy.py +0 -0
  229. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/workflow_control_flow.py +0 -0
  230. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/workflow_store.py +0 -0
  231. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/worktree_plane.py +0 -0
  232. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/safety/__init__.py +0 -0
  233. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/safety/permissions.py +0 -0
  234. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/signals/__init__.py +0 -0
  235. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/signals/gateway.py +0 -0
  236. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/signals/scheduled.py +0 -0
  237. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/signals/types.py +0 -0
  238. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/skills/__init__.py +0 -0
  239. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/skills/loader.py +0 -0
  240. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/skills/registry.py +0 -0
  241. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/skills/watcher.py +0 -0
  242. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/tools/__init__.py +0 -0
  243. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/tools/builtin/__init__.py +0 -0
  244. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/tools/builtin/read_file.py +0 -0
  245. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/tools/errors.py +0 -0
  246. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/tools/execution.py +0 -0
  247. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/tools/registry.py +0 -0
  248. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/types/__init__.py +0 -0
  249. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/types/agent.py +0 -0
  250. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/types/content.py +0 -0
  251. {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/types/content_policy.py +0 -0
@@ -254,7 +254,7 @@ dependencies = [
254
254
 
255
255
  [[package]]
256
256
  name = "deepstrike-core"
257
- version = "0.2.63"
257
+ version = "0.2.64"
258
258
  dependencies = [
259
259
  "compact_str",
260
260
  "deepstrike-tokenizer",
@@ -268,7 +268,7 @@ dependencies = [
268
268
 
269
269
  [[package]]
270
270
  name = "deepstrike-node"
271
- version = "0.2.63"
271
+ version = "0.2.64"
272
272
  dependencies = [
273
273
  "compact_str",
274
274
  "deepstrike-core",
@@ -280,7 +280,7 @@ dependencies = [
280
280
 
281
281
  [[package]]
282
282
  name = "deepstrike-py"
283
- version = "0.2.63"
283
+ version = "0.2.64"
284
284
  dependencies = [
285
285
  "compact_str",
286
286
  "deepstrike-core",
@@ -291,7 +291,7 @@ dependencies = [
291
291
 
292
292
  [[package]]
293
293
  name = "deepstrike-sdk"
294
- version = "0.2.63"
294
+ version = "0.2.64"
295
295
  dependencies = [
296
296
  "async-stream",
297
297
  "async-trait",
@@ -327,7 +327,7 @@ dependencies = [
327
327
 
328
328
  [[package]]
329
329
  name = "deepstrike-tokenizer"
330
- version = "0.2.63"
330
+ version = "0.2.64"
331
331
  dependencies = [
332
332
  "pretty_assertions",
333
333
  "tiktoken-rs",
@@ -335,7 +335,7 @@ dependencies = [
335
335
 
336
336
  [[package]]
337
337
  name = "deepstrike-wasm"
338
- version = "0.2.63"
338
+ version = "0.2.64"
339
339
  dependencies = [
340
340
  "compact_str",
341
341
  "deepstrike-core",
@@ -3,13 +3,13 @@ resolver = "2"
3
3
  members = ["crates/deepstrike-core", "crates/deepstrike-tokenizer", "crates/deepstrike-py"]
4
4
 
5
5
  [workspace.package]
6
- version = "0.2.63"
6
+ version = "0.2.64"
7
7
  edition = "2024"
8
8
  repository = "https://github.com/kongusen/deepstrike"
9
9
 
10
10
  [workspace.dependencies]
11
- deepstrike-core = { path = "crates/deepstrike-core", version = "0.2.63" }
12
- deepstrike-tokenizer = { path = "crates/deepstrike-tokenizer", version = "0.2.63" }
11
+ deepstrike-core = { path = "crates/deepstrike-core", version = "0.2.64" }
12
+ deepstrike-tokenizer = { path = "crates/deepstrike-tokenizer", version = "0.2.64" }
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.63
3
+ Version: 0.2.64
4
4
  Requires-Dist: httpx>=0.27
5
5
  Requires-Dist: pyyaml>=6.0
6
6
  Requires-Dist: anyio>=4.0
@@ -14,29 +14,41 @@
14
14
  //! - a file holding one JSON object: one record;
15
15
  //! - a file holding a JSON array: its elements, one record each;
16
16
  //! - anything else: JSON Lines — one record per non-empty line.
17
+ //!
18
+ //! SessionLog input forms (batch 3), per `--session-log` path:
19
+ //! - a directory: every `*.json`/`*.jsonl` file inside (name-sorted), each file one session
20
+ //! stream — events keep the file's append order, and streams never cross-join;
21
+ //! - a file: one stream — a JSON object (one event), a JSON array (one event per element), or
22
+ //! JSON Lines (one event per non-empty line).
17
23
 
18
24
  use std::path::{Path, PathBuf};
19
25
  use std::process::ExitCode;
20
26
 
21
- use deepstrike_core::runtime::chain_validator::{ValidationReport, Verdict, validate_journal};
27
+ use deepstrike_core::runtime::chain_validator::{
28
+ ValidationReport, Verdict, validate_journal, validate_with_session_log,
29
+ };
22
30
 
23
31
  const USAGE: &str = "Usage: ds-chain-validator --journal <path> [--journal <path>...] \
24
- [--format human|json]\n\
32
+ [--session-log <path>...] [--format human|json]\n\
25
33
  \n\
26
- Validates a kernel journal prefix against P2 §5 rules C1–C4 (batch 1), \
27
- marking degraded evidence per C7.\n\
34
+ Validates a kernel journal prefix against P2 §5 rules C1–C4, marking\n\
35
+ degraded evidence per C7. With --session-log, the batch-3 cross-checks\n\
36
+ (C6/C8) join the SessionLog evidence plane against the journal.\n\
28
37
  Exit codes: 0 = all green, 1 = violation proven, 2 = evidence insufficient.\n\
29
38
  \n\
30
- --journal <path> record source: directory of *.json records, a JSON\n\
31
- \x20 object/array file, or a JSONL file (repeatable)\n\
32
- --format <mode> human (default) or json\n\
39
+ --journal <path> record source: directory of *.json records, a JSON\n\
40
+ \x20 object/array file, or a JSONL file (repeatable)\n\
41
+ --session-log <path> session-log source: a directory (each *.json/*.jsonl\n\
42
+ \x20 file is one append-ordered stream) or a single\n\
43
+ \x20 stream file — object/array/JSONL (repeatable)\n\
44
+ --format <mode> human (default) or json\n\
33
45
  \n\
34
- Batch 1 does not consume checkpoint or SessionLog inputs; the C5\n\
35
- checkpoint self-consistency rule and the launch-token ledger arrive with\n\
36
- batch 2.";
46
+ Batch 3 does not consume checkpoint inputs; the C5 checkpoint\n\
47
+ self-consistency rule and the launch-token ledger arrive with batch 2.";
37
48
 
38
49
  fn main() -> ExitCode {
39
50
  let mut journals: Vec<PathBuf> = Vec::new();
51
+ let mut session_logs: Vec<PathBuf> = Vec::new();
40
52
  let mut format = "human".to_string();
41
53
  let mut args = std::env::args().skip(1);
42
54
  while let Some(arg) = args.next() {
@@ -47,6 +59,12 @@ fn main() -> ExitCode {
47
59
  };
48
60
  journals.push(PathBuf::from(path));
49
61
  }
62
+ "--session-log" => {
63
+ let Some(path) = args.next() else {
64
+ return usage("--session-log requires a path");
65
+ };
66
+ session_logs.push(PathBuf::from(path));
67
+ }
50
68
  "--format" => {
51
69
  let Some(mode) = args.next() else {
52
70
  return usage("--format requires human or json");
@@ -56,10 +74,10 @@ fn main() -> ExitCode {
56
74
  }
57
75
  format = mode;
58
76
  }
59
- "--checkpoint" | "--session-log" => {
60
- return usage(&format!(
61
- "{arg} is consumed by batch-2 rules; batch-1 rules C1–C4+C7 do not read it"
62
- ));
77
+ "--checkpoint" => {
78
+ return usage(
79
+ "--checkpoint is consumed by batch-2 rules; batch-1/batch-3 rules do not read it",
80
+ );
63
81
  }
64
82
  "--help" | "-h" => {
65
83
  println!("{USAGE}");
@@ -83,7 +101,27 @@ fn main() -> ExitCode {
83
101
  }
84
102
  }
85
103
 
86
- let report = validate_journal(&blobs);
104
+ let mut streams: Vec<Vec<Vec<u8>>> = Vec::new();
105
+ for path in &session_logs {
106
+ let streams_before = streams.len();
107
+ match read_session_log(path, &mut streams) {
108
+ Ok(count) => eprintln!(
109
+ "read {count} session event(s) in {} stream(s) from {}",
110
+ streams.len() - streams_before,
111
+ path.display()
112
+ ),
113
+ Err(message) => {
114
+ eprintln!("ds-chain-validator: {message}");
115
+ return ExitCode::from(2);
116
+ }
117
+ }
118
+ }
119
+
120
+ let report = if session_logs.is_empty() {
121
+ validate_journal(&blobs)
122
+ } else {
123
+ validate_with_session_log(&blobs, &streams)
124
+ };
87
125
  match format.as_str() {
88
126
  "json" => match serde_json::to_string_pretty(&report) {
89
127
  Ok(json) => println!("{json}"),
@@ -130,14 +168,59 @@ fn read_journal(path: &Path, blobs: &mut Vec<Vec<u8>>) -> Result<usize, String>
130
168
  }
131
169
  let bytes =
132
170
  std::fs::read(path).map_err(|error| format!("cannot read {}: {error}", path.display()))?;
133
- match serde_json::from_slice::<serde_json::Value>(&bytes) {
171
+ split_blob_file(&bytes, blobs);
172
+ Ok(blobs.len() - before)
173
+ }
174
+
175
+ /// Collect SessionLog event streams from one session-log source. Unlike the journal plane,
176
+ /// append order within one file is meaningful, so **each file becomes one stream** — for a
177
+ /// directory, every `*.json`/`*.jsonl` file inside (name-sorted); for a single path, the file
178
+ /// itself. Event blobs within a stream preserve the file's order.
179
+ fn read_session_log(path: &Path, streams: &mut Vec<Vec<Vec<u8>>>) -> Result<usize, String> {
180
+ let mut added = 0usize;
181
+ if path.is_dir() {
182
+ let mut entries: Vec<PathBuf> = std::fs::read_dir(path)
183
+ .map_err(|error| format!("cannot read directory {}: {error}", path.display()))?
184
+ .filter_map(|entry| entry.ok().map(|entry| entry.path()))
185
+ .filter(|entry| {
186
+ entry.extension().is_some_and(|extension| {
187
+ extension == "json" || extension == "jsonl"
188
+ })
189
+ })
190
+ .collect();
191
+ entries.sort();
192
+ for entry in entries {
193
+ let bytes = std::fs::read(&entry)
194
+ .map_err(|error| format!("cannot read {}: {error}", entry.display()))?;
195
+ let mut stream = Vec::new();
196
+ split_blob_file(&bytes, &mut stream);
197
+ added += stream.len();
198
+ streams.push(stream);
199
+ }
200
+ return Ok(added);
201
+ }
202
+ let bytes =
203
+ std::fs::read(path).map_err(|error| format!("cannot read {}: {error}", path.display()))?;
204
+ let mut stream = Vec::new();
205
+ split_blob_file(&bytes, &mut stream);
206
+ added += stream.len();
207
+ streams.push(stream);
208
+ Ok(added)
209
+ }
210
+
211
+ /// Split one file's bytes into blobs: a JSON array yields one blob per element, a single JSON
212
+ /// value yields one blob, anything else parses as JSON Lines. Array elements are re-emitted
213
+ /// compactly — safe for journal records because the record's self-digest is computed from its
214
+ /// decoded fields, not its input byte layout, and safe for SessionLog events because the
215
+ /// session plane is opaque JSON throughout.
216
+ fn split_blob_file(bytes: &[u8], blobs: &mut Vec<Vec<u8>>) {
217
+ match serde_json::from_slice::<serde_json::Value>(bytes) {
134
218
  Ok(serde_json::Value::Array(records)) => {
135
219
  for record in records {
136
220
  blobs.push(serde_json::to_vec(&record).unwrap_or_default());
137
221
  }
138
222
  }
139
- Ok(serde_json::Value::Object(_)) => blobs.push(bytes),
140
- Ok(_) => blobs.push(bytes), // a scalar/array-of-scalars: the validator marks it unparseable
223
+ Ok(_) => blobs.push(bytes.to_vec()),
141
224
  Err(_) => {
142
225
  for line in bytes.split(|byte| *byte == b'\n') {
143
226
  let line = trim_ascii(line);
@@ -147,7 +230,6 @@ fn read_journal(path: &Path, blobs: &mut Vec<Vec<u8>>) -> Result<usize, String>
147
230
  }
148
231
  }
149
232
  }
150
- Ok(blobs.len() - before)
151
233
  }
152
234
 
153
235
  fn trim_ascii(bytes: &[u8]) -> &[u8] {
@@ -188,6 +270,23 @@ fn print_human(report: &ValidationReport) {
188
270
  report.unparseable_records
189
271
  );
190
272
  }
273
+ if let Some(events) = report.session_events {
274
+ println!("session-log plane: {events} parseable event(s)");
275
+ }
276
+ if report.unparseable_events > 0 {
277
+ println!(
278
+ "unparseable session event blob(s): {} (evidence insufficient, not a violation)",
279
+ report.unparseable_events
280
+ );
281
+ }
282
+ for rule in &report.cross_checks {
283
+ let label = match rule.verdict {
284
+ Verdict::Pass => "pass",
285
+ Verdict::Fail => "FAIL",
286
+ Verdict::Degraded => "degraded",
287
+ };
288
+ println!("cross-check {} {label}: {}", rule.rule, rule.detail);
289
+ }
191
290
  for deferred in &report.deferred {
192
291
  println!("deferred: {deferred}");
193
292
  }