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.
Files changed (336) hide show
  1. synapse_cli_agent-0.1.16/.github/workflows/native-search-wheels.yml +82 -0
  2. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/.gitignore +2 -0
  3. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/AGENTS.md +22 -0
  4. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/CHANGELOG.md +25 -0
  5. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/PKG-INFO +68 -2
  6. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/README.md +66 -1
  7. synapse_cli_agent-0.1.16/docs/agent-development-guide.md +660 -0
  8. synapse_cli_agent-0.1.16/docs/architecture-flow.md +1165 -0
  9. synapse_cli_agent-0.1.16/docs/architecture.md +685 -0
  10. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/config.md +1 -1
  11. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/models.md +70 -0
  12. synapse_cli_agent-0.1.16/docs/native-search-core.md +44 -0
  13. synapse_cli_agent-0.1.16/docs/smith_output.md +389 -0
  14. synapse_cli_agent-0.1.16/docs/tutorial.md +1879 -0
  15. synapse_cli_agent-0.1.16/docs/x-agent-development-guide.md +890 -0
  16. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/mkdocs.yml +1 -0
  17. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/pyproject.toml +2 -1
  18. synapse_cli_agent-0.1.16/release_body.md +14 -0
  19. synapse_cli_agent-0.1.16/rust/synapse-search-core/Cargo.lock +481 -0
  20. synapse_cli_agent-0.1.16/rust/synapse-search-core/Cargo.toml +21 -0
  21. synapse_cli_agent-0.1.16/rust/synapse-search-core/README.md +25 -0
  22. synapse_cli_agent-0.1.16/rust/synapse-search-core/pyproject.toml +20 -0
  23. synapse_cli_agent-0.1.16/rust/synapse-search-core/python/synapse_search_core/__init__.py +3 -0
  24. synapse_cli_agent-0.1.16/rust/synapse-search-core/src/lib.rs +287 -0
  25. synapse_cli_agent-0.1.16/rust/synapse-tool-compress-core/LICENSE +190 -0
  26. synapse_cli_agent-0.1.16/rust/synapse-tool-compress-core/NOTICE +43 -0
  27. synapse_cli_agent-0.1.16/src/synapse/app/agent.py +547 -0
  28. synapse_cli_agent-0.1.16/src/synapse/cli.py +968 -0
  29. synapse_cli_agent-0.1.16/src/synapse/commands/slash_cmds.py +526 -0
  30. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/content/prompts.py +0 -9
  31. synapse_cli_agent-0.1.16/src/synapse/integrations/llm_openai_websocket.py +270 -0
  32. synapse_cli_agent-0.1.16/src/synapse/integrations/openai_oauth.py +386 -0
  33. synapse_cli_agent-0.1.16/src/synapse/integrations/openai_oauth_middleware.py +65 -0
  34. synapse_cli_agent-0.1.16/src/synapse/memory/__init__.py +30 -0
  35. synapse_cli_agent-0.1.16/src/synapse/memory/auto_recorder.py +236 -0
  36. synapse_cli_agent-0.1.16/src/synapse/memory/embedder.py +168 -0
  37. synapse_cli_agent-0.1.16/src/synapse/memory/long_term.py +214 -0
  38. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/models/config.py +1 -1
  39. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/models/profile.py +4 -0
  40. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/models/registry.py +109 -5
  41. synapse_cli_agent-0.1.16/src/synapse/parallel_subagents.py +1206 -0
  42. synapse_cli_agent-0.1.16/src/synapse/planner/__init__.py +9 -0
  43. synapse_cli_agent-0.1.16/src/synapse/planner/task_planner.py +147 -0
  44. synapse_cli_agent-0.1.16/src/synapse/rag/__init__.py +12 -0
  45. synapse_cli_agent-0.1.16/src/synapse/rag/knowledge_base.py +329 -0
  46. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/backends.py +70 -134
  47. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/context_compact.py +32 -62
  48. synapse_cli_agent-0.1.16/src/synapse/runtime/middleware.py +883 -0
  49. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/subagents.py +11 -4
  50. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/tool_output_middleware.py +1 -1
  51. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/settings/schema.py +45 -1
  52. synapse_cli_agent-0.1.16/src/synapse/subagent_monitor.py +564 -0
  53. synapse_cli_agent-0.1.16/src/synapse/ui/answer_divider.py +78 -0
  54. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/components/__init__.py +4 -1
  55. synapse_cli_agent-0.1.16/src/synapse/ui/clipboard.py +72 -0
  56. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/__init__.py +2 -0
  57. synapse_cli_agent-0.1.16/src/synapse/ui/dialogs/subagent_monitor.py +311 -0
  58. synapse_cli_agent-0.1.16/src/synapse/ui/formatters.py +193 -0
  59. synapse_cli_agent-0.1.16/src/synapse/ui/selectable_static.py +235 -0
  60. synapse_cli_agent-0.1.16/src/synapse/ui/selectable_text.py +210 -0
  61. synapse_cli_agent-0.1.16/src/synapse/ui/textual_stream_sink.py +524 -0
  62. synapse_cli_agent-0.1.16/src/synapse/ui/tool_blocks.py +317 -0
  63. synapse_cli_agent-0.1.16/src/synapse/ui/transcript_blocks.py +244 -0
  64. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/tui.py +169 -1745
  65. synapse_cli_agent-0.1.16/src/synapse/ui/turn_rail_widgets.py +169 -0
  66. synapse_cli_agent-0.1.16/src/synapse/ui/user_turn_block.py +177 -0
  67. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_agent_factory.py +4 -0
  68. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_backends.py +31 -37
  69. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_capabilities.py +25 -1
  70. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_cli.py +8 -0
  71. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_context_compact.py +15 -3
  72. synapse_cli_agent-0.1.16/tests/test_context_window.py +208 -0
  73. synapse_cli_agent-0.1.16/tests/test_dag_parallel.py +931 -0
  74. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_dialogs.py +7 -1
  75. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_iteration_abc.py +23 -0
  76. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_layered_config.py +30 -0
  77. synapse_cli_agent-0.1.16/tests/test_openai_oauth.py +105 -0
  78. synapse_cli_agent-0.1.16/tests/test_openai_oauth_middleware.py +52 -0
  79. synapse_cli_agent-0.1.16/tests/test_openai_websocket.py +436 -0
  80. synapse_cli_agent-0.1.16/tests/test_subagent_monitor_dialog.py +37 -0
  81. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/uv.lock +14 -1
  82. synapse_cli_agent-0.1.14/release_body.md +0 -7
  83. synapse_cli_agent-0.1.14/src/synapse/integrations/llm_openai_websocket.py +0 -187
  84. synapse_cli_agent-0.1.14/tests/test_context_window.py +0 -88
  85. synapse_cli_agent-0.1.14/tests/test_openai_websocket.py +0 -178
  86. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/.github/workflows/ci.yml +0 -0
  87. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/.github/workflows/docs.yml +0 -0
  88. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/.github/workflows/native-compression-wheels.yml +0 -0
  89. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/.github/workflows/release.yml +0 -0
  90. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/.python-version +0 -0
  91. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/.readthedocs.yaml +0 -0
  92. /synapse_cli_agent-0.1.14/src/synapse/app/agent.py → /synapse_cli_agent-0.1.16/agent_upstream.txt +0 -0
  93. /synapse_cli_agent-0.1.14/src/synapse/cli.py → /synapse_cli_agent-0.1.16/cli_upstream.txt +0 -0
  94. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/cli.md +0 -0
  95. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/codex-session-discovery-phase-1.md +0 -0
  96. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/codex-session-import-phase-2.md +0 -0
  97. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/design.md +0 -0
  98. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/index.md +0 -0
  99. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/install.md +0 -0
  100. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/mcp.md +0 -0
  101. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/native-compression-core.md +0 -0
  102. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/permissions.md +0 -0
  103. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/quickstart.md +0 -0
  104. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/sessions.md +0 -0
  105. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/skills.md +0 -0
  106. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/tool-output-transform.md +0 -0
  107. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/docs/tui-cursor-refactor.md +0 -0
  108. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/examples/mcp.example.json +0 -0
  109. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/examples/models.example.json +0 -0
  110. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/examples/settings.example.json +0 -0
  111. /synapse_cli_agent-0.1.14/src/synapse/runtime/middleware.py → /synapse_cli_agent-0.1.16/middleware_upstream.txt +0 -0
  112. {synapse_cli_agent-0.1.14/rust/synapse-tool-compress-core → synapse_cli_agent-0.1.16/rust/synapse-search-core}/LICENSE +0 -0
  113. {synapse_cli_agent-0.1.14/rust/synapse-tool-compress-core → synapse_cli_agent-0.1.16/rust/synapse-search-core}/NOTICE +0 -0
  114. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/Cargo.lock +0 -0
  115. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/Cargo.toml +0 -0
  116. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/README.md +0 -0
  117. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/pyproject.toml +0 -0
  118. {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
  119. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/ccr.rs +0 -0
  120. {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
  121. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/headroom_port/mod.rs +0 -0
  122. {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
  123. {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
  124. {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
  125. {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
  126. {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
  127. {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
  128. {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
  129. {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
  130. {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
  131. {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
  132. {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
  133. {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
  134. {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
  135. {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
  136. {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
  137. {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
  138. {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
  139. {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
  140. {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
  141. {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
  142. {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
  143. {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
  144. {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
  145. {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
  146. {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
  147. {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
  148. {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
  149. {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
  150. {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
  151. {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
  152. {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
  153. {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
  154. {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
  155. {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
  156. {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
  157. {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
  158. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/rust/synapse-tool-compress-core/src/lib.rs +0 -0
  159. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/scripts/install.ps1 +0 -0
  160. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/scripts/release.ps1 +0 -0
  161. /synapse_cli_agent-0.1.14/src/synapse/commands/slash_cmds.py → /synapse_cli_agent-0.1.16/slash_cmds_upstream.txt +0 -0
  162. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/__init__.py +0 -0
  163. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/__main__.py +0 -0
  164. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/app/__init__.py +0 -0
  165. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/app/agent_md.py +0 -0
  166. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/__init__.py +0 -0
  167. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/compression.py +0 -0
  168. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/helpers.py +0 -0
  169. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/mcp.py +0 -0
  170. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/model.py +0 -0
  171. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/result.py +0 -0
  172. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/sessions.py +0 -0
  173. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/slash_complete.py +0 -0
  174. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/commands/theme.py +0 -0
  175. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/config.py +0 -0
  176. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/content/__init__.py +0 -0
  177. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/content/input_history.py +0 -0
  178. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/content/multimodal.py +0 -0
  179. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/content/skills_catalog.py +0 -0
  180. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/__init__.py +0 -0
  181. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/checkpoint_seed.py +0 -0
  182. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/codex_history.py +0 -0
  183. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/codex_import.py +0 -0
  184. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/codex_sessions.py +0 -0
  185. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/describe_image.py +0 -0
  186. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/http_clients.py +0 -0
  187. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/llm_openai_compat.py +0 -0
  188. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/mcp_client.py +0 -0
  189. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/integrations/vision_middleware.py +0 -0
  190. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/models/__init__.py +0 -0
  191. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/models/helpers.py +0 -0
  192. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/models_registry.py +0 -0
  193. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/observability/__init__.py +0 -0
  194. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/observability/startup_trace.py +0 -0
  195. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/__init__.py +0 -0
  196. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/async_runtime.py +0 -0
  197. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/execute_capture.py +0 -0
  198. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/fs_permissions.py +0 -0
  199. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/harness.py +0 -0
  200. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/hitl.py +0 -0
  201. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/interaction_ledger.py +0 -0
  202. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/model_request_compression_middleware.py +0 -0
  203. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/pathing.py +0 -0
  204. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/safety.py +0 -0
  205. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/steer.py +0 -0
  206. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/tool_ignore.py +0 -0
  207. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/tool_output_eval.py +0 -0
  208. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/runtime/tool_output_usage_middleware.py +0 -0
  209. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/sessions/__init__.py +0 -0
  210. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/sessions/cancel_repair.py +0 -0
  211. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/sessions/session_recap.py +0 -0
  212. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/sessions/store.py +0 -0
  213. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/sessions/transcript.py +0 -0
  214. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/settings/__init__.py +0 -0
  215. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/settings/config_paths.py +0 -0
  216. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tool_output/__init__.py +0 -0
  217. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tool_output/detection.py +0 -0
  218. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tool_output/metrics.py +0 -0
  219. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tool_output/models.py +0 -0
  220. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tool_output/pipeline.py +0 -0
  221. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tool_output/repository.py +0 -0
  222. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tool_output/transformers.py +0 -0
  223. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tools/__init__.py +0 -0
  224. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/tools/session_tools.py +0 -0
  225. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/__init__.py +0 -0
  226. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/__init__.py +0 -0
  227. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/components/key_hints.py +0 -0
  228. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/components/mcp.py +0 -0
  229. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/components/mode.py +0 -0
  230. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/components/model.py +0 -0
  231. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/components/thread.py +0 -0
  232. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/context.py +0 -0
  233. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/bottombar/core.py +0 -0
  234. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/base.py +0 -0
  235. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/codex_session_list.py +0 -0
  236. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/compression_diagnostics.py +0 -0
  237. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/git_explore.py +0 -0
  238. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/mcp_panel.py +0 -0
  239. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/model_picker.py +0 -0
  240. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/safety_panel.py +0 -0
  241. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/session_list.py +0 -0
  242. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/theme_designer.py +0 -0
  243. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/dialogs/theme_picker.py +0 -0
  244. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/git_explore/__init__.py +0 -0
  245. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/git_explore/engine.py +0 -0
  246. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/git_explore/provider.py +0 -0
  247. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/git_explore/unified.py +0 -0
  248. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/rendering.py +0 -0
  249. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/sink.py +0 -0
  250. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/steer_widget.py +0 -0
  251. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/stream.py +0 -0
  252. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/stream_events.py +0 -0
  253. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/stream_runtime.py +0 -0
  254. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/theme.py +0 -0
  255. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/timeline.py +0 -0
  256. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/__init__.py +0 -0
  257. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/components/__init__.py +0 -0
  258. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/components/branch.py +0 -0
  259. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/components/title.py +0 -0
  260. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/components/tool_output.py +0 -0
  261. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/components/usage.py +0 -0
  262. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/components/workspace.py +0 -0
  263. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/context.py +0 -0
  264. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/core.py +0 -0
  265. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/git_changes_popover.py +0 -0
  266. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/git_chrome.py +0 -0
  267. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/tool_output_popover.py +0 -0
  268. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/topbar/widget.py +0 -0
  269. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/turn_rail.py +0 -0
  270. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/user_turn.py +0 -0
  271. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/src/synapse/ui/welcome.py +0 -0
  272. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/synapse.cmd +0 -0
  273. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/codex_rollouts/duplicate_response_item.jsonl +0 -0
  274. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/codex_rollouts/incomplete_and_aborted.jsonl +0 -0
  275. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/codex_rollouts/legacy_compaction.jsonl +0 -0
  276. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/codex_rollouts/normal_completed.jsonl +0 -0
  277. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/codex_rollouts/replacement_history.jsonl +0 -0
  278. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/codex_rollouts/rollback.jsonl +0 -0
  279. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/codex_rollouts/unsupported_replacement.jsonl +0 -0
  280. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/sample_repo/calculator.py +0 -0
  281. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/sample_repo/test_calculator.py +0 -0
  282. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/fixtures/tool_output_eval.json +0 -0
  283. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_async_checkpointer.py +0 -0
  284. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_bottombar_registry.py +0 -0
  285. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_cancel_repair.py +0 -0
  286. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_checkpoint_seed.py +0 -0
  287. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_cli_codex_import.py +0 -0
  288. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_codex_history.py +0 -0
  289. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_codex_import.py +0 -0
  290. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_codex_sessions.py +0 -0
  291. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_codex_sessions_windows.py +0 -0
  292. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_compact_tool_descriptions.py +0 -0
  293. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_config.py +0 -0
  294. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_describe_image.py +0 -0
  295. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_git_changes_popover.py +0 -0
  296. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_git_chrome.py +0 -0
  297. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_git_explore.py +0 -0
  298. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_http_clients.py +0 -0
  299. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_input_history.py +0 -0
  300. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_mcp_schema.py +0 -0
  301. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_mermaid_render.py +0 -0
  302. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_middleware_async.py +0 -0
  303. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_model_request_compression_middleware.py +0 -0
  304. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_model_retry.py +0 -0
  305. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_multimodal.py +0 -0
  306. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_openai_compat_reasoning.py +0 -0
  307. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_pathing.py +0 -0
  308. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_safety.py +0 -0
  309. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_session_recap.py +0 -0
  310. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_slash_and_mcp.py +0 -0
  311. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_slash_complete.py +0 -0
  312. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_startup_defer.py +0 -0
  313. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_steer.py +0 -0
  314. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_stream_cancel.py +0 -0
  315. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_stream_tool_items.py +0 -0
  316. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_stream_ui.py +0 -0
  317. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_subagent_status.py +0 -0
  318. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_theme.py +0 -0
  319. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_timeline.py +0 -0
  320. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tool_ignore.py +0 -0
  321. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tool_intent.py +0 -0
  322. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tool_output.py +0 -0
  323. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tool_output_eval.py +0 -0
  324. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tool_output_slash.py +0 -0
  325. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tool_output_usage_middleware.py +0 -0
  326. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_topbar_context_ratio.py +0 -0
  327. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_topbar_registry.py +0 -0
  328. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_transcript.py +0 -0
  329. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tui_codex_import.py +0 -0
  330. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tui_selection.py +0 -0
  331. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_tui_sink.py +0 -0
  332. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_turn_rail_minimap.py +0 -0
  333. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_usage_restore.py +0 -0
  334. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_user_turn_style.py +0 -0
  335. {synapse_cli_agent-0.1.14 → synapse_cli_agent-0.1.16}/tests/test_welcome.py +0 -0
  336. {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/
@@ -4,6 +4,8 @@
4
4
  # Python-generated files
5
5
  __pycache__/
6
6
  *.py[oc]
7
+ *.pyd
8
+ *.pdb
7
9
  build/
8
10
  dist/
9
11
  wheels/
@@ -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.14
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