synapse-cli-agent 0.1.34__tar.gz → 0.1.35__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.34 → synapse_cli_agent-0.1.35}/CHANGELOG.md +23 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/PKG-INFO +2 -1
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/README.md +1 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/models.md +49 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/pyproject.toml +10 -1
- synapse_cli_agent-0.1.35/release_body.md +22 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/content/multimodal.py +70 -17
- synapse_cli_agent-0.1.35/src/synapse/integrations/codex_config.py +505 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/models/config.py +2 -0
- synapse_cli_agent-0.1.35/src/synapse/models/persist.py +281 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/models/profile.py +7 -0
- synapse_cli_agent-0.1.35/src/synapse/models/providers.py +82 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/models/registry.py +18 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/agent_loop/model.py +1 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/agent_loop/turn.py +1 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/debug_capture_middleware.py +6 -2
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/middleware.py +35 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/streaming/parser.py +23 -3
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/streaming/stream_events.py +1 -0
- synapse_cli_agent-0.1.35/src/synapse/runtime/token_rate.py +177 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/bottombar/components/__init__.py +5 -0
- synapse_cli_agent-0.1.35/src/synapse/ui/bottombar/components/turn_stats.py +33 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/bottombar/context.py +2 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/chrome/controller.py +77 -12
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/dialogs/__init__.py +8 -0
- synapse_cli_agent-0.1.35/src/synapse/ui/dialogs/codex_config_import.py +203 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/dialogs/controller.py +158 -0
- synapse_cli_agent-0.1.35/src/synapse/ui/dialogs/model_form.py +397 -0
- synapse_cli_agent-0.1.35/src/synapse/ui/dialogs/model_manager.py +166 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/dialogs/model_picker.py +17 -2
- synapse_cli_agent-0.1.35/src/synapse/ui/dialogs/provider_catalog.py +58 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/rendering.py +14 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/topbar/components/__init__.py +2 -3
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/transcript/history.py +3 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/tui.py +5 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/turn/controller.py +5 -1
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_bottombar_registry.py +23 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_chrome_controller.py +180 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_clipboard.py +67 -0
- synapse_cli_agent-0.1.35/tests/test_codex_config.py +149 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_debug_capture_middleware.py +43 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_mermaid_image.py +13 -0
- synapse_cli_agent-0.1.35/tests/test_model_dialogs.py +147 -0
- synapse_cli_agent-0.1.35/tests/test_model_providers.py +37 -0
- synapse_cli_agent-0.1.35/tests/test_models_persist.py +132 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_stream_tool_items.py +1 -1
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_token_rate.py +36 -9
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_topbar_registry.py +27 -7
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/uv.lock +1 -1
- synapse_cli_agent-0.1.34/agent-studio-prototype/favicon.svg +0 -5
- synapse_cli_agent-0.1.34/agent-studio-prototype/index.html +0 -75
- synapse_cli_agent-0.1.34/agent-studio-prototype/script.js +0 -119
- synapse_cli_agent-0.1.34/agent-studio-prototype/styles.css +0 -8
- synapse_cli_agent-0.1.34/release_body.md +0 -13
- synapse_cli_agent-0.1.34/src/synapse/runtime/token_rate.py +0 -124
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/.dockerignore +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/.github/workflows/ci.yml +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/.github/workflows/docs.yml +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/.github/workflows/native-compression-wheels.yml +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/.github/workflows/native-core-tool-wheels.yml +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/.github/workflows/release.yml +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/.gitignore +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/.python-version +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/.readthedocs.yaml +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/.zed/settings.json +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/AGENTS.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/Dockerfile.web +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/LICENSE +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/README.zh-CN.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/agent_upstream.txt +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/assets/demo.gif +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/assets/synapse-logo.svg +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/assets/tui-preview.png +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/cli_upstream.txt +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/debug_compact.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/decode_screenshot.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/acp-adapter/capability-matrix.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/acp-adapter/decisions.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/acp-adapter/index.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/acp-adapter/phase-0-protocol-baseline.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/acp-adapter/phase-1-core-transport.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/acp-adapter/phase-2-prompt-semantics.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/acp-adapter/phase-3-permissions.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/acp-adapter/phase-4-session-lifecycle.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/acp-adapter/phase-5-session-mcp.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/acp-adapter/phase-6-client-services.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/acp-adapter/phase-7-advanced-capabilities.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/acp-adapter/phase-8-compliance.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/acp-adapter/progress.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/agent-development-guide.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/agent-runtime-decoupling/baseline-report.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/agent-runtime-decoupling/decisions.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/agent-runtime-decoupling/index.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/agent-runtime-decoupling/migration.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/agent-runtime-decoupling/phase-0-baseline.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/agent-runtime-decoupling/phase-1-streaming-core.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/agent-runtime-decoupling/phase-2-turn-runtime.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/agent-runtime-decoupling/phase-3-tui-cutover.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/agent-runtime-decoupling/phase-4-session-runtime.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/agent-runtime-decoupling/phase-5-multi-session.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/agent-runtime-decoupling/phase-6-project-runtime.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/agent-runtime-decoupling/phase-7-global-control-plane.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/agent-runtime-decoupling/phase-8-hardening.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/agent-runtime-decoupling/post-review-fix-plan.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/agent-runtime-decoupling/progress.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/architecture-flow.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/architecture.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/cli.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/codex-session-discovery-phase-1.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/codex-session-import-phase-2.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/config.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/design.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/docker-web.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/index.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/install.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/math-formulas-test.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/mcp.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/native-compression-core.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/native-core-tool.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/permissions.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/quickstart.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/sessions.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/skills.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/smith_output.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/subagents.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/tool-output-transform.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/tui-cursor-refactor.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/tutorial.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/docs/x-agent-development-guide.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/examples/mcp.example.json +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/examples/models.example.json +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/examples/settings.example.json +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/middleware_upstream.txt +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/mkdocs.yml +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-core-tool/Cargo.lock +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-core-tool/Cargo.toml +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-core-tool/LICENSE +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-core-tool/NOTICE +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-core-tool/README.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-core-tool/pyproject.toml +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-core-tool/python/synapse_core_tool/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-core-tool/src/file_access.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-core-tool/src/file_tools.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-core-tool/src/lib.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-core-tool/src/math_render.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-core-tool/src/search.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-core-tool/uv.lock +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/Cargo.lock +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/Cargo.toml +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/LICENSE +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/NOTICE +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/README.md +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/pyproject.toml +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/python/synapse_tool_compress_core/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/ccr.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/ccr_in_memory.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/mod.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/relevance/base.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/relevance/bm25.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/signals/keyword_detector.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/signals/line_importance.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/adaptive_sizer.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/anchor_selector.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/code_compressor.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/diff_compressor.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/log_compressor.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/search_compressor.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/analyzer.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/anchors.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/builder.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/classifier.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/classifier.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/compactor.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/formatter.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/ir.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/mod.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/walker.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/config.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/constraints.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/crusher.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/crushers.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/error_keywords.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/field_detect.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/hashing.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/mod.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/observer.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/orchestration.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/outliers.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/planning.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/statistics.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/stats_math.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/traits.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/types.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/rust/synapse-tool-compress-core/src/lib.rs +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/scripts/install.ps1 +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/scripts/release.ps1 +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/scripts/serve_web.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/slash_cmds_upstream.txt +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/__main__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/acp/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/acp/agent.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/acp/client_services.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/acp/content.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/acp/events.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/acp/lifecycle.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/acp/mcp.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/acp/permissions.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/acp/server.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/acp/sessions.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/acp/updates.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/app/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/app/agent.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/app/agent_assembly.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/app/agent_md.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/cli.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/commands/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/commands/compression.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/commands/goal.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/commands/helpers.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/commands/mcp.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/commands/model.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/commands/result.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/commands/sessions.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/commands/slash_cmds.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/commands/slash_complete.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/commands/theme.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/config.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/content/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/content/input_history.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/content/prompts.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/content/skills_catalog.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/entry.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/goals/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/goals/middleware.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/goals/model.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/goals/runtime.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/goals/steering.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/goals/store.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/goals/tools.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/integrations/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/integrations/checkpoint_seed.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/integrations/codex_history.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/integrations/codex_import.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/integrations/codex_sessions.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/integrations/describe_image.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/integrations/herdr.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/integrations/http_clients.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/integrations/llm_openai_compat.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/integrations/llm_openai_websocket.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/integrations/mcp_client.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/integrations/openai_oauth.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/integrations/openai_oauth_middleware.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/integrations/openai_usage.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/integrations/vision_middleware.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/memory/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/memory/auto_recorder.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/memory/embedder.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/memory/long_term.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/models/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/models/helpers.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/models_registry.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/observability/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/observability/debug_inspector.html +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/observability/debug_server.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/observability/exit_trace.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/observability/heap_dump.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/observability/llm_debug.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/observability/startup_trace.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/planner/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/planner/task_planner.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/projects/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/projects/catalog.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/rag/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/rag/knowledge_base.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/agent_loop/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/agent_loop/request.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/async_runtime.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/backends.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/cancellation.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/context_compact.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/execute_capture.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/filesystem_tool_prompt_middleware.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/fs_permissions.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/harness.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/hitl.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/interaction_ledger.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/model_request_compression_middleware.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/pathing.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/projects/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/projects/identity.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/projects/runtime.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/safety.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/session_prewarm.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/sessions/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/sessions/events.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/sessions/manager.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/sessions/persistence.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/sessions/ref.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/sessions/runtime.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/steer.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/streaming/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/streaming/accumulator.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/streaming/adapters.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/streaming/events.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/streaming/protocol.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/streaming/runtime.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/streaming/tool_model.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/subagent_config_persist.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/subagent_specs.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/subagents.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/timeline.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/tool_ignore.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/tool_output_eval.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/tool_output_middleware.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/tool_output_usage_middleware.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/runtime/tool_response_truncate_middleware.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/sessions/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/sessions/cancel_repair.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/sessions/search_index.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/sessions/store.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/sessions/summary.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/sessions/transcript.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/sessions/transcript_migration.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/sessions/transcript_projection.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/settings/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/settings/config_paths.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/settings/schema.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/subagents.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/tool_output/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/tool_output/detection.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/tool_output/metrics.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/tool_output/models.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/tool_output/pipeline.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/tool_output/repository.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/tool_output/transformers.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/tools/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/tools/describe_image.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/tools/filesystem_patch.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/tools/filesystem_search.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/tools/session_tools.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/agent_lifecycle.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/answer_divider.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/bottombar/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/bottombar/components/codex_usage.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/bottombar/components/fast.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/bottombar/components/goal.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/bottombar/components/key_hints.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/bottombar/components/mcp.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/bottombar/components/mode.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/bottombar/components/model.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/bottombar/components/thread.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/bottombar/core.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/chrome/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/clipboard.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/dialogs/active_session_switcher.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/dialogs/base.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/dialogs/codex_reset.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/dialogs/codex_session_list.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/dialogs/compression_diagnostics.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/dialogs/git_explore.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/dialogs/mcp_panel.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/dialogs/safety_panel.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/dialogs/session_list.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/dialogs/subagent_config.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/dialogs/theme_designer.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/dialogs/theme_picker.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/drawer.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/formatters.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/git_explore/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/git_explore/engine.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/git_explore/provider.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/git_explore/unified.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/image_preview.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/image_render.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/image_viewer.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/math_image.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/mermaid_image.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/prompt_controller.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/selectable_static.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/selectable_text.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/sink.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/status_controller.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/steer_controller.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/steer_widget.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/stream.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/stream_events.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/stream_runtime.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/textual_lifecycle.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/textual_stream_sink.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/theme.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/theme_controller.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/timeline.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/tool_blocks.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/topbar/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/topbar/components/branch.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/topbar/components/title.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/topbar/components/tool_output.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/topbar/components/usage.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/topbar/components/workspace.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/topbar/context.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/topbar/core.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/topbar/git_changes_popover.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/topbar/git_chrome.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/topbar/tool_output_popover.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/topbar/widget.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/transcript/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/transcript/controller.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/transcript/factory.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/transcript/state.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/transcript_blocks.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/tui_launch.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/tui_styles.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/turn/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/turn/event_bridge.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/turn/event_renderer.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/turn/persistence.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/turn/request.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/turn_rail.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/turn_rail_widgets.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/user_turn.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/user_turn_block.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/ui/welcome.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/src/synapse/web.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/synapse.cmd +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/__init__.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/fixtures/acp/initialize.jsonl +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/fixtures/agent_stream/core_scenarios.json +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/fixtures/codex_rollouts/duplicate_response_item.jsonl +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/fixtures/codex_rollouts/incomplete_and_aborted.jsonl +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/fixtures/codex_rollouts/legacy_compaction.jsonl +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/fixtures/codex_rollouts/normal_completed.jsonl +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/fixtures/codex_rollouts/replacement_history.jsonl +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/fixtures/codex_rollouts/rollback.jsonl +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/fixtures/codex_rollouts/unsupported_replacement.jsonl +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/fixtures/sample_repo/calculator.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/fixtures/sample_repo/test_calculator.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/fixtures/tool_output_eval.json +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_acp_p0_baseline.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_acp_p1_core.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_acp_p1_transport.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_acp_p2_content.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_acp_p2_events.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_acp_p2_updates.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_acp_p3_agent.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_acp_p3_permissions.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_acp_p4_history.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_acp_p4_lifecycle.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_acp_p5_mcp.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_acp_p6_client_services.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_acp_p8_compliance.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_agent_factory.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_agent_lifecycle.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_agent_turn_runtime.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_async_checkpointer.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_backends.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_cancel_repair.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_capabilities.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_checkpoint_seed.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_cli.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_cli_codex_import.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_codex_history.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_codex_import.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_codex_sessions.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_codex_sessions_windows.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_compact_tool_descriptions.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_config.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_context_compact.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_context_window.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_debug_inspector.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_describe_image.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_dialogs.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_entry.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_filesystem_patch_tool.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_filesystem_search_tools.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_git_changes_popover.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_git_chrome.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_git_explore.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_goal_live_tui.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_goals.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_heap_dump.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_herdr_integration.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_http_clients.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_image_render.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_image_viewer.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_input_history.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_iteration_abc.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_layered_config.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_math_image_render.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_mcp_schema.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_mermaid_render.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_middleware_async.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_model_request_compression_middleware.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_model_retry.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_multimodal.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_native_math_render.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_openai_compat_reasoning.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_openai_oauth.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_openai_oauth_middleware.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_openai_usage.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_openai_websocket.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_pathing.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_project_catalog.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_project_drawer.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_project_runtime.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_project_switch.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_prompt_controller.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_prompts.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_runtime_hardening.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_runtime_manager.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_runtime_streaming.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_safety.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_search_index.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_session_prewarm.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_session_runtime.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_session_store.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_session_summary.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_slash_and_mcp.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_slash_complete.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_slash_effects.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_startup_defer.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_startup_trace.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_steer.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_steer_controller.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_stream_cancel.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_stream_semantic_fixtures.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_stream_ui.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_subagent_config_dialog.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_subagent_config_persist.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_subagent_status.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_subagents.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_textual_stream_sink.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_theme.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_theme_controller.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_timeline.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_tool_blocks.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_tool_ignore.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_tool_intent.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_tool_output.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_tool_output_eval.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_tool_output_slash.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_tool_output_usage_middleware.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_tool_response_truncate_middleware.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_topbar_context_ratio.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_transcript.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_transcript_controller.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_transcript_history.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_transcript_history_controller.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_transcript_migration.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_transcript_projection.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_tui_active_session_switcher.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_tui_codex_import.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_tui_paste.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_tui_selection.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_turn_controller.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_turn_event_renderer.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_turn_rail_minimap.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_turn_request.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_usage_restore.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_user_turn_style.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/test_welcome.py +0 -0
- {synapse_cli_agent-0.1.34 → synapse_cli_agent-0.1.35}/tests/tool_output_plugin_fixture.py +0 -0
|
@@ -8,6 +8,29 @@ All entries are written in English.
|
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
## v0.1.35
|
|
12
|
+
|
|
13
|
+
### New Features
|
|
14
|
+
|
|
15
|
+
- Added a TUI model manager for add/edit/delete/set-default model profiles with instant hot reload (`/model manage`, `m` in the model picker).
|
|
16
|
+
- Added Codex config import: detects `~/.codex/config.toml` and `auth.json`, maps model_providers/profiles into `models.json` with an OpenAI-compatible fallback and conflict preview (`/model import-codex`).
|
|
17
|
+
- Added a supported provider catalog dialog (`/model providers`).
|
|
18
|
+
- Show turn number in bottombar turn-stats chrome.
|
|
19
|
+
- Added accurate token-rate/TTFT stats to bottombar turn-stats.
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
- Localized bottombar turn chrome to English.
|
|
24
|
+
- Rendered mermaid text on Linux via DejaVu Sans fallback.
|
|
25
|
+
- Added built-in osascript fallback for macOS clipboard image paste.
|
|
26
|
+
|
|
27
|
+
### Engineering
|
|
28
|
+
|
|
29
|
+
- Added `synapse.models.persist`, an atomic CRUD layer for layered `models.json`.
|
|
30
|
+
- `ModelProfile` gains `provider`/`wire_api` metadata fields with backward-compatible parsing.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
11
34
|
## v0.1.34
|
|
12
35
|
|
|
13
36
|
### Bug Fixes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: synapse-cli-agent
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.35
|
|
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
|
|
@@ -353,6 +353,7 @@ Type `/help` in the TUI for the full reference. The essentials:
|
|
|
353
353
|
| `/new` · `/switch <id>` · `/sessions` | Create, switch, and list sessions |
|
|
354
354
|
| `/export [md\|json]` | Export the transcript to a file |
|
|
355
355
|
| `/model <provider:model>` | Switch models at runtime |
|
|
356
|
+
| `/model manage` · `/model import-codex` · `/model providers` | Manage profiles, import Codex config, list providers |
|
|
356
357
|
| `/fast [on\|off\|status]` | Toggle the Codex Fast tier (OAuth profiles) |
|
|
357
358
|
| `/mcp list` · `/mcp reload` | Manage MCP servers |
|
|
358
359
|
| `/theme <name>` | Switch UI themes |
|
|
@@ -121,6 +121,7 @@ Type `/help` in the TUI for the full reference. The essentials:
|
|
|
121
121
|
| `/new` · `/switch <id>` · `/sessions` | Create, switch, and list sessions |
|
|
122
122
|
| `/export [md\|json]` | Export the transcript to a file |
|
|
123
123
|
| `/model <provider:model>` | Switch models at runtime |
|
|
124
|
+
| `/model manage` · `/model import-codex` · `/model providers` | Manage profiles, import Codex config, list providers |
|
|
124
125
|
| `/fast [on\|off\|status]` | Toggle the Codex Fast tier (OAuth profiles) |
|
|
125
126
|
| `/mcp list` · `/mcp reload` | Manage MCP servers |
|
|
126
127
|
| `/theme <name>` | Switch UI themes |
|
|
@@ -196,3 +196,52 @@ Synapse 支持任何 OpenAI 兼容的 API:
|
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
198
|
```
|
|
199
|
+
|
|
200
|
+
## TUI 模型管理与 Codex 导入
|
|
201
|
+
|
|
202
|
+
TUI 内可对模型 profile 增删改,并从 Codex CLI 配置导入,无需手写 JSON。
|
|
203
|
+
|
|
204
|
+
入口(对话内斜杠命令):
|
|
205
|
+
|
|
206
|
+
| 命令 | 作用 |
|
|
207
|
+
|---|---|
|
|
208
|
+
| `/model` | 选择模型与思考级别(对话框内 `m` 打开管理) |
|
|
209
|
+
| `/model manage` | 打开模型管理器 |
|
|
210
|
+
| `/model import-codex` | 检测并导入 Codex 配置 |
|
|
211
|
+
| `/model providers` | 查看支持的 Provider 目录 |
|
|
212
|
+
|
|
213
|
+
模型管理器中按键:`a` 新增、`e` 编辑、`d` 删除(连按两次确认)、`s` 设为默认、`i` 导入 Codex、`p` Provider 目录。新增/编辑表单字段包括别名、Provider、模型 ID、`api_key_env`、`base_url`、思考级别、上下文窗口、图片输入、自定义 headers / `model_kwargs` / `extra_body`(JSON)。保存或导入后立即生效并重建当前会话的模型。
|
|
214
|
+
|
|
215
|
+
### Provider 目录
|
|
216
|
+
|
|
217
|
+
开箱即用的 Provider 只有三种,其余一律走 OpenAI 兼容接口(`openai:` 前缀 + 自定义 `base_url`):
|
|
218
|
+
|
|
219
|
+
| Provider | 默认 base_url | 默认 env | 说明 |
|
|
220
|
+
|---|---|---|---|
|
|
221
|
+
| `openai` | `https://api.openai.com/v1` | `OPENAI_API_KEY` | 官方或任意 OpenAI 兼容网关 |
|
|
222
|
+
| `anthropic` | `https://api.anthropic.com` | `ANTHROPIC_API_KEY` | Anthropic 原生 |
|
|
223
|
+
| `openai_oauth` | ChatGPT Codex 后端 | —(OAuth) | `auth: openai_oauth`,需 `synapse auth openai login` |
|
|
224
|
+
|
|
225
|
+
### Codex 配置导入
|
|
226
|
+
|
|
227
|
+
导入器检测:
|
|
228
|
+
|
|
229
|
+
- 用户级 `~/.codex/config.toml`
|
|
230
|
+
- 项目级 `<workspace>/.codex/config.toml`(覆盖用户级同名键)
|
|
231
|
+
- `~/.codex/auth.json` 凭据状态(OAuth / 明文 API key)
|
|
232
|
+
|
|
233
|
+
映射规则:
|
|
234
|
+
|
|
235
|
+
| Codex 字段 | Synapse 字段 |
|
|
236
|
+
|---|---|
|
|
237
|
+
| `model_provider`(内置 openai/anthropic) | 保留原生前缀 |
|
|
238
|
+
| `model_provider`(自定义名) | `openai:` + `base_url`(OpenAI 兼容兜底) |
|
|
239
|
+
| `base_url` | `base_url`(显式配置即生效,含内置 provider) |
|
|
240
|
+
| `env_key`(字符串或数组) | `api_key_env`(取第一个已设置的环境变量) |
|
|
241
|
+
| `wire_api = "responses"` | 仅 OAuth 专用;API key 场景降级为 chat 并给出 warning |
|
|
242
|
+
| `http_headers` / `env_http_headers` | `headers` |
|
|
243
|
+
| `query_params` | `model_kwargs.default_query` |
|
|
244
|
+
| `model_reasoning_effort` | `reasoning_effort` |
|
|
245
|
+
| `[profiles.<name>]` | 生成同名 profile 别名 |
|
|
246
|
+
|
|
247
|
+
导入前会逐行预览(别名、`provider:model`、来源、目标文件),冲突别名可切换跳过/覆盖;确认后一次原子写入项目层 `.synapse/models.json`。凭据绝不拷贝进 `models.json`:OAuth 仅提示可用,明文 API key 只通过 `api_key_env` 引用环境变量。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "synapse-cli-agent"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.35"
|
|
4
4
|
description = "Local coding agent built on LangChain Deep Agents (LocalShell, no sandbox)"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { file = "LICENSE" }
|
|
@@ -62,6 +62,15 @@ build-backend = "hatchling.build"
|
|
|
62
62
|
[tool.hatch.build.targets.wheel]
|
|
63
63
|
packages = ["src/synapse"]
|
|
64
64
|
|
|
65
|
+
[tool.hatch.build.targets.sdist]
|
|
66
|
+
exclude = [
|
|
67
|
+
"/list",
|
|
68
|
+
"/skills",
|
|
69
|
+
"/agent-studio-prototype",
|
|
70
|
+
"/dashboard.html",
|
|
71
|
+
"/ward-board.html",
|
|
72
|
+
]
|
|
73
|
+
|
|
65
74
|
[tool.uv.sources]
|
|
66
75
|
synapse-core-tool = { path = "rust/synapse-core-tool" }
|
|
67
76
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
## v0.1.35
|
|
2
|
+
|
|
3
|
+
### New Features
|
|
4
|
+
|
|
5
|
+
- Added a TUI model manager for add/edit/delete/set-default model profiles with instant hot reload (`/model manage`, `m` in the model picker).
|
|
6
|
+
- Added Codex config import: detects `~/.codex/config.toml` and `auth.json`, maps model_providers/profiles into `models.json` with an OpenAI-compatible fallback and conflict preview (`/model import-codex`).
|
|
7
|
+
- Added a supported provider catalog dialog (`/model providers`).
|
|
8
|
+
- Show turn number in bottombar turn-stats chrome.
|
|
9
|
+
- Added accurate token-rate/TTFT stats to bottombar turn-stats.
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
- Localized bottombar turn chrome to English.
|
|
14
|
+
- Rendered mermaid text on Linux via DejaVu Sans fallback.
|
|
15
|
+
- Added built-in osascript fallback for macOS clipboard image paste.
|
|
16
|
+
|
|
17
|
+
### Engineering
|
|
18
|
+
|
|
19
|
+
- Added `synapse.models.persist`, an atomic CRUD layer for layered `models.json`.
|
|
20
|
+
- `ModelProfile` gains `provider`/`wire_api` metadata fields with backward-compatible parsing.
|
|
21
|
+
|
|
22
|
+
---
|
|
@@ -7,6 +7,7 @@ Each id maps to an in-memory (or file-backed) attachment held by the TUI compose
|
|
|
7
7
|
from __future__ import annotations
|
|
8
8
|
|
|
9
9
|
import base64
|
|
10
|
+
import binascii
|
|
10
11
|
import os
|
|
11
12
|
import re
|
|
12
13
|
import subprocess
|
|
@@ -459,7 +460,7 @@ def read_clipboard() -> ClipboardResult:
|
|
|
459
460
|
"""Best-effort clipboard read: prefer image, else text.
|
|
460
461
|
|
|
461
462
|
Order:
|
|
462
|
-
1. Platform image (Windows Forms / PIL / xclip / pngpaste)
|
|
463
|
+
1. Platform image (Windows Forms / PIL / xclip / pngpaste / osascript)
|
|
463
464
|
2. Platform text
|
|
464
465
|
3. If text is an existing image path -> treat as image file
|
|
465
466
|
"""
|
|
@@ -663,31 +664,83 @@ $img.Dispose()
|
|
|
663
664
|
return data, "image/png", "clipboard.png"
|
|
664
665
|
|
|
665
666
|
|
|
667
|
+
_OSASCRIPT_CLIP_TYPES = (
|
|
668
|
+
("PNGf", "image/png"),
|
|
669
|
+
("TIFF", "image/tiff"),
|
|
670
|
+
)
|
|
671
|
+
|
|
672
|
+
|
|
673
|
+
def _parse_osascript_data(out: bytes) -> bytes | None:
|
|
674
|
+
"""Decode AppleScript ``«data XXXX<hex>»`` output into raw bytes.
|
|
675
|
+
|
|
676
|
+
``osascript`` prints clipboard data as ``«data PNGf89504E47...»``. The
|
|
677
|
+
four characters after ``«data `` are the OSType; everything up to the
|
|
678
|
+
closing ``»`` is the hex payload.
|
|
679
|
+
"""
|
|
680
|
+
marker = "«data "
|
|
681
|
+
try:
|
|
682
|
+
text = out.decode("utf-8", errors="replace")
|
|
683
|
+
except Exception: # noqa: BLE001 - arbitrary process/terminal output
|
|
684
|
+
return None
|
|
685
|
+
idx = text.find(marker)
|
|
686
|
+
if idx < 0:
|
|
687
|
+
return None
|
|
688
|
+
payload = text[idx + len(marker):]
|
|
689
|
+
if len(payload) < 4:
|
|
690
|
+
return None
|
|
691
|
+
hexpart = payload[4:]
|
|
692
|
+
end = hexpart.find("»")
|
|
693
|
+
if end >= 0:
|
|
694
|
+
hexpart = hexpart[:end]
|
|
695
|
+
hexpart = "".join(ch for ch in hexpart if ch in "0123456789abcdefABCDEF")
|
|
696
|
+
if not hexpart or len(hexpart) % 2:
|
|
697
|
+
return None
|
|
698
|
+
try:
|
|
699
|
+
return binascii.unhexlify(hexpart)
|
|
700
|
+
except (binascii.Error, ValueError):
|
|
701
|
+
return None
|
|
702
|
+
|
|
703
|
+
|
|
666
704
|
def _mac_clipboard_image() -> tuple[bytes, str, str] | None:
|
|
705
|
+
"""Read a clipboard image on macOS.
|
|
706
|
+
|
|
707
|
+
Prefers ``pngpaste`` when installed; otherwise falls back to the built-in
|
|
708
|
+
``osascript`` clipboard coercion (PNG, then TIFF) so image paste works on a
|
|
709
|
+
stock macOS install without extra Homebrew packages.
|
|
710
|
+
"""
|
|
667
711
|
tmp = Path(tempfile.gettempdir()) / f"coding-agent-clip-{os.getpid()}.png"
|
|
668
712
|
try:
|
|
669
713
|
if tmp.is_file():
|
|
670
714
|
tmp.unlink()
|
|
671
715
|
except OSError:
|
|
672
716
|
pass
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
if out is None and not tmp.is_file():
|
|
676
|
-
return None
|
|
677
|
-
if not tmp.is_file():
|
|
678
|
-
return None
|
|
679
|
-
try:
|
|
680
|
-
data = tmp.read_bytes()
|
|
681
|
-
except OSError:
|
|
682
|
-
return None
|
|
683
|
-
finally:
|
|
717
|
+
_run_capture(["pngpaste", str(tmp)], timeout=5)
|
|
718
|
+
if tmp.is_file():
|
|
684
719
|
try:
|
|
685
|
-
tmp.
|
|
720
|
+
data = tmp.read_bytes()
|
|
686
721
|
except OSError:
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
722
|
+
data = b""
|
|
723
|
+
finally:
|
|
724
|
+
try:
|
|
725
|
+
tmp.unlink(missing_ok=True)
|
|
726
|
+
except OSError:
|
|
727
|
+
pass
|
|
728
|
+
if data:
|
|
729
|
+
return data, "image/png", "clipboard.png"
|
|
730
|
+
|
|
731
|
+
for type_code, mime in _OSASCRIPT_CLIP_TYPES:
|
|
732
|
+
out = _run_capture(
|
|
733
|
+
["osascript", "-e", f"get the clipboard as «class {type_code}»"],
|
|
734
|
+
timeout=6,
|
|
735
|
+
)
|
|
736
|
+
if not out:
|
|
737
|
+
continue
|
|
738
|
+
raw = _parse_osascript_data(out)
|
|
739
|
+
if not raw:
|
|
740
|
+
continue
|
|
741
|
+
data, mime_out = _normalize_image_bytes(raw, mime)
|
|
742
|
+
return data, mime_out, "clipboard" + MIME_TO_EXT.get(mime_out, ".png")
|
|
743
|
+
return None
|
|
691
744
|
|
|
692
745
|
|
|
693
746
|
def _linux_clipboard_image() -> tuple[bytes, str, str] | None:
|