gobby 0.2.5__tar.gz → 0.2.6__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 (436) hide show
  1. {gobby-0.2.5 → gobby-0.2.6}/PKG-INFO +82 -21
  2. {gobby-0.2.5 → gobby-0.2.6}/README.md +79 -19
  3. {gobby-0.2.5 → gobby-0.2.6}/pyproject.toml +9 -2
  4. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/adapters/claude_code.py +13 -4
  5. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/adapters/codex.py +43 -3
  6. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/runner.py +8 -0
  7. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/__init__.py +6 -0
  8. gobby-0.2.6/src/gobby/cli/clones.py +419 -0
  9. gobby-0.2.6/src/gobby/cli/conductor.py +266 -0
  10. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/installers/antigravity.py +3 -9
  11. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/installers/claude.py +9 -9
  12. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/installers/codex.py +2 -8
  13. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/installers/gemini.py +2 -8
  14. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/installers/shared.py +71 -8
  15. gobby-0.2.6/src/gobby/cli/skills.py +858 -0
  16. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/tasks/ai.py +0 -440
  17. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/tasks/crud.py +44 -6
  18. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/tasks/main.py +0 -4
  19. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/tui.py +2 -2
  20. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/utils.py +3 -3
  21. gobby-0.2.6/src/gobby/clones/__init__.py +13 -0
  22. gobby-0.2.6/src/gobby/clones/git.py +547 -0
  23. gobby-0.2.6/src/gobby/conductor/__init__.py +16 -0
  24. gobby-0.2.6/src/gobby/conductor/alerts.py +135 -0
  25. gobby-0.2.6/src/gobby/conductor/loop.py +164 -0
  26. gobby-0.2.6/src/gobby/conductor/monitors/__init__.py +11 -0
  27. gobby-0.2.6/src/gobby/conductor/monitors/agents.py +116 -0
  28. gobby-0.2.6/src/gobby/conductor/monitors/tasks.py +155 -0
  29. gobby-0.2.6/src/gobby/conductor/pricing.py +234 -0
  30. gobby-0.2.6/src/gobby/conductor/token_tracker.py +160 -0
  31. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/config/app.py +63 -1
  32. gobby-0.2.6/src/gobby/config/search.py +110 -0
  33. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/config/servers.py +1 -1
  34. gobby-0.2.6/src/gobby/config/skills.py +43 -0
  35. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/config/tasks.py +6 -14
  36. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/hooks/event_handlers.py +145 -2
  37. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/hooks/hook_manager.py +48 -2
  38. gobby-0.2.6/src/gobby/hooks/skill_manager.py +130 -0
  39. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/install/claude/hooks/hook_dispatcher.py +4 -4
  40. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/install/codex/hooks/hook_dispatcher.py +1 -1
  41. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/install/gemini/hooks/hook_dispatcher.py +87 -12
  42. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/llm/claude.py +22 -34
  43. gobby-0.2.6/src/gobby/llm/claude_executor.py +293 -0
  44. gobby-0.2.6/src/gobby/llm/codex_executor.py +281 -0
  45. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/llm/executor.py +21 -0
  46. gobby-0.2.6/src/gobby/llm/gemini.py +282 -0
  47. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/llm/litellm_executor.py +143 -6
  48. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/llm/resolver.py +95 -33
  49. gobby-0.2.6/src/gobby/mcp_proxy/instructions.py +54 -0
  50. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/models.py +15 -0
  51. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/registries.py +68 -5
  52. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/server.py +33 -3
  53. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/services/tool_proxy.py +81 -1
  54. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/stdio.py +2 -1
  55. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/__init__.py +0 -2
  56. gobby-0.2.6/src/gobby/mcp_proxy/tools/agent_messaging.py +317 -0
  57. gobby-0.2.6/src/gobby/mcp_proxy/tools/clones.py +903 -0
  58. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/memory.py +1 -24
  59. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/metrics.py +65 -1
  60. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/orchestration/__init__.py +3 -0
  61. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/orchestration/cleanup.py +151 -0
  62. gobby-0.2.6/src/gobby/mcp_proxy/tools/orchestration/wait.py +467 -0
  63. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/session_messages.py +1 -2
  64. gobby-0.2.6/src/gobby/mcp_proxy/tools/skills/__init__.py +631 -0
  65. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/task_orchestration.py +7 -0
  66. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/task_readiness.py +14 -0
  67. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/task_sync.py +1 -1
  68. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/tasks/_context.py +0 -20
  69. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/tasks/_crud.py +91 -4
  70. gobby-0.2.6/src/gobby/mcp_proxy/tools/tasks/_expansion.py +348 -0
  71. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/tasks/_factory.py +6 -16
  72. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/tasks/_lifecycle.py +60 -29
  73. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/tasks/_lifecycle_validation.py +18 -29
  74. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/workflows.py +1 -1
  75. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/worktrees.py +5 -0
  76. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/memory/backends/__init__.py +6 -1
  77. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/memory/backends/mem0.py +6 -1
  78. gobby-0.2.6/src/gobby/memory/extractor.py +477 -0
  79. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/memory/manager.py +11 -2
  80. gobby-0.2.6/src/gobby/prompts/defaults/handoff/compact.md +63 -0
  81. gobby-0.2.6/src/gobby/prompts/defaults/handoff/session_end.md +57 -0
  82. gobby-0.2.6/src/gobby/prompts/defaults/memory/extract.md +61 -0
  83. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/runner.py +37 -16
  84. gobby-0.2.6/src/gobby/search/__init__.py +65 -0
  85. gobby-0.2.6/src/gobby/search/backends/__init__.py +159 -0
  86. gobby-0.2.6/src/gobby/search/backends/embedding.py +225 -0
  87. gobby-0.2.6/src/gobby/search/embeddings.py +238 -0
  88. gobby-0.2.6/src/gobby/search/models.py +148 -0
  89. gobby-0.2.6/src/gobby/search/unified.py +496 -0
  90. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/servers/http.py +23 -8
  91. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/servers/routes/admin.py +280 -0
  92. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/servers/routes/mcp/tools.py +241 -52
  93. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/servers/websocket.py +2 -2
  94. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/sessions/analyzer.py +2 -0
  95. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/sessions/transcripts/base.py +1 -0
  96. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/sessions/transcripts/claude.py +64 -5
  97. gobby-0.2.6/src/gobby/skills/__init__.py +91 -0
  98. gobby-0.2.6/src/gobby/skills/loader.py +685 -0
  99. gobby-0.2.6/src/gobby/skills/manager.py +384 -0
  100. gobby-0.2.6/src/gobby/skills/parser.py +258 -0
  101. gobby-0.2.6/src/gobby/skills/search.py +463 -0
  102. gobby-0.2.6/src/gobby/skills/sync.py +119 -0
  103. gobby-0.2.6/src/gobby/skills/updater.py +385 -0
  104. gobby-0.2.6/src/gobby/skills/validator.py +368 -0
  105. gobby-0.2.6/src/gobby/storage/clones.py +378 -0
  106. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/database.py +1 -1
  107. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/memories.py +43 -13
  108. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/migrations.py +180 -6
  109. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/sessions.py +73 -0
  110. gobby-0.2.6/src/gobby/storage/skills.py +749 -0
  111. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/tasks/_crud.py +4 -4
  112. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/tasks/_lifecycle.py +41 -6
  113. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/tasks/_manager.py +14 -5
  114. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/tasks/_models.py +8 -3
  115. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/sync/memories.py +39 -4
  116. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/sync/tasks.py +83 -6
  117. gobby-0.2.6/src/gobby/tasks/__init__.py +7 -0
  118. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tasks/validation.py +24 -15
  119. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/api_client.py +4 -7
  120. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/app.py +5 -3
  121. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/screens/orchestrator.py +1 -2
  122. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/screens/tasks.py +2 -4
  123. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/ws_client.py +1 -1
  124. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/utils/daemon_client.py +2 -2
  125. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/actions.py +84 -2
  126. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/context_actions.py +43 -0
  127. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/detection_helpers.py +115 -31
  128. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/engine.py +13 -2
  129. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/lifecycle_evaluator.py +29 -1
  130. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/loader.py +19 -6
  131. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/memory_actions.py +74 -0
  132. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/summary_actions.py +17 -0
  133. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/task_enforcement_actions.py +448 -6
  134. {gobby-0.2.5 → gobby-0.2.6}/src/gobby.egg-info/PKG-INFO +82 -21
  135. {gobby-0.2.5 → gobby-0.2.6}/src/gobby.egg-info/SOURCES.txt +42 -12
  136. {gobby-0.2.5 → gobby-0.2.6}/src/gobby.egg-info/requires.txt +3 -1
  137. gobby-0.2.6/tests/test_import_pathing_trap.py +42 -0
  138. {gobby-0.2.5 → gobby-0.2.6}/tests/test_runner.py +14 -77
  139. gobby-0.2.5/src/gobby/install/codex/prompts/forget.md +0 -7
  140. gobby-0.2.5/src/gobby/install/codex/prompts/memories.md +0 -7
  141. gobby-0.2.5/src/gobby/install/codex/prompts/recall.md +0 -7
  142. gobby-0.2.5/src/gobby/install/codex/prompts/remember.md +0 -13
  143. gobby-0.2.5/src/gobby/llm/claude_executor.py +0 -503
  144. gobby-0.2.5/src/gobby/llm/codex_executor.py +0 -513
  145. gobby-0.2.5/src/gobby/llm/gemini.py +0 -258
  146. gobby-0.2.5/src/gobby/llm/gemini_executor.py +0 -339
  147. gobby-0.2.5/src/gobby/mcp_proxy/tools/task_expansion.py +0 -591
  148. gobby-0.2.5/src/gobby/search/__init__.py +0 -23
  149. gobby-0.2.5/src/gobby/tasks/__init__.py +0 -8
  150. gobby-0.2.5/src/gobby/tasks/context.py +0 -747
  151. gobby-0.2.5/src/gobby/tasks/criteria.py +0 -342
  152. gobby-0.2.5/src/gobby/tasks/expansion.py +0 -626
  153. gobby-0.2.5/src/gobby/tasks/prompts/expand.py +0 -327
  154. gobby-0.2.5/src/gobby/tasks/research.py +0 -421
  155. gobby-0.2.5/src/gobby/tasks/tdd.py +0 -352
  156. {gobby-0.2.5 → gobby-0.2.6}/LICENSE.md +0 -0
  157. {gobby-0.2.5 → gobby-0.2.6}/setup.cfg +0 -0
  158. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/__init__.py +0 -0
  159. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/adapters/__init__.py +0 -0
  160. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/adapters/base.py +0 -0
  161. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/adapters/gemini.py +0 -0
  162. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/__init__.py +0 -0
  163. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/codex_session.py +0 -0
  164. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/constants.py +0 -0
  165. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/context.py +0 -0
  166. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/definitions.py +0 -0
  167. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/gemini_session.py +0 -0
  168. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/registry.py +0 -0
  169. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/session.py +0 -0
  170. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/spawn.py +0 -0
  171. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/spawners/__init__.py +0 -0
  172. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/spawners/base.py +0 -0
  173. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/spawners/cross_platform.py +0 -0
  174. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/spawners/embedded.py +0 -0
  175. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/spawners/headless.py +0 -0
  176. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/spawners/linux.py +0 -0
  177. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/spawners/macos.py +0 -0
  178. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/spawners/windows.py +0 -0
  179. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/agents/tty_config.py +0 -0
  180. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/autonomous/__init__.py +0 -0
  181. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/autonomous/progress_tracker.py +0 -0
  182. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/autonomous/stop_registry.py +0 -0
  183. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/autonomous/stuck_detector.py +0 -0
  184. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/__main__.py +0 -0
  185. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/agents.py +0 -0
  186. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/artifacts.py +0 -0
  187. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/daemon.py +0 -0
  188. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/extensions.py +0 -0
  189. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/github.py +0 -0
  190. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/init.py +0 -0
  191. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/install.py +0 -0
  192. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/installers/__init__.py +0 -0
  193. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/installers/git_hooks.py +0 -0
  194. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/linear.py +0 -0
  195. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/mcp.py +0 -0
  196. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/mcp_proxy.py +0 -0
  197. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/memory.py +0 -0
  198. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/merge.py +0 -0
  199. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/projects.py +0 -0
  200. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/sessions.py +0 -0
  201. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/tasks/__init__.py +0 -0
  202. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/tasks/_utils.py +0 -0
  203. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/tasks/commits.py +0 -0
  204. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/tasks/deps.py +0 -0
  205. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/tasks/labels.py +0 -0
  206. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/tasks/search.py +0 -0
  207. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/workflows.py +0 -0
  208. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/cli/worktrees.py +0 -0
  209. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/config/__init__.py +0 -0
  210. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/config/extensions.py +0 -0
  211. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/config/features.py +0 -0
  212. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/config/llm_providers.py +0 -0
  213. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/config/logging.py +0 -0
  214. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/config/mcp.py +0 -0
  215. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/config/persistence.py +0 -0
  216. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/config/sessions.py +0 -0
  217. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/hooks/__init__.py +0 -0
  218. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/hooks/artifact_capture.py +0 -0
  219. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/hooks/broadcaster.py +0 -0
  220. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/hooks/events.py +0 -0
  221. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/hooks/git.py +0 -0
  222. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/hooks/health_monitor.py +0 -0
  223. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/hooks/hook_types.py +0 -0
  224. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/hooks/plugins.py +0 -0
  225. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/hooks/session_coordinator.py +0 -0
  226. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/hooks/verification_runner.py +0 -0
  227. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/hooks/webhooks.py +0 -0
  228. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/install/claude/commands/gobby/bug.md +0 -0
  229. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/install/claude/commands/gobby/chore.md +0 -0
  230. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/install/claude/commands/gobby/epic.md +0 -0
  231. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/install/claude/commands/gobby/eval.md +0 -0
  232. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/install/claude/commands/gobby/feat.md +0 -0
  233. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/install/claude/commands/gobby/nit.md +0 -0
  234. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/install/claude/commands/gobby/ref.md +0 -0
  235. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/install/claude/hooks/HOOK_SCHEMAS.md +0 -0
  236. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/install/claude/hooks/validate_settings.py +0 -0
  237. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/install/claude/hooks-template.json +0 -0
  238. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/install/gemini/hooks-template.json +0 -0
  239. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/install/shared/plugins/code_guardian.py +0 -0
  240. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/install/shared/plugins/example_notify.py +0 -0
  241. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/integrations/__init__.py +0 -0
  242. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/integrations/github.py +0 -0
  243. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/integrations/linear.py +0 -0
  244. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/llm/__init__.py +0 -0
  245. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/llm/base.py +0 -0
  246. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/llm/codex.py +0 -0
  247. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/llm/factory.py +0 -0
  248. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/llm/litellm.py +0 -0
  249. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/llm/service.py +0 -0
  250. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/__init__.py +0 -0
  251. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/actions.py +0 -0
  252. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/daemon_control.py +0 -0
  253. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/importer.py +0 -0
  254. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/lazy.py +0 -0
  255. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/manager.py +0 -0
  256. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/metrics.py +0 -0
  257. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/schema_hash.py +0 -0
  258. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/semantic_search.py +0 -0
  259. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/services/__init__.py +0 -0
  260. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/services/fallback.py +0 -0
  261. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/services/recommendation.py +0 -0
  262. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/services/server_mgmt.py +0 -0
  263. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/services/system.py +0 -0
  264. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/services/tool_filter.py +0 -0
  265. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/agents.py +0 -0
  266. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/artifacts.py +0 -0
  267. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/hub.py +0 -0
  268. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/internal.py +0 -0
  269. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/merge.py +0 -0
  270. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/orchestration/monitor.py +0 -0
  271. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/orchestration/orchestrate.py +0 -0
  272. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/orchestration/review.py +0 -0
  273. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/orchestration/utils.py +0 -0
  274. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/task_dependencies.py +0 -0
  275. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/task_github.py +0 -0
  276. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/task_linear.py +0 -0
  277. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/task_validation.py +0 -0
  278. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/tasks/__init__.py +0 -0
  279. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/tasks/_helpers.py +0 -0
  280. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/tasks/_resolution.py +0 -0
  281. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/tasks/_search.py +0 -0
  282. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/tools/tasks/_session.py +0 -0
  283. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/transports/__init__.py +0 -0
  284. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/transports/base.py +0 -0
  285. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/transports/factory.py +0 -0
  286. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/transports/http.py +0 -0
  287. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/transports/stdio.py +0 -0
  288. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/mcp_proxy/transports/websocket.py +0 -0
  289. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/memory/backends/memu.py +0 -0
  290. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/memory/backends/null.py +0 -0
  291. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/memory/backends/openmemory.py +0 -0
  292. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/memory/backends/sqlite.py +0 -0
  293. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/memory/context.py +0 -0
  294. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/memory/protocol.py +0 -0
  295. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/memory/search/__init__.py +0 -0
  296. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/memory/search/text.py +0 -0
  297. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/memory/viz.py +0 -0
  298. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/__init__.py +0 -0
  299. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/expansion/system.md +0 -0
  300. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/expansion/user.md +0 -0
  301. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/external_validation/agent.md +0 -0
  302. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/external_validation/external.md +0 -0
  303. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/external_validation/spawn.md +0 -0
  304. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/external_validation/system.md +0 -0
  305. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/features/import_mcp.md +0 -0
  306. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/features/import_mcp_github.md +0 -0
  307. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/features/import_mcp_search.md +0 -0
  308. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/features/recommend_tools.md +0 -0
  309. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/features/recommend_tools_hybrid.md +0 -0
  310. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/features/recommend_tools_llm.md +0 -0
  311. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/features/server_description.md +0 -0
  312. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/features/server_description_system.md +0 -0
  313. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/features/task_description.md +0 -0
  314. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/features/task_description_system.md +0 -0
  315. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/features/tool_summary.md +0 -0
  316. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/features/tool_summary_system.md +0 -0
  317. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/research/step.md +0 -0
  318. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/validation/criteria.md +0 -0
  319. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/defaults/validation/validate.md +0 -0
  320. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/loader.py +0 -0
  321. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/prompts/models.py +0 -0
  322. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/py.typed +0 -0
  323. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/search/protocol.py +0 -0
  324. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/search/tfidf.py +0 -0
  325. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/servers/__init__.py +0 -0
  326. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/servers/models.py +0 -0
  327. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/servers/routes/__init__.py +0 -0
  328. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/servers/routes/dependencies.py +0 -0
  329. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/servers/routes/mcp/__init__.py +0 -0
  330. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/servers/routes/mcp/hooks.py +0 -0
  331. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/servers/routes/mcp/plugins.py +0 -0
  332. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/servers/routes/mcp/webhooks.py +0 -0
  333. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/servers/routes/sessions.py +0 -0
  334. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/sessions/__init__.py +0 -0
  335. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/sessions/lifecycle.py +0 -0
  336. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/sessions/manager.py +0 -0
  337. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/sessions/processor.py +0 -0
  338. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/sessions/summary.py +0 -0
  339. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/sessions/transcripts/__init__.py +0 -0
  340. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/sessions/transcripts/codex.py +0 -0
  341. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/sessions/transcripts/gemini.py +0 -0
  342. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/__init__.py +0 -0
  343. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/agents.py +0 -0
  344. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/artifact_classifier.py +0 -0
  345. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/artifacts.py +0 -0
  346. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/compaction.py +0 -0
  347. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/inter_session_messages.py +0 -0
  348. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/mcp.py +0 -0
  349. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/merge_resolutions.py +0 -0
  350. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/migrations_legacy.py +0 -0
  351. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/projects.py +0 -0
  352. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/session_messages.py +0 -0
  353. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/session_tasks.py +0 -0
  354. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/task_dependencies.py +0 -0
  355. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/tasks/__init__.py +0 -0
  356. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/tasks/_aggregates.py +0 -0
  357. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/tasks/_id.py +0 -0
  358. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/tasks/_ordering.py +0 -0
  359. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/tasks/_path_cache.py +0 -0
  360. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/tasks/_queries.py +0 -0
  361. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/tasks/_search.py +0 -0
  362. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/workflow_audit.py +0 -0
  363. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/storage/worktrees.py +0 -0
  364. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/sync/__init__.py +0 -0
  365. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/sync/github.py +0 -0
  366. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/sync/linear.py +0 -0
  367. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tasks/build_verification.py +0 -0
  368. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tasks/commits.py +0 -0
  369. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tasks/enhanced_validator.py +0 -0
  370. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tasks/escalation.py +0 -0
  371. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tasks/external_validator.py +0 -0
  372. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tasks/issue_extraction.py +0 -0
  373. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tasks/tree_builder.py +0 -0
  374. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tasks/validation_history.py +0 -0
  375. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tasks/validation_models.py +0 -0
  376. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tools/__init__.py +0 -0
  377. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tools/summarizer.py +0 -0
  378. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/__init__.py +0 -0
  379. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/screens/__init__.py +0 -0
  380. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/screens/agents.py +0 -0
  381. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/screens/chat.py +0 -0
  382. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/screens/dashboard.py +0 -0
  383. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/screens/memory.py +0 -0
  384. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/screens/metrics.py +0 -0
  385. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/screens/sessions.py +0 -0
  386. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/screens/workflows.py +0 -0
  387. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/screens/worktrees.py +0 -0
  388. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/widgets/__init__.py +0 -0
  389. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/widgets/chat.py +0 -0
  390. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/widgets/conductor.py +0 -0
  391. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/widgets/menu.py +0 -0
  392. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/widgets/message_panel.py +0 -0
  393. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/widgets/review_gate.py +0 -0
  394. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/widgets/task_tree.py +0 -0
  395. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/tui/widgets/token_budget.py +0 -0
  396. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/utils/__init__.py +0 -0
  397. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/utils/git.py +0 -0
  398. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/utils/id.py +0 -0
  399. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/utils/json_helpers.py +0 -0
  400. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/utils/logging.py +0 -0
  401. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/utils/machine_id.py +0 -0
  402. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/utils/metrics.py +0 -0
  403. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/utils/project_context.py +0 -0
  404. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/utils/project_init.py +0 -0
  405. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/utils/status.py +0 -0
  406. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/utils/validation.py +0 -0
  407. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/utils/version.py +0 -0
  408. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/__init__.py +0 -0
  409. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/approval_flow.py +0 -0
  410. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/artifact_actions.py +0 -0
  411. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/audit_helpers.py +0 -0
  412. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/autonomous_actions.py +0 -0
  413. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/definitions.py +0 -0
  414. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/evaluator.py +0 -0
  415. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/git_utils.py +0 -0
  416. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/hooks.py +0 -0
  417. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/llm_actions.py +0 -0
  418. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/mcp_actions.py +0 -0
  419. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/premature_stop.py +0 -0
  420. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/session_actions.py +0 -0
  421. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/state_actions.py +0 -0
  422. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/state_manager.py +0 -0
  423. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/stop_signal_actions.py +0 -0
  424. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/task_actions.py +0 -0
  425. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/templates.py +0 -0
  426. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/todo_actions.py +0 -0
  427. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/webhook.py +0 -0
  428. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/workflows/webhook_executor.py +0 -0
  429. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/worktrees/__init__.py +0 -0
  430. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/worktrees/git.py +0 -0
  431. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/worktrees/merge/__init__.py +0 -0
  432. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/worktrees/merge/conflict_parser.py +0 -0
  433. {gobby-0.2.5 → gobby-0.2.6}/src/gobby/worktrees/merge/resolver.py +0 -0
  434. {gobby-0.2.5 → gobby-0.2.6}/src/gobby.egg-info/dependency_links.txt +0 -0
  435. {gobby-0.2.5 → gobby-0.2.6}/src/gobby.egg-info/entry_points.txt +0 -0
  436. {gobby-0.2.5 → gobby-0.2.6}/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.6
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,9 @@ 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
+ Provides-Extra: mem0
43
+ Requires-Dist: mem0ai; extra == "mem0"
43
44
  Dynamic: license-file
44
45
 
45
46
  <!-- markdownlint-disable MD033 MD041 -->
@@ -149,35 +150,92 @@ call_tool("gobby-worktrees", "spawn_agent_in_worktree", {
149
150
  })
150
151
  ```
151
152
 
152
- ## Quick Start
153
+ ### 🔗 Claude Code Task Integration
154
+
155
+ Gobby transparently intercepts Claude Code's built-in task system (TaskCreate, TaskUpdate, etc.) and syncs operations to Gobby's persistent task store. Benefits:
156
+
157
+ - **Tasks persist** across sessions (unlike CC's session-scoped tasks)
158
+ - **Commit linking** — tasks auto-link to git commits
159
+ - **Validation gates** — define criteria for task completion
160
+ - **LLM expansion** — break complex tasks into subtasks
161
+
162
+ No configuration needed — just use Claude Code's native task tools and Gobby handles the rest.
163
+
164
+ ### 📚 Skills System
165
+
166
+ Reusable instructions that teach agents how to perform specific tasks. Compatible with the [Agent Skills specification](https://agentskills.io) and SkillPort.
167
+
168
+ - **Core skills** bundled with Gobby for tasks, sessions, memory, workflows
169
+ - **Project skills** in `.gobby/skills/` for team-specific patterns
170
+ - **Install from anywhere** — GitHub repos, local paths, ZIP archives
171
+ - **Search and discovery** — TF-IDF and semantic search across your skill library
153
172
 
154
173
  ```bash
155
- # Clone and install
156
- git clone https://github.com/GobbyAI/gobby.git
157
- cd gobby
158
- uv sync
174
+ # Install a skill from GitHub
175
+ gobby skills install github:user/repo/skills/my-skill
176
+
177
+ # Search for relevant skills
178
+ gobby skills search "testing coverage"
179
+ ```
180
+
181
+ ## Installation
182
+
183
+ ### Try it instantly
184
+ ```bash
185
+ uvx gobby --help
186
+ ```
187
+
188
+ ### Install globally
189
+ ```bash
190
+ # With uv (recommended)
191
+ uv tool install gobby
192
+
193
+ # With pipx
194
+ pipx install gobby
195
+
196
+ # With pip
197
+ pip install gobby
198
+ ```
199
+
200
+ **Requirements:** Python 3.13+
159
201
 
202
+ ## Quick Start
203
+
204
+ ```bash
160
205
  # Start the daemon
161
- uv run gobby start
206
+ gobby start
162
207
 
163
208
  # 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 .
209
+ gobby init
210
+ gobby install # Installs hooks for detected CLIs
169
211
  ```
170
212
 
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))
213
+ **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
214
 
173
215
  Works with your Claude, Gemini, or Codex subscriptions—or bring your own API keys. Local model support coming soon.
174
216
 
175
217
  ## Configure Your AI CLI
176
218
 
177
- Add Gobby as an MCP server:
219
+ Add Gobby as an MCP server. Choose the `command` and `args` that match your installation:
220
+
221
+ - **pip/pipx install**: `"command": "gobby"`, `"args": ["mcp-server"]`
222
+ - **uv tool install**: `"command": "uv"`, `"args": ["run", "gobby", "mcp-server"]`
178
223
 
179
224
  **Claude Code** (`.mcp.json` or `~/.claude.json`):
180
225
 
226
+ ```json
227
+ {
228
+ "mcpServers": {
229
+ "gobby": {
230
+ "command": "gobby",
231
+ "args": ["mcp-server"]
232
+ }
233
+ }
234
+ }
235
+ ```
236
+
237
+ Or with uv:
238
+
181
239
  ```json
182
240
  {
183
241
  "mcpServers": {
@@ -195,8 +253,8 @@ Add Gobby as an MCP server:
195
253
  {
196
254
  "mcpServers": {
197
255
  "gobby": {
198
- "command": "uv",
199
- "args": ["run", "gobby", "mcp-server"]
256
+ "command": "gobby",
257
+ "args": ["mcp-server"]
200
258
  }
201
259
  }
202
260
  }
@@ -206,8 +264,8 @@ Add Gobby as an MCP server:
206
264
 
207
265
  ```toml
208
266
  [mcp_servers.gobby]
209
- command = "uv"
210
- args = ["run", "gobby", "mcp-server"]
267
+ command = "gobby"
268
+ args = ["mcp-server"]
211
269
  ```
212
270
 
213
271
  **Gemini Antigravity** (`~/.gemini/antigravity/mcp_config.json`):
@@ -256,7 +314,7 @@ AI CLI (Claude/Gemini/Codex)
256
314
  Hook Dispatcher
257
315
  │ HTTP POST
258
316
 
259
- Gobby Daemon (:8765)
317
+ Gobby Daemon (:60887)
260
318
 
261
319
  ┌────┴────┐
262
320
  ▼ ▼
@@ -298,9 +356,12 @@ Gobby exposes tools via MCP that your AI coding assistant can use:
298
356
  **Worktrees** (`gobby-worktrees`)
299
357
  `create_worktree`, `spawn_agent_in_worktree`, `list_worktrees`
300
358
 
301
- **MCP Proxy**
359
+ **MCP Proxy**
302
360
  `list_mcp_servers`, `add_mcp_server`, `import_mcp_server`, `list_tools`, `get_tool_schema`, `call_tool`, `recommend_tools`
303
361
 
362
+ **Skills** (`gobby-skills`)
363
+ `list_skills`, `get_skill`, `search_skills`, `install_skill`, `remove_skill`, `update_skill`
364
+
304
365
  ## For AI Agents
305
366
 
306
367
  **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.
@@ -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
109
127
 
110
128
  ```bash
111
- # Clone and install
112
- git clone https://github.com/GobbyAI/gobby.git
113
- cd gobby
114
- uv sync
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
+ ```
142
+
143
+ ### Install globally
144
+ ```bash
145
+ # With uv (recommended)
146
+ uv tool install gobby
147
+
148
+ # With pipx
149
+ pipx install gobby
150
+
151
+ # With pip
152
+ pip install gobby
153
+ ```
154
+
155
+ **Requirements:** Python 3.13+
115
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.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "gobby"
3
- version = "0.2.5"
3
+ version = "0.2.6"
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,13 @@ 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
45
  ]
46
46
 
47
+ [project.optional-dependencies]
48
+ mem0 = ["mem0ai"]
49
+
47
50
  [project.scripts]
48
51
  gobby = "gobby.cli:cli"
49
52
 
@@ -90,6 +93,8 @@ markers = [
90
93
  "slow: marks tests as slow (deselect with '-m \"not slow\"')",
91
94
  "integration: marks tests as integration tests",
92
95
  "e2e: marks tests as end-to-end tests",
96
+ "cli: marks tests as CLI command tests",
97
+ "no_config_protection: skip config protection for this test",
93
98
  ]
94
99
  filterwarnings = [
95
100
  # Ignore coroutine warnings from fire-and-forget async patterns in hook/webhook code
@@ -104,6 +109,8 @@ filterwarnings = [
104
109
  "ignore:unclosed database:ResourceWarning:coverage",
105
110
  "ignore:unclosed database:ResourceWarning:unittest.mock",
106
111
  "ignore:unclosed database:ResourceWarning",
112
+ # Ignore fork() deprecation warning from embedded spawner tests (expected on macOS)
113
+ "ignore:This process.*is multi-threaded.*use of fork:DeprecationWarning",
107
114
  ]
108
115
 
109
116
  [tool.ruff]
@@ -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),
@@ -775,6 +775,28 @@ class CodexAdapter(BaseAdapter):
775
775
  "item/completed": HookEventType.AFTER_TOOL,
776
776
  }
777
777
 
778
+ # Tool name mapping: Codex tool names -> canonical CC-style names
779
+ # Codex uses different tool names - normalize to Claude Code conventions
780
+ # so block_tools rules work across CLIs
781
+ TOOL_MAP: dict[str, str] = {
782
+ # File operations
783
+ "read_file": "Read",
784
+ "ReadFile": "Read",
785
+ "write_file": "Write",
786
+ "WriteFile": "Write",
787
+ "edit_file": "Edit",
788
+ "EditFile": "Edit",
789
+ # Shell
790
+ "run_shell_command": "Bash",
791
+ "RunShellCommand": "Bash",
792
+ "commandExecution": "Bash",
793
+ # Search
794
+ "glob": "Glob",
795
+ "grep": "Grep",
796
+ "GlobTool": "Glob",
797
+ "GrepTool": "Grep",
798
+ }
799
+
778
800
  # Item types that represent tool operations
779
801
  TOOL_ITEM_TYPES = {"commandExecution", "fileChange", "mcpToolCall"}
780
802
 
@@ -814,6 +836,19 @@ class CodexAdapter(BaseAdapter):
814
836
  self._machine_id = _get_machine_id()
815
837
  return self._machine_id
816
838
 
839
+ def normalize_tool_name(self, codex_tool_name: str) -> str:
840
+ """Normalize Codex tool name to canonical CC-style format.
841
+
842
+ This ensures block_tools rules work consistently across CLIs.
843
+
844
+ Args:
845
+ codex_tool_name: Tool name from Codex CLI.
846
+
847
+ Returns:
848
+ Normalized tool name (e.g., "Bash", "Read", "Write", "Edit").
849
+ """
850
+ return self.TOOL_MAP.get(codex_tool_name, codex_tool_name)
851
+
817
852
  def attach_to_client(self, codex_client: CodexAppServerClient) -> None:
818
853
  """Attach to an existing CodexAppServerClient for event handling.
819
854
 
@@ -876,14 +911,17 @@ class CodexAdapter(BaseAdapter):
876
911
  thread_id = params.get("threadId", "")
877
912
  item_id = params.get("itemId", "")
878
913
 
879
- # Determine tool name from method
914
+ # Determine tool name from method and normalize to CC-style
880
915
  if "commandExecution" in method:
881
- tool_name = "Bash"
916
+ original_tool = "commandExecution"
917
+ tool_name = self.normalize_tool_name(original_tool) # -> "Bash"
882
918
  tool_input = params.get("parsedCmd", params.get("command", ""))
883
919
  elif "fileChange" in method:
884
- tool_name = "Write"
920
+ original_tool = "fileChange"
921
+ tool_name = "Write" # File changes are writes
885
922
  tool_input = params.get("changes", [])
886
923
  else:
924
+ original_tool = "unknown"
887
925
  tool_name = "unknown"
888
926
  tool_input = params
889
927
 
@@ -905,6 +943,8 @@ class CodexAdapter(BaseAdapter):
905
943
  "requires_response": True,
906
944
  "item_id": item_id,
907
945
  "approval_method": method,
946
+ "original_tool_name": original_tool,
947
+ "normalized_tool_name": tool_name,
908
948
  },
909
949
  )
910
950
 
@@ -607,6 +607,14 @@ class AgentRunner:
607
607
  else:
608
608
  self._session_storage.update_status(child_session.id, "failed")
609
609
 
610
+ # Persist cost to session storage for budget tracking
611
+ if result.cost_info and result.cost_info.total_cost > 0:
612
+ self._session_storage.add_cost(child_session.id, result.cost_info.total_cost)
613
+ self.logger.debug(
614
+ f"Persisted cost ${result.cost_info.total_cost:.4f} "
615
+ f"for session {child_session.id}"
616
+ )
617
+
610
618
  # Remove from in-memory tracking
611
619
  self._untrack_running_agent(agent_run.id)
612
620
 
@@ -8,6 +8,8 @@ from gobby.config.app import load_config
8
8
 
9
9
  from .agents import agents
10
10
  from .artifacts import artifacts
11
+ from .clones import clones
12
+ from .conductor import conductor
11
13
  from .daemon import restart, start, status, stop
12
14
  from .extensions import hooks, plugins, webhooks
13
15
  from .github import github
@@ -20,6 +22,7 @@ from .memory import memory
20
22
  from .merge import merge
21
23
  from .projects import projects
22
24
  from .sessions import sessions
25
+ from .skills import skills
23
26
  from .tasks import tasks
24
27
  from .tui import ui
25
28
  from .workflows import workflows
@@ -52,6 +55,7 @@ cli.add_command(uninstall)
52
55
  cli.add_command(tasks)
53
56
  cli.add_command(memory)
54
57
  cli.add_command(sessions)
58
+ cli.add_command(skills)
55
59
  cli.add_command(agents)
56
60
  cli.add_command(worktrees)
57
61
  cli.add_command(mcp_proxy)
@@ -61,6 +65,8 @@ cli.add_command(merge)
61
65
  cli.add_command(artifacts)
62
66
  cli.add_command(github)
63
67
  cli.add_command(linear)
68
+ cli.add_command(clones)
69
+ cli.add_command(conductor)
64
70
  cli.add_command(hooks)
65
71
  cli.add_command(plugins)
66
72
  cli.add_command(webhooks)