synapse-cli-agent 0.1.14__tar.gz → 0.1.16__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.16/.github/workflows/native-search-wheels.yml +82 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/.gitignore +2 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/AGENTS.md +22 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/CHANGELOG.md +25 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/PKG-INFO +68 -2
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/README.md +66 -1
- synapse_cli_agent-0.1.16/docs/agent-development-guide.md +660 -0
- synapse_cli_agent-0.1.16/docs/architecture-flow.md +1165 -0
- synapse_cli_agent-0.1.16/docs/architecture.md +685 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/config.md +1 -1
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/models.md +70 -0
- synapse_cli_agent-0.1.16/docs/native-search-core.md +44 -0
- synapse_cli_agent-0.1.16/docs/smith_output.md +389 -0
- synapse_cli_agent-0.1.16/docs/tutorial.md +1879 -0
- synapse_cli_agent-0.1.16/docs/x-agent-development-guide.md +890 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/mkdocs.yml +1 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/pyproject.toml +2 -1
- synapse_cli_agent-0.1.16/release_body.md +14 -0
- synapse_cli_agent-0.1.16/rust/synapse-search-core/Cargo.lock +481 -0
- synapse_cli_agent-0.1.16/rust/synapse-search-core/Cargo.toml +21 -0
- synapse_cli_agent-0.1.16/rust/synapse-search-core/README.md +25 -0
- synapse_cli_agent-0.1.16/rust/synapse-search-core/pyproject.toml +20 -0
- synapse_cli_agent-0.1.16/rust/synapse-search-core/python/synapse_search_core/__init__.py +3 -0
- synapse_cli_agent-0.1.16/rust/synapse-search-core/src/lib.rs +287 -0
- synapse_cli_agent-0.1.16/rust/synapse-tool-compress-core/LICENSE +190 -0
- synapse_cli_agent-0.1.16/rust/synapse-tool-compress-core/NOTICE +43 -0
- synapse_cli_agent-0.1.16/src/synapse/app/agent.py +547 -0
- synapse_cli_agent-0.1.16/src/synapse/cli.py +968 -0
- synapse_cli_agent-0.1.16/src/synapse/commands/slash_cmds.py +526 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/content/prompts.py +0 -9
- synapse_cli_agent-0.1.16/src/synapse/integrations/llm_openai_websocket.py +270 -0
- synapse_cli_agent-0.1.16/src/synapse/integrations/openai_oauth.py +386 -0
- synapse_cli_agent-0.1.16/src/synapse/integrations/openai_oauth_middleware.py +65 -0
- synapse_cli_agent-0.1.16/src/synapse/memory/__init__.py +30 -0
- synapse_cli_agent-0.1.16/src/synapse/memory/auto_recorder.py +236 -0
- synapse_cli_agent-0.1.16/src/synapse/memory/embedder.py +168 -0
- synapse_cli_agent-0.1.16/src/synapse/memory/long_term.py +214 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/models/config.py +1 -1
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/models/profile.py +4 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/models/registry.py +109 -5
- synapse_cli_agent-0.1.16/src/synapse/parallel_subagents.py +1206 -0
- synapse_cli_agent-0.1.16/src/synapse/planner/__init__.py +9 -0
- synapse_cli_agent-0.1.16/src/synapse/planner/task_planner.py +147 -0
- synapse_cli_agent-0.1.16/src/synapse/rag/__init__.py +12 -0
- synapse_cli_agent-0.1.16/src/synapse/rag/knowledge_base.py +329 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/backends.py +70 -134
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/context_compact.py +32 -62
- synapse_cli_agent-0.1.16/src/synapse/runtime/middleware.py +883 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/subagents.py +11 -4
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/tool_output_middleware.py +1 -1
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/settings/schema.py +45 -1
- synapse_cli_agent-0.1.16/src/synapse/subagent_monitor.py +564 -0
- synapse_cli_agent-0.1.16/src/synapse/ui/answer_divider.py +78 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/components/__init__.py +4 -1
- synapse_cli_agent-0.1.16/src/synapse/ui/clipboard.py +72 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/__init__.py +2 -0
- synapse_cli_agent-0.1.16/src/synapse/ui/dialogs/subagent_monitor.py +311 -0
- synapse_cli_agent-0.1.16/src/synapse/ui/formatters.py +193 -0
- synapse_cli_agent-0.1.16/src/synapse/ui/selectable_static.py +235 -0
- synapse_cli_agent-0.1.16/src/synapse/ui/selectable_text.py +210 -0
- synapse_cli_agent-0.1.16/src/synapse/ui/textual_stream_sink.py +524 -0
- synapse_cli_agent-0.1.16/src/synapse/ui/tool_blocks.py +317 -0
- synapse_cli_agent-0.1.16/src/synapse/ui/transcript_blocks.py +244 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/tui.py +169 -1745
- synapse_cli_agent-0.1.16/src/synapse/ui/turn_rail_widgets.py +169 -0
- synapse_cli_agent-0.1.16/src/synapse/ui/user_turn_block.py +177 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_agent_factory.py +4 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_backends.py +31 -37
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_capabilities.py +25 -1
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_cli.py +8 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_context_compact.py +15 -3
- synapse_cli_agent-0.1.16/tests/test_context_window.py +208 -0
- synapse_cli_agent-0.1.16/tests/test_dag_parallel.py +931 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_dialogs.py +7 -1
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_iteration_abc.py +23 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_layered_config.py +30 -0
- synapse_cli_agent-0.1.16/tests/test_openai_oauth.py +105 -0
- synapse_cli_agent-0.1.16/tests/test_openai_oauth_middleware.py +52 -0
- synapse_cli_agent-0.1.16/tests/test_openai_websocket.py +436 -0
- synapse_cli_agent-0.1.16/tests/test_subagent_monitor_dialog.py +37 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/uv.lock +14 -1
- synapse_cli_agent-0.1.14/release_body.md +0 -7
- synapse_cli_agent-0.1.14/src/synapse/integrations/llm_openai_websocket.py +0 -187
- synapse_cli_agent-0.1.14/tests/test_context_window.py +0 -88
- synapse_cli_agent-0.1.14/tests/test_openai_websocket.py +0 -178
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/.github/workflows/ci.yml +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/.github/workflows/docs.yml +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/.github/workflows/native-compression-wheels.yml +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/.github/workflows/release.yml +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/.python-version +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/.readthedocs.yaml +0 -0
- /synapse_cli_agent-0.1.14/src/synapse/app/agent.py → /synapse_cli_agent-0.1.16/agent_upstream.txt +0 -0
- /synapse_cli_agent-0.1.14/src/synapse/cli.py → /synapse_cli_agent-0.1.16/cli_upstream.txt +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/cli.md +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/codex-session-discovery-phase-1.md +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/codex-session-import-phase-2.md +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/design.md +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/index.md +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/install.md +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/mcp.md +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/native-compression-core.md +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/permissions.md +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/quickstart.md +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/sessions.md +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/skills.md +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/tool-output-transform.md +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/tui-cursor-refactor.md +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/examples/mcp.example.json +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/examples/models.example.json +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/examples/settings.example.json +0 -0
- /synapse_cli_agent-0.1.14/src/synapse/runtime/middleware.py → /synapse_cli_agent-0.1.16/middleware_upstream.txt +0 -0
- {synapse_cli_agent-0.1.14/rust/synapse-tool-compress-core → synapse_cli_agent-0.1.16/rust/synapse-search-core}/LICENSE +0 -0
- {synapse_cli_agent-0.1.14/rust/synapse-tool-compress-core → synapse_cli_agent-0.1.16/rust/synapse-search-core}/NOTICE +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/Cargo.lock +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/Cargo.toml +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/README.md +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/pyproject.toml +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/python/synapse_tool_compress_core/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/ccr.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/ccr_in_memory.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/mod.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/relevance/base.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/relevance/bm25.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/signals/keyword_detector.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/signals/line_importance.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/adaptive_sizer.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/anchor_selector.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/code_compressor.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/diff_compressor.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/log_compressor.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/search_compressor.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/analyzer.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/anchors.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/builder.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/classifier.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/classifier.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/compactor.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/formatter.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/ir.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/mod.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/compaction/walker.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/config.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/constraints.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/crusher.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/crushers.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/error_keywords.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/field_detect.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/hashing.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/mod.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/observer.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/orchestration.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/outliers.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/planning.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/statistics.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/stats_math.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/traits.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/transforms/smart_crusher/types.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/lib.rs +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/scripts/install.ps1 +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/scripts/release.ps1 +0 -0
- /synapse_cli_agent-0.1.14/src/synapse/commands/slash_cmds.py → /synapse_cli_agent-0.1.16/slash_cmds_upstream.txt +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/__main__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/app/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/app/agent_md.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/compression.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/helpers.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/mcp.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/model.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/result.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/sessions.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/slash_complete.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/theme.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/config.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/content/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/content/input_history.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/content/multimodal.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/content/skills_catalog.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/checkpoint_seed.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/codex_history.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/codex_import.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/codex_sessions.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/describe_image.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/http_clients.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/llm_openai_compat.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/mcp_client.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/vision_middleware.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/models/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/models/helpers.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/models_registry.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/observability/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/observability/startup_trace.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/async_runtime.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/execute_capture.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/fs_permissions.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/harness.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/hitl.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/interaction_ledger.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/model_request_compression_middleware.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/pathing.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/safety.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/steer.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/tool_ignore.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/tool_output_eval.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/tool_output_usage_middleware.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/sessions/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/sessions/cancel_repair.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/sessions/session_recap.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/sessions/store.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/sessions/transcript.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/settings/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/settings/config_paths.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tool_output/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tool_output/detection.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tool_output/metrics.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tool_output/models.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tool_output/pipeline.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tool_output/repository.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tool_output/transformers.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tools/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tools/session_tools.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/components/key_hints.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/components/mcp.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/components/mode.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/components/model.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/components/thread.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/context.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/core.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/base.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/codex_session_list.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/compression_diagnostics.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/git_explore.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/mcp_panel.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/model_picker.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/safety_panel.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/session_list.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/theme_designer.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/theme_picker.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/git_explore/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/git_explore/engine.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/git_explore/provider.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/git_explore/unified.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/rendering.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/sink.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/steer_widget.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/stream.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/stream_events.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/stream_runtime.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/theme.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/timeline.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/components/__init__.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/components/branch.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/components/title.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/components/tool_output.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/components/usage.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/components/workspace.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/context.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/core.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/git_changes_popover.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/git_chrome.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/tool_output_popover.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/widget.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/turn_rail.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/user_turn.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/welcome.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/synapse.cmd +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/codex_rollouts/duplicate_response_item.jsonl +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/codex_rollouts/incomplete_and_aborted.jsonl +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/codex_rollouts/legacy_compaction.jsonl +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/codex_rollouts/normal_completed.jsonl +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/codex_rollouts/replacement_history.jsonl +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/codex_rollouts/rollback.jsonl +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/codex_rollouts/unsupported_replacement.jsonl +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/sample_repo/calculator.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/sample_repo/test_calculator.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/tool_output_eval.json +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_async_checkpointer.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_bottombar_registry.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_cancel_repair.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_checkpoint_seed.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_cli_codex_import.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_codex_history.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_codex_import.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_codex_sessions.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_codex_sessions_windows.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_compact_tool_descriptions.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_config.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_describe_image.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_git_changes_popover.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_git_chrome.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_git_explore.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_http_clients.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_input_history.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_mcp_schema.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_mermaid_render.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_middleware_async.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_model_request_compression_middleware.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_model_retry.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_multimodal.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_openai_compat_reasoning.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_pathing.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_safety.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_session_recap.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_slash_and_mcp.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_slash_complete.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_startup_defer.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_steer.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_stream_cancel.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_stream_tool_items.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_stream_ui.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_subagent_status.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_theme.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_timeline.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tool_ignore.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tool_intent.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tool_output.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tool_output_eval.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tool_output_slash.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tool_output_usage_middleware.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_topbar_context_ratio.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_topbar_registry.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_transcript.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tui_codex_import.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tui_selection.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tui_sink.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_turn_rail_minimap.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_usage_restore.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_user_turn_style.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_welcome.py +0 -0
- {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/tool_output_plugin_fixture.py +0 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
name: Native Search Wheels
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "synapse-search-core-v*"
|
|
7
|
+
pull_request:
|
|
8
|
+
paths:
|
|
9
|
+
- "rust/synapse-search-core/**"
|
|
10
|
+
- ".github/workflows/native-search-wheels.yml"
|
|
11
|
+
workflow_dispatch:
|
|
12
|
+
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
wheel:
|
|
18
|
+
name: ${{ matrix.target }}
|
|
19
|
+
runs-on: ${{ matrix.os }}
|
|
20
|
+
strategy:
|
|
21
|
+
fail-fast: false
|
|
22
|
+
matrix:
|
|
23
|
+
include:
|
|
24
|
+
- os: windows-latest
|
|
25
|
+
target: x86_64-pc-windows-msvc
|
|
26
|
+
# macOS wheels target Apple Silicon only; Intel macOS is unsupported.
|
|
27
|
+
- os: macos-latest
|
|
28
|
+
target: aarch64-apple-darwin
|
|
29
|
+
- os: ubuntu-latest
|
|
30
|
+
target: x86_64-unknown-linux-gnu
|
|
31
|
+
- os: ubuntu-24.04-arm
|
|
32
|
+
target: aarch64-unknown-linux-gnu
|
|
33
|
+
steps:
|
|
34
|
+
- uses: actions/checkout@v4
|
|
35
|
+
- uses: PyO3/maturin-action@v1
|
|
36
|
+
with:
|
|
37
|
+
command: build
|
|
38
|
+
working-directory: rust/synapse-search-core
|
|
39
|
+
target: ${{ matrix.target }}
|
|
40
|
+
args: --release --locked --compatibility pypi --out dist
|
|
41
|
+
manylinux: 2014
|
|
42
|
+
- uses: actions/upload-artifact@v4
|
|
43
|
+
with:
|
|
44
|
+
name: wheel-${{ matrix.target }}
|
|
45
|
+
path: rust/synapse-search-core/dist/*.whl
|
|
46
|
+
|
|
47
|
+
publish:
|
|
48
|
+
if: startsWith(github.ref, 'refs/tags/synapse-search-core-v')
|
|
49
|
+
needs: wheel
|
|
50
|
+
runs-on: ubuntu-latest
|
|
51
|
+
permissions:
|
|
52
|
+
contents: write
|
|
53
|
+
steps:
|
|
54
|
+
- uses: actions/download-artifact@v4
|
|
55
|
+
with:
|
|
56
|
+
pattern: wheel-*
|
|
57
|
+
merge-multiple: true
|
|
58
|
+
path: dist
|
|
59
|
+
- uses: softprops/action-gh-release@v2
|
|
60
|
+
with:
|
|
61
|
+
files: dist/*.whl
|
|
62
|
+
name: synapse-search-core ${{ github.ref_name }}
|
|
63
|
+
|
|
64
|
+
publish-pypi:
|
|
65
|
+
if: startsWith(github.ref, 'refs/tags/synapse-search-core-v')
|
|
66
|
+
needs: wheel
|
|
67
|
+
runs-on: ubuntu-latest
|
|
68
|
+
environment:
|
|
69
|
+
name: pypi
|
|
70
|
+
url: https://pypi.org/p/synapse-search-core
|
|
71
|
+
permissions:
|
|
72
|
+
id-token: write
|
|
73
|
+
steps:
|
|
74
|
+
- uses: actions/download-artifact@v4
|
|
75
|
+
with:
|
|
76
|
+
pattern: wheel-*
|
|
77
|
+
merge-multiple: true
|
|
78
|
+
path: dist
|
|
79
|
+
- name: Publish wheels to PyPI
|
|
80
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
81
|
+
with:
|
|
82
|
+
packages-dir: dist/
|
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Synapse 项目协作指南
|
|
2
2
|
|
|
3
|
+
## 用户信息
|
|
4
|
+
- 姓名:肖前程
|
|
5
|
+
- 年龄:35 岁
|
|
6
|
+
- 职业:Java 程序员
|
|
7
|
+
- 当前学习方向:Agent 应用开发
|
|
8
|
+
- 主语言背景:Java → 正在学习 Python/LangChain Agent 生态
|
|
9
|
+
|
|
10
|
+
## 用户信息
|
|
11
|
+
- 姓名:肖前程
|
|
12
|
+
- 年龄:35 岁
|
|
13
|
+
- 职业:Java 程序员
|
|
14
|
+
- 当前学习方向:Agent 应用开发
|
|
15
|
+
- 主语言背景:Java → 正在学习 Python/LangChain Agent 生态
|
|
16
|
+
|
|
17
|
+
## 约定
|
|
18
|
+
- Python 依赖使用 `uv` 管理。
|
|
19
|
+
- 优先小步、可测试的改动。
|
|
20
|
+
- CLI 输出简洁,不使用 emoji。
|
|
21
|
+
- 默认关闭人工审批(自动放行);除非用户要求,不要自行加审批门槛。
|
|
22
|
+
- Backend 仅使用 `LocalShellBackend`,无远程 sandbox。
|
|
23
|
+
- 对用户回复与模型思考过程使用中文;代码标识符/路径/命令可保留原文。
|
|
24
|
+
|
|
3
25
|
## 当前仓库结构
|
|
4
26
|
|
|
5
27
|
| 路径 | 主要职责 |
|
|
@@ -7,6 +7,31 @@ The release workflow automatically extracts the matching section as release note
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## v0.1.16
|
|
11
|
+
|
|
12
|
+
### 新功能
|
|
13
|
+
|
|
14
|
+
- 新增必需的 `synapse-search-core` 原生搜索核心,使用 Rust ripgrep crates 提供正则 `grep` 和 `glob`。
|
|
15
|
+
- `grep`/`glob` 改为使用内置原生引擎,不再依赖宿主机 `rg` 或 DeepAgents Python 搜索回退。
|
|
16
|
+
- 原生搜索 wheel 发布到 PyPI,支持 Windows x86_64、Linux x86_64/aarch64 和 macOS Apple Silicon arm64。
|
|
17
|
+
|
|
18
|
+
### 工程改进
|
|
19
|
+
|
|
20
|
+
- 保留 Python 后端的工作区路径授权、虚拟路径映射和 `deny_paths` 过滤。
|
|
21
|
+
- 增加原生搜索 wheel 构建与 PyPI Trusted Publishing 工作流,以及对应的后端回归测试和分发文档。
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## v0.1.15
|
|
26
|
+
|
|
27
|
+
### 工程改进
|
|
28
|
+
|
|
29
|
+
- 拆分 TUI transcript、工具组、待办清单、用户消息和 turn rail widget,缩小 `tui.py` 的职责范围。
|
|
30
|
+
- 保留 `synapse.ui.tui` 的既有组件、格式化函数和 timeline 符号兼容导出。
|
|
31
|
+
- 保持动态主题、流式展示、文本选择、复制与 turn rail 交互行为,并覆盖相关 TUI 回归测试。
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
10
35
|
## v0.1.14
|
|
11
36
|
|
|
12
37
|
### 工程改进
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: synapse-cli-agent
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.16
|
|
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
|
|
@@ -19,6 +19,7 @@ Requires-Dist: mcp>=1.28.0
|
|
|
19
19
|
Requires-Dist: pydantic-settings>=2.14.2
|
|
20
20
|
Requires-Dist: python-dotenv>=1.2.2
|
|
21
21
|
Requires-Dist: rich>=15.0.0
|
|
22
|
+
Requires-Dist: synapse-search-core<0.2.0,>=0.1.0
|
|
22
23
|
Requires-Dist: termaid>=0.7.1
|
|
23
24
|
Requires-Dist: texicode>=1.0.3
|
|
24
25
|
Requires-Dist: textual-diff-view>=0.1.5
|
|
@@ -180,7 +181,7 @@ cp .env.example .env
|
|
|
180
181
|
| `MODEL` | 是 | 模型标识,如 `openai:gpt-4.1`、`openai:deepseek-chat` |
|
|
181
182
|
| `OPENAI_API_KEY` | 是* | OpenAI 兼容 API 密钥 |
|
|
182
183
|
| `OPENAI_BASE_URL` | 否 | 自定义 API 端点(中转/本地服务需填) |
|
|
183
|
-
| `OPENAI_WEBSOCKET` | 否 | 普通 Responses API 使用 WebSocket;默认 `false`(HTTP/SSE
|
|
184
|
+
| `OPENAI_WEBSOCKET` | 否 | 普通 Responses API 使用 WebSocket;默认 `false`(HTTP/SSE)。瞬时断流按模型 `max_retries` 重连,耗尽后在尚未输出内容时回退 HTTP/SSE |
|
|
184
185
|
| `ANTHROPIC_API_KEY` | 否 | Anthropic 原生 API 密钥 |
|
|
185
186
|
| `WORKSPACE` | 否 | 工作区路径,默认 `.` |
|
|
186
187
|
| `SHELL_EXECUTABLE` | 否 | Shell 类型,默认 `pwsh`(可选 `cmd`/`bash`) |
|
|
@@ -190,6 +191,42 @@ cp .env.example .env
|
|
|
190
191
|
|
|
191
192
|
完整变量列表见 `.env.example`。
|
|
192
193
|
|
|
194
|
+
### OpenAI Codex OAuth(ChatGPT Plus/Pro)
|
|
195
|
+
|
|
196
|
+
除普通 API Key 外,Synapse 可使用 Codex 的 ChatGPT OAuth 登录。凭据仅保存到用户目录
|
|
197
|
+
`~/.synapse/openai_oauth.json`,不会写入项目配置或显示在终端中。
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# 浏览器登录;也可加 --no-browser 手动打开终端打印的链接
|
|
201
|
+
synapse auth openai login
|
|
202
|
+
|
|
203
|
+
# 若本机已通过 Codex CLI 登录,安全导入其现有登录态
|
|
204
|
+
synapse auth openai login --import-codex
|
|
205
|
+
|
|
206
|
+
synapse auth openai status
|
|
207
|
+
synapse auth openai logout
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
然后在 `~/.synapse/models.json` 或 `<workspace>/.synapse/models.json` 配置模型:
|
|
211
|
+
|
|
212
|
+
```json
|
|
213
|
+
{
|
|
214
|
+
"default": "codex",
|
|
215
|
+
"models": {
|
|
216
|
+
"codex": {
|
|
217
|
+
"model": "openai:gpt-5",
|
|
218
|
+
"auth": "openai_oauth"
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
OAuth profile 强制使用 Codex backend,不能通过 `base_url` 覆盖。该登录方式不能用于第三方
|
|
225
|
+
OpenAI 兼容网关,也不需要设置 `OPENAI_API_KEY`。浏览器授权回调固定使用
|
|
226
|
+
`http://localhost:1455/auth/callback`;若端口被占用,请关闭占用进程后重试。Synapse 会自动将
|
|
227
|
+
Agent 的 OpenAI `system` 消息转换为 Codex backend 接受的 `developer` 消息,并移除 DeepSeek
|
|
228
|
+
兼容的 `extra_body.thinking` 字段,只发送 Codex 支持的 reasoning 参数,并强制设置 `store: false`。
|
|
229
|
+
|
|
193
230
|
### 方式二:models.json(多模型 profiles,推荐)
|
|
194
231
|
|
|
195
232
|
在 `~/.synapse/` 或 `<workspace>/.synapse/` 下创建 `models.json`。支持多 profile、自定义模型参数(temperature、max_tokens、thinking 等)。
|
|
@@ -329,6 +366,8 @@ OpenAI Responses API 同时支持 HTTP/SSE 与普通 LLM WebSocket。profile 中
|
|
|
329
366
|
|---|---|
|
|
330
367
|
| `api_key` | **推荐**:密钥直接写在 models.json |
|
|
331
368
|
| `api_key_env` | 旧方式:从环境变量读密钥 |
|
|
369
|
+
| `auth` | 认证方式;设为 `openai_oauth` 时使用 `synapse auth openai login` 保存的 Codex OAuth 登录态 |
|
|
370
|
+
| `headers` | 模型级 HTTP 请求头对象;同名头覆盖顶层 `headers`,适用于自定义 `User-Agent` 等请求指纹 |
|
|
332
371
|
| `thinking` / `thinking_level` / `reasoning_effort` | 思考级别:`off\|minimal\|low\|medium\|high\|max` |
|
|
333
372
|
| `enable_thinking` | 兼容旧字段 bool |
|
|
334
373
|
| `temperature` / `max_tokens` / `timeout` 等 | 直接传给 ChatModel |
|
|
@@ -336,6 +375,33 @@ OpenAI Responses API 同时支持 HTTP/SSE 与普通 LLM WebSocket。profile 中
|
|
|
336
375
|
| `model_kwargs` | 请求体 kwargs |
|
|
337
376
|
| `extra_body` | 厂商扩展体(与 thinking 合并) |
|
|
338
377
|
|
|
378
|
+
### 自定义请求头与请求指纹
|
|
379
|
+
|
|
380
|
+
参考 `cmd-agent` 的配置方式,`models.json` 顶层 `headers` 会应用到全部 OpenAI 兼容模型;
|
|
381
|
+
模型内 `headers` 按 HTTP 头名称(不区分大小写)覆盖全局值。分层配置的优先级为:
|
|
382
|
+
项目模型 > 用户模型 > 项目全局 > 用户全局。可用于设置 `User-Agent`、客户端标识等请求指纹。
|
|
383
|
+
|
|
384
|
+
```json
|
|
385
|
+
{
|
|
386
|
+
"headers": {
|
|
387
|
+
"User-Agent": "synapse-global/1.0",
|
|
388
|
+
"X-Client-Channel": "desktop"
|
|
389
|
+
},
|
|
390
|
+
"models": {
|
|
391
|
+
"codex": {
|
|
392
|
+
"model": "openai:gpt-5",
|
|
393
|
+
"auth": "openai_oauth",
|
|
394
|
+
"headers": {
|
|
395
|
+
"User-Agent": "synapse-codex/1.0"
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
OAuth 模式中 `ChatGPT-Account-Id`、`originator` 等协议认证头由运行时强制设置,不能被配置覆盖。
|
|
403
|
+
请求头值支持 `${ENV_NAME}` / `$ENV_NAME` 环境变量展开;不要将私密 token 写入项目级配置。
|
|
404
|
+
|
|
339
405
|
`.env` 仍可读,仅作迁移/CI 兼容,**不推荐**作为常规分发方式。
|
|
340
406
|
|
|
341
407
|
## 示例:修复 sample_repo
|
|
@@ -145,7 +145,7 @@ cp .env.example .env
|
|
|
145
145
|
| `MODEL` | 是 | 模型标识,如 `openai:gpt-4.1`、`openai:deepseek-chat` |
|
|
146
146
|
| `OPENAI_API_KEY` | 是* | OpenAI 兼容 API 密钥 |
|
|
147
147
|
| `OPENAI_BASE_URL` | 否 | 自定义 API 端点(中转/本地服务需填) |
|
|
148
|
-
| `OPENAI_WEBSOCKET` | 否 | 普通 Responses API 使用 WebSocket;默认 `false`(HTTP/SSE
|
|
148
|
+
| `OPENAI_WEBSOCKET` | 否 | 普通 Responses API 使用 WebSocket;默认 `false`(HTTP/SSE)。瞬时断流按模型 `max_retries` 重连,耗尽后在尚未输出内容时回退 HTTP/SSE |
|
|
149
149
|
| `ANTHROPIC_API_KEY` | 否 | Anthropic 原生 API 密钥 |
|
|
150
150
|
| `WORKSPACE` | 否 | 工作区路径,默认 `.` |
|
|
151
151
|
| `SHELL_EXECUTABLE` | 否 | Shell 类型,默认 `pwsh`(可选 `cmd`/`bash`) |
|
|
@@ -155,6 +155,42 @@ cp .env.example .env
|
|
|
155
155
|
|
|
156
156
|
完整变量列表见 `.env.example`。
|
|
157
157
|
|
|
158
|
+
### OpenAI Codex OAuth(ChatGPT Plus/Pro)
|
|
159
|
+
|
|
160
|
+
除普通 API Key 外,Synapse 可使用 Codex 的 ChatGPT OAuth 登录。凭据仅保存到用户目录
|
|
161
|
+
`~/.synapse/openai_oauth.json`,不会写入项目配置或显示在终端中。
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# 浏览器登录;也可加 --no-browser 手动打开终端打印的链接
|
|
165
|
+
synapse auth openai login
|
|
166
|
+
|
|
167
|
+
# 若本机已通过 Codex CLI 登录,安全导入其现有登录态
|
|
168
|
+
synapse auth openai login --import-codex
|
|
169
|
+
|
|
170
|
+
synapse auth openai status
|
|
171
|
+
synapse auth openai logout
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
然后在 `~/.synapse/models.json` 或 `<workspace>/.synapse/models.json` 配置模型:
|
|
175
|
+
|
|
176
|
+
```json
|
|
177
|
+
{
|
|
178
|
+
"default": "codex",
|
|
179
|
+
"models": {
|
|
180
|
+
"codex": {
|
|
181
|
+
"model": "openai:gpt-5",
|
|
182
|
+
"auth": "openai_oauth"
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
OAuth profile 强制使用 Codex backend,不能通过 `base_url` 覆盖。该登录方式不能用于第三方
|
|
189
|
+
OpenAI 兼容网关,也不需要设置 `OPENAI_API_KEY`。浏览器授权回调固定使用
|
|
190
|
+
`http://localhost:1455/auth/callback`;若端口被占用,请关闭占用进程后重试。Synapse 会自动将
|
|
191
|
+
Agent 的 OpenAI `system` 消息转换为 Codex backend 接受的 `developer` 消息,并移除 DeepSeek
|
|
192
|
+
兼容的 `extra_body.thinking` 字段,只发送 Codex 支持的 reasoning 参数,并强制设置 `store: false`。
|
|
193
|
+
|
|
158
194
|
### 方式二:models.json(多模型 profiles,推荐)
|
|
159
195
|
|
|
160
196
|
在 `~/.synapse/` 或 `<workspace>/.synapse/` 下创建 `models.json`。支持多 profile、自定义模型参数(temperature、max_tokens、thinking 等)。
|
|
@@ -294,6 +330,8 @@ OpenAI Responses API 同时支持 HTTP/SSE 与普通 LLM WebSocket。profile 中
|
|
|
294
330
|
|---|---|
|
|
295
331
|
| `api_key` | **推荐**:密钥直接写在 models.json |
|
|
296
332
|
| `api_key_env` | 旧方式:从环境变量读密钥 |
|
|
333
|
+
| `auth` | 认证方式;设为 `openai_oauth` 时使用 `synapse auth openai login` 保存的 Codex OAuth 登录态 |
|
|
334
|
+
| `headers` | 模型级 HTTP 请求头对象;同名头覆盖顶层 `headers`,适用于自定义 `User-Agent` 等请求指纹 |
|
|
297
335
|
| `thinking` / `thinking_level` / `reasoning_effort` | 思考级别:`off\|minimal\|low\|medium\|high\|max` |
|
|
298
336
|
| `enable_thinking` | 兼容旧字段 bool |
|
|
299
337
|
| `temperature` / `max_tokens` / `timeout` 等 | 直接传给 ChatModel |
|
|
@@ -301,6 +339,33 @@ OpenAI Responses API 同时支持 HTTP/SSE 与普通 LLM WebSocket。profile 中
|
|
|
301
339
|
| `model_kwargs` | 请求体 kwargs |
|
|
302
340
|
| `extra_body` | 厂商扩展体(与 thinking 合并) |
|
|
303
341
|
|
|
342
|
+
### 自定义请求头与请求指纹
|
|
343
|
+
|
|
344
|
+
参考 `cmd-agent` 的配置方式,`models.json` 顶层 `headers` 会应用到全部 OpenAI 兼容模型;
|
|
345
|
+
模型内 `headers` 按 HTTP 头名称(不区分大小写)覆盖全局值。分层配置的优先级为:
|
|
346
|
+
项目模型 > 用户模型 > 项目全局 > 用户全局。可用于设置 `User-Agent`、客户端标识等请求指纹。
|
|
347
|
+
|
|
348
|
+
```json
|
|
349
|
+
{
|
|
350
|
+
"headers": {
|
|
351
|
+
"User-Agent": "synapse-global/1.0",
|
|
352
|
+
"X-Client-Channel": "desktop"
|
|
353
|
+
},
|
|
354
|
+
"models": {
|
|
355
|
+
"codex": {
|
|
356
|
+
"model": "openai:gpt-5",
|
|
357
|
+
"auth": "openai_oauth",
|
|
358
|
+
"headers": {
|
|
359
|
+
"User-Agent": "synapse-codex/1.0"
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
OAuth 模式中 `ChatGPT-Account-Id`、`originator` 等协议认证头由运行时强制设置,不能被配置覆盖。
|
|
367
|
+
请求头值支持 `${ENV_NAME}` / `$ENV_NAME` 环境变量展开;不要将私密 token 写入项目级配置。
|
|
368
|
+
|
|
304
369
|
`.env` 仍可读,仅作迁移/CI 兼容,**不推荐**作为常规分发方式。
|
|
305
370
|
|
|
306
371
|
## 示例:修复 sample_repo
|