deepstrike 0.2.12__tar.gz → 0.2.14__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 (158) hide show
  1. {deepstrike-0.2.12 → deepstrike-0.2.14}/Cargo.lock +5 -5
  2. {deepstrike-0.2.12 → deepstrike-0.2.14}/Cargo.toml +2 -2
  3. {deepstrike-0.2.12 → deepstrike-0.2.14}/PKG-INFO +1 -1
  4. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/orchestration/workflow/mod.rs +6 -6
  5. deepstrike-0.2.14/crates/deepstrike-core/src/types/task.rs +65 -0
  6. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/providers/anthropic.py +11 -2
  7. {deepstrike-0.2.12 → deepstrike-0.2.14}/pyproject.toml +1 -1
  8. deepstrike-0.2.12/crates/deepstrike-core/src/types/task.rs +0 -48
  9. {deepstrike-0.2.12 → deepstrike-0.2.14}/README.md +0 -0
  10. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/Cargo.toml +0 -0
  11. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/context/compression.rs +0 -0
  12. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/context/config.rs +0 -0
  13. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/context/dashboard.rs +0 -0
  14. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/context/manager.rs +0 -0
  15. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/context/mod.rs +0 -0
  16. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/context/partitions.rs +0 -0
  17. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/context/pressure.rs +0 -0
  18. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/context/renderer.rs +0 -0
  19. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/context/renewal.rs +0 -0
  20. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/context/sections.rs +0 -0
  21. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/context/skill_catalog.rs +0 -0
  22. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/context/snapshot.rs +0 -0
  23. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/context/summarizer.rs +0 -0
  24. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/context/task_state.rs +0 -0
  25. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/context/text.rs +0 -0
  26. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/context/token_engine.rs +0 -0
  27. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/governance/audit.rs +0 -0
  28. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/governance/constraint.rs +0 -0
  29. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/governance/mod.rs +0 -0
  30. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/governance/permission.rs +0 -0
  31. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/governance/pipeline.rs +0 -0
  32. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/governance/quota.rs +0 -0
  33. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/governance/rate_limit.rs +0 -0
  34. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/governance/sandbox.rs +0 -0
  35. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/governance/tool_decision.rs +0 -0
  36. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/governance/veto.rs +0 -0
  37. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/harness/eval_pipeline.rs +0 -0
  38. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/harness/mod.rs +0 -0
  39. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/lib.rs +0 -0
  40. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/memory/curator.rs +0 -0
  41. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/memory/durable.rs +0 -0
  42. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/memory/extractor.rs +0 -0
  43. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/memory/idle_pipeline.rs +0 -0
  44. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/memory/mod.rs +0 -0
  45. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/memory/runtime.rs +0 -0
  46. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/memory/semantic.rs +0 -0
  47. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/memory/session.rs +0 -0
  48. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/memory/synthesis.rs +0 -0
  49. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/memory/trace_analyzer.rs +0 -0
  50. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/memory/working.rs +0 -0
  51. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/mm/handle.rs +0 -0
  52. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/mm/memory.rs +0 -0
  53. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/mm/mod.rs +0 -0
  54. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/orchestration/mod.rs +0 -0
  55. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/orchestration/task_graph.rs +0 -0
  56. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/orchestration/tournament.rs +0 -0
  57. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/orchestration/workflow/run.rs +0 -0
  58. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/proc/mod.rs +0 -0
  59. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/runtime/event_log.rs +0 -0
  60. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/runtime/kernel.rs +0 -0
  61. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/runtime/mod.rs +0 -0
  62. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/runtime/repair.rs +0 -0
  63. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/runtime/replay.rs +0 -0
  64. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/runtime/session.rs +0 -0
  65. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/runtime/snapshot.rs +0 -0
  66. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/scheduler/milestone.rs +0 -0
  67. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/scheduler/mod.rs +0 -0
  68. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/scheduler/policy.rs +0 -0
  69. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/scheduler/rollback.rs +0 -0
  70. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/scheduler/state_machine.rs +0 -0
  71. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/scheduler/state_machine_tests.rs +0 -0
  72. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/scheduler/tcb.rs +0 -0
  73. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/signals/attention.rs +0 -0
  74. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/signals/mod.rs +0 -0
  75. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/signals/queue.rs +0 -0
  76. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/signals/router.rs +0 -0
  77. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/syscall/mod.rs +0 -0
  78. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/types/agent.rs +0 -0
  79. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/types/capability.rs +0 -0
  80. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/types/contract.rs +0 -0
  81. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/types/error.rs +0 -0
  82. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/types/message.rs +0 -0
  83. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/types/milestone.rs +0 -0
  84. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/types/mod.rs +0 -0
  85. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/types/model.rs +0 -0
  86. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/types/policy.rs +0 -0
  87. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/types/result.rs +0 -0
  88. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/types/signal.rs +0 -0
  89. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-core/src/types/skill.rs +0 -0
  90. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-py/Cargo.toml +0 -0
  91. {deepstrike-0.2.12 → deepstrike-0.2.14}/crates/deepstrike-py/src/lib.rs +0 -0
  92. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/__init__.py +0 -0
  93. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/collaboration/__init__.py +0 -0
  94. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/collaboration/contract.py +0 -0
  95. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/collaboration/handoff.py +0 -0
  96. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/collaboration/harness.py +0 -0
  97. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/collaboration/modes.py +0 -0
  98. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/collaboration/pool.py +0 -0
  99. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/governance.py +0 -0
  100. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/harness/__init__.py +0 -0
  101. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/harness/harness.py +0 -0
  102. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/kernel/__init__.py +0 -0
  103. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/knowledge/__init__.py +0 -0
  104. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/knowledge/source.py +0 -0
  105. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/memory/__init__.py +0 -0
  106. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/memory/agent.py +0 -0
  107. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/memory/protocols.py +0 -0
  108. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/memory/working.py +0 -0
  109. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/providers/__init__.py +0 -0
  110. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/providers/base.py +0 -0
  111. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/providers/deepseek.py +0 -0
  112. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/providers/gemini.py +0 -0
  113. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/providers/glm.py +0 -0
  114. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/providers/kimi.py +0 -0
  115. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/providers/minimax.py +0 -0
  116. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/providers/ollama.py +0 -0
  117. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/providers/openai.py +0 -0
  118. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/providers/qwen.py +0 -0
  119. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/providers/replay.py +0 -0
  120. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/providers/replay_validator.py +0 -0
  121. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/providers/stream.py +0 -0
  122. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/__init__.py +0 -0
  123. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/archive.py +0 -0
  124. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/credential_vault.py +0 -0
  125. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/execution_plane.py +0 -0
  126. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/filtered_plane.py +0 -0
  127. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/kernel_event_log.py +0 -0
  128. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/kernel_step.py +0 -0
  129. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/large_result_spool.py +0 -0
  130. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/mcp_proxy_plane.py +0 -0
  131. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/os_profile.py +0 -0
  132. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/os_snapshot.py +0 -0
  133. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/output_schema.py +0 -0
  134. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/process_sandbox_plane.py +0 -0
  135. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/provider_replay.py +0 -0
  136. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/reducers.py +0 -0
  137. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/remote_vpc_plane.py +0 -0
  138. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/replay_sanitize.py +0 -0
  139. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/runner.py +0 -0
  140. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/session_log.py +0 -0
  141. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/session_repair.py +0 -0
  142. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/runtime/sub_agent_orchestrator.py +0 -0
  143. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/safety/__init__.py +0 -0
  144. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/safety/permissions.py +0 -0
  145. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/signals/__init__.py +0 -0
  146. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/signals/gateway.py +0 -0
  147. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/signals/scheduled.py +0 -0
  148. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/signals/types.py +0 -0
  149. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/skills/__init__.py +0 -0
  150. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/skills/registry.py +0 -0
  151. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/skills/watcher.py +0 -0
  152. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/tools/__init__.py +0 -0
  153. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/tools/builtin/__init__.py +0 -0
  154. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/tools/builtin/read_file.py +0 -0
  155. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/tools/execution.py +0 -0
  156. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/tools/registry.py +0 -0
  157. {deepstrike-0.2.12 → deepstrike-0.2.14}/deepstrike/types/__init__.py +0 -0
  158. {deepstrike-0.2.12 → deepstrike-0.2.14}/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.12"
197
+ version = "0.2.14"
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-node"
209
- version = "0.2.12"
209
+ version = "0.2.14"
210
210
  dependencies = [
211
211
  "compact_str",
212
212
  "deepstrike-core",
@@ -218,7 +218,7 @@ dependencies = [
218
218
 
219
219
  [[package]]
220
220
  name = "deepstrike-py"
221
- version = "0.2.12"
221
+ version = "0.2.14"
222
222
  dependencies = [
223
223
  "compact_str",
224
224
  "deepstrike-core",
@@ -229,7 +229,7 @@ dependencies = [
229
229
 
230
230
  [[package]]
231
231
  name = "deepstrike-sdk"
232
- version = "0.2.12"
232
+ version = "0.2.14"
233
233
  dependencies = [
234
234
  "async-stream",
235
235
  "async-trait",
@@ -263,7 +263,7 @@ dependencies = [
263
263
 
264
264
  [[package]]
265
265
  name = "deepstrike-wasm"
266
- version = "0.2.12"
266
+ version = "0.2.14"
267
267
  dependencies = [
268
268
  "compact_str",
269
269
  "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.12"
6
+ version = "0.2.14"
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.12" }
12
+ deepstrike-core = { path = "crates/deepstrike-core", version = "0.2.14" }
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.12
3
+ Version: 0.2.14
4
4
  Requires-Dist: httpx>=0.27
5
5
  Requires-Dist: pyyaml>=6.0
6
6
  Requires-Dist: anyio>=4.0
@@ -307,11 +307,11 @@ impl WorkflowSpec {
307
307
  pub fn fanout_synthesize(workers: Vec<RuntimeTask>, synthesize: RuntimeTask) -> WorkflowSpec {
308
308
  let mut nodes: Vec<WorkflowNode> = workers
309
309
  .into_iter()
310
- .map(|t| WorkflowNode::new(t.with_lane(TaskLane::Retrieve), AgentRole::Explore))
310
+ .map(|t| WorkflowNode::new(t.with_lane(TaskLane::new(TaskLane::RETRIEVE)), AgentRole::Explore))
311
311
  .collect();
312
312
  let worker_ids: Vec<usize> = (0..nodes.len()).collect();
313
313
  nodes.push(
314
- WorkflowNode::new(synthesize.with_lane(TaskLane::Orchestrate), AgentRole::Plan)
314
+ WorkflowNode::new(synthesize.with_lane(TaskLane::new(TaskLane::ORCHESTRATE)), AgentRole::Plan)
315
315
  .with_depends_on(worker_ids),
316
316
  );
317
317
  WorkflowSpec::new(nodes)
@@ -329,11 +329,11 @@ pub fn fanout_synthesize(workers: Vec<RuntimeTask>, synthesize: RuntimeTask) ->
329
329
  pub fn generate_and_filter(generators: Vec<RuntimeTask>, filter: RuntimeTask) -> WorkflowSpec {
330
330
  let mut nodes: Vec<WorkflowNode> = generators
331
331
  .into_iter()
332
- .map(|t| WorkflowNode::new(t.with_lane(TaskLane::Retrieve), AgentRole::Implement))
332
+ .map(|t| WorkflowNode::new(t.with_lane(TaskLane::new(TaskLane::RETRIEVE)), AgentRole::Implement))
333
333
  .collect();
334
334
  let gen_ids: Vec<usize> = (0..nodes.len()).collect();
335
335
  nodes.push(
336
- WorkflowNode::new(filter.with_lane(TaskLane::Verify), AgentRole::Verify)
336
+ WorkflowNode::new(filter.with_lane(TaskLane::new(TaskLane::VERIFY)), AgentRole::Verify)
337
337
  .with_depends_on(gen_ids),
338
338
  );
339
339
  WorkflowSpec::new(nodes)
@@ -358,12 +358,12 @@ pub fn generate_and_filter(generators: Vec<RuntimeTask>, filter: RuntimeTask) ->
358
358
  pub fn verify_rules(rules: Vec<RuntimeTask>, skeptic: Option<RuntimeTask>) -> WorkflowSpec {
359
359
  let mut nodes: Vec<WorkflowNode> = rules
360
360
  .into_iter()
361
- .map(|t| WorkflowNode::new(t.with_lane(TaskLane::Verify), AgentRole::Verify))
361
+ .map(|t| WorkflowNode::new(t.with_lane(TaskLane::new(TaskLane::VERIFY)), AgentRole::Verify))
362
362
  .collect();
363
363
  if let Some(skeptic) = skeptic {
364
364
  let verifier_ids: Vec<usize> = (0..nodes.len()).collect();
365
365
  nodes.push(
366
- WorkflowNode::new(skeptic.with_lane(TaskLane::Verify), AgentRole::Verify)
366
+ WorkflowNode::new(skeptic.with_lane(TaskLane::new(TaskLane::VERIFY)), AgentRole::Verify)
367
367
  .with_depends_on(verifier_ids),
368
368
  );
369
369
  }
@@ -0,0 +1,65 @@
1
+ use serde::{Deserialize, Serialize};
2
+
3
+ /// Freeform parallelism / classification hint for task scheduling.
4
+ ///
5
+ /// The kernel transparently round-trips any string the caller sets. Well-known
6
+ /// constants are provided for the built-in workflow templates:
7
+ ///
8
+ /// - `"orchestrate"` — serial, produces contracts; runs one at a time
9
+ /// - `"implement"` — serial, DAG chain; `TaskGraph::ready_tasks` enforces max 1
10
+ /// - `"retrieve"` — parallelisable; no mutual exclusion
11
+ /// - `"verify"` — parallelisable, isolated agent context
12
+ ///
13
+ /// Callers may use any other value (e.g. `"prd-fill"`, `"eval"`) without kernel
14
+ /// changes — the field is a transparent label, not a scheduling gate.
15
+ #[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq)]
16
+ #[serde(transparent)]
17
+ pub struct TaskLane(pub String);
18
+
19
+ impl TaskLane {
20
+ pub const ORCHESTRATE: &'static str = "orchestrate";
21
+ pub const IMPLEMENT: &'static str = "implement";
22
+ pub const RETRIEVE: &'static str = "retrieve";
23
+ pub const VERIFY: &'static str = "verify";
24
+
25
+ pub fn new(s: impl Into<String>) -> Self {
26
+ Self(s.into())
27
+ }
28
+ }
29
+
30
+ impl std::fmt::Display for TaskLane {
31
+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
32
+ f.write_str(&self.0)
33
+ }
34
+ }
35
+
36
+ #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
37
+ pub struct RuntimeTask {
38
+ pub goal: String,
39
+ pub criteria: Vec<String>,
40
+ #[serde(default)]
41
+ pub metadata: serde_json::Value,
42
+ #[serde(default)]
43
+ pub lane: TaskLane,
44
+ }
45
+
46
+ impl RuntimeTask {
47
+ pub fn new(goal: impl Into<String>) -> Self {
48
+ Self {
49
+ goal: goal.into(),
50
+ criteria: Vec::new(),
51
+ metadata: serde_json::Value::Null,
52
+ lane: TaskLane::default(),
53
+ }
54
+ }
55
+
56
+ pub fn with_criteria(mut self, criteria: Vec<String>) -> Self {
57
+ self.criteria = criteria;
58
+ self
59
+ }
60
+
61
+ pub fn with_lane(mut self, lane: TaskLane) -> Self {
62
+ self.lane = lane;
63
+ self
64
+ }
65
+ }
@@ -99,8 +99,17 @@ class AnthropicProvider:
99
99
  # boundary; None ⇒ rolling-pair fallback.
100
100
  _apply_message_cache_control(msgs, frozen_prefix_len)
101
101
  if state_turn is not None:
102
- role = "assistant" if state_turn.role == "assistant" else "user"
103
- msgs.append({"role": role, "content": to_anthropic_content(state_turn)})
102
+ # Render through to_anthropic_messages so assistant tool_use blocks
103
+ # and tool-role tool_result parts are serialized correctly —
104
+ # to_anthropic_content only handles contentParts/content and would
105
+ # silently drop tool_calls.
106
+ state_msgs = to_anthropic_messages(
107
+ [state_turn],
108
+ native_replay=lambda message: self._native_assistant_blocks.get(
109
+ self._assistant_replay_key(message)
110
+ ),
111
+ )
112
+ msgs.extend(state_msgs)
104
113
  return msgs
105
114
 
106
115
  def _build_tools(self, tools: list[ToolSchema], anchor_cache: bool) -> list[dict] | None:
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "deepstrike"
7
- version = "0.2.12"
7
+ version = "0.2.14"
8
8
  requires-python = ">=3.10"
9
9
  readme = "README.md"
10
10
  dependencies = [
@@ -1,48 +0,0 @@
1
- use serde::{Deserialize, Serialize};
2
-
3
- /// Parallelism hint for task scheduling and executor enforcement.
4
- ///
5
- /// - `Orchestrate`: serial, produces contracts; runs one at a time
6
- /// - `Implement`: serial, DAG chain; `TaskGraph::ready_tasks` enforces max 1 running
7
- /// - `Retrieve`: parallelisable; no mutual exclusion between retrieve tasks
8
- /// - `Verify`: parallelisable, but each task must run in an isolated agent context
9
- #[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq)]
10
- #[serde(rename_all = "snake_case")]
11
- pub enum TaskLane {
12
- Orchestrate,
13
- #[default]
14
- Implement,
15
- Retrieve,
16
- Verify,
17
- }
18
-
19
- #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
20
- pub struct RuntimeTask {
21
- pub goal: String,
22
- pub criteria: Vec<String>,
23
- #[serde(default)]
24
- pub metadata: serde_json::Value,
25
- #[serde(default)]
26
- pub lane: TaskLane,
27
- }
28
-
29
- impl RuntimeTask {
30
- pub fn new(goal: impl Into<String>) -> Self {
31
- Self {
32
- goal: goal.into(),
33
- criteria: Vec::new(),
34
- metadata: serde_json::Value::Null,
35
- lane: TaskLane::default(),
36
- }
37
- }
38
-
39
- pub fn with_criteria(mut self, criteria: Vec<String>) -> Self {
40
- self.criteria = criteria;
41
- self
42
- }
43
-
44
- pub fn with_lane(mut self, lane: TaskLane) -> Self {
45
- self.lane = lane;
46
- self
47
- }
48
- }
File without changes