bareagent-cli 0.1.0__tar.gz → 0.2.0__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 (280) hide show
  1. bareagent_cli-0.2.0/.githooks/pre-push +18 -0
  2. bareagent_cli-0.2.0/.github/workflows/ci.yml +37 -0
  3. bareagent_cli-0.2.0/.github/workflows/quality.yml +69 -0
  4. bareagent_cli-0.2.0/.github/workflows/release.yml +204 -0
  5. bareagent_cli-0.2.0/.trellis/scripts/__init__.py +5 -0
  6. bareagent_cli-0.2.0/.trellis/scripts/add_session.py +567 -0
  7. bareagent_cli-0.2.0/.trellis/scripts/common/__init__.py +92 -0
  8. bareagent_cli-0.2.0/.trellis/scripts/common/active_task.py +634 -0
  9. bareagent_cli-0.2.0/.trellis/scripts/common/cli_adapter.py +899 -0
  10. bareagent_cli-0.2.0/.trellis/scripts/common/config.py +445 -0
  11. bareagent_cli-0.2.0/.trellis/scripts/common/developer.py +190 -0
  12. bareagent_cli-0.2.0/.trellis/scripts/common/git.py +31 -0
  13. bareagent_cli-0.2.0/.trellis/scripts/common/git_context.py +106 -0
  14. bareagent_cli-0.2.0/.trellis/scripts/common/io.py +37 -0
  15. bareagent_cli-0.2.0/.trellis/scripts/common/log.py +45 -0
  16. bareagent_cli-0.2.0/.trellis/scripts/common/packages_context.py +238 -0
  17. bareagent_cli-0.2.0/.trellis/scripts/common/paths.py +447 -0
  18. bareagent_cli-0.2.0/.trellis/scripts/common/safe_commit.py +315 -0
  19. bareagent_cli-0.2.0/.trellis/scripts/common/session_context.py +821 -0
  20. bareagent_cli-0.2.0/.trellis/scripts/common/task_context.py +223 -0
  21. bareagent_cli-0.2.0/.trellis/scripts/common/task_queue.py +188 -0
  22. bareagent_cli-0.2.0/.trellis/scripts/common/task_store.py +749 -0
  23. bareagent_cli-0.2.0/.trellis/scripts/common/task_utils.py +274 -0
  24. bareagent_cli-0.2.0/.trellis/scripts/common/tasks.py +112 -0
  25. bareagent_cli-0.2.0/.trellis/scripts/common/trellis_config.py +131 -0
  26. bareagent_cli-0.2.0/.trellis/scripts/common/types.py +110 -0
  27. bareagent_cli-0.2.0/.trellis/scripts/common/workflow_phase.py +212 -0
  28. bareagent_cli-0.2.0/.trellis/scripts/get_context.py +16 -0
  29. bareagent_cli-0.2.0/.trellis/scripts/get_developer.py +26 -0
  30. bareagent_cli-0.2.0/.trellis/scripts/hooks/linear_sync.py +243 -0
  31. bareagent_cli-0.2.0/.trellis/scripts/init_developer.py +51 -0
  32. bareagent_cli-0.2.0/.trellis/scripts/task.py +500 -0
  33. bareagent_cli-0.2.0/CHANGELOG.md +41 -0
  34. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/PKG-INFO +77 -20
  35. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/README.md +65 -18
  36. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/pyproject.toml +32 -2
  37. bareagent_cli-0.2.0/scripts/ci-check.sh +31 -0
  38. bareagent_cli-0.2.0/scripts/ci_notify.py +174 -0
  39. bareagent_cli-0.2.0/scripts/release_contract.py +140 -0
  40. bareagent_cli-0.2.0/scripts/setup-hooks.sh +17 -0
  41. bareagent_cli-0.2.0/scripts/smoke_installed_package.py +31 -0
  42. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/concurrency/notification.py +1 -3
  43. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/concurrency/scheduler.py +14 -6
  44. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/config.toml +57 -1
  45. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/context.py +1 -1
  46. bareagent_cli-0.2.0/src/bareagent/core/file_recency.py +56 -0
  47. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/handlers/bash.py +1 -2
  48. bareagent_cli-0.2.0/src/bareagent/core/handlers/code_search.py +74 -0
  49. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/handlers/file_read.py +85 -6
  50. bareagent_cli-0.2.0/src/bareagent/core/handlers/grep_search.py +87 -0
  51. bareagent_cli-0.2.0/src/bareagent/core/handlers/repo_map.py +75 -0
  52. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/handlers/search_utils.py +1 -3
  53. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/handlers/subagent_send.py +6 -1
  54. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/handlers/web_fetch.py +53 -3
  55. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/handlers/web_search.py +1 -2
  56. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/handlers/workflow.py +1 -1
  57. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/tools.py +213 -12
  58. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/debug/web_viewer.py +6 -7
  59. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/lsp/config.py +2 -6
  60. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/lsp/coord.py +12 -0
  61. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/lsp/diagnostics.py +1 -3
  62. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/lsp/manager.py +7 -20
  63. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/lsp/tools.py +9 -12
  64. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/lsp/workspace_edit.py +3 -11
  65. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/main.py +707 -68
  66. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/mcp/client.py +8 -23
  67. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/mcp/config.py +6 -18
  68. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/mcp/manager.py +5 -15
  69. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/mcp/protocol.py +5 -15
  70. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/mcp/registry.py +9 -26
  71. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/mcp/transport/base.py +1 -3
  72. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/mcp/transport/http_legacy.py +6 -20
  73. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/mcp/transport/http_streamable.py +5 -15
  74. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/mcp/transport/stdio.py +3 -9
  75. bareagent_cli-0.2.0/src/bareagent/memory/code_index.py +281 -0
  76. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/memory/compact.py +4 -13
  77. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/memory/conversation_io.py +48 -3
  78. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/memory/embedding.py +12 -7
  79. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/memory/persistent.py +5 -6
  80. bareagent_cli-0.2.0/src/bareagent/memory/repo_map.py +580 -0
  81. bareagent_cli-0.2.0/src/bareagent/memory/repo_map_extract.py +208 -0
  82. bareagent_cli-0.2.0/src/bareagent/memory/repo_map_queries/go.scm +9 -0
  83. bareagent_cli-0.2.0/src/bareagent/memory/repo_map_queries/java.scm +6 -0
  84. bareagent_cli-0.2.0/src/bareagent/memory/repo_map_queries/javascript.scm +13 -0
  85. bareagent_cli-0.2.0/src/bareagent/memory/repo_map_queries/python.scm +11 -0
  86. bareagent_cli-0.2.0/src/bareagent/memory/repo_map_queries/rust.scm +11 -0
  87. bareagent_cli-0.2.0/src/bareagent/memory/session_tree.py +313 -0
  88. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/memory/token_counter.py +1 -3
  89. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/memory/token_tracker.py +72 -25
  90. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/memory/transcript.py +1 -3
  91. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/permission/guard.py +31 -14
  92. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/planning/skill_store.py +12 -2
  93. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/planning/skills.py +1 -3
  94. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/planning/subagent.py +5 -5
  95. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/planning/tasks.py +4 -11
  96. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/planning/todo.py +3 -9
  97. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/provider/anthropic.py +107 -11
  98. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/provider/base.py +11 -1
  99. bareagent_cli-0.2.0/src/bareagent/provider/capabilities.py +85 -0
  100. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/provider/openai.py +14 -4
  101. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/provider/presets.py +10 -0
  102. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/provider/setup.py +3 -3
  103. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/team/mailbox.py +5 -3
  104. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/team/manager.py +6 -15
  105. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/team/protocols.py +2 -6
  106. bareagent_cli-0.2.0/src/bareagent/tracing/_proxy.py +102 -0
  107. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/tracing/composite.py +12 -0
  108. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/tracing/otel.py +1 -3
  109. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/tracing/setup.py +3 -1
  110. bareagent_cli-0.2.0/src/bareagent/ui/attachments.py +90 -0
  111. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/ui/console.py +1 -3
  112. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/ui/prompt.py +13 -1
  113. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/ui/theme.py +1 -4
  114. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/conftest.py +9 -5
  115. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_agent_types.py +1 -3
  116. bareagent_cli-0.2.0/tests/test_attach_command.py +86 -0
  117. bareagent_cli-0.2.0/tests/test_attachments.py +135 -0
  118. bareagent_cli-0.2.0/tests/test_capabilities.py +100 -0
  119. bareagent_cli-0.2.0/tests/test_capabilities_config.py +62 -0
  120. bareagent_cli-0.2.0/tests/test_ci_visibility.py +205 -0
  121. bareagent_cli-0.2.0/tests/test_code_index.py +274 -0
  122. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_compact.py +11 -33
  123. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_compact_manual.py +1 -3
  124. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_context.py +1 -3
  125. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_conversation_io.py +34 -0
  126. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_embedding.py +5 -0
  127. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_experiential_skill_gen.py +27 -0
  128. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_file_read_multimodal.py +99 -0
  129. bareagent_cli-0.2.0/tests/test_file_recency.py +54 -0
  130. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_goal.py +26 -0
  131. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_interaction_log.py +9 -15
  132. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_loop.py +22 -34
  133. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_lsp_auto_diagnostics_hook.py +1 -3
  134. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_lsp_coord.py +6 -0
  135. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_lsp_diagnostics.py +1 -3
  136. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_lsp_e2e_manual.py +5 -15
  137. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_lsp_manager.py +3 -9
  138. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_lsp_manager_disconnect.py +1 -3
  139. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_lsp_tools.py +14 -3
  140. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_main.py +401 -135
  141. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_mcp_client.py +11 -33
  142. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_mcp_config.py +3 -9
  143. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_mcp_e2e_manual.py +3 -9
  144. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_mcp_manager.py +4 -12
  145. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_mcp_multimodal.py +8 -24
  146. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_mcp_permission.py +1 -3
  147. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_mcp_prompts.py +2 -6
  148. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_mcp_registry.py +4 -12
  149. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_mcp_transport_http_legacy.py +2 -6
  150. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_mcp_transport_http_streamable.py +3 -9
  151. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_mcp_transport_stdio.py +1 -3
  152. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_memory_recall.py +13 -12
  153. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_memory_tool.py +11 -0
  154. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_permission_semantic_rename.py +3 -3
  155. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_persistent.py +10 -0
  156. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_prompt_caching.py +188 -5
  157. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_provider.py +165 -45
  158. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_provider_factory.py +20 -0
  159. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_provider_setup.py +25 -4
  160. bareagent_cli-0.2.0/tests/test_recency_wrapping.py +53 -0
  161. bareagent_cli-0.2.0/tests/test_release_workflow.py +271 -0
  162. bareagent_cli-0.2.0/tests/test_repo_map.py +343 -0
  163. bareagent_cli-0.2.0/tests/test_repo_map_extract.py +83 -0
  164. bareagent_cli-0.2.0/tests/test_repo_map_handler.py +99 -0
  165. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_scheduler.py +7 -5
  166. bareagent_cli-0.2.0/tests/test_search_tools.py +90 -0
  167. bareagent_cli-0.2.0/tests/test_session_tree.py +358 -0
  168. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_subagent_send.py +19 -3
  169. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_tasks.py +1 -3
  170. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_team.py +127 -36
  171. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_token_tracker.py +2 -8
  172. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_tools.py +173 -36
  173. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_tools_registry.py +12 -2
  174. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_tracing_api.py +41 -0
  175. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_tracing_composite.py +19 -0
  176. bareagent_cli-0.2.0/tests/test_web_fetch.py +151 -0
  177. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_web_search.py +2 -5
  178. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_worktree.py +13 -7
  179. bareagent_cli-0.1.0/src/bareagent/core/handlers/grep_search.py +0 -52
  180. bareagent_cli-0.1.0/src/bareagent/tracing/_proxy.py +0 -60
  181. bareagent_cli-0.1.0/tests/test_search_tools.py +0 -40
  182. bareagent_cli-0.1.0/tests/test_web_fetch.py +0 -62
  183. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/.gitignore +0 -0
  184. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/LICENSE +0 -0
  185. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/__init__.py +0 -0
  186. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/concurrency/__init__.py +0 -0
  187. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/concurrency/background.py +0 -0
  188. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/__init__.py +0 -0
  189. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/config_paths.py +0 -0
  190. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/fileutil.py +0 -0
  191. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/goal.py +0 -0
  192. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/handlers/__init__.py +0 -0
  193. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/handlers/file_edit.py +0 -0
  194. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/handlers/file_write.py +0 -0
  195. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/handlers/glob_search.py +0 -0
  196. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/handlers/goal.py +0 -0
  197. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/handlers/memory.py +0 -0
  198. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/handlers/plan.py +0 -0
  199. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/handlers/skill.py +0 -0
  200. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/loop.py +0 -0
  201. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/retry.py +0 -0
  202. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/sandbox.py +0 -0
  203. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/schema.py +0 -0
  204. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/workflow.py +0 -0
  205. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/core/workflow_registry.py +0 -0
  206. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/debug/__init__.py +0 -0
  207. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/debug/interaction_log.py +0 -0
  208. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/debug/viewer.html +0 -0
  209. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/hooks/__init__.py +0 -0
  210. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/hooks/config.py +0 -0
  211. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/hooks/engine.py +0 -0
  212. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/hooks/errors.py +0 -0
  213. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/hooks/events.py +0 -0
  214. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/lsp/__init__.py +0 -0
  215. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/lsp/errors.py +0 -0
  216. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/mcp/__init__.py +0 -0
  217. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/mcp/_sse.py +0 -0
  218. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/mcp/errors.py +0 -0
  219. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/mcp/transport/__init__.py +0 -0
  220. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/memory/__init__.py +0 -0
  221. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/permission/__init__.py +0 -0
  222. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/permission/rules.py +0 -0
  223. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/planning/__init__.py +0 -0
  224. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/planning/agent_types.py +0 -0
  225. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/planning/skill_gen.py +0 -0
  226. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/planning/subagent_registry.py +0 -0
  227. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/planning/worktree.py +0 -0
  228. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/provider/__init__.py +0 -0
  229. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/provider/factory.py +0 -0
  230. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/skills/.gitkeep +0 -0
  231. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/skills/code-review/SKILL.md +0 -0
  232. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/skills/git/SKILL.md +0 -0
  233. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/skills/test/SKILL.md +0 -0
  234. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/team/__init__.py +0 -0
  235. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/team/autonomous.py +0 -0
  236. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/tracing/__init__.py +0 -0
  237. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/tracing/_api.py +0 -0
  238. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/tracing/json_file.py +0 -0
  239. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/tracing/langfuse.py +0 -0
  240. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/ui/__init__.py +0 -0
  241. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/ui/protocol.py +0 -0
  242. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/src/bareagent/ui/stream.py +0 -0
  243. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/.gitkeep +0 -0
  244. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_config_manual.py +0 -0
  245. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_config_merge.py +0 -0
  246. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_config_read.py +0 -0
  247. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_config_reload.py +0 -0
  248. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_cost_config.py +0 -0
  249. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_dangerous_patterns.py +0 -0
  250. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_file_tools.py +0 -0
  251. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_hooks_config.py +0 -0
  252. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_hooks_engine.py +0 -0
  253. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_lsp_agent_types.py +0 -0
  254. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_lsp_config.py +0 -0
  255. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_lsp_registry.py +0 -0
  256. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_lsp_repl.py +0 -0
  257. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_lsp_workspace_edit.py +0 -0
  258. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_mailbox_manual.py +0 -0
  259. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_mcp_protocol.py +0 -0
  260. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_mcp_repl.py +0 -0
  261. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_mcp_sse.py +0 -0
  262. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_mode_command.py +0 -0
  263. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_permission_manual.py +0 -0
  264. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_permission_rules.py +0 -0
  265. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_plan_mode.py +0 -0
  266. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_provider_manual.py +0 -0
  267. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_retry.py +0 -0
  268. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_skill_self_evolution.py +0 -0
  269. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_skills_manual.py +0 -0
  270. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_smoke.py +0 -0
  271. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_subagent_manual.py +0 -0
  272. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_tasks_manual.py +0 -0
  273. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_theme.py +0 -0
  274. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_todo.py +0 -0
  275. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_todo_manual.py +0 -0
  276. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_tracing_json_file.py +0 -0
  277. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_ui.py +0 -0
  278. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_web_viewer.py +0 -0
  279. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_workflow.py +0 -0
  280. {bareagent_cli-0.1.0 → bareagent_cli-0.2.0}/tests/test_workflow_registry.py +0 -0
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env bash
2
+ # Pre-push gate: run the CI-equivalent checks before a push so failures surface
3
+ # locally instead of turning main red. Activated by scripts/setup-hooks.sh
4
+ # (git config core.hooksPath .githooks).
5
+ #
6
+ # Bypass: BAREAGENT_PREPUSH_SKIP=1 git push or git push --no-verify
7
+ set -euo pipefail
8
+
9
+ if [ "${BAREAGENT_PREPUSH_SKIP:-}" = "1" ]; then
10
+ echo "[pre-push] BAREAGENT_PREPUSH_SKIP=1 -- skipping CI-equivalent checks."
11
+ exit 0
12
+ fi
13
+
14
+ repo_root="$(git rev-parse --show-toplevel)"
15
+
16
+ echo "[pre-push] Running CI-equivalent checks (ruff + uv run pytest)..."
17
+ echo "[pre-push] Skip with BAREAGENT_PREPUSH_SKIP=1 or git push --no-verify."
18
+ exec bash "$repo_root/scripts/ci-check.sh"
@@ -0,0 +1,37 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ quality:
13
+ name: Complete Python quality gate
14
+ permissions:
15
+ contents: read
16
+ uses: ./.github/workflows/quality.yml
17
+
18
+ notify:
19
+ name: Track main status
20
+ needs: [quality]
21
+ # Only on pushes to main, regardless of whether the upstream jobs passed or
22
+ # failed, so we can both open the tracking issue on red and close it on recovery.
23
+ if: always() && github.event_name == 'push' && github.ref == 'refs/heads/main'
24
+ runs-on: ubuntu-latest
25
+ permissions:
26
+ issues: write
27
+ contents: read
28
+ steps:
29
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5
30
+ - name: Open / close the CI-failure tracking issue
31
+ env:
32
+ GH_TOKEN: ${{ github.token }}
33
+ run: |
34
+ python3 scripts/ci_notify.py \
35
+ --conclusion "quality:${{ needs.quality.result }}" \
36
+ --sha "${{ github.sha }}" \
37
+ --run-url "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
@@ -0,0 +1,69 @@
1
+ name: Python quality
2
+
3
+ on:
4
+ workflow_call:
5
+
6
+ permissions:
7
+ contents: read
8
+
9
+ jobs:
10
+ test:
11
+ # Run the default suite on both the Linux CI target and the Windows dev
12
+ # platform, so platform-divergent bugs (paths, CRLF, encoding) surface in CI.
13
+ # fail-fast: false so one OS failing doesn't cancel the other's result.
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ os: [ubuntu-latest, windows-latest]
18
+ runs-on: ${{ matrix.os }}
19
+ steps:
20
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5
21
+
22
+ - name: Install uv (+ Python 3.12)
23
+ uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
24
+ with:
25
+ python-version: "3.12"
26
+ enable-cache: true
27
+
28
+ - name: Install dependencies
29
+ run: |
30
+ uv venv
31
+ uv pip install -e ".[dev]"
32
+
33
+ - name: Lint + format check (ruff)
34
+ # ruff results are platform-independent; run it once (on Linux) only.
35
+ # format --check enforces the pinned-ruff formatting so the tree can't drift.
36
+ if: runner.os == 'Linux'
37
+ run: |
38
+ uv run ruff check src tests
39
+ uv run ruff format --check src tests
40
+
41
+ - name: Type check (pyright)
42
+ # Type results are platform-independent; run once (on Linux) only.
43
+ if: runner.os == 'Linux'
44
+ run: uv run pyright
45
+
46
+ - name: Test (pytest)
47
+ run: uv run pytest
48
+
49
+ socket:
50
+ name: Socket tests (localhost)
51
+ # The localhost-socket suite is separate from the default run; keep it in the
52
+ # same reusable gate so PR, main, tag, and TestPyPI events cannot omit it.
53
+ runs-on: ubuntu-latest
54
+ steps:
55
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5
56
+
57
+ - name: Install uv (+ Python 3.12)
58
+ uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
59
+ with:
60
+ python-version: "3.12"
61
+ enable-cache: true
62
+
63
+ - name: Install dependencies
64
+ run: |
65
+ uv venv
66
+ uv pip install -e ".[dev]"
67
+
68
+ - name: Socket tests (pytest -m socket)
69
+ run: uv run pytest -m socket
@@ -0,0 +1,204 @@
1
+ name: Publish to PyPI
2
+
3
+ # GitHub's tag filter is only a coarse trigger. The build job enforces strict
4
+ # vMAJOR.MINOR.PATCH syntax and verifies hatch-vcs metadata before artifacts can
5
+ # reach either Trusted Publishing job.
6
+ on:
7
+ push:
8
+ tags:
9
+ - 'v*'
10
+ workflow_dispatch: {}
11
+
12
+ permissions: {}
13
+
14
+ concurrency:
15
+ group: release-${{ github.workflow }}-${{ github.ref }}
16
+ cancel-in-progress: false
17
+
18
+ jobs:
19
+ quality:
20
+ name: Complete CI quality gate
21
+ permissions:
22
+ contents: read
23
+ uses: ./.github/workflows/quality.yml
24
+
25
+ build:
26
+ name: Build and validate distributions
27
+ runs-on: ubuntu-latest
28
+ permissions:
29
+ contents: read
30
+ outputs:
31
+ version: ${{ steps.contract.outputs.version }}
32
+ steps:
33
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5
34
+ with:
35
+ # hatch-vcs needs the complete tag history to derive the version.
36
+ fetch-depth: 0
37
+ persist-credentials: false
38
+
39
+ - name: Install uv and Python 3.12
40
+ uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
41
+ with:
42
+ python-version: "3.12"
43
+
44
+ - name: Validate release ref
45
+ run: |
46
+ python scripts/release_contract.py \
47
+ --event-name "${{ github.event_name }}" \
48
+ --ref-type "${{ github.ref_type }}" \
49
+ --ref-name "${{ github.ref_name }}" \
50
+ --ref-only
51
+
52
+ - name: Clean distribution directory
53
+ run: |
54
+ rm -rf dist
55
+ mkdir dist
56
+
57
+ - name: Build one sdist and one wheel
58
+ run: uv build --out-dir dist --no-create-gitignore
59
+
60
+ - name: Validate artifact inventory and hatch-vcs version
61
+ id: contract
62
+ shell: bash
63
+ run: |
64
+ version=$(
65
+ python scripts/release_contract.py \
66
+ --event-name "${{ github.event_name }}" \
67
+ --ref-type "${{ github.ref_type }}" \
68
+ --ref-name "${{ github.ref_name }}" \
69
+ --dist-dir dist
70
+ )
71
+ echo "version=${version}" >> "${GITHUB_OUTPUT}"
72
+ echo "Validated bareagent-cli ${version}"
73
+
74
+ - name: Check distribution metadata
75
+ run: uvx twine check dist/*.whl dist/*.tar.gz
76
+
77
+ - name: Upload exact distributions
78
+ uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
79
+ with:
80
+ name: python-package-distributions
81
+ path: |
82
+ dist/*.whl
83
+ dist/*.tar.gz
84
+ if-no-files-found: error
85
+ retention-days: 7
86
+
87
+ smoke-wheel:
88
+ name: Install and smoke-test wheel
89
+ needs: build
90
+ runs-on: ubuntu-latest
91
+ permissions:
92
+ contents: read
93
+ steps:
94
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5
95
+ with:
96
+ persist-credentials: false
97
+
98
+ - name: Install uv and Python 3.12
99
+ uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
100
+ with:
101
+ python-version: "3.12"
102
+
103
+ - name: Download distributions
104
+ uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
105
+ with:
106
+ name: python-package-distributions
107
+ path: dist
108
+
109
+ - name: Revalidate downloaded distributions
110
+ run: |
111
+ python scripts/release_contract.py \
112
+ --event-name "${{ github.event_name }}" \
113
+ --ref-type "${{ github.ref_type }}" \
114
+ --ref-name "${{ github.ref_name }}" \
115
+ --dist-dir dist
116
+
117
+ - name: Install wheel in a fresh environment
118
+ run: |
119
+ uv venv .smoke-wheel
120
+ uv pip install --python .smoke-wheel/bin/python dist/*.whl
121
+ .smoke-wheel/bin/python scripts/smoke_installed_package.py
122
+ .smoke-wheel/bin/bareagent --help
123
+
124
+ smoke-sdist:
125
+ name: Build, install, and smoke-test sdist
126
+ needs: build
127
+ runs-on: ubuntu-latest
128
+ permissions:
129
+ contents: read
130
+ steps:
131
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5
132
+ with:
133
+ persist-credentials: false
134
+
135
+ - name: Install uv and Python 3.12
136
+ uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
137
+ with:
138
+ python-version: "3.12"
139
+
140
+ - name: Download distributions
141
+ uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
142
+ with:
143
+ name: python-package-distributions
144
+ path: dist
145
+
146
+ - name: Revalidate downloaded distributions
147
+ run: |
148
+ python scripts/release_contract.py \
149
+ --event-name "${{ github.event_name }}" \
150
+ --ref-type "${{ github.ref_type }}" \
151
+ --ref-name "${{ github.ref_name }}" \
152
+ --dist-dir dist
153
+
154
+ - name: Install sdist in a fresh environment
155
+ run: |
156
+ uv venv .smoke-sdist
157
+ uv pip install --python .smoke-sdist/bin/python dist/*.tar.gz
158
+ .smoke-sdist/bin/python scripts/smoke_installed_package.py
159
+ .smoke-sdist/bin/bareagent --help
160
+
161
+ publish-to-pypi:
162
+ name: Publish to PyPI
163
+ if: github.event_name == 'push' && github.ref_type == 'tag'
164
+ needs: [quality, build, smoke-wheel, smoke-sdist]
165
+ runs-on: ubuntu-latest
166
+ environment:
167
+ name: pypi
168
+ url: https://pypi.org/p/bareagent-cli
169
+ permissions:
170
+ id-token: write
171
+ steps:
172
+ - name: Download validated distributions
173
+ uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
174
+ with:
175
+ name: python-package-distributions
176
+ path: dist
177
+
178
+ - name: Publish to PyPI with Trusted Publishing
179
+ uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # release/v1
180
+ with:
181
+ packages-dir: dist/
182
+
183
+ publish-to-testpypi:
184
+ name: Publish to TestPyPI (dry run)
185
+ if: github.event_name == 'workflow_dispatch'
186
+ needs: [quality, build, smoke-wheel, smoke-sdist]
187
+ runs-on: ubuntu-latest
188
+ environment:
189
+ name: testpypi
190
+ url: https://test.pypi.org/p/bareagent-cli
191
+ permissions:
192
+ id-token: write
193
+ steps:
194
+ - name: Download validated distributions
195
+ uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
196
+ with:
197
+ name: python-package-distributions
198
+ path: dist
199
+
200
+ - name: Publish to TestPyPI with Trusted Publishing
201
+ uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # release/v1
202
+ with:
203
+ packages-dir: dist/
204
+ repository-url: https://test.pypi.org/legacy/
@@ -0,0 +1,5 @@
1
+ """
2
+ Trellis Python Scripts
3
+
4
+ This module provides Python implementations of Trellis workflow scripts.
5
+ """