deepstrike 0.2.26__tar.gz → 0.2.28__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.
- {deepstrike-0.2.26 → deepstrike-0.2.28}/Cargo.lock +5 -5
- {deepstrike-0.2.26 → deepstrike-0.2.28}/Cargo.toml +2 -2
- {deepstrike-0.2.26 → deepstrike-0.2.28}/PKG-INFO +1 -1
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/runner.py +76 -9
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/tools/registry.py +14 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/pyproject.toml +1 -1
- {deepstrike-0.2.26 → deepstrike-0.2.28}/README.md +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/Cargo.toml +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/context/compression.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/context/config.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/context/dashboard.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/context/manager.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/context/mod.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/context/partitions.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/context/pressure.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/context/renderer.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/context/renewal.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/context/sections.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/context/skill_catalog.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/context/snapshot.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/context/summarizer.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/context/task_state.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/context/text.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/context/token_engine.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/governance/audit.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/governance/constraint.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/governance/mod.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/governance/permission.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/governance/pipeline.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/governance/quota.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/governance/rate_limit.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/governance/sandbox.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/governance/tool_decision.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/governance/veto.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/harness/eval.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/harness/mod.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/lib.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/memory/curator.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/memory/durable.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/memory/extractor.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/memory/idle_pipeline.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/memory/mod.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/memory/runtime.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/memory/semantic.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/memory/session.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/memory/synthesis.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/memory/trace_analyzer.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/memory/working.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/mm/handle.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/mm/memory.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/mm/mod.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/orchestration/mod.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/orchestration/task_graph.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/orchestration/tournament.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/orchestration/workflow/mod.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/orchestration/workflow/run.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/proc/mod.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/runtime/event_log.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/runtime/kernel.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/runtime/mod.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/runtime/repair.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/runtime/replay.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/runtime/session.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/runtime/snapshot.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/milestone.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/mod.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/policy.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/rollback.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/state_machine/capability.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/state_machine/eviction.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/state_machine/gate.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/state_machine/milestone_exec.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/state_machine/mod.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/state_machine/process.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/state_machine/signal.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/state_machine/tests.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/state_machine/workflow.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/tcb.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/signals/attention.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/signals/mod.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/signals/queue.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/signals/router.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/syscall/mod.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/types/agent.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/types/capability.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/types/contract.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/types/error.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/types/message.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/types/milestone.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/types/mod.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/types/model.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/types/policy.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/types/result.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/types/signal.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/types/skill.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/types/task.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-py/Cargo.toml +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-py/src/lib.rs +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/__init__.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/collaboration/__init__.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/collaboration/contract.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/collaboration/handoff.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/collaboration/harness.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/collaboration/modes.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/collaboration/pool.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/governance.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/harness/__init__.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/harness/harness.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/kernel/__init__.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/knowledge/__init__.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/knowledge/source.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/memory/__init__.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/memory/agent.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/memory/in_memory_store.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/memory/protocols.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/memory/working.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/providers/__init__.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/providers/anthropic.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/providers/base.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/providers/deepseek.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/providers/gemini.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/providers/glm.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/providers/kimi.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/providers/minimax.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/providers/ollama.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/providers/openai.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/providers/openai_responses.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/providers/qwen.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/providers/replay.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/providers/replay_validator.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/providers/stream.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/__init__.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/archive.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/credential_vault.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/eval.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/execution_plane.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/filtered_plane.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/kernel_event_log.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/kernel_step.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/large_result_spool.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/mcp_proxy_plane.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/os_profile.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/os_snapshot.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/output_schema.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/process_sandbox_plane.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/provider_replay.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/reducers.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/remote_vpc_plane.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/replay_fixture.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/replay_provider.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/replay_sanitize.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/session_log.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/session_repair.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/sub_agent_orchestrator.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/workflow_control_flow.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/workflow_store.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/runtime/worktree_plane.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/safety/__init__.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/safety/permissions.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/signals/__init__.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/signals/gateway.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/signals/scheduled.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/signals/types.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/skills/__init__.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/skills/registry.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/skills/watcher.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/tools/__init__.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/tools/builtin/__init__.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/tools/builtin/read_file.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/tools/errors.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/tools/execution.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/deepstrike/types/__init__.py +0 -0
- {deepstrike-0.2.26 → deepstrike-0.2.28}/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.
|
|
197
|
+
version = "0.2.28"
|
|
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.
|
|
209
|
+
version = "0.2.28"
|
|
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.
|
|
221
|
+
version = "0.2.28"
|
|
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.
|
|
232
|
+
version = "0.2.28"
|
|
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.
|
|
266
|
+
version = "0.2.28"
|
|
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.
|
|
6
|
+
version = "0.2.28"
|
|
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
|
+
deepstrike-core = { path = "crates/deepstrike-core", version = "0.2.28" }
|
|
13
13
|
notify = "6"
|
|
14
14
|
serde = { version = "1", features = ["derive"] }
|
|
15
15
|
serde_json = "1"
|
|
@@ -466,6 +466,68 @@ class RuntimeRunner:
|
|
|
466
466
|
return await self.run_workflow(spec, _initial_event=initial_event)
|
|
467
467
|
|
|
468
468
|
async def run_workflow(
|
|
469
|
+
self,
|
|
470
|
+
spec: "WorkflowSpec",
|
|
471
|
+
*,
|
|
472
|
+
resumed_completed: list[str] | None = None,
|
|
473
|
+
resumed_submissions: list | None = None,
|
|
474
|
+
session_id: str | None = None,
|
|
475
|
+
_initial_event: dict[str, Any] | None = None,
|
|
476
|
+
) -> dict[str, list[str]]:
|
|
477
|
+
"""Run a declarative workflow DAG, standalone or mid-run.
|
|
478
|
+
|
|
479
|
+
With no active parent run (e.g. a stateless request handler) this auto-bootstraps a kernel
|
|
480
|
+
that owns the DAG — ``start_run`` plus the same governance/quota/attention policies a full
|
|
481
|
+
``run()`` gets — drives it, and tears it down so the runner is reusable. Called during an
|
|
482
|
+
active ``run()``, it drives the workflow on that kernel instead. ``session_id`` names the
|
|
483
|
+
standalone session (defaults to a fresh uuid); it is ignored when a run is already active.
|
|
484
|
+
"""
|
|
485
|
+
bootstrapped = self._active_kernel is None or self._current_session_id is None
|
|
486
|
+
if bootstrapped:
|
|
487
|
+
self._bootstrap_workflow_kernel(session_id or f"wf-{uuid.uuid4()}", spec)
|
|
488
|
+
try:
|
|
489
|
+
return await self._run_workflow_inner(
|
|
490
|
+
spec,
|
|
491
|
+
resumed_completed=resumed_completed,
|
|
492
|
+
resumed_submissions=resumed_submissions,
|
|
493
|
+
_initial_event=_initial_event,
|
|
494
|
+
)
|
|
495
|
+
finally:
|
|
496
|
+
if bootstrapped:
|
|
497
|
+
self._active_kernel = None
|
|
498
|
+
self._current_session_id = None
|
|
499
|
+
self._pending_observations = []
|
|
500
|
+
|
|
501
|
+
def _bootstrap_workflow_kernel(self, session_id: str, spec: "WorkflowSpec") -> KernelRuntime:
|
|
502
|
+
"""Bootstrap a standalone kernel for a host-driven workflow with no active parent run.
|
|
503
|
+
|
|
504
|
+
Mirrors ``_execute``'s pre-run setup (governance / attention / scheduler-budget / resource-quota,
|
|
505
|
+
then ``start_run``) so DAG-node spawns are gated and quota'd exactly as a mid-run spawn. Records a
|
|
506
|
+
best-effort ``run_started`` event so the standalone run can be resumed via ``resume_workflow``.
|
|
507
|
+
"""
|
|
508
|
+
self._interrupted = False
|
|
509
|
+
self._pending_observations = []
|
|
510
|
+
self._current_session_id = session_id
|
|
511
|
+
runtime = self._create_syscall_runtime()
|
|
512
|
+
self._active_kernel = runtime
|
|
513
|
+
goal = f"workflow:{len(spec.nodes)} nodes"
|
|
514
|
+
|
|
515
|
+
os_profile = assert_native_profile(self._opts.os_profile or "native")
|
|
516
|
+
gov_policy = self._opts.governance_policy or os_profile.governance_policy
|
|
517
|
+
kernel_apply(runtime, self._pending_observations, governance_policy_to_kernel_event(gov_policy))
|
|
518
|
+
ap = self._opts.attention_policy or os_profile.attention_policy
|
|
519
|
+
max_q = ap.get("max_queue_size") if isinstance(ap, dict) else getattr(ap, "max_queue_size", None)
|
|
520
|
+
kernel_apply(runtime, self._pending_observations, {
|
|
521
|
+
"kind": "set_attention_policy",
|
|
522
|
+
**({"max_queue_size": max_q} if max_q is not None else {}),
|
|
523
|
+
})
|
|
524
|
+
scheduler_budget = _scheduler_budget_to_kernel(self._opts.scheduler_budget)
|
|
525
|
+
if scheduler_budget is not None:
|
|
526
|
+
kernel_apply(runtime, self._pending_observations, {"kind": "set_scheduler_budget", **scheduler_budget})
|
|
527
|
+
kernel_apply(runtime, self._pending_observations, {"kind": "start_run", "task": {"goal": goal, "criteria": []}})
|
|
528
|
+
return runtime
|
|
529
|
+
|
|
530
|
+
async def _run_workflow_inner(
|
|
469
531
|
self,
|
|
470
532
|
spec: "WorkflowSpec",
|
|
471
533
|
*,
|
|
@@ -523,8 +585,8 @@ class RuntimeRunner:
|
|
|
523
585
|
loop_instruction,
|
|
524
586
|
)
|
|
525
587
|
|
|
526
|
-
|
|
527
|
-
|
|
588
|
+
# The public run_workflow wrapper guarantees an active kernel here (bootstrapping one when called
|
|
589
|
+
# standalone), so no guard is needed.
|
|
528
590
|
parent_session_id = self._current_session_id
|
|
529
591
|
runtime = self._active_kernel
|
|
530
592
|
orchestrator = self._opts.sub_agent_orchestrator or default_sub_agent_orchestrator
|
|
@@ -817,27 +879,32 @@ class RuntimeRunner:
|
|
|
817
879
|
})
|
|
818
880
|
return SimpleNamespace(kind="call_provider", context=runtime.render(), tools=action.tools)
|
|
819
881
|
|
|
820
|
-
async def resume_workflow(
|
|
821
|
-
""
|
|
882
|
+
async def resume_workflow(
|
|
883
|
+
self, spec: "WorkflowSpec", *, session_id: str | None = None,
|
|
884
|
+
) -> dict[str, list[str]]:
|
|
885
|
+
"""Resume a workflow from a session's completed nodes.
|
|
822
886
|
|
|
823
|
-
Reads the session log, extracts completed workflow node agent_ids, and
|
|
824
|
-
|
|
887
|
+
Reads the session log, extracts completed workflow node agent_ids, and calls run_workflow with
|
|
888
|
+
resumed_completed so the kernel skips those nodes. Pass ``session_id`` to resume an interrupted
|
|
889
|
+
standalone run from a stateless handler; omit it to resume the active session.
|
|
825
890
|
"""
|
|
826
891
|
from deepstrike.runtime.session_repair import (
|
|
827
892
|
recover_completed_workflow_nodes,
|
|
828
893
|
recover_submitted_workflow_nodes,
|
|
829
894
|
)
|
|
830
895
|
|
|
831
|
-
|
|
832
|
-
|
|
896
|
+
sid = session_id or self._current_session_id
|
|
897
|
+
if sid is None:
|
|
898
|
+
raise RuntimeError("resume_workflow requires an active parent run or an explicit session_id")
|
|
833
899
|
|
|
834
|
-
events = await self._opts.session_log.read(
|
|
900
|
+
events = await self._opts.session_log.read(sid)
|
|
835
901
|
resumed_completed = recover_completed_workflow_nodes(events)
|
|
836
902
|
resumed_submissions = recover_submitted_workflow_nodes(events)
|
|
837
903
|
return await self.run_workflow(
|
|
838
904
|
spec,
|
|
839
905
|
resumed_completed=resumed_completed,
|
|
840
906
|
resumed_submissions=resumed_submissions,
|
|
907
|
+
session_id=sid,
|
|
841
908
|
)
|
|
842
909
|
|
|
843
910
|
def interrupt(self) -> None:
|
|
@@ -124,6 +124,20 @@ def _validate_value(schema: dict[str, Any], parent: Any, key: Any, path: str, st
|
|
|
124
124
|
state["repaired"] = True
|
|
125
125
|
except ValueError:
|
|
126
126
|
pass
|
|
127
|
+
elif expected == "array":
|
|
128
|
+
# coerceItemArray: LLMs commonly wrap array args in a single-key {"item": X} / {"items": X}
|
|
129
|
+
# envelope, or emit a lone object where a one-element array was expected. Coerce both to a
|
|
130
|
+
# list so per-element validation runs (yielding precise `$.path[i]…` errors) instead of a
|
|
131
|
+
# blunt "must be array". Aligned with the str→number/bool casts above.
|
|
132
|
+
if isinstance(value, dict):
|
|
133
|
+
keys = list(value.keys())
|
|
134
|
+
if len(keys) == 1 and keys[0] in ("item", "items"):
|
|
135
|
+
inner = value[keys[0]]
|
|
136
|
+
parent[key] = inner if isinstance(inner, list) else [inner]
|
|
137
|
+
else:
|
|
138
|
+
parent[key] = [value]
|
|
139
|
+
value = parent[key]
|
|
140
|
+
state["repaired"] = True
|
|
127
141
|
|
|
128
142
|
# 2. 补默认值 (Default Injection)
|
|
129
143
|
if expected == "object":
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/governance/tool_decision.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/orchestration/task_graph.rs
RENAMED
|
File without changes
|
{deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/orchestration/tournament.rs
RENAMED
|
File without changes
|
{deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/orchestration/workflow/mod.rs
RENAMED
|
File without changes
|
{deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/orchestration/workflow/run.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/state_machine/gate.rs
RENAMED
|
File without changes
|
|
File without changes
|
{deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/state_machine/mod.rs
RENAMED
|
File without changes
|
|
File without changes
|
{deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/state_machine/signal.rs
RENAMED
|
File without changes
|
{deepstrike-0.2.26 → deepstrike-0.2.28}/crates/deepstrike-core/src/scheduler/state_machine/tests.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|