gobby 0.2.5__tar.gz → 0.2.7__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 (472) hide show
  1. {gobby-0.2.5 → gobby-0.2.7}/PKG-INFO +87 -21
  2. {gobby-0.2.5 → gobby-0.2.7}/README.md +83 -19
  3. {gobby-0.2.5 → gobby-0.2.7}/pyproject.toml +11 -2
  4. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/__init__.py +1 -1
  5. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/adapters/__init__.py +2 -1
  6. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/adapters/claude_code.py +13 -4
  7. gobby-0.2.7/src/gobby/adapters/codex_impl/__init__.py +28 -0
  8. gobby-0.2.7/src/gobby/adapters/codex_impl/adapter.py +722 -0
  9. gobby-0.2.7/src/gobby/adapters/codex_impl/client.py +679 -0
  10. gobby-0.2.7/src/gobby/adapters/codex_impl/protocol.py +20 -0
  11. gobby-0.2.7/src/gobby/adapters/codex_impl/types.py +68 -0
  12. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/definitions.py +11 -1
  13. gobby-0.2.7/src/gobby/agents/isolation.py +395 -0
  14. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/runner.py +8 -0
  15. gobby-0.2.7/src/gobby/agents/sandbox.py +261 -0
  16. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawn.py +42 -287
  17. gobby-0.2.7/src/gobby/agents/spawn_executor.py +385 -0
  18. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawners/__init__.py +24 -0
  19. gobby-0.2.7/src/gobby/agents/spawners/command_builder.py +189 -0
  20. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawners/embedded.py +21 -2
  21. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawners/headless.py +21 -2
  22. gobby-0.2.7/src/gobby/agents/spawners/prompt_manager.py +125 -0
  23. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/__init__.py +6 -0
  24. gobby-0.2.7/src/gobby/cli/clones.py +419 -0
  25. gobby-0.2.7/src/gobby/cli/conductor.py +266 -0
  26. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/install.py +4 -4
  27. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/installers/antigravity.py +3 -9
  28. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/installers/claude.py +15 -9
  29. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/installers/codex.py +2 -8
  30. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/installers/gemini.py +8 -8
  31. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/installers/shared.py +175 -13
  32. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/sessions.py +1 -1
  33. gobby-0.2.7/src/gobby/cli/skills.py +858 -0
  34. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/ai.py +0 -440
  35. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/crud.py +44 -6
  36. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/main.py +0 -4
  37. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tui.py +2 -2
  38. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/utils.py +12 -5
  39. gobby-0.2.7/src/gobby/clones/__init__.py +13 -0
  40. gobby-0.2.7/src/gobby/clones/git.py +547 -0
  41. gobby-0.2.7/src/gobby/conductor/__init__.py +16 -0
  42. gobby-0.2.7/src/gobby/conductor/alerts.py +135 -0
  43. gobby-0.2.7/src/gobby/conductor/loop.py +164 -0
  44. gobby-0.2.7/src/gobby/conductor/monitors/__init__.py +11 -0
  45. gobby-0.2.7/src/gobby/conductor/monitors/agents.py +116 -0
  46. gobby-0.2.7/src/gobby/conductor/monitors/tasks.py +155 -0
  47. gobby-0.2.7/src/gobby/conductor/pricing.py +234 -0
  48. gobby-0.2.7/src/gobby/conductor/token_tracker.py +160 -0
  49. gobby-0.2.7/src/gobby/config/__init__.py +44 -0
  50. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/app.py +69 -91
  51. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/extensions.py +2 -2
  52. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/features.py +7 -130
  53. gobby-0.2.7/src/gobby/config/search.py +110 -0
  54. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/servers.py +1 -1
  55. gobby-0.2.7/src/gobby/config/skills.py +43 -0
  56. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/tasks.py +9 -41
  57. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/__init__.py +0 -13
  58. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/event_handlers.py +188 -2
  59. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/hook_manager.py +50 -4
  60. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/plugins.py +1 -1
  61. gobby-0.2.7/src/gobby/hooks/skill_manager.py +130 -0
  62. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/webhooks.py +1 -1
  63. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/claude/hooks/hook_dispatcher.py +4 -4
  64. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/codex/hooks/hook_dispatcher.py +1 -1
  65. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/gemini/hooks/hook_dispatcher.py +87 -12
  66. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/claude.py +22 -34
  67. gobby-0.2.7/src/gobby/llm/claude_executor.py +293 -0
  68. gobby-0.2.7/src/gobby/llm/codex_executor.py +281 -0
  69. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/executor.py +21 -0
  70. gobby-0.2.7/src/gobby/llm/gemini.py +282 -0
  71. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/litellm_executor.py +143 -6
  72. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/resolver.py +98 -35
  73. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/importer.py +62 -4
  74. gobby-0.2.7/src/gobby/mcp_proxy/instructions.py +56 -0
  75. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/models.py +15 -0
  76. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/registries.py +68 -8
  77. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/server.py +33 -3
  78. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/services/recommendation.py +43 -11
  79. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/services/tool_proxy.py +81 -1
  80. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/stdio.py +2 -1
  81. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/__init__.py +0 -2
  82. gobby-0.2.7/src/gobby/mcp_proxy/tools/agent_messaging.py +317 -0
  83. gobby-0.2.7/src/gobby/mcp_proxy/tools/agents.py +403 -0
  84. gobby-0.2.7/src/gobby/mcp_proxy/tools/clones.py +518 -0
  85. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/memory.py +3 -26
  86. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/metrics.py +65 -1
  87. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/orchestration/__init__.py +3 -0
  88. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/orchestration/cleanup.py +151 -0
  89. gobby-0.2.7/src/gobby/mcp_proxy/tools/orchestration/wait.py +467 -0
  90. gobby-0.2.7/src/gobby/mcp_proxy/tools/sessions/__init__.py +14 -0
  91. gobby-0.2.7/src/gobby/mcp_proxy/tools/sessions/_commits.py +232 -0
  92. gobby-0.2.7/src/gobby/mcp_proxy/tools/sessions/_crud.py +253 -0
  93. gobby-0.2.7/src/gobby/mcp_proxy/tools/sessions/_factory.py +63 -0
  94. gobby-0.2.7/src/gobby/mcp_proxy/tools/sessions/_handoff.py +499 -0
  95. gobby-0.2.7/src/gobby/mcp_proxy/tools/sessions/_messages.py +138 -0
  96. gobby-0.2.7/src/gobby/mcp_proxy/tools/skills/__init__.py +616 -0
  97. gobby-0.2.7/src/gobby/mcp_proxy/tools/spawn_agent.py +417 -0
  98. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/task_orchestration.py +7 -0
  99. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/task_readiness.py +14 -0
  100. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/task_sync.py +1 -1
  101. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_context.py +0 -20
  102. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_crud.py +91 -4
  103. gobby-0.2.7/src/gobby/mcp_proxy/tools/tasks/_expansion.py +348 -0
  104. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_factory.py +6 -16
  105. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_lifecycle.py +110 -45
  106. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_lifecycle_validation.py +18 -29
  107. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/workflows.py +1 -1
  108. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/worktrees.py +0 -338
  109. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/backends/__init__.py +6 -1
  110. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/backends/mem0.py +6 -1
  111. gobby-0.2.7/src/gobby/memory/extractor.py +477 -0
  112. gobby-0.2.7/src/gobby/memory/ingestion/__init__.py +5 -0
  113. gobby-0.2.7/src/gobby/memory/ingestion/multimodal.py +221 -0
  114. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/manager.py +73 -285
  115. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/search/__init__.py +10 -0
  116. gobby-0.2.7/src/gobby/memory/search/coordinator.py +248 -0
  117. gobby-0.2.7/src/gobby/memory/services/__init__.py +5 -0
  118. gobby-0.2.7/src/gobby/memory/services/crossref.py +142 -0
  119. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/prompts/loader.py +5 -2
  120. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/runner.py +37 -16
  121. gobby-0.2.7/src/gobby/search/__init__.py +65 -0
  122. gobby-0.2.7/src/gobby/search/backends/__init__.py +159 -0
  123. gobby-0.2.7/src/gobby/search/backends/embedding.py +225 -0
  124. gobby-0.2.7/src/gobby/search/embeddings.py +238 -0
  125. gobby-0.2.7/src/gobby/search/models.py +148 -0
  126. gobby-0.2.7/src/gobby/search/unified.py +496 -0
  127. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/http.py +24 -12
  128. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/routes/admin.py +294 -0
  129. gobby-0.2.7/src/gobby/servers/routes/mcp/endpoints/__init__.py +61 -0
  130. gobby-0.2.7/src/gobby/servers/routes/mcp/endpoints/discovery.py +405 -0
  131. gobby-0.2.7/src/gobby/servers/routes/mcp/endpoints/execution.py +568 -0
  132. gobby-0.2.7/src/gobby/servers/routes/mcp/endpoints/registry.py +378 -0
  133. gobby-0.2.7/src/gobby/servers/routes/mcp/endpoints/server.py +304 -0
  134. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/routes/mcp/hooks.py +1 -1
  135. gobby-0.2.7/src/gobby/servers/routes/mcp/tools.py +68 -0
  136. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/websocket.py +2 -2
  137. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/analyzer.py +2 -0
  138. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/lifecycle.py +1 -1
  139. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/processor.py +10 -0
  140. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/transcripts/base.py +2 -0
  141. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/transcripts/claude.py +79 -10
  142. gobby-0.2.7/src/gobby/skills/__init__.py +91 -0
  143. gobby-0.2.7/src/gobby/skills/loader.py +685 -0
  144. gobby-0.2.7/src/gobby/skills/manager.py +384 -0
  145. gobby-0.2.7/src/gobby/skills/parser.py +286 -0
  146. gobby-0.2.7/src/gobby/skills/search.py +463 -0
  147. gobby-0.2.7/src/gobby/skills/sync.py +119 -0
  148. gobby-0.2.7/src/gobby/skills/updater.py +385 -0
  149. gobby-0.2.7/src/gobby/skills/validator.py +368 -0
  150. gobby-0.2.7/src/gobby/storage/clones.py +378 -0
  151. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/database.py +1 -1
  152. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/memories.py +43 -13
  153. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/migrations.py +162 -201
  154. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/sessions.py +116 -7
  155. gobby-0.2.7/src/gobby/storage/skills.py +782 -0
  156. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_crud.py +4 -4
  157. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_lifecycle.py +57 -7
  158. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_manager.py +14 -5
  159. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_models.py +8 -3
  160. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sync/memories.py +40 -5
  161. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sync/tasks.py +83 -6
  162. gobby-0.2.7/src/gobby/tasks/__init__.py +7 -0
  163. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/external_validator.py +1 -1
  164. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/validation.py +46 -35
  165. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tools/summarizer.py +91 -10
  166. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/api_client.py +4 -7
  167. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/app.py +5 -3
  168. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/orchestrator.py +1 -2
  169. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/tasks.py +2 -4
  170. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/ws_client.py +1 -1
  171. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/daemon_client.py +2 -2
  172. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/project_context.py +2 -3
  173. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/status.py +13 -0
  174. gobby-0.2.7/src/gobby/workflows/actions.py +396 -0
  175. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/artifact_actions.py +31 -0
  176. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/autonomous_actions.py +11 -0
  177. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/context_actions.py +93 -1
  178. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/detection_helpers.py +115 -31
  179. gobby-0.2.7/src/gobby/workflows/enforcement/__init__.py +47 -0
  180. gobby-0.2.7/src/gobby/workflows/enforcement/blocking.py +269 -0
  181. gobby-0.2.7/src/gobby/workflows/enforcement/commit_policy.py +283 -0
  182. gobby-0.2.7/src/gobby/workflows/enforcement/handlers.py +269 -0
  183. gobby-0.2.5/src/gobby/workflows/task_enforcement_actions.py → gobby-0.2.7/src/gobby/workflows/enforcement/task_policy.py +29 -388
  184. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/engine.py +13 -2
  185. gobby-0.2.7/src/gobby/workflows/git_utils.py +202 -0
  186. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/lifecycle_evaluator.py +29 -1
  187. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/llm_actions.py +30 -0
  188. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/loader.py +19 -6
  189. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/mcp_actions.py +20 -1
  190. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/memory_actions.py +154 -0
  191. gobby-0.2.7/src/gobby/workflows/safe_evaluator.py +183 -0
  192. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/session_actions.py +44 -0
  193. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/state_actions.py +60 -1
  194. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/stop_signal_actions.py +55 -0
  195. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/summary_actions.py +111 -1
  196. gobby-0.2.7/src/gobby/workflows/task_sync_actions.py +347 -0
  197. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/todo_actions.py +34 -1
  198. gobby-0.2.7/src/gobby/workflows/webhook_actions.py +185 -0
  199. {gobby-0.2.5 → gobby-0.2.7}/src/gobby.egg-info/PKG-INFO +87 -21
  200. {gobby-0.2.5 → gobby-0.2.7}/src/gobby.egg-info/SOURCES.txt +74 -44
  201. {gobby-0.2.5 → gobby-0.2.7}/src/gobby.egg-info/requires.txt +4 -1
  202. gobby-0.2.7/tests/test_import_pathing_trap.py +37 -0
  203. {gobby-0.2.5 → gobby-0.2.7}/tests/test_runner.py +14 -77
  204. gobby-0.2.5/src/gobby/adapters/codex.py +0 -1292
  205. gobby-0.2.5/src/gobby/config/__init__.py +0 -129
  206. gobby-0.2.5/src/gobby/install/claude/commands/gobby/bug.md +0 -51
  207. gobby-0.2.5/src/gobby/install/claude/commands/gobby/chore.md +0 -51
  208. gobby-0.2.5/src/gobby/install/claude/commands/gobby/epic.md +0 -52
  209. gobby-0.2.5/src/gobby/install/claude/commands/gobby/eval.md +0 -235
  210. gobby-0.2.5/src/gobby/install/claude/commands/gobby/feat.md +0 -49
  211. gobby-0.2.5/src/gobby/install/claude/commands/gobby/nit.md +0 -52
  212. gobby-0.2.5/src/gobby/install/claude/commands/gobby/ref.md +0 -52
  213. gobby-0.2.5/src/gobby/install/codex/prompts/forget.md +0 -7
  214. gobby-0.2.5/src/gobby/install/codex/prompts/memories.md +0 -7
  215. gobby-0.2.5/src/gobby/install/codex/prompts/recall.md +0 -7
  216. gobby-0.2.5/src/gobby/install/codex/prompts/remember.md +0 -13
  217. gobby-0.2.5/src/gobby/llm/claude_executor.py +0 -503
  218. gobby-0.2.5/src/gobby/llm/codex_executor.py +0 -513
  219. gobby-0.2.5/src/gobby/llm/gemini.py +0 -258
  220. gobby-0.2.5/src/gobby/llm/gemini_executor.py +0 -339
  221. gobby-0.2.5/src/gobby/mcp_proxy/tools/agents.py +0 -1103
  222. gobby-0.2.5/src/gobby/mcp_proxy/tools/session_messages.py +0 -1056
  223. gobby-0.2.5/src/gobby/mcp_proxy/tools/task_expansion.py +0 -591
  224. gobby-0.2.5/src/gobby/prompts/defaults/expansion/system.md +0 -119
  225. gobby-0.2.5/src/gobby/prompts/defaults/expansion/user.md +0 -48
  226. gobby-0.2.5/src/gobby/prompts/defaults/external_validation/agent.md +0 -72
  227. gobby-0.2.5/src/gobby/prompts/defaults/external_validation/external.md +0 -63
  228. gobby-0.2.5/src/gobby/prompts/defaults/external_validation/spawn.md +0 -83
  229. gobby-0.2.5/src/gobby/prompts/defaults/external_validation/system.md +0 -6
  230. gobby-0.2.5/src/gobby/prompts/defaults/features/import_mcp.md +0 -22
  231. gobby-0.2.5/src/gobby/prompts/defaults/features/import_mcp_github.md +0 -17
  232. gobby-0.2.5/src/gobby/prompts/defaults/features/import_mcp_search.md +0 -16
  233. gobby-0.2.5/src/gobby/prompts/defaults/features/recommend_tools.md +0 -32
  234. gobby-0.2.5/src/gobby/prompts/defaults/features/recommend_tools_hybrid.md +0 -35
  235. gobby-0.2.5/src/gobby/prompts/defaults/features/recommend_tools_llm.md +0 -30
  236. gobby-0.2.5/src/gobby/prompts/defaults/features/server_description.md +0 -20
  237. gobby-0.2.5/src/gobby/prompts/defaults/features/server_description_system.md +0 -6
  238. gobby-0.2.5/src/gobby/prompts/defaults/features/task_description.md +0 -31
  239. gobby-0.2.5/src/gobby/prompts/defaults/features/task_description_system.md +0 -6
  240. gobby-0.2.5/src/gobby/prompts/defaults/features/tool_summary.md +0 -17
  241. gobby-0.2.5/src/gobby/prompts/defaults/features/tool_summary_system.md +0 -6
  242. gobby-0.2.5/src/gobby/prompts/defaults/research/step.md +0 -58
  243. gobby-0.2.5/src/gobby/prompts/defaults/validation/criteria.md +0 -47
  244. gobby-0.2.5/src/gobby/prompts/defaults/validation/validate.md +0 -38
  245. gobby-0.2.5/src/gobby/search/__init__.py +0 -23
  246. gobby-0.2.5/src/gobby/servers/routes/mcp/tools.py +0 -1337
  247. gobby-0.2.5/src/gobby/storage/migrations_legacy.py +0 -1359
  248. gobby-0.2.5/src/gobby/tasks/__init__.py +0 -8
  249. gobby-0.2.5/src/gobby/tasks/context.py +0 -747
  250. gobby-0.2.5/src/gobby/tasks/criteria.py +0 -342
  251. gobby-0.2.5/src/gobby/tasks/expansion.py +0 -626
  252. gobby-0.2.5/src/gobby/tasks/prompts/expand.py +0 -327
  253. gobby-0.2.5/src/gobby/tasks/research.py +0 -421
  254. gobby-0.2.5/src/gobby/tasks/tdd.py +0 -352
  255. gobby-0.2.5/src/gobby/workflows/actions.py +0 -1310
  256. gobby-0.2.5/src/gobby/workflows/git_utils.py +0 -96
  257. {gobby-0.2.5 → gobby-0.2.7}/LICENSE.md +0 -0
  258. {gobby-0.2.5 → gobby-0.2.7}/setup.cfg +0 -0
  259. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/adapters/base.py +0 -0
  260. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/adapters/gemini.py +0 -0
  261. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/__init__.py +0 -0
  262. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/codex_session.py +0 -0
  263. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/constants.py +0 -0
  264. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/context.py +0 -0
  265. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/gemini_session.py +0 -0
  266. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/registry.py +0 -0
  267. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/session.py +0 -0
  268. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawners/base.py +0 -0
  269. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawners/cross_platform.py +0 -0
  270. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawners/linux.py +0 -0
  271. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawners/macos.py +0 -0
  272. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawners/windows.py +0 -0
  273. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/tty_config.py +0 -0
  274. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/autonomous/__init__.py +0 -0
  275. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/autonomous/progress_tracker.py +0 -0
  276. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/autonomous/stop_registry.py +0 -0
  277. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/autonomous/stuck_detector.py +0 -0
  278. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/__main__.py +0 -0
  279. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/agents.py +0 -0
  280. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/artifacts.py +0 -0
  281. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/daemon.py +0 -0
  282. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/extensions.py +0 -0
  283. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/github.py +0 -0
  284. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/init.py +0 -0
  285. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/installers/__init__.py +0 -0
  286. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/installers/git_hooks.py +0 -0
  287. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/linear.py +0 -0
  288. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/mcp.py +0 -0
  289. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/mcp_proxy.py +0 -0
  290. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/memory.py +0 -0
  291. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/merge.py +0 -0
  292. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/projects.py +0 -0
  293. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/__init__.py +0 -0
  294. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/_utils.py +0 -0
  295. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/commits.py +0 -0
  296. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/deps.py +0 -0
  297. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/labels.py +0 -0
  298. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/search.py +0 -0
  299. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/workflows.py +0 -0
  300. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/worktrees.py +0 -0
  301. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/llm_providers.py +0 -0
  302. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/logging.py +0 -0
  303. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/mcp.py +0 -0
  304. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/persistence.py +0 -0
  305. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/sessions.py +0 -0
  306. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/artifact_capture.py +0 -0
  307. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/broadcaster.py +0 -0
  308. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/events.py +0 -0
  309. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/git.py +0 -0
  310. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/health_monitor.py +0 -0
  311. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/hook_types.py +0 -0
  312. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/session_coordinator.py +0 -0
  313. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/verification_runner.py +0 -0
  314. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/claude/hooks/HOOK_SCHEMAS.md +0 -0
  315. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/claude/hooks/validate_settings.py +0 -0
  316. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/claude/hooks-template.json +0 -0
  317. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/gemini/hooks-template.json +0 -0
  318. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/shared/plugins/code_guardian.py +0 -0
  319. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/shared/plugins/example_notify.py +0 -0
  320. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/integrations/__init__.py +0 -0
  321. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/integrations/github.py +0 -0
  322. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/integrations/linear.py +0 -0
  323. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/__init__.py +0 -0
  324. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/base.py +0 -0
  325. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/codex.py +0 -0
  326. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/factory.py +0 -0
  327. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/litellm.py +0 -0
  328. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/service.py +0 -0
  329. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/__init__.py +0 -0
  330. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/actions.py +0 -0
  331. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/daemon_control.py +0 -0
  332. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/lazy.py +0 -0
  333. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/manager.py +0 -0
  334. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/metrics.py +0 -0
  335. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/schema_hash.py +0 -0
  336. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/semantic_search.py +0 -0
  337. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/services/__init__.py +0 -0
  338. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/services/fallback.py +0 -0
  339. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/services/server_mgmt.py +0 -0
  340. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/services/system.py +0 -0
  341. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/services/tool_filter.py +0 -0
  342. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/artifacts.py +0 -0
  343. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/hub.py +0 -0
  344. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/internal.py +0 -0
  345. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/merge.py +0 -0
  346. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/orchestration/monitor.py +0 -0
  347. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/orchestration/orchestrate.py +0 -0
  348. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/orchestration/review.py +0 -0
  349. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/orchestration/utils.py +0 -0
  350. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/task_dependencies.py +0 -0
  351. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/task_github.py +0 -0
  352. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/task_linear.py +0 -0
  353. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/task_validation.py +0 -0
  354. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/__init__.py +0 -0
  355. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_helpers.py +0 -0
  356. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_resolution.py +0 -0
  357. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_search.py +0 -0
  358. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_session.py +0 -0
  359. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/transports/__init__.py +0 -0
  360. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/transports/base.py +0 -0
  361. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/transports/factory.py +0 -0
  362. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/transports/http.py +0 -0
  363. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/transports/stdio.py +0 -0
  364. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/transports/websocket.py +0 -0
  365. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/backends/memu.py +0 -0
  366. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/backends/null.py +0 -0
  367. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/backends/openmemory.py +0 -0
  368. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/backends/sqlite.py +0 -0
  369. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/context.py +0 -0
  370. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/protocol.py +0 -0
  371. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/search/text.py +0 -0
  372. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/viz.py +0 -0
  373. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/prompts/__init__.py +0 -0
  374. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/prompts/models.py +0 -0
  375. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/py.typed +0 -0
  376. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/search/protocol.py +0 -0
  377. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/search/tfidf.py +0 -0
  378. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/__init__.py +0 -0
  379. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/models.py +0 -0
  380. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/routes/__init__.py +0 -0
  381. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/routes/dependencies.py +0 -0
  382. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/routes/mcp/__init__.py +0 -0
  383. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/routes/mcp/plugins.py +0 -0
  384. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/routes/mcp/webhooks.py +0 -0
  385. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/routes/sessions.py +0 -0
  386. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/__init__.py +0 -0
  387. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/manager.py +0 -0
  388. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/summary.py +0 -0
  389. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/transcripts/__init__.py +0 -0
  390. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/transcripts/codex.py +0 -0
  391. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/transcripts/gemini.py +0 -0
  392. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/__init__.py +0 -0
  393. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/agents.py +0 -0
  394. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/artifact_classifier.py +0 -0
  395. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/artifacts.py +0 -0
  396. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/compaction.py +0 -0
  397. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/inter_session_messages.py +0 -0
  398. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/mcp.py +0 -0
  399. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/merge_resolutions.py +0 -0
  400. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/projects.py +0 -0
  401. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/session_messages.py +0 -0
  402. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/session_tasks.py +0 -0
  403. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/task_dependencies.py +0 -0
  404. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/__init__.py +0 -0
  405. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_aggregates.py +0 -0
  406. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_id.py +0 -0
  407. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_ordering.py +0 -0
  408. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_path_cache.py +0 -0
  409. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_queries.py +0 -0
  410. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_search.py +0 -0
  411. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/workflow_audit.py +0 -0
  412. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/worktrees.py +0 -0
  413. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sync/__init__.py +0 -0
  414. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sync/github.py +0 -0
  415. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sync/linear.py +0 -0
  416. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/build_verification.py +0 -0
  417. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/commits.py +0 -0
  418. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/enhanced_validator.py +0 -0
  419. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/escalation.py +0 -0
  420. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/issue_extraction.py +0 -0
  421. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/tree_builder.py +0 -0
  422. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/validation_history.py +0 -0
  423. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/validation_models.py +0 -0
  424. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tools/__init__.py +0 -0
  425. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/__init__.py +0 -0
  426. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/__init__.py +0 -0
  427. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/agents.py +0 -0
  428. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/chat.py +0 -0
  429. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/dashboard.py +0 -0
  430. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/memory.py +0 -0
  431. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/metrics.py +0 -0
  432. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/sessions.py +0 -0
  433. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/workflows.py +0 -0
  434. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/worktrees.py +0 -0
  435. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/widgets/__init__.py +0 -0
  436. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/widgets/chat.py +0 -0
  437. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/widgets/conductor.py +0 -0
  438. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/widgets/menu.py +0 -0
  439. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/widgets/message_panel.py +0 -0
  440. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/widgets/review_gate.py +0 -0
  441. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/widgets/task_tree.py +0 -0
  442. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/widgets/token_budget.py +0 -0
  443. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/__init__.py +0 -0
  444. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/git.py +0 -0
  445. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/id.py +0 -0
  446. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/json_helpers.py +0 -0
  447. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/logging.py +0 -0
  448. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/machine_id.py +0 -0
  449. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/metrics.py +0 -0
  450. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/project_init.py +0 -0
  451. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/validation.py +0 -0
  452. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/version.py +0 -0
  453. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/__init__.py +0 -0
  454. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/approval_flow.py +0 -0
  455. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/audit_helpers.py +0 -0
  456. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/definitions.py +0 -0
  457. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/evaluator.py +0 -0
  458. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/hooks.py +0 -0
  459. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/premature_stop.py +0 -0
  460. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/state_manager.py +0 -0
  461. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/task_actions.py +0 -0
  462. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/templates.py +0 -0
  463. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/webhook.py +0 -0
  464. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/webhook_executor.py +0 -0
  465. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/worktrees/__init__.py +0 -0
  466. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/worktrees/git.py +0 -0
  467. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/worktrees/merge/__init__.py +0 -0
  468. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/worktrees/merge/conflict_parser.py +0 -0
  469. {gobby-0.2.5 → gobby-0.2.7}/src/gobby/worktrees/merge/resolver.py +0 -0
  470. {gobby-0.2.5 → gobby-0.2.7}/src/gobby.egg-info/dependency_links.txt +0 -0
  471. {gobby-0.2.5 → gobby-0.2.7}/src/gobby.egg-info/entry_points.txt +0 -0
  472. {gobby-0.2.5 → gobby-0.2.7}/src/gobby.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gobby
3
- Version: 0.2.5
3
+ Version: 0.2.7
4
4
  Summary: A local-first daemon to unify your AI coding tools. Session tracking and handoffs across Claude Code, Gemini CLI, and Codex. An MCP proxy that discovers tools without flooding context. Task management with dependencies, validation, and TDD expansion. Agent spawning and worktree orchestration. Persistent memory, extensible workflows, and hooks.
5
5
  Author-email: Josh Wilhelmi <josh@gobby.ai>
6
6
  License-Expression: MIT
@@ -38,8 +38,10 @@ Requires-Dist: msgspec>=0.20.0
38
38
  Requires-Dist: gitingest>=0.3.1
39
39
  Requires-Dist: scikit-learn>=1.0.0
40
40
  Requires-Dist: textual>=7.3.0
41
- Requires-Dist: mem0ai
42
41
  Requires-Dist: memu-py>=1.0.0
42
+ Requires-Dist: python-multipart>=0.0.22
43
+ Provides-Extra: mem0
44
+ Requires-Dist: mem0ai; extra == "mem0"
43
45
  Dynamic: license-file
44
46
 
45
47
  <!-- markdownlint-disable MD033 MD041 -->
@@ -149,35 +151,92 @@ call_tool("gobby-worktrees", "spawn_agent_in_worktree", {
149
151
  })
150
152
  ```
151
153
 
152
- ## Quick Start
154
+ ### 🔗 Claude Code Task Integration
155
+
156
+ Gobby transparently intercepts Claude Code's built-in task system (TaskCreate, TaskUpdate, etc.) and syncs operations to Gobby's persistent task store. Benefits:
157
+
158
+ - **Tasks persist** across sessions (unlike CC's session-scoped tasks)
159
+ - **Commit linking** — tasks auto-link to git commits
160
+ - **Validation gates** — define criteria for task completion
161
+ - **LLM expansion** — break complex tasks into subtasks
162
+
163
+ No configuration needed — just use Claude Code's native task tools and Gobby handles the rest.
164
+
165
+ ### 📚 Skills System
166
+
167
+ Reusable instructions that teach agents how to perform specific tasks. Compatible with the [Agent Skills specification](https://agentskills.io) and SkillPort.
168
+
169
+ - **Core skills** bundled with Gobby for tasks, sessions, memory, workflows
170
+ - **Project skills** in `.gobby/skills/` for team-specific patterns
171
+ - **Install from anywhere** — GitHub repos, local paths, ZIP archives
172
+ - **Search and discovery** — TF-IDF and semantic search across your skill library
173
+
174
+ ```bash
175
+ # Install a skill from GitHub
176
+ gobby skills install github:user/repo/skills/my-skill
177
+
178
+ # Search for relevant skills
179
+ gobby skills search "testing coverage"
180
+ ```
181
+
182
+ ## Installation
183
+
184
+ ### Try it instantly
185
+ ```bash
186
+ uvx gobby --help
187
+ ```
153
188
 
189
+ ### Install globally
154
190
  ```bash
155
- # Clone and install
156
- git clone https://github.com/GobbyAI/gobby.git
157
- cd gobby
158
- uv sync
191
+ # With uv (recommended)
192
+ uv tool install gobby
159
193
 
194
+ # With pipx
195
+ pipx install gobby
196
+
197
+ # With pip
198
+ pip install gobby
199
+ ```
200
+
201
+ **Requirements:** Python 3.13+
202
+
203
+ ## Quick Start
204
+
205
+ ```bash
160
206
  # Start the daemon
161
- uv run gobby start
207
+ gobby start
162
208
 
163
209
  # In your project directory
164
- uv run gobby init
165
- uv run gobby install # Installs hooks for detected CLIs
166
-
167
- # Optional: install globally
168
- uv pip install -e .
210
+ gobby init
211
+ gobby install # Installs hooks for detected CLIs
169
212
  ```
170
213
 
171
- **Requirements:** Python 3.11+, [uv](https://github.com/astral-sh/uv), at least one AI CLI ([Claude Code](https://claude.ai/code), [Gemini CLI](https://github.com/google-gemini/gemini-cli), or [Codex CLI](https://github.com/openai/codex))
214
+ **Requirements:** At least one AI CLI ([Claude Code](https://claude.ai/code), [Gemini CLI](https://github.com/google-gemini/gemini-cli), or [Codex CLI](https://github.com/openai/codex))
172
215
 
173
216
  Works with your Claude, Gemini, or Codex subscriptions—or bring your own API keys. Local model support coming soon.
174
217
 
175
218
  ## Configure Your AI CLI
176
219
 
177
- Add Gobby as an MCP server:
220
+ Add Gobby as an MCP server. Choose the `command` and `args` that match your installation:
221
+
222
+ - **pip/pipx install**: `"command": "gobby"`, `"args": ["mcp-server"]`
223
+ - **uv tool install**: `"command": "uv"`, `"args": ["run", "gobby", "mcp-server"]`
178
224
 
179
225
  **Claude Code** (`.mcp.json` or `~/.claude.json`):
180
226
 
227
+ ```json
228
+ {
229
+ "mcpServers": {
230
+ "gobby": {
231
+ "command": "gobby",
232
+ "args": ["mcp-server"]
233
+ }
234
+ }
235
+ }
236
+ ```
237
+
238
+ Or with uv:
239
+
181
240
  ```json
182
241
  {
183
242
  "mcpServers": {
@@ -195,8 +254,8 @@ Add Gobby as an MCP server:
195
254
  {
196
255
  "mcpServers": {
197
256
  "gobby": {
198
- "command": "uv",
199
- "args": ["run", "gobby", "mcp-server"]
257
+ "command": "gobby",
258
+ "args": ["mcp-server"]
200
259
  }
201
260
  }
202
261
  }
@@ -206,8 +265,8 @@ Add Gobby as an MCP server:
206
265
 
207
266
  ```toml
208
267
  [mcp_servers.gobby]
209
- command = "uv"
210
- args = ["run", "gobby", "mcp-server"]
268
+ command = "gobby"
269
+ args = ["mcp-server"]
211
270
  ```
212
271
 
213
272
  **Gemini Antigravity** (`~/.gemini/antigravity/mcp_config.json`):
@@ -256,7 +315,7 @@ AI CLI (Claude/Gemini/Codex)
256
315
  Hook Dispatcher
257
316
  │ HTTP POST
258
317
 
259
- Gobby Daemon (:8765)
318
+ Gobby Daemon (:60887)
260
319
 
261
320
  ┌────┴────┐
262
321
  ▼ ▼
@@ -298,9 +357,12 @@ Gobby exposes tools via MCP that your AI coding assistant can use:
298
357
  **Worktrees** (`gobby-worktrees`)
299
358
  `create_worktree`, `spawn_agent_in_worktree`, `list_worktrees`
300
359
 
301
- **MCP Proxy**
360
+ **MCP Proxy**
302
361
  `list_mcp_servers`, `add_mcp_server`, `import_mcp_server`, `list_tools`, `get_tool_schema`, `call_tool`, `recommend_tools`
303
362
 
363
+ **Skills** (`gobby-skills`)
364
+ `list_skills`, `get_skill`, `search_skills`, `install_skill`, `remove_skill`, `update_skill`
365
+
304
366
  ## For AI Agents
305
367
 
306
368
  **If you're an AI agent reading this:** Check out [docs/AGENT_INSTRUCTIONS.md](docs/AGENT_INSTRUCTIONS.md) for your operating procedures, and [CLAUDE.md](CLAUDE.md) for Claude Code-specific guidance.
@@ -317,6 +379,10 @@ See [ROADMAP.md](ROADMAP.md) for the full plan, but highlights:
317
379
 
318
380
  **Vision:** Always local first, but Pro cloud features to keep the lights on: Fleet management (manage sessions across multiple machines), Plugin ecosystem, Team workflows, Enterprise hardening
319
381
 
382
+ ## Changelog
383
+
384
+ See [CHANGELOG.md](CHANGELOG.md) for release history and detailed changes.
385
+
320
386
  ## Development
321
387
 
322
388
  ```bash
@@ -105,35 +105,92 @@ call_tool("gobby-worktrees", "spawn_agent_in_worktree", {
105
105
  })
106
106
  ```
107
107
 
108
- ## Quick Start
108
+ ### 🔗 Claude Code Task Integration
109
+
110
+ Gobby transparently intercepts Claude Code's built-in task system (TaskCreate, TaskUpdate, etc.) and syncs operations to Gobby's persistent task store. Benefits:
111
+
112
+ - **Tasks persist** across sessions (unlike CC's session-scoped tasks)
113
+ - **Commit linking** — tasks auto-link to git commits
114
+ - **Validation gates** — define criteria for task completion
115
+ - **LLM expansion** — break complex tasks into subtasks
116
+
117
+ No configuration needed — just use Claude Code's native task tools and Gobby handles the rest.
118
+
119
+ ### 📚 Skills System
120
+
121
+ Reusable instructions that teach agents how to perform specific tasks. Compatible with the [Agent Skills specification](https://agentskills.io) and SkillPort.
122
+
123
+ - **Core skills** bundled with Gobby for tasks, sessions, memory, workflows
124
+ - **Project skills** in `.gobby/skills/` for team-specific patterns
125
+ - **Install from anywhere** — GitHub repos, local paths, ZIP archives
126
+ - **Search and discovery** — TF-IDF and semantic search across your skill library
127
+
128
+ ```bash
129
+ # Install a skill from GitHub
130
+ gobby skills install github:user/repo/skills/my-skill
131
+
132
+ # Search for relevant skills
133
+ gobby skills search "testing coverage"
134
+ ```
135
+
136
+ ## Installation
137
+
138
+ ### Try it instantly
139
+ ```bash
140
+ uvx gobby --help
141
+ ```
109
142
 
143
+ ### Install globally
110
144
  ```bash
111
- # Clone and install
112
- git clone https://github.com/GobbyAI/gobby.git
113
- cd gobby
114
- uv sync
145
+ # With uv (recommended)
146
+ uv tool install gobby
115
147
 
148
+ # With pipx
149
+ pipx install gobby
150
+
151
+ # With pip
152
+ pip install gobby
153
+ ```
154
+
155
+ **Requirements:** Python 3.13+
156
+
157
+ ## Quick Start
158
+
159
+ ```bash
116
160
  # Start the daemon
117
- uv run gobby start
161
+ gobby start
118
162
 
119
163
  # In your project directory
120
- uv run gobby init
121
- uv run gobby install # Installs hooks for detected CLIs
122
-
123
- # Optional: install globally
124
- uv pip install -e .
164
+ gobby init
165
+ gobby install # Installs hooks for detected CLIs
125
166
  ```
126
167
 
127
- **Requirements:** Python 3.11+, [uv](https://github.com/astral-sh/uv), at least one AI CLI ([Claude Code](https://claude.ai/code), [Gemini CLI](https://github.com/google-gemini/gemini-cli), or [Codex CLI](https://github.com/openai/codex))
168
+ **Requirements:** At least one AI CLI ([Claude Code](https://claude.ai/code), [Gemini CLI](https://github.com/google-gemini/gemini-cli), or [Codex CLI](https://github.com/openai/codex))
128
169
 
129
170
  Works with your Claude, Gemini, or Codex subscriptions—or bring your own API keys. Local model support coming soon.
130
171
 
131
172
  ## Configure Your AI CLI
132
173
 
133
- Add Gobby as an MCP server:
174
+ Add Gobby as an MCP server. Choose the `command` and `args` that match your installation:
175
+
176
+ - **pip/pipx install**: `"command": "gobby"`, `"args": ["mcp-server"]`
177
+ - **uv tool install**: `"command": "uv"`, `"args": ["run", "gobby", "mcp-server"]`
134
178
 
135
179
  **Claude Code** (`.mcp.json` or `~/.claude.json`):
136
180
 
181
+ ```json
182
+ {
183
+ "mcpServers": {
184
+ "gobby": {
185
+ "command": "gobby",
186
+ "args": ["mcp-server"]
187
+ }
188
+ }
189
+ }
190
+ ```
191
+
192
+ Or with uv:
193
+
137
194
  ```json
138
195
  {
139
196
  "mcpServers": {
@@ -151,8 +208,8 @@ Add Gobby as an MCP server:
151
208
  {
152
209
  "mcpServers": {
153
210
  "gobby": {
154
- "command": "uv",
155
- "args": ["run", "gobby", "mcp-server"]
211
+ "command": "gobby",
212
+ "args": ["mcp-server"]
156
213
  }
157
214
  }
158
215
  }
@@ -162,8 +219,8 @@ Add Gobby as an MCP server:
162
219
 
163
220
  ```toml
164
221
  [mcp_servers.gobby]
165
- command = "uv"
166
- args = ["run", "gobby", "mcp-server"]
222
+ command = "gobby"
223
+ args = ["mcp-server"]
167
224
  ```
168
225
 
169
226
  **Gemini Antigravity** (`~/.gemini/antigravity/mcp_config.json`):
@@ -212,7 +269,7 @@ AI CLI (Claude/Gemini/Codex)
212
269
  Hook Dispatcher
213
270
  │ HTTP POST
214
271
 
215
- Gobby Daemon (:8765)
272
+ Gobby Daemon (:60887)
216
273
 
217
274
  ┌────┴────┐
218
275
  ▼ ▼
@@ -254,9 +311,12 @@ Gobby exposes tools via MCP that your AI coding assistant can use:
254
311
  **Worktrees** (`gobby-worktrees`)
255
312
  `create_worktree`, `spawn_agent_in_worktree`, `list_worktrees`
256
313
 
257
- **MCP Proxy**
314
+ **MCP Proxy**
258
315
  `list_mcp_servers`, `add_mcp_server`, `import_mcp_server`, `list_tools`, `get_tool_schema`, `call_tool`, `recommend_tools`
259
316
 
317
+ **Skills** (`gobby-skills`)
318
+ `list_skills`, `get_skill`, `search_skills`, `install_skill`, `remove_skill`, `update_skill`
319
+
260
320
  ## For AI Agents
261
321
 
262
322
  **If you're an AI agent reading this:** Check out [docs/AGENT_INSTRUCTIONS.md](docs/AGENT_INSTRUCTIONS.md) for your operating procedures, and [CLAUDE.md](CLAUDE.md) for Claude Code-specific guidance.
@@ -273,6 +333,10 @@ See [ROADMAP.md](ROADMAP.md) for the full plan, but highlights:
273
333
 
274
334
  **Vision:** Always local first, but Pro cloud features to keep the lights on: Fleet management (manage sessions across multiple machines), Plugin ecosystem, Team workflows, Enterprise hardening
275
335
 
336
+ ## Changelog
337
+
338
+ See [CHANGELOG.md](CHANGELOG.md) for release history and detailed changes.
339
+
276
340
  ## Development
277
341
 
278
342
  ```bash
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "gobby"
3
- version = "0.2.5"
3
+ version = "0.2.7"
4
4
  description = "A local-first daemon to unify your AI coding tools. Session tracking and handoffs across Claude Code, Gemini CLI, and Codex. An MCP proxy that discovers tools without flooding context. Task management with dependencies, validation, and TDD expansion. Agent spawning and worktree orchestration. Persistent memory, extensible workflows, and hooks."
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -40,10 +40,15 @@ dependencies = [
40
40
  # scikit-learn for TF-IDF memory search
41
41
  "scikit-learn>=1.0.0",
42
42
  "textual>=7.3.0",
43
- "mem0ai",
43
+ # mem0ai moved to optional [mem0] extra due to CVE-2026-0994 (protobuf<=6.33.4 vulnerable)
44
44
  "memu-py>=1.0.0",
45
+ # python-multipart 0.0.21 has CVE-2026-24486 - pin to fixed version
46
+ "python-multipart>=0.0.22",
45
47
  ]
46
48
 
49
+ [project.optional-dependencies]
50
+ mem0 = ["mem0ai"]
51
+
47
52
  [project.scripts]
48
53
  gobby = "gobby.cli:cli"
49
54
 
@@ -90,6 +95,8 @@ markers = [
90
95
  "slow: marks tests as slow (deselect with '-m \"not slow\"')",
91
96
  "integration: marks tests as integration tests",
92
97
  "e2e: marks tests as end-to-end tests",
98
+ "cli: marks tests as CLI command tests",
99
+ "no_config_protection: skip config protection for this test",
93
100
  ]
94
101
  filterwarnings = [
95
102
  # Ignore coroutine warnings from fire-and-forget async patterns in hook/webhook code
@@ -104,6 +111,8 @@ filterwarnings = [
104
111
  "ignore:unclosed database:ResourceWarning:coverage",
105
112
  "ignore:unclosed database:ResourceWarning:unittest.mock",
106
113
  "ignore:unclosed database:ResourceWarning",
114
+ # Ignore fork() deprecation warning from embedded spawner tests (expected on macOS)
115
+ "ignore:This process.*is multi-threaded.*use of fork:DeprecationWarning",
107
116
  ]
108
117
 
109
118
  [tool.ruff]
@@ -1,3 +1,3 @@
1
1
  """Gobby - Local-first daemon for multi-CLI session management."""
2
2
 
3
- __version__ = "0.2.3"
3
+ __version__ = "0.2.7"
@@ -17,7 +17,8 @@ Adapters:
17
17
 
18
18
  from gobby.adapters.base import BaseAdapter
19
19
  from gobby.adapters.claude_code import ClaudeCodeAdapter
20
- from gobby.adapters.codex import CodexAdapter, CodexAppServerClient, CodexNotifyAdapter
20
+ from gobby.adapters.codex_impl.adapter import CodexAdapter, CodexNotifyAdapter
21
+ from gobby.adapters.codex_impl.client import CodexAppServerClient
21
22
  from gobby.adapters.gemini import GeminiAdapter
22
23
 
23
24
  __all__ = [
@@ -191,11 +191,17 @@ class ClaudeCodeAdapter(BaseAdapter):
191
191
  additional_context_parts.append(response.context)
192
192
 
193
193
  # Add session identifiers from metadata
194
+ # Note: "session_id" in metadata is Gobby's internal platform session ID
195
+ # "external_id" in metadata is the CLI's session UUID
194
196
  if response.metadata:
195
- session_id = response.metadata.get("session_id")
196
- if session_id:
197
+ gobby_session_id = response.metadata.get("session_id")
198
+ external_id = response.metadata.get("external_id")
199
+ if gobby_session_id:
197
200
  # Build context with all available identifiers
198
- context_lines = [f"session_id: {session_id}"]
201
+ # Use clear naming: Gobby Session ID for MCP calls, External ID for transcripts
202
+ context_lines = [f"Gobby Session ID: {gobby_session_id}"]
203
+ if external_id:
204
+ context_lines.append(f"External ID: {external_id}")
199
205
  if response.metadata.get("parent_session_id"):
200
206
  context_lines.append(
201
207
  f"parent_session_id: {response.metadata['parent_session_id']}"
@@ -227,7 +233,10 @@ class ClaudeCodeAdapter(BaseAdapter):
227
233
  additional_context_parts.append("\n".join(context_lines))
228
234
 
229
235
  # Build hookSpecificOutput if we have any context to inject
230
- if additional_context_parts:
236
+ # Only include hookSpecificOutput for hook types that Claude Code's schema accepts
237
+ # Valid hookEventName values: PreToolUse, UserPromptSubmit, PostToolUse
238
+ valid_hook_event_names = {"PreToolUse", "UserPromptSubmit", "PostToolUse"}
239
+ if additional_context_parts and hook_event_name in valid_hook_event_names:
231
240
  result["hookSpecificOutput"] = {
232
241
  "hookEventName": hook_event_name,
233
242
  "additionalContext": "\n\n".join(additional_context_parts),
@@ -0,0 +1,28 @@
1
+ """
2
+ Codex adapter implementation package.
3
+
4
+ This package contains the decomposed implementation of the Codex adapter,
5
+ extracted from the monolithic codex.py using the Strangler Fig pattern.
6
+
7
+ Modules:
8
+ - types.py: Type definitions and data classes
9
+ - protocol.py: Protocol/interface definitions
10
+ - client.py: CodexAppServerClient implementation
11
+ - adapter.py: CodexAdapter and CodexNotifyAdapter implementations
12
+
13
+ Importer analysis (from codex.py):
14
+ - src/gobby/servers/http.py: imports CodexAdapter
15
+ - src/gobby/servers/routes/mcp/hooks.py: imports CodexNotifyAdapter
16
+ - src/gobby/adapters/__init__.py: imports CodexAdapter, CodexAppServerClient, CodexNotifyAdapter
17
+ - tests/adapters/test_codex.py: imports various items for testing
18
+
19
+ Migration strategy:
20
+ 1. Extract types/dataclasses to types.py
21
+ 2. Extract protocol definitions to protocol.py
22
+ 3. Extract CodexAppServerClient to client.py
23
+ 4. Extract adapters to adapter.py
24
+ 5. Update codex.py to re-export from submodules
25
+ """
26
+
27
+ # Phase 3: Placeholders - exports will be added as code is migrated
28
+ __all__: list[str] = []