synapse-cli-agent 0.1.38__tar.gz → 0.1.40__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.
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/.github/workflows/release.yml +1 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/AGENTS.md +3 -2
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/CHANGELOG.md +48 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/PKG-INFO +1 -1
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/README.zh-CN.md +0 -1
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/architecture-flow.md +1 -1
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/config.md +0 -7
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/design.md +3 -1
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/skills.md +15 -12
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/tool-output-transform.md +4 -2
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/tutorial.md +12 -12
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/pyproject.toml +1 -1
- synapse_cli_agent-0.1.40/release_body.md +25 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-core-tool/Cargo.lock +147 -69
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-core-tool/Cargo.toml +4 -3
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-core-tool/pyproject.toml +1 -1
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-core-tool/src/file_tools.rs +61 -1
- synapse_cli_agent-0.1.40/rust/synapse-core-tool/src/llm.rs +640 -0
- synapse_cli_agent-0.1.40/scripts/build_check_rust_openai.py +76 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/app/agent.py +8 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/app/agent_assembly.py +16 -23
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/commands/model.py +25 -11
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/commands/slash_cmds.py +11 -4
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/http_clients.py +5 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/models/registry.py +155 -99
- synapse_cli_agent-0.1.40/src/synapse/models/rust_openai.py +1213 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/observability/debug_server.py +8 -1
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/backends.py +10 -6
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/model_request_compression_middleware.py +39 -5
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/projects/runtime.py +41 -17
- synapse_cli_agent-0.1.40/src/synapse/runtime/session_header_middleware.py +52 -0
- synapse_cli_agent-0.1.40/src/synapse/runtime/session_headers.py +95 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/sessions/persistence.py +39 -5
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/sessions/runtime.py +27 -9
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/streaming/parser.py +6 -3
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/subagent_specs.py +7 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/subagents.py +2 -24
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/token_rate.py +74 -16
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/tool_output_middleware.py +4 -1
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/sessions/__init__.py +2 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/sessions/store.py +72 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/sessions/transcript.py +43 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/sessions/transcript_migration.py +57 -6
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/sessions/transcript_projection.py +277 -55
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/settings/schema.py +1 -40
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/tools/session_tools.py +9 -4
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/controller.py +8 -1
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/prompt_controller.py +3 -6
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/transcript/history.py +21 -1
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/tui.py +25 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/fixtures/agent_stream/core_scenarios.json +1 -1
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_agent_factory.py +27 -6
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_backends.py +19 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_capabilities.py +163 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_config.py +1 -1
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_context_window.py +64 -2
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_project_runtime.py +31 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_prompt_controller.py +51 -0
- synapse_cli_agent-0.1.40/tests/test_rust_openai_model.py +945 -0
- synapse_cli_agent-0.1.40/tests/test_session_headers.py +248 -0
- synapse_cli_agent-0.1.40/tests/test_session_persistence.py +143 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_session_runtime.py +45 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_slash_effects.py +120 -1
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_startup_trace.py +2 -1
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_stream_tool_items.py +77 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_token_rate.py +54 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_transcript.py +69 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_transcript_migration.py +102 -1
- synapse_cli_agent-0.1.40/tests/test_transcript_projection.py +323 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/uv.lock +1 -1
- synapse_cli_agent-0.1.38/release_body.md +0 -21
- synapse_cli_agent-0.1.38/rust/synapse-core-tool/src/llm.rs +0 -153
- synapse_cli_agent-0.1.38/src/synapse/models/rust_openai.py +0 -439
- synapse_cli_agent-0.1.38/src/synapse/runtime/tool_response_truncate_middleware.py +0 -236
- synapse_cli_agent-0.1.38/tests/test_rust_openai_model.py +0 -194
- synapse_cli_agent-0.1.38/tests/test_tool_response_truncate_middleware.py +0 -206
- synapse_cli_agent-0.1.38/tests/test_transcript_projection.py +0 -151
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/.dockerignore +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/.github/workflows/ci.yml +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/.github/workflows/docs.yml +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/.github/workflows/native-compression-wheels.yml +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/.github/workflows/native-core-tool-wheels.yml +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/.gitignore +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/.python-version +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/.readthedocs.yaml +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/.zed/settings.json +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/Dockerfile.web +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/LICENSE +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/README.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/agent_upstream.txt +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/approval-behavior.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/assets/demo.gif +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/assets/synapse-logo.svg +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/assets/tui-preview.png +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/cli_upstream.txt +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/debug_compact.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/decode_screenshot.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/acp-adapter/capability-matrix.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/acp-adapter/decisions.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/acp-adapter/index.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/acp-adapter/phase-0-protocol-baseline.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/acp-adapter/phase-1-core-transport.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/acp-adapter/phase-2-prompt-semantics.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/acp-adapter/phase-3-permissions.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/acp-adapter/phase-4-session-lifecycle.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/acp-adapter/phase-5-session-mcp.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/acp-adapter/phase-6-client-services.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/acp-adapter/phase-7-advanced-capabilities.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/acp-adapter/phase-8-compliance.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/acp-adapter/progress.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/agent-development-guide.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/agent-runtime-decoupling/baseline-report.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/agent-runtime-decoupling/decisions.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/agent-runtime-decoupling/index.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/agent-runtime-decoupling/migration.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/agent-runtime-decoupling/phase-0-baseline.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/agent-runtime-decoupling/phase-1-streaming-core.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/agent-runtime-decoupling/phase-2-turn-runtime.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/agent-runtime-decoupling/phase-3-tui-cutover.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/agent-runtime-decoupling/phase-4-session-runtime.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/agent-runtime-decoupling/phase-5-multi-session.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/agent-runtime-decoupling/phase-6-project-runtime.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/agent-runtime-decoupling/phase-7-global-control-plane.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/agent-runtime-decoupling/phase-8-hardening.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/agent-runtime-decoupling/post-review-fix-plan.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/agent-runtime-decoupling/progress.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/architecture.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/cli.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/codex-session-discovery-phase-1.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/codex-session-import-phase-2.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/docker-web.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/index.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/install.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/math-formulas-test.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/mcp.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/models.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/native-compression-core.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/native-core-tool.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/permissions.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/quickstart.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/sessions.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/smith_output.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/subagents.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/tui-cursor-refactor.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/docs/x-agent-development-guide.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/examples/mcp.example.json +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/examples/models.example.json +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/examples/settings.example.json +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/middleware_upstream.txt +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/mkdocs.yml +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-core-tool/LICENSE +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-core-tool/NOTICE +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-core-tool/README.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-core-tool/python/synapse_core_tool/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-core-tool/src/file_access.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-core-tool/src/lib.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-core-tool/src/math_render.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-core-tool/src/search.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-core-tool/uv.lock +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/Cargo.lock +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/Cargo.toml +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/LICENSE +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/NOTICE +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/README.md +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/pyproject.toml +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/python/synapse_tool_compress_core/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/ccr.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/ccr_in_memory.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/mod.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/relevance/base.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/relevance/bm25.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/signals/keyword_detector.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/signals/line_importance.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/adaptive_sizer.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/anchor_selector.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/code_compressor.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/diff_compressor.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/log_compressor.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/search_compressor.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/analyzer.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/anchors.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/builder.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/classifier.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/classifier.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/compactor.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/formatter.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/ir.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/mod.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/walker.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/config.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/constraints.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/crusher.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/crushers.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/error_keywords.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/field_detect.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/hashing.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/mod.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/observer.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/orchestration.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/outliers.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/planning.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/statistics.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/stats_math.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/traits.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/types.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/rust/synapse-tool-compress-core/src/lib.rs +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/scripts/install.ps1 +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/scripts/release.ps1 +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/scripts/serve_web.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/slash_cmds_upstream.txt +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/__main__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/acp/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/acp/agent.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/acp/client_services.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/acp/content.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/acp/events.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/acp/lifecycle.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/acp/mcp.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/acp/permissions.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/acp/server.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/acp/sessions.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/acp/updates.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/app/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/app/agent_md.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/cli.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/commands/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/commands/compression.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/commands/goal.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/commands/helpers.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/commands/mcp.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/commands/result.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/commands/sessions.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/commands/slash_complete.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/commands/theme.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/config.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/content/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/content/input_history.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/content/multimodal.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/content/prompts.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/content/skills_catalog.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/entry.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/goals/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/goals/middleware.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/goals/model.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/goals/runtime.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/goals/steering.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/goals/store.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/goals/tools.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/checkpoint_seed.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/codex_config.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/codex_history.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/codex_import.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/codex_sessions.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/describe_image.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/herdr.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/llm_openai_compat.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/llm_openai_websocket.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/mcp_client.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/openai_oauth.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/openai_oauth_middleware.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/openai_usage.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/turbo.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/integrations/vision_middleware.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/memory/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/memory/auto_recorder.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/memory/embedder.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/memory/long_term.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/models/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/models/config.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/models/helpers.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/models/persist.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/models/profile.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/models/providers.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/models_registry.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/observability/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/observability/debug_inspector.html +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/observability/exit_trace.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/observability/heap_dump.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/observability/llm_debug.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/observability/startup_trace.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/planner/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/planner/task_planner.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/projects/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/projects/catalog.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/rag/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/rag/knowledge_base.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/agent_loop/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/agent_loop/model.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/agent_loop/request.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/agent_loop/turn.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/async_runtime.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/cancellation.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/context_compact.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/debug_capture_middleware.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/execute_capture.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/filesystem_tool_prompt_middleware.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/fs_permissions.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/harness.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/hitl.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/interaction_ledger.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/middleware.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/pathing.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/projects/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/projects/identity.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/safety.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/session_prewarm.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/sessions/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/sessions/events.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/sessions/manager.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/sessions/ref.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/steer.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/streaming/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/streaming/accumulator.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/streaming/adapters.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/streaming/events.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/streaming/protocol.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/streaming/runtime.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/streaming/stream_events.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/streaming/tool_model.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/subagent_config_persist.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/timeline.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/tool_ignore.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/tool_output_eval.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/runtime/tool_output_usage_middleware.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/sessions/cancel_repair.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/sessions/search_index.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/sessions/summary.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/settings/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/settings/config_paths.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/subagents.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/tool_output/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/tool_output/detection.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/tool_output/metrics.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/tool_output/models.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/tool_output/pipeline.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/tool_output/repository.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/tool_output/transformers.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/tools/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/tools/describe_image.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/tools/filesystem_patch.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/tools/filesystem_search.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/agent_lifecycle.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/answer_divider.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/approval.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/bottombar/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/bottombar/components/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/bottombar/components/codex_usage.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/bottombar/components/fast.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/bottombar/components/goal.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/bottombar/components/key_hints.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/bottombar/components/mcp.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/bottombar/components/mode.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/bottombar/components/model.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/bottombar/components/thread.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/bottombar/components/turbo.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/bottombar/components/turn_stats.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/bottombar/context.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/bottombar/core.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/chrome/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/chrome/controller.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/clipboard.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/active_session_switcher.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/base.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/codex_config_import.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/codex_reset.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/codex_session_list.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/compression_diagnostics.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/git_explore.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/mcp_panel.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/model_form.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/model_manager.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/model_picker.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/provider_catalog.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/safety_panel.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/session_list.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/subagent_config.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/theme_designer.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/dialogs/theme_picker.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/drawer.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/formatters.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/git_explore/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/git_explore/engine.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/git_explore/provider.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/git_explore/unified.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/image_preview.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/image_render.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/image_viewer.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/math_image.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/mermaid_image.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/rendering.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/selectable_static.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/selectable_text.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/sink.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/status_controller.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/steer_controller.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/steer_widget.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/stream.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/stream_events.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/stream_runtime.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/textual_lifecycle.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/textual_stream_sink.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/theme.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/theme_controller.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/timeline.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/tool_blocks.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/topbar/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/topbar/components/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/topbar/components/branch.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/topbar/components/title.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/topbar/components/tool_output.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/topbar/components/usage.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/topbar/components/workspace.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/topbar/context.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/topbar/core.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/topbar/git_changes_popover.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/topbar/git_chrome.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/topbar/tool_output_popover.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/topbar/widget.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/transcript/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/transcript/controller.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/transcript/factory.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/transcript/state.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/transcript_blocks.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/tui_launch.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/tui_styles.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/turn/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/turn/controller.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/turn/event_bridge.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/turn/event_renderer.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/turn/persistence.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/turn/request.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/turn_rail.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/turn_rail_widgets.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/user_turn.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/user_turn_block.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/ui/welcome.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/src/synapse/web.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/synapse.cmd +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/__init__.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/fixtures/acp/initialize.jsonl +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/fixtures/codex_rollouts/duplicate_response_item.jsonl +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/fixtures/codex_rollouts/incomplete_and_aborted.jsonl +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/fixtures/codex_rollouts/legacy_compaction.jsonl +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/fixtures/codex_rollouts/normal_completed.jsonl +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/fixtures/codex_rollouts/replacement_history.jsonl +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/fixtures/codex_rollouts/rollback.jsonl +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/fixtures/codex_rollouts/unsupported_replacement.jsonl +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/fixtures/sample_repo/calculator.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/fixtures/sample_repo/test_calculator.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/fixtures/tool_output_eval.json +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_acp_p0_baseline.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_acp_p1_core.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_acp_p1_transport.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_acp_p2_content.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_acp_p2_events.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_acp_p2_updates.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_acp_p3_agent.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_acp_p3_permissions.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_acp_p4_history.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_acp_p4_lifecycle.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_acp_p5_mcp.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_acp_p6_client_services.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_acp_p8_compliance.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_agent_lifecycle.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_agent_turn_runtime.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_approval.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_async_checkpointer.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_bottombar_registry.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_cancel_repair.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_checkpoint_seed.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_chrome_controller.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_cli.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_cli_codex_import.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_clipboard.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_codex_config.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_codex_history.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_codex_import.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_codex_sessions.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_codex_sessions_windows.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_compact_tool_descriptions.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_context_compact.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_debug_capture_middleware.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_debug_inspector.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_describe_image.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_dialogs.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_entry.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_filesystem_patch_tool.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_filesystem_search_tools.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_git_changes_popover.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_git_chrome.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_git_explore.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_goal_live_tui.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_goals.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_heap_dump.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_herdr_integration.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_http_clients.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_image_render.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_image_viewer.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_input_history.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_iteration_abc.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_layered_config.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_math_image_render.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_mcp_schema.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_mermaid_image.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_mermaid_render.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_middleware_async.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_model_dialogs.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_model_providers.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_model_request_compression_middleware.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_model_retry.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_models_persist.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_multimodal.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_native_math_render.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_openai_compat_reasoning.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_openai_oauth.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_openai_oauth_middleware.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_openai_usage.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_openai_websocket.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_pathing.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_project_catalog.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_project_drawer.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_project_switch.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_prompts.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_runtime_hardening.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_runtime_manager.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_runtime_streaming.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_safety.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_search_index.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_session_prewarm.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_session_store.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_session_summary.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_slash_and_mcp.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_slash_complete.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_startup_defer.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_steer.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_steer_controller.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_stream_cancel.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_stream_semantic_fixtures.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_stream_ui.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_subagent_config_dialog.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_subagent_config_persist.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_subagent_status.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_subagents.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_textual_stream_sink.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_theme.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_theme_controller.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_timeline.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_tool_blocks.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_tool_ignore.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_tool_intent.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_tool_output.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_tool_output_eval.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_tool_output_slash.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_tool_output_usage_middleware.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_topbar_context_ratio.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_topbar_registry.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_transcript_controller.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_transcript_history.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_transcript_history_controller.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_tui_active_session_switcher.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_tui_codex_import.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_tui_paste.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_tui_selection.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_turn_controller.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_turn_event_renderer.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_turn_rail_minimap.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_turn_request.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_usage_restore.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_user_turn_style.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/test_welcome.py +0 -0
- {synapse_cli_agent-0.1.38 → synapse_cli_agent-0.1.40}/tests/tool_output_plugin_fixture.py +0 -0
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
| Path | Responsibility |
|
|
6
6
|
| --- | --- |
|
|
7
|
-
| `src/synapse/app/` | Agent assembly and `AGENTS.md` injection |
|
|
7
|
+
| `src/synapse/app/` | Agent assembly (composition root in `agent.py`, contracts in `agent_assembly.py`) and `AGENTS.md` injection |
|
|
8
|
+
| `src/synapse/acp/` | Official Agent Client Protocol (ACP) adapter: run Synapse as an ACP agent over stdio; session registry, permission coordinator, event bridge |
|
|
8
9
|
| `src/synapse/commands/` | Slash command parsing, completion, and results |
|
|
9
10
|
| `src/synapse/content/` | Prompts, skills, input history, multimodal content |
|
|
10
11
|
| `src/synapse/goals/` | Goal accounting, steering, and persistence |
|
|
@@ -29,7 +30,7 @@
|
|
|
29
30
|
|
|
30
31
|
## Architecture & compatibility
|
|
31
32
|
|
|
32
|
-
- `src/synapse/app/agent.py` is the assembly
|
|
33
|
+
- `src/synapse/app/agent.py` is the assembly composition root; the reusable assembly contracts (middleware build, typed resource wiring) live in `src/synapse/app/agent_assembly.py`. Keep domain algorithms in their own packages.
|
|
33
34
|
- New features belong in the matching domain package; cross-domain wiring goes in `app/` or an explicit runtime middleware.
|
|
34
35
|
- `src/synapse/config.py` is a compatibility re-export layer. Import from `synapse.settings` in new code; keep legacy import paths working.
|
|
35
36
|
- `__init__.py` exports are public API. Keep necessary re-exports when moving implementations.
|
|
@@ -8,6 +8,54 @@ All entries are written in English.
|
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
## v0.1.40
|
|
12
|
+
|
|
13
|
+
### New Features
|
|
14
|
+
|
|
15
|
+
- Native file tools read images, video, audio, and PDF files as base64 (10 MB cap); Python adapters convert framework image blocks to Chat Completions and Responses `input_image` blocks (including data URLs and detail).
|
|
16
|
+
- Native Rust OpenAI client supports proxy routing (HTTP/HTTPS/SOCKS4/SOCKS5) by building a proxied reqwest client when a proxy URL is configured; OAuth (Codex) profiles can use the native Responses transport; reqwest error source chains are flattened so connect/TLS/DNS causes are visible.
|
|
17
|
+
- Added an OpenAI Codex Responses OAuth transport.
|
|
18
|
+
- Added a `project-session-reader` skill for listing, searching, and reading a project's `.synapse` session database.
|
|
19
|
+
- Added a `stream_usage` control for Responses usage metadata.
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
- Reused native websocket connections across requests instead of opening new ones.
|
|
24
|
+
- Handled Codex websocket extension events.
|
|
25
|
+
- Reconciled transcript projection against the checkpoint watermark so projected history stays consistent with persisted state.
|
|
26
|
+
- Corrected Responses usage metadata.
|
|
27
|
+
- Prevented inflated tool-call token rates by excluding tool-call framing from rate accounting.
|
|
28
|
+
|
|
29
|
+
### Engineering
|
|
30
|
+
|
|
31
|
+
- Switched the `async-openai` dependency to a local git fork for the Responses-over-WebSocket feature.
|
|
32
|
+
- Added a Rust OpenAI build check script.
|
|
33
|
+
- Stabilized agent startup coverage tests.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## v0.1.39
|
|
38
|
+
|
|
39
|
+
### New Features
|
|
40
|
+
|
|
41
|
+
- Stamped session-affinity headers on model requests in both the Python runtime and the native Rust OpenAI client, for consistent session binding at upstream gateways.
|
|
42
|
+
- Added a `session-cache-analysis` skill for computing per-session prompt cache hit rates and diagnosing cache eviction.
|
|
43
|
+
|
|
44
|
+
### Bug Fixes
|
|
45
|
+
|
|
46
|
+
- Hashed tools by their OpenAI wire form instead of the raw `StructuredTool` dump, keeping `tools_hash`/`schema_hash` stable across agent rebuilds (previously embedded the function object's memory address).
|
|
47
|
+
- Inserted pasted text at the cursor position in the TUI prompt instead of appending.
|
|
48
|
+
- Persisted the model binding before agent rebuild and on exit.
|
|
49
|
+
- Loaded the debug inspector HTML via `importlib.resources` for frozen (PyInstaller) builds.
|
|
50
|
+
|
|
51
|
+
### Engineering
|
|
52
|
+
|
|
53
|
+
- Removed the tool-response truncation middleware and its settings.
|
|
54
|
+
- Deprecated the reversible compression middleware and reader.
|
|
55
|
+
- Kept the AGENTS.md repository-layout table in sync with the current tree.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
11
59
|
## v0.1.38
|
|
12
60
|
|
|
13
61
|
### New Features
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: synapse-cli-agent
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.40
|
|
4
4
|
Summary: Local coding agent built on LangChain Deep Agents (LocalShell, no sandbox)
|
|
5
5
|
Project-URL: Homepage, https://github.com/alex8224/synapse-agent
|
|
6
6
|
Project-URL: Repository, https://github.com/alex8224/synapse-agent
|
|
@@ -415,7 +415,6 @@ uv run synapse run "修复 calculator.sub 的 bug,使 tests 全部通过" -w t
|
|
|
415
415
|
| `AGENT_MCP_CONFIG` | - | MCP servers JSON |
|
|
416
416
|
| `CHECKPOINT_BACKEND` | `sqlite` | `sqlite` 或 `memory` |
|
|
417
417
|
| `AGENT_SESSION_PREWARM_ENABLED` | `false` | 恢复大上下文会话后在后台预热 provider 缓存(首次请求仍按输入 token 计费;详见 `docs/config.md`) |
|
|
418
|
-
| `AGENT_ENABLE_TOOL_RESPONSE_TRUNCATE` | `false` | 启用工具响应折叠(keep 窗口外的大工具输出压成摘要+引用,大上下文会话可省 20-30%;详见 `docs/config.md`) |
|
|
419
418
|
| `INHERIT_ENV` | `true` | shell 继承主机环境 |
|
|
420
419
|
| `VIRTUAL_MODE` | `true` | 文件路径虚拟根 |
|
|
421
420
|
| `AGENT_SHOW_REASONING_PLACEHOLDERS` | `true` | 是否显示网关未暴露推理文本时的占位思考节点;Codex 加密推理可设为 `false` 隐藏 |
|
|
@@ -467,7 +467,7 @@ load_settings(**overrides):
|
|
|
467
467
|
| 工作区 | workspace, shell_timeout(120s), max_output_bytes(100KB) | Path.cwd() |
|
|
468
468
|
| 安全 | require_approval(False), safety_profile("dev-autopass") | -- |
|
|
469
469
|
| 检查点 | checkpoint_backend("sqlite") | project/.synapse/ |
|
|
470
|
-
| 工具输出 | enable_tool_output_transform(
|
|
470
|
+
| 工具输出 | enable_tool_output_transform(False), threshold_bytes(512) | -- |
|
|
471
471
|
| 子代理 | enable_subagents(True) | -- |
|
|
472
472
|
| MCP | enable_mcp(True), mcp_eager(False) | -- |
|
|
473
473
|
| UI | theme("cursor-dark"), history_tail_turns(20) | -- |
|
|
@@ -77,13 +77,6 @@ Synapse 使用 **Pydantic Settings** 实现分层配置系统。
|
|
|
77
77
|
| `SESSION_SUMMARY_MAX_CHARS` | `600` | 本地会话摘要的最大字符数(含多轮条目,超出时从最旧条目开始裁剪) |
|
|
78
78
|
| `AGENT_HISTORY_TAIL_TURNS` | `20` | TUI 从轻量 transcript 投影初始读取/渲染的最近可见会话轮数;滚动到顶部后按 turn 游标加载更早历史,最多挂载 5 页 |
|
|
79
79
|
| `AGENT_SESSION_PREWARM_ENABLED` | `false` | 恢复大上下文会话后,在后台对该会话历史发起一次最小模型请求,让 provider 预填充并缓存历史前缀,用户第一条消息可命中缓存、大幅缩短首 token 等待。注意:预热本身会按输入 token 计费一次,仅在需要时开启 |
|
|
80
|
-
| `AGENT_ENABLE_TOOL_RESPONSE_TRUNCATE` | `false` | 启用工具响应裁剪:keep 窗口(默认最近 40K tokens)外的 `execute`/`read_file`/`search_files` 输出折叠为摘要,减小每轮请求体积(大上下文会话可省 20-30%)。请求层变换,不修改历史 |
|
|
81
|
-
| `AGENT_TOOL_RESPONSE_TRUNCATE_KEEP_TOKENS` | `40000` | 工具响应裁剪的 keep 窗口(token),窗口内消息不裁剪 |
|
|
82
|
-
| `AGENT_TOOL_RESPONSE_TRUNCATE_MAX_HEAD_CHARS` | `2000` | 关闭 fold 模式时,超长输出保留的头部字符数 |
|
|
83
|
-
| `AGENT_TOOL_RESPONSE_TRUNCATE_MAX_TAIL_CHARS` | `0` | 关闭 fold 模式时,超长输出额外保留的尾部字符数(>0 表示 head+tail) |
|
|
84
|
-
| `AGENT_TOOL_RESPONSE_TRUNCATE_FOLD_ENABLED` | `true` | fold 模式:窗口外输出一律折叠(有 `tool-output://` 引用的可经 `read_tool_result` 找回原文,无引用的保留头部锚点) |
|
|
85
|
-
| `AGENT_TOOL_RESPONSE_TRUNCATE_FOLD_HEAD_CHARS` | `300` | fold 模式下无引用输出保留的头部锚点字符数 |
|
|
86
|
-
| `AGENT_TOOL_RESPONSE_TRUNCATE_TOOLS` | `["execute","read_file","search_files"]` | 参与折叠/裁剪的工具名单(JSON 数组) |
|
|
87
80
|
|
|
88
81
|
### 长程目标(Goals)
|
|
89
82
|
|
|
@@ -250,7 +250,9 @@ py-agent/
|
|
|
250
250
|
│ └── design.md # 本方案
|
|
251
251
|
├── AGENTS.md # 项目级记忆/约定(给 agent 读)
|
|
252
252
|
├── skills/ # 可选 skills(渐进披露)
|
|
253
|
-
│
|
|
253
|
+
│ ├── session-crash-repair/
|
|
254
|
+
│ │ └── SKILL.md
|
|
255
|
+
│ └── session-cache-analysis/
|
|
254
256
|
│ └── SKILL.md
|
|
255
257
|
├── src/
|
|
256
258
|
│ └── coding_agent/
|
|
@@ -6,9 +6,11 @@ Skills 是 Synapse 的可扩展插件系统,位于项目 `skills/` 目录下
|
|
|
6
6
|
|
|
7
7
|
```
|
|
8
8
|
skills/
|
|
9
|
-
├──
|
|
9
|
+
├── session-cache-analysis/
|
|
10
10
|
│ └── SKILL.md
|
|
11
|
-
|
|
11
|
+
├── session-crash-repair/
|
|
12
|
+
│ └── SKILL.md
|
|
13
|
+
└── project-session-reader/
|
|
12
14
|
└── SKILL.md
|
|
13
15
|
```
|
|
14
16
|
|
|
@@ -18,16 +20,16 @@ skills/
|
|
|
18
20
|
|
|
19
21
|
```markdown
|
|
20
22
|
---
|
|
21
|
-
name:
|
|
22
|
-
description:
|
|
23
|
-
license:
|
|
24
|
-
compatibility: Requires
|
|
25
|
-
allowed_tools: execute,
|
|
23
|
+
name: session-cache-analysis
|
|
24
|
+
description: Analyze the prompt cache hit rate of a Synapse session (thread).
|
|
25
|
+
license: Apache-2.0
|
|
26
|
+
compatibility: Requires a synapse source checkout with uv and Python 3.12+.
|
|
27
|
+
allowed_tools: execute, read_file, write_file, search_files, find_files, search_session, read_session
|
|
26
28
|
---
|
|
27
29
|
|
|
28
|
-
#
|
|
30
|
+
# Session Cache Hit-Rate Analysis
|
|
29
31
|
|
|
30
|
-
##
|
|
32
|
+
## 数据来源
|
|
31
33
|
...
|
|
32
34
|
```
|
|
33
35
|
|
|
@@ -43,12 +45,13 @@ allowed_tools: execute, run_tests, read_file, write_file, edit_file
|
|
|
43
45
|
|
|
44
46
|
## 内置 Skills
|
|
45
47
|
|
|
46
|
-
Synapse
|
|
48
|
+
Synapse 自带三个 Skills:
|
|
47
49
|
|
|
48
50
|
| Skill | 说明 |
|
|
49
51
|
|---|---|
|
|
50
|
-
| `
|
|
51
|
-
| `
|
|
52
|
+
| `session-crash-repair` | 检测并修复异常退出后 checkpoint 不一致的会话(悬挂工具调用、挂起图任务、过期转录投影) |
|
|
53
|
+
| `session-cache-analysis` | 分析会话的 prompt 缓存命中率,区分增量 miss 与全量逐出并定位根因 |
|
|
54
|
+
| `project-session-reader` | 读取或搜索指定项目(workspace 目录)`.synapse/` 下的会话:列出、全文搜索、按 thread_id 读取并分页 |
|
|
52
55
|
|
|
53
56
|
## 如何编写自定义 Skill
|
|
54
57
|
|
|
@@ -18,7 +18,7 @@ All transforms are deterministic. Synapse uses a low-cost `512` byte prefilter,
|
|
|
18
18
|
|
|
19
19
|
```json
|
|
20
20
|
{
|
|
21
|
-
"enable_tool_output_transform":
|
|
21
|
+
"enable_tool_output_transform": false,
|
|
22
22
|
"tool_output_transform_threshold_bytes": 512,
|
|
23
23
|
"tool_output_disabled_types": ["code"],
|
|
24
24
|
"tool_output_transform_plugins": ["my_package.transforms:my_transformer"],
|
|
@@ -26,10 +26,12 @@ All transforms are deterministic. Synapse uses a low-cost `512` byte prefilter,
|
|
|
26
26
|
}
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
+
Tool-output transformation is **off by default** (`enable_tool_output_transform: false`); set it to `true` to enable.
|
|
30
|
+
|
|
29
31
|
Environment equivalents:
|
|
30
32
|
|
|
31
33
|
```text
|
|
32
|
-
AGENT_ENABLE_TOOL_OUTPUT_TRANSFORM=
|
|
34
|
+
AGENT_ENABLE_TOOL_OUTPUT_TRANSFORM=false
|
|
33
35
|
AGENT_TOOL_OUTPUT_TRANSFORM_THRESHOLD_BYTES=512
|
|
34
36
|
AGENT_TOOL_OUTPUT_DISABLED_TYPES=["code"]
|
|
35
37
|
AGENT_TOOL_OUTPUT_TRANSFORM_PLUGINS=["my_package.transforms:my_transformer"]
|
|
@@ -328,9 +328,9 @@ synapse-agent/ # 项目根目录
|
|
|
328
328
|
│ └── fixtures/ # 测试 fixtures
|
|
329
329
|
│
|
|
330
330
|
├── skills/ # Agent Skills
|
|
331
|
-
│ ├──
|
|
331
|
+
│ ├── session-crash-repair/ # 会话崩溃修复技能
|
|
332
332
|
│ │ └── SKILL.md # 技能定义文件
|
|
333
|
-
│ └──
|
|
333
|
+
│ └── session-cache-analysis/ # 会话缓存命中率分析技能
|
|
334
334
|
│ └── SKILL.md
|
|
335
335
|
│
|
|
336
336
|
├── docs/ # 文档
|
|
@@ -1073,20 +1073,20 @@ Skills 是给 Agent 的可加载"专业说明手册"。
|
|
|
1073
1073
|
### 10.1 Skill 文件格式
|
|
1074
1074
|
|
|
1075
1075
|
```markdown
|
|
1076
|
-
<!-- skills/
|
|
1076
|
+
<!-- skills/session-cache-analysis/SKILL.md -->
|
|
1077
1077
|
|
|
1078
1078
|
---
|
|
1079
|
-
name:
|
|
1080
|
-
description:
|
|
1081
|
-
license:
|
|
1082
|
-
allowed-tools: execute
|
|
1079
|
+
name: session-cache-analysis
|
|
1080
|
+
description: Analyze the prompt cache hit rate of a Synapse session (thread).
|
|
1081
|
+
license: Apache-2.0
|
|
1082
|
+
allowed-tools: execute read_file write_file search_files find_files
|
|
1083
1083
|
---
|
|
1084
1084
|
|
|
1085
|
-
#
|
|
1085
|
+
# Session cache hit-rate analysis
|
|
1086
1086
|
|
|
1087
|
-
##
|
|
1087
|
+
## Data source
|
|
1088
1088
|
Prefer:
|
|
1089
|
-
`
|
|
1089
|
+
`load_messages_from_sqlite_file(checkpoints.sqlite, thread_id)`
|
|
1090
1090
|
|
|
1091
1091
|
...
|
|
1092
1092
|
```
|
|
@@ -1114,8 +1114,8 @@ Agent 启动时会扫描 `skills/` 目录,将所有 Skill 的描述注入系
|
|
|
1114
1114
|
|
|
1115
1115
|
### 10.3 现有 Skills
|
|
1116
1116
|
|
|
1117
|
-
- **
|
|
1118
|
-
- **
|
|
1117
|
+
- **session-crash-repair**: 告诉 Agent 如何检测并修复异常退出后 checkpoint 不一致的会话
|
|
1118
|
+
- **session-cache-analysis**: 告诉 Agent 如何分析会话的 prompt 缓存命中率并定位逐出根因
|
|
1119
1119
|
|
|
1120
1120
|
### 10.4 如何创建新 Skill
|
|
1121
1121
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
## v0.1.40
|
|
2
|
+
|
|
3
|
+
### New Features
|
|
4
|
+
|
|
5
|
+
- Native file tools read images, video, audio, and PDF files as base64 (10 MB cap); Python adapters convert framework image blocks to Chat Completions and Responses `input_image` blocks (including data URLs and detail).
|
|
6
|
+
- Native Rust OpenAI client supports proxy routing (HTTP/HTTPS/SOCKS4/SOCKS5) by building a proxied reqwest client when a proxy URL is configured; OAuth (Codex) profiles can use the native Responses transport; reqwest error source chains are flattened so connect/TLS/DNS causes are visible.
|
|
7
|
+
- Added an OpenAI Codex Responses OAuth transport.
|
|
8
|
+
- Added a `project-session-reader` skill for listing, searching, and reading a project's `.synapse` session database.
|
|
9
|
+
- Added a `stream_usage` control for Responses usage metadata.
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
- Reused native websocket connections across requests instead of opening new ones.
|
|
14
|
+
- Handled Codex websocket extension events.
|
|
15
|
+
- Reconciled transcript projection against the checkpoint watermark so projected history stays consistent with persisted state.
|
|
16
|
+
- Corrected Responses usage metadata.
|
|
17
|
+
- Prevented inflated tool-call token rates by excluding tool-call framing from rate accounting.
|
|
18
|
+
|
|
19
|
+
### Engineering
|
|
20
|
+
|
|
21
|
+
- Switched the `async-openai` dependency to a local git fork for the Responses-over-WebSocket feature.
|
|
22
|
+
- Added a Rust OpenAI build check script.
|
|
23
|
+
- Stabilized agent startup coverage tests.
|
|
24
|
+
|
|
25
|
+
---
|