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.
- {deepstrike-0.2.63 → deepstrike-0.2.64}/Cargo.lock +6 -6
- {deepstrike-0.2.63 → deepstrike-0.2.64}/Cargo.toml +3 -3
- {deepstrike-0.2.63 → deepstrike-0.2.64}/PKG-INFO +1 -1
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/bin/ds-chain-validator.rs +118 -19
- deepstrike-0.2.64/crates/deepstrike-core/src/runtime/chain_validator/mod.rs +2577 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/request_plan.py +9 -7
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/execution_evidence.py +93 -7
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/runner.py +185 -4
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/session_log.py +33 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/session_repair.py +11 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/pyproject.toml +1 -1
- deepstrike-0.2.63/crates/deepstrike-core/src/runtime/chain_validator/mod.rs +0 -1181
- {deepstrike-0.2.63 → deepstrike-0.2.64}/LICENSE +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/README.md +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/Cargo.toml +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/LICENSE +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/benches/kernel_baseline.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/benches/wait_index_baseline.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/benchmark/mod.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/compression.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/config.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/fault.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/manager.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/measurement.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/mod.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/partitions.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/policy.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/pressure.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/renderer.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/renewal.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/skill_catalog.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/summarizer.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/task_state.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/text.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/token_engine.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/units.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/context/utility.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/governance/constraint.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/governance/mod.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/governance/permission.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/governance/pipeline.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/governance/quota.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/governance/rate_limit.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/governance/repeat_fuse.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/governance/veto.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/harness/eval.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/harness/mod.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/lexical.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/lib.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/memory/curator.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/memory/durable.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/memory/mod.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/mm/handle.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/mm/memory.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/mm/mod.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/mm/value.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/orchestration/mod.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/orchestration/task_graph.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/orchestration/tournament.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/orchestration/workflow/mod.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/orchestration/workflow/run.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/proc/mod.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/event_log.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/observation.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/binding.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/checkpoint.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/command.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/config.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver/continuation.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver/effects.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver/events.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver/planning.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver/projection.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver/provider.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver/syscall.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver/tests.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/driver.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/effect.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/envelope.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/event.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/fault.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/projection.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/record.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/restore.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/root.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/scalar.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/syscall.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/terminal.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/tests.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire/transaction.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel/wire.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/kernel.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/mod.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/repair.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/replay.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/runtime/session.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/budget_grant.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/cross_operation.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/entropy.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/mailbox.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/milestone.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/mod.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/policy.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/rollback.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/runnable.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/cancellation.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/capability.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/eviction.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/gate.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/milestone_exec.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/mod.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/process.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/signal.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/tests.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/state_machine/workflow.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/tcb.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/scheduler/wait_index.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/signals/attention.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/signals/mod.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/signals/queue.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/signals/router.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/syscall/mod.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/agent.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/capability.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/contract.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/durable_content.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/error.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/message.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/milestone.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/mod.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/policy.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/result.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/signal.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/skill.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/types/task.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-py/Cargo.toml +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-py/LICENSE +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-py/src/lib.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-tokenizer/Cargo.toml +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-tokenizer/LICENSE +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-tokenizer/src/lib.rs +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/__init__.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/agent.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/agent_ir.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/collaboration/__init__.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/collaboration/contract.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/collaboration/handoff.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/collaboration/harness.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/collaboration/modes.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/collaboration/pool.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/governance.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/harness/__init__.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/harness/harness.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/harness/judge.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/kernel/__init__.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/kernel/canonical.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/knowledge/__init__.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/knowledge/source.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/__init__.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/agent.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/durable.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/extraction.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/in_memory_store.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/protocols.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/ranking.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/retention.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/memory/working.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/__init__.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/anthropic.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/anthropic_adapter.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/anthropic_compatible.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/base.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/capability_router.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/credentials.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/embedding.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/factories.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/gemini.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/gemini_adapter.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/model_catalog.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/model_registry.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/ollama.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/ollama_adapter.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/openai.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/openai_chat_adapter.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/openai_responses.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/protocol_adapter.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/provider_error.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/qwen.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/replay.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/replay_validator.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/runtime_registry.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/stop_reason.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/stream.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/usage.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/providers/vendor_profiles.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/__init__.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/archive.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/canonical_kernel_step.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/context_policy.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/credential_vault.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/durable_content.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/eval.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/event_stream.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/execution_plane.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/facade.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/filtered_plane.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/kernel_event_log.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/kernel_journal.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/kernel_step.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/loop_driver.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/mcp_proxy_plane.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/os_profile.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/os_snapshot.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/output_schema.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/payload_store.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/process_sandbox_plane.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/provider_replay.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/reaction_checkpoint.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/reactive_session.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/reducers.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/reliability.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/remote_vpc_plane.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/replay_fixture.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/replay_provider.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/replay_sanitize.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/run_group.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/sub_agent_orchestrator.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/turn_policy.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/workflow_control_flow.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/workflow_store.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/runtime/worktree_plane.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/safety/__init__.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/safety/permissions.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/signals/__init__.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/signals/gateway.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/signals/scheduled.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/signals/types.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/skills/__init__.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/skills/loader.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/skills/registry.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/skills/watcher.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/tools/__init__.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/tools/builtin/__init__.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/tools/builtin/read_file.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/tools/errors.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/tools/execution.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/tools/registry.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/types/__init__.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/types/agent.py +0 -0
- {deepstrike-0.2.63 → deepstrike-0.2.64}/deepstrike/types/content.py +0 -0
- {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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
12
|
-
deepstrike-tokenizer = { path = "crates/deepstrike-tokenizer", version = "0.2.
|
|
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"
|
{deepstrike-0.2.63 → deepstrike-0.2.64}/crates/deepstrike-core/src/bin/ds-chain-validator.rs
RENAMED
|
@@ -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::{
|
|
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
|
|
27
|
-
|
|
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>
|
|
31
|
-
\x20
|
|
32
|
-
--
|
|
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
|
|
35
|
-
|
|
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"
|
|
60
|
-
return usage(
|
|
61
|
-
"
|
|
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
|
|
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
|
-
|
|
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(
|
|
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
|
}
|