deepstrike 0.2.20__tar.gz → 0.2.22__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.20 → deepstrike-0.2.22}/Cargo.lock +5 -5
- {deepstrike-0.2.20 → deepstrike-0.2.22}/Cargo.toml +2 -2
- {deepstrike-0.2.20 → deepstrike-0.2.22}/PKG-INFO +1 -1
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/__init__.py +1 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/memory/__init__.py +2 -0
- deepstrike-0.2.22/deepstrike/memory/in_memory_store.py +53 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/providers/anthropic.py +39 -17
- {deepstrike-0.2.20 → deepstrike-0.2.22}/pyproject.toml +1 -1
- {deepstrike-0.2.20 → deepstrike-0.2.22}/README.md +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/Cargo.toml +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/context/compression.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/context/config.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/context/dashboard.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/context/manager.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/context/mod.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/context/partitions.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/context/pressure.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/context/renderer.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/context/renewal.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/context/sections.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/context/skill_catalog.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/context/snapshot.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/context/summarizer.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/context/task_state.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/context/text.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/context/token_engine.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/governance/audit.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/governance/constraint.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/governance/mod.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/governance/permission.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/governance/pipeline.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/governance/quota.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/governance/rate_limit.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/governance/sandbox.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/governance/tool_decision.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/governance/veto.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/harness/eval.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/harness/mod.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/lib.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/memory/curator.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/memory/durable.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/memory/extractor.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/memory/idle_pipeline.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/memory/mod.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/memory/runtime.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/memory/semantic.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/memory/session.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/memory/synthesis.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/memory/trace_analyzer.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/memory/working.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/mm/handle.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/mm/memory.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/mm/mod.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/orchestration/mod.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/orchestration/task_graph.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/orchestration/tournament.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/orchestration/workflow/mod.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/orchestration/workflow/run.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/proc/mod.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/runtime/event_log.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/runtime/kernel.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/runtime/mod.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/runtime/repair.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/runtime/replay.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/runtime/session.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/runtime/snapshot.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/milestone.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/mod.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/policy.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/rollback.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/state_machine/capability.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/state_machine/eviction.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/state_machine/gate.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/state_machine/milestone_exec.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/state_machine/mod.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/state_machine/process.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/state_machine/signal.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/state_machine/tests.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/state_machine/workflow.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/tcb.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/signals/attention.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/signals/mod.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/signals/queue.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/signals/router.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/syscall/mod.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/types/agent.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/types/capability.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/types/contract.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/types/error.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/types/message.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/types/milestone.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/types/mod.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/types/model.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/types/policy.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/types/result.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/types/signal.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/types/skill.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/types/task.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-py/Cargo.toml +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-py/src/lib.rs +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/collaboration/__init__.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/collaboration/contract.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/collaboration/handoff.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/collaboration/harness.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/collaboration/modes.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/collaboration/pool.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/governance.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/harness/__init__.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/harness/harness.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/kernel/__init__.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/knowledge/__init__.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/knowledge/source.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/memory/agent.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/memory/protocols.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/memory/working.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/providers/__init__.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/providers/base.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/providers/deepseek.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/providers/gemini.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/providers/glm.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/providers/kimi.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/providers/minimax.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/providers/ollama.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/providers/openai.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/providers/openai_responses.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/providers/qwen.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/providers/replay.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/providers/replay_validator.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/providers/stream.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/__init__.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/archive.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/credential_vault.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/eval.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/execution_plane.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/filtered_plane.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/kernel_event_log.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/kernel_step.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/large_result_spool.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/mcp_proxy_plane.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/os_profile.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/os_snapshot.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/output_schema.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/process_sandbox_plane.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/provider_replay.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/reducers.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/remote_vpc_plane.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/replay_fixture.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/replay_provider.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/replay_sanitize.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/runner.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/session_log.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/session_repair.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/sub_agent_orchestrator.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/workflow_control_flow.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/workflow_store.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/runtime/worktree_plane.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/safety/__init__.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/safety/permissions.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/signals/__init__.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/signals/gateway.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/signals/scheduled.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/signals/types.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/skills/__init__.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/skills/registry.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/skills/watcher.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/tools/__init__.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/tools/builtin/__init__.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/tools/builtin/read_file.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/tools/execution.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/tools/registry.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/deepstrike/types/__init__.py +0 -0
- {deepstrike-0.2.20 → deepstrike-0.2.22}/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.22"
|
|
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.22"
|
|
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.22"
|
|
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.22"
|
|
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.22"
|
|
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.22"
|
|
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.22" }
|
|
13
13
|
notify = "6"
|
|
14
14
|
serde = { version = "1", features = ["derive"] }
|
|
15
15
|
serde_json = "1"
|
|
@@ -68,6 +68,7 @@ from deepstrike.tools import RegisteredTool, tool, streaming_tool, validate_tool
|
|
|
68
68
|
from deepstrike.memory import (
|
|
69
69
|
WorkingMemory,
|
|
70
70
|
DreamStore, DreamResult, SessionData, MemoryEntry, CurationResult, CurationStats,
|
|
71
|
+
InMemoryDreamStore,
|
|
71
72
|
)
|
|
72
73
|
from deepstrike.safety import PermissionManager, PermissionMode, Permission, PermissionDecision
|
|
73
74
|
from deepstrike.harness import (
|
|
@@ -2,8 +2,10 @@ from .working import WorkingMemory
|
|
|
2
2
|
from .protocols import (
|
|
3
3
|
DreamStore, DreamResult, SessionData, MemoryEntry, CurationResult, CurationStats,
|
|
4
4
|
)
|
|
5
|
+
from .in_memory_store import InMemoryDreamStore
|
|
5
6
|
|
|
6
7
|
__all__ = [
|
|
7
8
|
"WorkingMemory",
|
|
8
9
|
"DreamStore", "DreamResult", "SessionData", "MemoryEntry", "CurationResult", "CurationStats",
|
|
10
|
+
"InMemoryDreamStore",
|
|
9
11
|
]
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"""`InMemoryDreamStore` — lightweight `DreamStore` backed by per-agent dicts.
|
|
2
|
+
|
|
3
|
+
Python port of node/src/memory/in-memory-store.ts. Use for benchmarks, unit tests,
|
|
4
|
+
and local development where persistent memory isn't needed.
|
|
5
|
+
"""
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from typing import Iterable
|
|
9
|
+
|
|
10
|
+
from deepstrike.memory.protocols import CurationResult, DreamStore, MemoryEntry, SessionData
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class InMemoryDreamStore(DreamStore):
|
|
14
|
+
def __init__(self, initial_memories: Iterable[MemoryEntry] | None = None) -> None:
|
|
15
|
+
self._sessions: dict[str, list[SessionData]] = {}
|
|
16
|
+
self._memories: dict[str, list[MemoryEntry]] = {}
|
|
17
|
+
self._initial: list[MemoryEntry] = list(initial_memories or [])
|
|
18
|
+
#: Sessions persisted via save_session — exposed for test assertions.
|
|
19
|
+
self.saved_sessions: list[SessionData] = []
|
|
20
|
+
|
|
21
|
+
def add_session(self, agent_id: str, session: SessionData) -> None:
|
|
22
|
+
self._sessions.setdefault(agent_id, []).append(session)
|
|
23
|
+
|
|
24
|
+
def add_memories(self, agent_id: str, entries: Iterable[MemoryEntry]) -> None:
|
|
25
|
+
self._memories.setdefault(agent_id, []).extend(entries)
|
|
26
|
+
|
|
27
|
+
async def load_sessions(self, agent_id: str) -> list[SessionData]:
|
|
28
|
+
return list(self._sessions.get(agent_id, []))
|
|
29
|
+
|
|
30
|
+
async def load_memories(self, agent_id: str) -> list[MemoryEntry]:
|
|
31
|
+
if agent_id in self._memories:
|
|
32
|
+
return list(self._memories[agent_id])
|
|
33
|
+
if self._initial:
|
|
34
|
+
self._memories[agent_id] = list(self._initial)
|
|
35
|
+
return list(self._memories[agent_id])
|
|
36
|
+
return []
|
|
37
|
+
|
|
38
|
+
async def commit(
|
|
39
|
+
self,
|
|
40
|
+
agent_id: str,
|
|
41
|
+
result: CurationResult,
|
|
42
|
+
existing: list[MemoryEntry],
|
|
43
|
+
) -> None:
|
|
44
|
+
kept = [m for i, m in enumerate(existing) if i not in set(result.to_remove_indices)]
|
|
45
|
+
self._memories[agent_id] = kept + list(result.to_add)
|
|
46
|
+
|
|
47
|
+
async def search(self, agent_id: str, query: str, top_k: int = 5) -> list[MemoryEntry]:
|
|
48
|
+
all_memories = await self.load_memories(agent_id)
|
|
49
|
+
return all_memories[:top_k]
|
|
50
|
+
|
|
51
|
+
async def save_session(self, data: SessionData) -> None:
|
|
52
|
+
self.saved_sessions.append(data)
|
|
53
|
+
self._sessions.setdefault(data.agent_id, []).append(data)
|
|
@@ -78,14 +78,18 @@ class AnthropicProvider:
|
|
|
78
78
|
knowledge = getattr(context, "system_knowledge", "") or ""
|
|
79
79
|
if not stable and not knowledge:
|
|
80
80
|
return context.system_text or None
|
|
81
|
+
# System cache_control is emitted under "default" and "system-only". Other strategies keep
|
|
82
|
+
# the text-block structure for protocol parity but omit cache_control.
|
|
83
|
+
emit = strategy in ("default", "system-only")
|
|
84
|
+
cc = {"cache_control": {"type": "ephemeral"}} if emit else {}
|
|
81
85
|
blocks: list[dict] = []
|
|
82
86
|
if stable:
|
|
83
|
-
blocks.append({"type": "text", "text": stable,
|
|
87
|
+
blocks.append({"type": "text", "text": stable, **cc})
|
|
84
88
|
if knowledge:
|
|
85
|
-
blocks.append({"type": "text", "text": knowledge,
|
|
89
|
+
blocks.append({"type": "text", "text": knowledge, **cc})
|
|
86
90
|
return blocks or None
|
|
87
91
|
|
|
88
|
-
def _build_messages(self, turns: list[Message], state_turn=None, frozen_prefix_len=None) -> list[dict]:
|
|
92
|
+
def _build_messages(self, turns: list[Message], state_turn=None, frozen_prefix_len=None, strategy: str = "default") -> list[dict]:
|
|
89
93
|
msgs = to_anthropic_messages(
|
|
90
94
|
turns,
|
|
91
95
|
native_replay=lambda message: self._native_assistant_blocks.get(
|
|
@@ -97,7 +101,7 @@ class AnthropicProvider:
|
|
|
97
101
|
# state_turn is None and the state is already inside turns (rendered above).
|
|
98
102
|
# frozen_prefix_len (P1-E) pins the deep breakpoint at the compaction
|
|
99
103
|
# boundary; None ⇒ rolling-pair fallback.
|
|
100
|
-
_apply_message_cache_control(msgs, frozen_prefix_len)
|
|
104
|
+
_apply_message_cache_control(msgs, frozen_prefix_len, strategy)
|
|
101
105
|
if state_turn is not None:
|
|
102
106
|
# Render through to_anthropic_messages so assistant tool_use blocks
|
|
103
107
|
# and tool-role tool_result parts are serialized correctly —
|
|
@@ -112,7 +116,7 @@ class AnthropicProvider:
|
|
|
112
116
|
msgs.extend(state_msgs)
|
|
113
117
|
return msgs
|
|
114
118
|
|
|
115
|
-
def _build_tools(self, tools: list[ToolSchema], anchor_cache: bool) -> list[dict] | None:
|
|
119
|
+
def _build_tools(self, tools: list[ToolSchema], anchor_cache: bool, strategy: str = "default") -> list[dict] | None:
|
|
116
120
|
if not tools:
|
|
117
121
|
return None
|
|
118
122
|
defs = [
|
|
@@ -123,10 +127,9 @@ class AnthropicProvider:
|
|
|
123
127
|
}
|
|
124
128
|
for t in tools
|
|
125
129
|
]
|
|
126
|
-
#
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
if anchor_cache:
|
|
130
|
+
# Tool cache_control is emitted under "default" and "tools-only".
|
|
131
|
+
emit_on_last_tool = anchor_cache and strategy in ("default", "tools-only")
|
|
132
|
+
if emit_on_last_tool:
|
|
130
133
|
defs[-1]["cache_control"] = {"type": "ephemeral"}
|
|
131
134
|
return defs
|
|
132
135
|
|
|
@@ -141,9 +144,10 @@ class AnthropicProvider:
|
|
|
141
144
|
if self._circuit.is_open():
|
|
142
145
|
raise RuntimeError("Circuit breaker open")
|
|
143
146
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
+
strategy = _resolve_cache_breakpoint_strategy(extensions)
|
|
148
|
+
msgs = self._build_messages(context.turns, context.state_turn, context.frozen_prefix_len, strategy)
|
|
149
|
+
system = self._build_system(context, strategy)
|
|
150
|
+
tool_defs = self._build_tools(tools, anchor_cache=not isinstance(system, list), strategy=strategy)
|
|
147
151
|
_assert_cache_budget(system, len(tools))
|
|
148
152
|
|
|
149
153
|
last_exc = None
|
|
@@ -213,9 +217,10 @@ class AnthropicProvider:
|
|
|
213
217
|
raise last_exc or RuntimeError("Complete failed")
|
|
214
218
|
|
|
215
219
|
async def stream(self, context: RenderedContext, tools: list[ToolSchema], extensions: dict | None = None, state: dict | None = None) -> AsyncIterator[StreamEvent]:
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
220
|
+
strategy = _resolve_cache_breakpoint_strategy(extensions)
|
|
221
|
+
msgs = self._build_messages(context.turns, context.state_turn, context.frozen_prefix_len, strategy)
|
|
222
|
+
system = self._build_system(context, strategy)
|
|
223
|
+
tool_defs = self._build_tools(tools, anchor_cache=not isinstance(system, list), strategy=strategy)
|
|
219
224
|
_assert_cache_budget(system, len(tools))
|
|
220
225
|
|
|
221
226
|
native_blocks: dict[int, dict] = {}
|
|
@@ -321,8 +326,22 @@ class AnthropicProvider:
|
|
|
321
326
|
_MAX_CACHE_BREAKPOINTS = 4
|
|
322
327
|
_MESSAGE_CACHE_BREAKPOINTS = 2
|
|
323
328
|
|
|
329
|
+
# Recognised values for the `cacheBreakpointStrategy` extension. See node/src/types.ts
|
|
330
|
+
# `CacheBreakpointStrategy` for the canonical documentation; this mirrors the same surface.
|
|
331
|
+
_CACHE_BREAKPOINT_STRATEGIES = {"default", "tools-only", "system-only", "frozen-prefix", "none"}
|
|
324
332
|
|
|
325
|
-
|
|
333
|
+
|
|
334
|
+
def _resolve_cache_breakpoint_strategy(extensions: "dict | None") -> str:
|
|
335
|
+
"""Pull `cacheBreakpointStrategy` from per-call extensions; unrecognised values → 'default'."""
|
|
336
|
+
if not extensions:
|
|
337
|
+
return "default"
|
|
338
|
+
raw = extensions.get("cacheBreakpointStrategy")
|
|
339
|
+
if isinstance(raw, str) and raw in _CACHE_BREAKPOINT_STRATEGIES:
|
|
340
|
+
return raw
|
|
341
|
+
return "default"
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
def _apply_message_cache_control(msgs: list[dict], frozen_prefix_len: "int | None" = None, strategy: str = "default") -> None:
|
|
326
345
|
"""Place the (<=2) message-history cache breakpoints. The final message always
|
|
327
346
|
gets one (writes the current full prefix). The second is placed by one of two
|
|
328
347
|
strategies:
|
|
@@ -340,11 +359,14 @@ def _apply_message_cache_control(msgs: list[dict], frozen_prefix_len: "int | Non
|
|
|
340
359
|
body is promoted to a cache-bearing text block."""
|
|
341
360
|
if not msgs:
|
|
342
361
|
return
|
|
362
|
+
# Message-level cache_control is emitted under "default" and "frozen-prefix" only.
|
|
363
|
+
if strategy in ("tools-only", "system-only", "none"):
|
|
364
|
+
return
|
|
343
365
|
targets = {len(msgs) - 1}
|
|
344
366
|
if isinstance(frozen_prefix_len, int) and 1 <= frozen_prefix_len < len(msgs):
|
|
345
367
|
# Deep anchor at the frozen-prefix boundary (last frozen turn). Fixed between compactions.
|
|
346
368
|
targets.add(frozen_prefix_len - 1)
|
|
347
|
-
|
|
369
|
+
elif strategy == "default":
|
|
348
370
|
i = len(msgs) - 2
|
|
349
371
|
while i >= 0 and len(targets) < _MESSAGE_CACHE_BREAKPOINTS:
|
|
350
372
|
if msgs[i].get("role") == "user":
|
|
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.20 → deepstrike-0.2.22}/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.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/orchestration/task_graph.rs
RENAMED
|
File without changes
|
{deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/orchestration/tournament.rs
RENAMED
|
File without changes
|
{deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/orchestration/workflow/mod.rs
RENAMED
|
File without changes
|
{deepstrike-0.2.20 → deepstrike-0.2.22}/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.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/state_machine/gate.rs
RENAMED
|
File without changes
|
|
File without changes
|
{deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/state_machine/mod.rs
RENAMED
|
File without changes
|
|
File without changes
|
{deepstrike-0.2.20 → deepstrike-0.2.22}/crates/deepstrike-core/src/scheduler/state_machine/signal.rs
RENAMED
|
File without changes
|
{deepstrike-0.2.20 → deepstrike-0.2.22}/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
|