synapse-cli-agent 0.1.42__tar.gz → 0.1.44__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.42 → synapse_cli_agent-0.1.44}/.github/workflows/release.yml +10 -1
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/.gitignore +5 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/CHANGELOG.md +32 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/PKG-INFO +15 -1
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/README.md +14 -0
- synapse_cli_agent-0.1.44/bucket/synapse.json +29 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/pyproject.toml +1 -1
- synapse_cli_agent-0.1.44/release_body.md +18 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/commands/slash_complete.py +5 -6
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/backends.py +28 -3
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/chrome/controller.py +7 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/topbar/components/branch.py +24 -1
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/topbar/components/workspace.py +20 -1
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/topbar/core.py +243 -4
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/tui.py +4 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_backends.py +74 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_slash_complete.py +10 -1
- synapse_cli_agent-0.1.44/tests/test_startup_defer.py +73 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/uv.lock +1 -1
- synapse_cli_agent-0.1.42/release_body.md +0 -12
- synapse_cli_agent-0.1.42/tests/test_startup_defer.py +0 -40
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/.dockerignore +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/.github/workflows/ci.yml +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/.github/workflows/docs.yml +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/.github/workflows/native-compression-wheels.yml +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/.github/workflows/native-core-tool-wheels.yml +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/.python-version +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/.readthedocs.yaml +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/.zed/settings.json +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/AGENTS.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/Dockerfile.web +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/LICENSE +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/README.zh-CN.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/agent_upstream.txt +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/approval-behavior.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/assets/demo.gif +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/assets/synapse-logo.svg +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/assets/tui-preview.png +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/cli_upstream.txt +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/debug_compact.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/decode_screenshot.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/acp-adapter/capability-matrix.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/acp-adapter/decisions.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/acp-adapter/index.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/acp-adapter/phase-0-protocol-baseline.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/acp-adapter/phase-1-core-transport.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/acp-adapter/phase-2-prompt-semantics.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/acp-adapter/phase-3-permissions.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/acp-adapter/phase-4-session-lifecycle.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/acp-adapter/phase-5-session-mcp.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/acp-adapter/phase-6-client-services.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/acp-adapter/phase-7-advanced-capabilities.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/acp-adapter/phase-8-compliance.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/acp-adapter/progress.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/agent-development-guide.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/agent-runtime-decoupling/baseline-report.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/agent-runtime-decoupling/decisions.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/agent-runtime-decoupling/index.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/agent-runtime-decoupling/migration.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/agent-runtime-decoupling/phase-0-baseline.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/agent-runtime-decoupling/phase-1-streaming-core.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/agent-runtime-decoupling/phase-2-turn-runtime.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/agent-runtime-decoupling/phase-3-tui-cutover.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/agent-runtime-decoupling/phase-4-session-runtime.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/agent-runtime-decoupling/phase-5-multi-session.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/agent-runtime-decoupling/phase-6-project-runtime.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/agent-runtime-decoupling/phase-7-global-control-plane.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/agent-runtime-decoupling/phase-8-hardening.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/agent-runtime-decoupling/post-review-fix-plan.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/agent-runtime-decoupling/progress.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/architecture-flow.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/architecture.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/cli.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/codex-session-discovery-phase-1.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/codex-session-import-phase-2.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/config.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/design.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/docker-web.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/index.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/install.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/math-formulas-test.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/mcp.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/models.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/native-compression-core.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/native-core-tool.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/permissions.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/quickstart.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/sessions.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/skills.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/smith_output.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/subagents.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/tool-output-transform.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/tui-cursor-refactor.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/tutorial.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/docs/x-agent-development-guide.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/examples/mcp.example.json +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/examples/models.example.json +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/examples/settings.example.json +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/middleware_upstream.txt +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/mkdocs.yml +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-core-tool/Cargo.lock +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-core-tool/Cargo.toml +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-core-tool/LICENSE +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-core-tool/NOTICE +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-core-tool/README.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-core-tool/pyproject.toml +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-core-tool/python/synapse_core_tool/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-core-tool/src/file_access.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-core-tool/src/file_tools.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-core-tool/src/lib.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-core-tool/src/llm.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-core-tool/src/math_render.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-core-tool/src/search.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-core-tool/uv.lock +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/Cargo.lock +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/Cargo.toml +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/LICENSE +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/NOTICE +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/README.md +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/pyproject.toml +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/python/synapse_tool_compress_core/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/ccr.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/ccr_in_memory.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/mod.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/relevance/base.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/relevance/bm25.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/signals/keyword_detector.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/signals/line_importance.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/adaptive_sizer.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/anchor_selector.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/code_compressor.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/diff_compressor.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/log_compressor.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/search_compressor.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/analyzer.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/anchors.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/builder.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/classifier.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/classifier.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/compactor.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/formatter.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/ir.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/mod.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/walker.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/config.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/constraints.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/crusher.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/crushers.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/error_keywords.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/field_detect.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/hashing.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/mod.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/observer.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/orchestration.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/outliers.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/planning.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/statistics.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/stats_math.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/traits.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/types.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/rust/synapse-tool-compress-core/src/lib.rs +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/scripts/build_check_rust_openai.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/scripts/install.ps1 +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/scripts/release.ps1 +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/scripts/serve_web.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/slash_cmds_upstream.txt +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/__main__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/acp/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/acp/agent.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/acp/client_services.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/acp/content.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/acp/events.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/acp/lifecycle.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/acp/mcp.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/acp/permissions.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/acp/server.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/acp/sessions.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/acp/updates.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/app/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/app/agent.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/app/agent_assembly.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/app/agent_md.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/cli.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/commands/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/commands/compression.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/commands/goal.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/commands/helpers.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/commands/mcp.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/commands/model.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/commands/result.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/commands/sessions.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/commands/slash_cmds.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/commands/theme.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/config.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/content/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/content/input_history.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/content/multimodal.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/content/prompts.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/content/skills_catalog.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/entry.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/goals/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/goals/middleware.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/goals/model.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/goals/runtime.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/goals/steering.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/goals/store.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/goals/tools.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/checkpoint_seed.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/codex_config.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/codex_history.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/codex_import.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/codex_sessions.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/describe_image.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/herdr.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/http_clients.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/llm_openai_compat.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/llm_openai_websocket.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/mcp_client.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/openai_oauth.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/openai_oauth_middleware.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/openai_usage.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/turbo.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/integrations/vision_middleware.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/memory/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/memory/auto_recorder.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/memory/embedder.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/memory/long_term.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/models/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/models/config.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/models/helpers.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/models/persist.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/models/profile.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/models/providers.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/models/registry.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/models/rust_openai.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/models_registry.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/observability/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/observability/debug_inspector.html +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/observability/debug_server.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/observability/exit_trace.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/observability/heap_dump.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/observability/llm_debug.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/observability/startup_trace.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/planner/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/planner/task_planner.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/projects/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/projects/catalog.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/rag/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/rag/knowledge_base.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/agent_loop/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/agent_loop/model.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/agent_loop/request.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/agent_loop/turn.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/async_runtime.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/cancellation.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/context_compact.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/debug_capture_middleware.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/execute_capture.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/filesystem_tool_prompt_middleware.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/fs_permissions.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/harness.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/hitl.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/interaction_ledger.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/middleware.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/model_request_compression_middleware.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/pathing.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/projects/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/projects/identity.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/projects/runtime.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/safety.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/session_header_middleware.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/session_headers.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/session_prewarm.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/sessions/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/sessions/events.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/sessions/manager.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/sessions/persistence.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/sessions/ref.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/sessions/runtime.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/steer.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/streaming/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/streaming/accumulator.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/streaming/adapters.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/streaming/events.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/streaming/parser.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/streaming/protocol.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/streaming/runtime.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/streaming/stream_events.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/streaming/tool_model.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/subagent_config_persist.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/subagent_specs.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/subagents.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/timeline.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/token_rate.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/tool_ignore.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/tool_output_eval.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/tool_output_middleware.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/runtime/tool_output_usage_middleware.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/sessions/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/sessions/cancel_repair.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/sessions/search_index.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/sessions/store.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/sessions/summary.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/sessions/transcript.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/sessions/transcript_migration.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/sessions/transcript_projection.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/settings/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/settings/config_paths.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/settings/schema.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/subagents.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/tool_output/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/tool_output/detection.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/tool_output/metrics.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/tool_output/models.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/tool_output/pipeline.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/tool_output/repository.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/tool_output/transformers.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/tools/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/tools/describe_image.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/tools/filesystem_patch.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/tools/filesystem_search.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/tools/session_tools.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/agent_lifecycle.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/answer_divider.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/approval.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/bottombar/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/bottombar/components/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/bottombar/components/codex_usage.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/bottombar/components/fast.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/bottombar/components/goal.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/bottombar/components/key_hints.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/bottombar/components/mcp.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/bottombar/components/mode.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/bottombar/components/model.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/bottombar/components/thread.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/bottombar/components/turbo.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/bottombar/components/turn_stats.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/bottombar/context.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/bottombar/core.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/chrome/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/clipboard.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/active_session_switcher.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/base.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/codex_config_import.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/codex_reset.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/codex_session_list.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/compression_diagnostics.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/controller.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/git_explore.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/mcp_panel.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/model_form.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/model_manager.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/model_picker.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/provider_catalog.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/safety_panel.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/session_list.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/subagent_config.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/theme_designer.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/dialogs/theme_picker.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/drawer.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/formatters.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/git_explore/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/git_explore/engine.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/git_explore/provider.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/git_explore/unified.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/image_preview.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/image_render.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/image_viewer.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/math_image.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/mermaid_image.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/prompt_controller.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/rendering.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/selectable_static.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/selectable_text.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/sink.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/status_controller.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/steer_controller.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/steer_widget.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/stream.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/stream_events.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/stream_runtime.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/textual_lifecycle.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/textual_stream_sink.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/theme.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/theme_controller.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/timeline.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/tool_blocks.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/topbar/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/topbar/components/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/topbar/components/title.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/topbar/components/tool_output.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/topbar/components/usage.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/topbar/context.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/topbar/git_changes_popover.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/topbar/git_chrome.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/topbar/tool_output_popover.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/topbar/widget.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/transcript/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/transcript/controller.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/transcript/factory.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/transcript/history.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/transcript/state.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/transcript_blocks.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/tui_launch.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/tui_styles.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/turn/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/turn/controller.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/turn/event_bridge.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/turn/event_renderer.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/turn/persistence.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/turn/request.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/turn_rail.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/turn_rail_widgets.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/user_turn.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/user_turn_block.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/welcome.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/workspace.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/web.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/synapse.cmd +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/__init__.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/fixtures/acp/initialize.jsonl +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/fixtures/agent_stream/core_scenarios.json +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/fixtures/codex_rollouts/duplicate_response_item.jsonl +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/fixtures/codex_rollouts/incomplete_and_aborted.jsonl +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/fixtures/codex_rollouts/legacy_compaction.jsonl +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/fixtures/codex_rollouts/normal_completed.jsonl +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/fixtures/codex_rollouts/replacement_history.jsonl +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/fixtures/codex_rollouts/rollback.jsonl +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/fixtures/codex_rollouts/unsupported_replacement.jsonl +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/fixtures/sample_repo/calculator.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/fixtures/sample_repo/test_calculator.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/fixtures/tool_output_eval.json +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_acp_p0_baseline.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_acp_p1_core.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_acp_p1_transport.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_acp_p2_content.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_acp_p2_events.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_acp_p2_updates.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_acp_p3_agent.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_acp_p3_permissions.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_acp_p4_history.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_acp_p4_lifecycle.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_acp_p5_mcp.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_acp_p6_client_services.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_acp_p8_compliance.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_agent_factory.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_agent_lifecycle.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_agent_turn_runtime.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_approval.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_async_checkpointer.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_bottombar_registry.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_cancel_repair.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_capabilities.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_checkpoint_seed.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_chrome_controller.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_cli.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_cli_codex_import.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_clipboard.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_codex_config.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_codex_history.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_codex_import.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_codex_sessions.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_codex_sessions_windows.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_compact_tool_descriptions.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_config.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_context_compact.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_context_window.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_debug_capture_middleware.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_debug_inspector.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_describe_image.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_dialogs.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_entry.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_filesystem_patch_tool.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_filesystem_search_tools.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_git_changes_popover.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_git_chrome.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_git_explore.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_goal_live_tui.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_goals.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_heap_dump.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_herdr_integration.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_http_clients.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_image_render.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_image_viewer.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_input_history.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_iteration_abc.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_layered_config.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_markdown_image.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_math_image_render.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_mcp_schema.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_mermaid_image.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_mermaid_render.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_middleware_async.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_model_dialogs.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_model_providers.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_model_request_compression_middleware.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_model_retry.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_models_persist.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_multimodal.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_native_math_render.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_openai_compat_reasoning.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_openai_oauth.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_openai_oauth_middleware.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_openai_usage.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_openai_websocket.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_pathing.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_project_catalog.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_project_drawer.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_project_runtime.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_project_switch.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_prompt_controller.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_prompts.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_runtime_hardening.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_runtime_manager.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_runtime_streaming.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_rust_openai_model.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_safety.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_search_index.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_session_headers.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_session_persistence.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_session_prewarm.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_session_runtime.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_session_store.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_session_summary.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_slash_and_mcp.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_slash_effects.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_startup_trace.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_status_controller.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_steer.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_steer_controller.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_stream_cancel.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_stream_semantic_fixtures.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_stream_tool_items.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_stream_ui.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_subagent_config_dialog.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_subagent_config_persist.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_subagent_status.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_subagents.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_textual_stream_sink.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_theme.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_theme_controller.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_timeline.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_token_rate.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_tool_blocks.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_tool_ignore.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_tool_intent.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_tool_output.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_tool_output_eval.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_tool_output_slash.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_tool_output_usage_middleware.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_topbar_context_ratio.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_topbar_registry.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_transcript.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_transcript_controller.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_transcript_history.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_transcript_history_controller.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_transcript_migration.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_transcript_projection.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_tui_active_session_switcher.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_tui_codex_import.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_tui_paste.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_tui_selection.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_turn_controller.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_turn_event_renderer.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_turn_rail_minimap.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_turn_request.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_usage_restore.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_user_turn_style.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/test_welcome.py +0 -0
- {synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/tests/tool_output_plugin_fixture.py +0 -0
|
@@ -118,11 +118,20 @@ jobs:
|
|
|
118
118
|
if: runner.os != 'Windows'
|
|
119
119
|
run: chmod +x "dist/${{ matrix.binname }}"
|
|
120
120
|
|
|
121
|
+
- name: Generate SHA256 checksum
|
|
122
|
+
shell: pwsh
|
|
123
|
+
run: |
|
|
124
|
+
$hash = (Get-FileHash -Algorithm SHA256 -LiteralPath "dist/${{ matrix.binname }}").Hash.ToLower()
|
|
125
|
+
Set-Content -LiteralPath "dist/${{ matrix.binname }}.sha256" -Value $hash -NoNewline
|
|
126
|
+
Write-Host "sha256 for ${{ matrix.binname }}: $hash"
|
|
127
|
+
|
|
121
128
|
- name: Upload executable artifact
|
|
122
129
|
uses: actions/upload-artifact@v4
|
|
123
130
|
with:
|
|
124
131
|
name: ${{ matrix.artifact }}
|
|
125
|
-
path:
|
|
132
|
+
path: |
|
|
133
|
+
dist/${{ matrix.binname }}
|
|
134
|
+
dist/${{ matrix.binname }}.sha256
|
|
126
135
|
if-no-files-found: error
|
|
127
136
|
|
|
128
137
|
release:
|
|
@@ -8,6 +8,38 @@ All entries are written in English.
|
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
## v0.1.44
|
|
12
|
+
|
|
13
|
+
### New Features
|
|
14
|
+
|
|
15
|
+
- Centered the topbar title and elided topbar components by width.
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
- Slash path completion now stops once whitespace follows the active `@` token, avoiding spurious path suggestions mid-line.
|
|
20
|
+
- Reworked process-tree termination: on Windows the runtime falls back to `proc.kill()` when `taskkill` fails, and on Unix it kills the whole process group so descendants cannot survive. Commands are also detached from the TUI's controlling terminal (`start_new_session` on Unix, `CREATE_NO_WINDOW` on Windows) so non-interactive tools such as `ssh` cannot block on a hidden console.
|
|
21
|
+
- Re-probe git chrome after mount to retry transient probe failures.
|
|
22
|
+
|
|
23
|
+
### Engineering
|
|
24
|
+
|
|
25
|
+
- Ignored local scratch output files.
|
|
26
|
+
- Updated the Scoop manifest.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## v0.1.43
|
|
31
|
+
|
|
32
|
+
### New Features
|
|
33
|
+
|
|
34
|
+
- Added Scoop distribution support: a new `bucket/synapse.json` manifest (with `checkver`/`autoupdate`) and a single-file Windows executable let Windows users install and auto-update Synapse via Scoop (`scoop install synapse`).
|
|
35
|
+
|
|
36
|
+
### Engineering
|
|
37
|
+
|
|
38
|
+
- The release workflow now publishes a SHA-256 checksum (`<bin>.sha256`) alongside each platform executable, so Scoop's `autoupdate` can verify downloads without manual hash maintenance.
|
|
39
|
+
- Documented Scoop installation in the README.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
11
43
|
## v0.1.42
|
|
12
44
|
|
|
13
45
|
### 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.44
|
|
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
|
|
@@ -270,6 +270,20 @@ One command, no clone required:
|
|
|
270
270
|
uv tool install synapse-cli-agent
|
|
271
271
|
```
|
|
272
272
|
|
|
273
|
+
Windows users can also install via Scoop (single-file executable, auto-updated
|
|
274
|
+
through `checkver`): add the bucket, then install:
|
|
275
|
+
|
|
276
|
+
```powershell
|
|
277
|
+
scoop bucket add synapse https://github.com/alex8224/synapse-agent
|
|
278
|
+
scoop install synapse
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
Or install directly from the manifest URL:
|
|
282
|
+
|
|
283
|
+
```powershell
|
|
284
|
+
scoop install https://raw.githubusercontent.com/alex8224/synapse-agent/main/bucket/synapse.json
|
|
285
|
+
```
|
|
286
|
+
|
|
273
287
|
Then start the TUI from anywhere:
|
|
274
288
|
|
|
275
289
|
```bash
|
|
@@ -37,6 +37,20 @@ One command, no clone required:
|
|
|
37
37
|
uv tool install synapse-cli-agent
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
+
Windows users can also install via Scoop (single-file executable, auto-updated
|
|
41
|
+
through `checkver`): add the bucket, then install:
|
|
42
|
+
|
|
43
|
+
```powershell
|
|
44
|
+
scoop bucket add synapse https://github.com/alex8224/synapse-agent
|
|
45
|
+
scoop install synapse
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Or install directly from the manifest URL:
|
|
49
|
+
|
|
50
|
+
```powershell
|
|
51
|
+
scoop install https://raw.githubusercontent.com/alex8224/synapse-agent/main/bucket/synapse.json
|
|
52
|
+
```
|
|
53
|
+
|
|
40
54
|
Then start the TUI from anywhere:
|
|
41
55
|
|
|
42
56
|
```bash
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.1.43",
|
|
3
|
+
"description": "Local coding agent built on LangChain Deep Agents (LocalShell, no sandbox)",
|
|
4
|
+
"homepage": "https://github.com/alex8224/synapse-agent",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"bin": [
|
|
7
|
+
["synapse-windows-x64.exe", "synapse"]
|
|
8
|
+
],
|
|
9
|
+
"checkver": {
|
|
10
|
+
"github": "https://github.com/alex8224/synapse-agent"
|
|
11
|
+
},
|
|
12
|
+
"architecture": {
|
|
13
|
+
"64bit": {
|
|
14
|
+
"url": "https://github.com/alex8224/synapse-agent/releases/download/v0.1.43/synapse-windows-x64.exe",
|
|
15
|
+
"hash": "c1fcc815af508e1051440dd944dc735ce1102e98b71e4cea40f3cdd31bababd3"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"autoupdate": {
|
|
19
|
+
"architecture": {
|
|
20
|
+
"64bit": {
|
|
21
|
+
"url": "https://github.com/alex8224/synapse-agent/releases/download/v$version/synapse-windows-x64.exe",
|
|
22
|
+
"hash": {
|
|
23
|
+
"url": "$baseurl/synapse-windows-x64.exe.sha256",
|
|
24
|
+
"mode": "extract"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
## v0.1.44
|
|
2
|
+
|
|
3
|
+
### New Features
|
|
4
|
+
|
|
5
|
+
- Centered the topbar title and elided topbar components by width.
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- Slash path completion now stops once whitespace follows the active `@` token, avoiding spurious path suggestions mid-line.
|
|
10
|
+
- Reworked process-tree termination: on Windows the runtime falls back to `proc.kill()` when `taskkill` fails, and on Unix it kills the whole process group so descendants cannot survive. Commands are also detached from the TUI's controlling terminal (`start_new_session` on Unix, `CREATE_NO_WINDOW` on Windows) so non-interactive tools such as `ssh` cannot block on a hidden console.
|
|
11
|
+
- Re-probe git chrome after mount to retry transient probe failures.
|
|
12
|
+
|
|
13
|
+
### Engineering
|
|
14
|
+
|
|
15
|
+
- Ignored local scratch output files.
|
|
16
|
+
- Updated the Scoop manifest.
|
|
17
|
+
|
|
18
|
+
---
|
{synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/commands/slash_complete.py
RENAMED
|
@@ -583,17 +583,16 @@ def _find_at(value: str) -> tuple[int, str] | None:
|
|
|
583
583
|
"""Find the last ``@`` and extract the path token after it.
|
|
584
584
|
|
|
585
585
|
Returns ``(at_index, path_prefix)``, e.g. for ``"cat @src/main"``
|
|
586
|
-
returns ``(4, "src/main")``.
|
|
586
|
+
returns ``(4, "src/main")``. Returns ``None`` when there is no ``@`` or
|
|
587
|
+
whitespace after the active ``@`` token has ended path completion.
|
|
587
588
|
"""
|
|
588
589
|
idx = value.rfind("@")
|
|
589
590
|
if idx < 0:
|
|
590
591
|
return None
|
|
591
|
-
# Everything after @ until end or next whitespace.
|
|
592
592
|
rest = value[idx + 1 :]
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
return idx, token
|
|
593
|
+
if any(char.isspace() for char in rest):
|
|
594
|
+
return None
|
|
595
|
+
return idx, rest
|
|
597
596
|
|
|
598
597
|
|
|
599
598
|
def _at_path_prefix(token: str) -> str:
|
|
@@ -16,6 +16,7 @@ from __future__ import annotations
|
|
|
16
16
|
|
|
17
17
|
import os
|
|
18
18
|
import shutil
|
|
19
|
+
import signal
|
|
19
20
|
import subprocess
|
|
20
21
|
import sys
|
|
21
22
|
from pathlib import Path
|
|
@@ -121,20 +122,36 @@ def _kill_process_tree(proc: subprocess.Popen[Any] | None) -> None:
|
|
|
121
122
|
if pid is None:
|
|
122
123
|
return
|
|
123
124
|
if os.name == "nt":
|
|
125
|
+
taskkill_succeeded = False
|
|
124
126
|
try:
|
|
125
|
-
subprocess.run(
|
|
127
|
+
completed = subprocess.run(
|
|
126
128
|
["taskkill", "/T", "/F", "/PID", str(pid)],
|
|
129
|
+
stdin=subprocess.DEVNULL,
|
|
127
130
|
capture_output=True,
|
|
128
131
|
timeout=10,
|
|
129
132
|
check=False,
|
|
130
133
|
)
|
|
134
|
+
taskkill_succeeded = completed.returncode == 0
|
|
131
135
|
except Exception: # noqa: BLE001
|
|
132
136
|
pass
|
|
137
|
+
if not taskkill_succeeded:
|
|
138
|
+
try:
|
|
139
|
+
proc.kill()
|
|
140
|
+
except Exception: # noqa: BLE001
|
|
141
|
+
pass
|
|
133
142
|
else:
|
|
134
143
|
try:
|
|
135
|
-
|
|
136
|
-
|
|
144
|
+
# execute starts each command in a new session, whose process-group
|
|
145
|
+
# ID is the shell PID. Kill the group so descendants cannot survive
|
|
146
|
+
# while retaining stdout/stderr pipe handles.
|
|
147
|
+
os.killpg(pid, signal.SIGKILL)
|
|
148
|
+
except ProcessLookupError:
|
|
137
149
|
pass
|
|
150
|
+
except Exception: # noqa: BLE001
|
|
151
|
+
try:
|
|
152
|
+
proc.kill()
|
|
153
|
+
except Exception: # noqa: BLE001
|
|
154
|
+
pass
|
|
138
155
|
# Drain pipes with a short timeout so we don't hang forever if child
|
|
139
156
|
# processes still hold them open.
|
|
140
157
|
try:
|
|
@@ -426,6 +443,14 @@ class CodingLocalShellBackend(LocalShellBackend):
|
|
|
426
443
|
"env": self._env,
|
|
427
444
|
"cwd": str(self.cwd),
|
|
428
445
|
}
|
|
446
|
+
if os.name == "nt":
|
|
447
|
+
# execute is non-interactive. Do not let commands such as ssh attach
|
|
448
|
+
# to the TUI console and wait for credentials outside captured stdin.
|
|
449
|
+
run_kwargs["creationflags"] = subprocess.CREATE_NO_WINDOW
|
|
450
|
+
else:
|
|
451
|
+
# Detach from the TUI's controlling terminal. Programs that bypass
|
|
452
|
+
# stdin and open /dev/tty then fail instead of blocking invisibly.
|
|
453
|
+
run_kwargs["start_new_session"] = True
|
|
429
454
|
if executable:
|
|
430
455
|
run_kwargs["executable"] = executable
|
|
431
456
|
|
|
@@ -656,6 +656,12 @@ class ChromeController:
|
|
|
656
656
|
"min_width": 0,
|
|
657
657
|
"priority": 40,
|
|
658
658
|
"gap_after": gap,
|
|
659
|
+
# Fallback cap only: keep the left chrome (workspace + branch +
|
|
660
|
+
# diff stats like "6f +314 -13") fully visible for normal
|
|
661
|
+
# projects, and reserve room for the centered title on wide
|
|
662
|
+
# terminals. A very long branch/workspace elides via
|
|
663
|
+
# render_for_width only when it exceeds this fallback.
|
|
664
|
+
"max_width": 80,
|
|
659
665
|
},
|
|
660
666
|
"center": {
|
|
661
667
|
"flex": 1,
|
|
@@ -684,6 +690,7 @@ class ChromeController:
|
|
|
684
690
|
min_width=int(conf.get("min_width", 0)),
|
|
685
691
|
priority=int(conf.get("priority", 0)),
|
|
686
692
|
gap_after=int(conf.get("gap_after", 0)),
|
|
693
|
+
max_width=int(conf.get("max_width", 0)),
|
|
687
694
|
)
|
|
688
695
|
|
|
689
696
|
def install_default_bottombar(self) -> None:
|
{synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/topbar/components/branch.py
RENAMED
|
@@ -5,7 +5,12 @@ from __future__ import annotations
|
|
|
5
5
|
from rich.text import Text
|
|
6
6
|
|
|
7
7
|
from synapse.ui.topbar.context import TopBarContext
|
|
8
|
-
from synapse.ui.topbar.core import
|
|
8
|
+
from synapse.ui.topbar.core import (
|
|
9
|
+
TopBarRegion,
|
|
10
|
+
TopBarRegistry,
|
|
11
|
+
display_width,
|
|
12
|
+
truncate_to_width,
|
|
13
|
+
)
|
|
9
14
|
|
|
10
15
|
ID = "branch"
|
|
11
16
|
REGION = TopBarRegion.LEFT
|
|
@@ -31,6 +36,23 @@ def install(registry: TopBarRegistry, ctx: TopBarContext) -> None:
|
|
|
31
36
|
mark = (ctx.branch_mark or "").strip()
|
|
32
37
|
return f"{mark} {name}" if mark else name
|
|
33
38
|
|
|
39
|
+
def render_for_width(width: int) -> str | Text:
|
|
40
|
+
"""Adapt to available width.
|
|
41
|
+
|
|
42
|
+
Keep the fully styled chrome (name + dirty + diff stats) when it fits;
|
|
43
|
+
otherwise truncate the *prefix* so the meaningful head (branch name and
|
|
44
|
+
the ``…f +n -n`` stats) survives and only the trailing ahead/behind
|
|
45
|
+
indicators are dropped.
|
|
46
|
+
"""
|
|
47
|
+
raw = ctx.branch()
|
|
48
|
+
plain = raw.plain if isinstance(raw, Text) else str(raw or "")
|
|
49
|
+
max_w = max(0, int(width))
|
|
50
|
+
if not plain:
|
|
51
|
+
return raw if isinstance(raw, Text) else ""
|
|
52
|
+
if display_width(plain) <= max_w:
|
|
53
|
+
return raw
|
|
54
|
+
return truncate_to_width(plain, max_w)
|
|
55
|
+
|
|
34
56
|
registry.register_fn(
|
|
35
57
|
ID,
|
|
36
58
|
render,
|
|
@@ -38,4 +60,5 @@ def install(registry: TopBarRegistry, ctx: TopBarContext) -> None:
|
|
|
38
60
|
order=ORDER,
|
|
39
61
|
priority=PRIORITY,
|
|
40
62
|
min_width=MIN_WIDTH,
|
|
63
|
+
render_for_width=render_for_width,
|
|
41
64
|
)
|
{synapse_cli_agent-0.1.42 → synapse_cli_agent-0.1.44}/src/synapse/ui/topbar/components/workspace.py
RENAMED
|
@@ -3,7 +3,12 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
from synapse.ui.topbar.context import TopBarContext
|
|
6
|
-
from synapse.ui.topbar.core import
|
|
6
|
+
from synapse.ui.topbar.core import (
|
|
7
|
+
TopBarRegion,
|
|
8
|
+
TopBarRegistry,
|
|
9
|
+
_elide_tail,
|
|
10
|
+
display_width,
|
|
11
|
+
)
|
|
7
12
|
|
|
8
13
|
ID = "workspace"
|
|
9
14
|
REGION = TopBarRegion.LEFT
|
|
@@ -22,6 +27,19 @@ def install(registry: TopBarRegistry, ctx: TopBarContext) -> None:
|
|
|
22
27
|
mark = (ctx.workspace_mark or "").strip()
|
|
23
28
|
return f"{mark} {label}" if mark else label
|
|
24
29
|
|
|
30
|
+
def render_for_width(width: int) -> str:
|
|
31
|
+
"""Adapt to available width: keep the full label when it fits, otherwise
|
|
32
|
+
elide to the trailing (meaningful) path segment."""
|
|
33
|
+
label = (ctx.workspace() or "").strip()
|
|
34
|
+
if not label:
|
|
35
|
+
return ""
|
|
36
|
+
mark = (ctx.workspace_mark or "").strip()
|
|
37
|
+
head = f"{mark} {label}" if mark else label
|
|
38
|
+
max_w = max(0, int(width))
|
|
39
|
+
if display_width(head) <= max_w:
|
|
40
|
+
return head
|
|
41
|
+
return _elide_tail(head, max_w)
|
|
42
|
+
|
|
25
43
|
registry.register_fn(
|
|
26
44
|
ID,
|
|
27
45
|
render,
|
|
@@ -29,4 +47,5 @@ def install(registry: TopBarRegistry, ctx: TopBarContext) -> None:
|
|
|
29
47
|
order=ORDER,
|
|
30
48
|
priority=PRIORITY,
|
|
31
49
|
min_width=MIN_WIDTH,
|
|
50
|
+
render_for_width=render_for_width,
|
|
32
51
|
)
|