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.
- {gobby-0.2.5 → gobby-0.2.7}/PKG-INFO +87 -21
- {gobby-0.2.5 → gobby-0.2.7}/README.md +83 -19
- {gobby-0.2.5 → gobby-0.2.7}/pyproject.toml +11 -2
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/__init__.py +1 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/adapters/__init__.py +2 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/adapters/claude_code.py +13 -4
- gobby-0.2.7/src/gobby/adapters/codex_impl/__init__.py +28 -0
- gobby-0.2.7/src/gobby/adapters/codex_impl/adapter.py +722 -0
- gobby-0.2.7/src/gobby/adapters/codex_impl/client.py +679 -0
- gobby-0.2.7/src/gobby/adapters/codex_impl/protocol.py +20 -0
- gobby-0.2.7/src/gobby/adapters/codex_impl/types.py +68 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/definitions.py +11 -1
- gobby-0.2.7/src/gobby/agents/isolation.py +395 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/runner.py +8 -0
- gobby-0.2.7/src/gobby/agents/sandbox.py +261 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawn.py +42 -287
- gobby-0.2.7/src/gobby/agents/spawn_executor.py +385 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawners/__init__.py +24 -0
- gobby-0.2.7/src/gobby/agents/spawners/command_builder.py +189 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawners/embedded.py +21 -2
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawners/headless.py +21 -2
- gobby-0.2.7/src/gobby/agents/spawners/prompt_manager.py +125 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/__init__.py +6 -0
- gobby-0.2.7/src/gobby/cli/clones.py +419 -0
- gobby-0.2.7/src/gobby/cli/conductor.py +266 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/install.py +4 -4
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/installers/antigravity.py +3 -9
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/installers/claude.py +15 -9
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/installers/codex.py +2 -8
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/installers/gemini.py +8 -8
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/installers/shared.py +175 -13
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/sessions.py +1 -1
- gobby-0.2.7/src/gobby/cli/skills.py +858 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/ai.py +0 -440
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/crud.py +44 -6
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/main.py +0 -4
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tui.py +2 -2
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/utils.py +12 -5
- gobby-0.2.7/src/gobby/clones/__init__.py +13 -0
- gobby-0.2.7/src/gobby/clones/git.py +547 -0
- gobby-0.2.7/src/gobby/conductor/__init__.py +16 -0
- gobby-0.2.7/src/gobby/conductor/alerts.py +135 -0
- gobby-0.2.7/src/gobby/conductor/loop.py +164 -0
- gobby-0.2.7/src/gobby/conductor/monitors/__init__.py +11 -0
- gobby-0.2.7/src/gobby/conductor/monitors/agents.py +116 -0
- gobby-0.2.7/src/gobby/conductor/monitors/tasks.py +155 -0
- gobby-0.2.7/src/gobby/conductor/pricing.py +234 -0
- gobby-0.2.7/src/gobby/conductor/token_tracker.py +160 -0
- gobby-0.2.7/src/gobby/config/__init__.py +44 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/app.py +69 -91
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/extensions.py +2 -2
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/features.py +7 -130
- gobby-0.2.7/src/gobby/config/search.py +110 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/servers.py +1 -1
- gobby-0.2.7/src/gobby/config/skills.py +43 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/tasks.py +9 -41
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/__init__.py +0 -13
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/event_handlers.py +188 -2
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/hook_manager.py +50 -4
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/plugins.py +1 -1
- gobby-0.2.7/src/gobby/hooks/skill_manager.py +130 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/webhooks.py +1 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/claude/hooks/hook_dispatcher.py +4 -4
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/codex/hooks/hook_dispatcher.py +1 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/gemini/hooks/hook_dispatcher.py +87 -12
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/claude.py +22 -34
- gobby-0.2.7/src/gobby/llm/claude_executor.py +293 -0
- gobby-0.2.7/src/gobby/llm/codex_executor.py +281 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/executor.py +21 -0
- gobby-0.2.7/src/gobby/llm/gemini.py +282 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/litellm_executor.py +143 -6
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/resolver.py +98 -35
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/importer.py +62 -4
- gobby-0.2.7/src/gobby/mcp_proxy/instructions.py +56 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/models.py +15 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/registries.py +68 -8
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/server.py +33 -3
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/services/recommendation.py +43 -11
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/services/tool_proxy.py +81 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/stdio.py +2 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/__init__.py +0 -2
- gobby-0.2.7/src/gobby/mcp_proxy/tools/agent_messaging.py +317 -0
- gobby-0.2.7/src/gobby/mcp_proxy/tools/agents.py +403 -0
- gobby-0.2.7/src/gobby/mcp_proxy/tools/clones.py +518 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/memory.py +3 -26
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/metrics.py +65 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/orchestration/__init__.py +3 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/orchestration/cleanup.py +151 -0
- gobby-0.2.7/src/gobby/mcp_proxy/tools/orchestration/wait.py +467 -0
- gobby-0.2.7/src/gobby/mcp_proxy/tools/sessions/__init__.py +14 -0
- gobby-0.2.7/src/gobby/mcp_proxy/tools/sessions/_commits.py +232 -0
- gobby-0.2.7/src/gobby/mcp_proxy/tools/sessions/_crud.py +253 -0
- gobby-0.2.7/src/gobby/mcp_proxy/tools/sessions/_factory.py +63 -0
- gobby-0.2.7/src/gobby/mcp_proxy/tools/sessions/_handoff.py +499 -0
- gobby-0.2.7/src/gobby/mcp_proxy/tools/sessions/_messages.py +138 -0
- gobby-0.2.7/src/gobby/mcp_proxy/tools/skills/__init__.py +616 -0
- gobby-0.2.7/src/gobby/mcp_proxy/tools/spawn_agent.py +417 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/task_orchestration.py +7 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/task_readiness.py +14 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/task_sync.py +1 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_context.py +0 -20
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_crud.py +91 -4
- gobby-0.2.7/src/gobby/mcp_proxy/tools/tasks/_expansion.py +348 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_factory.py +6 -16
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_lifecycle.py +110 -45
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_lifecycle_validation.py +18 -29
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/workflows.py +1 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/worktrees.py +0 -338
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/backends/__init__.py +6 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/backends/mem0.py +6 -1
- gobby-0.2.7/src/gobby/memory/extractor.py +477 -0
- gobby-0.2.7/src/gobby/memory/ingestion/__init__.py +5 -0
- gobby-0.2.7/src/gobby/memory/ingestion/multimodal.py +221 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/manager.py +73 -285
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/search/__init__.py +10 -0
- gobby-0.2.7/src/gobby/memory/search/coordinator.py +248 -0
- gobby-0.2.7/src/gobby/memory/services/__init__.py +5 -0
- gobby-0.2.7/src/gobby/memory/services/crossref.py +142 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/prompts/loader.py +5 -2
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/runner.py +37 -16
- gobby-0.2.7/src/gobby/search/__init__.py +65 -0
- gobby-0.2.7/src/gobby/search/backends/__init__.py +159 -0
- gobby-0.2.7/src/gobby/search/backends/embedding.py +225 -0
- gobby-0.2.7/src/gobby/search/embeddings.py +238 -0
- gobby-0.2.7/src/gobby/search/models.py +148 -0
- gobby-0.2.7/src/gobby/search/unified.py +496 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/http.py +24 -12
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/routes/admin.py +294 -0
- gobby-0.2.7/src/gobby/servers/routes/mcp/endpoints/__init__.py +61 -0
- gobby-0.2.7/src/gobby/servers/routes/mcp/endpoints/discovery.py +405 -0
- gobby-0.2.7/src/gobby/servers/routes/mcp/endpoints/execution.py +568 -0
- gobby-0.2.7/src/gobby/servers/routes/mcp/endpoints/registry.py +378 -0
- gobby-0.2.7/src/gobby/servers/routes/mcp/endpoints/server.py +304 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/routes/mcp/hooks.py +1 -1
- gobby-0.2.7/src/gobby/servers/routes/mcp/tools.py +68 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/websocket.py +2 -2
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/analyzer.py +2 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/lifecycle.py +1 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/processor.py +10 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/transcripts/base.py +2 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/transcripts/claude.py +79 -10
- gobby-0.2.7/src/gobby/skills/__init__.py +91 -0
- gobby-0.2.7/src/gobby/skills/loader.py +685 -0
- gobby-0.2.7/src/gobby/skills/manager.py +384 -0
- gobby-0.2.7/src/gobby/skills/parser.py +286 -0
- gobby-0.2.7/src/gobby/skills/search.py +463 -0
- gobby-0.2.7/src/gobby/skills/sync.py +119 -0
- gobby-0.2.7/src/gobby/skills/updater.py +385 -0
- gobby-0.2.7/src/gobby/skills/validator.py +368 -0
- gobby-0.2.7/src/gobby/storage/clones.py +378 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/database.py +1 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/memories.py +43 -13
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/migrations.py +162 -201
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/sessions.py +116 -7
- gobby-0.2.7/src/gobby/storage/skills.py +782 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_crud.py +4 -4
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_lifecycle.py +57 -7
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_manager.py +14 -5
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_models.py +8 -3
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sync/memories.py +40 -5
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sync/tasks.py +83 -6
- gobby-0.2.7/src/gobby/tasks/__init__.py +7 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/external_validator.py +1 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/validation.py +46 -35
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tools/summarizer.py +91 -10
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/api_client.py +4 -7
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/app.py +5 -3
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/orchestrator.py +1 -2
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/tasks.py +2 -4
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/ws_client.py +1 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/daemon_client.py +2 -2
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/project_context.py +2 -3
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/status.py +13 -0
- gobby-0.2.7/src/gobby/workflows/actions.py +396 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/artifact_actions.py +31 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/autonomous_actions.py +11 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/context_actions.py +93 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/detection_helpers.py +115 -31
- gobby-0.2.7/src/gobby/workflows/enforcement/__init__.py +47 -0
- gobby-0.2.7/src/gobby/workflows/enforcement/blocking.py +269 -0
- gobby-0.2.7/src/gobby/workflows/enforcement/commit_policy.py +283 -0
- gobby-0.2.7/src/gobby/workflows/enforcement/handlers.py +269 -0
- gobby-0.2.5/src/gobby/workflows/task_enforcement_actions.py → gobby-0.2.7/src/gobby/workflows/enforcement/task_policy.py +29 -388
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/engine.py +13 -2
- gobby-0.2.7/src/gobby/workflows/git_utils.py +202 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/lifecycle_evaluator.py +29 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/llm_actions.py +30 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/loader.py +19 -6
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/mcp_actions.py +20 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/memory_actions.py +154 -0
- gobby-0.2.7/src/gobby/workflows/safe_evaluator.py +183 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/session_actions.py +44 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/state_actions.py +60 -1
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/stop_signal_actions.py +55 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/summary_actions.py +111 -1
- gobby-0.2.7/src/gobby/workflows/task_sync_actions.py +347 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/todo_actions.py +34 -1
- gobby-0.2.7/src/gobby/workflows/webhook_actions.py +185 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby.egg-info/PKG-INFO +87 -21
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby.egg-info/SOURCES.txt +74 -44
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby.egg-info/requires.txt +4 -1
- gobby-0.2.7/tests/test_import_pathing_trap.py +37 -0
- {gobby-0.2.5 → gobby-0.2.7}/tests/test_runner.py +14 -77
- gobby-0.2.5/src/gobby/adapters/codex.py +0 -1292
- gobby-0.2.5/src/gobby/config/__init__.py +0 -129
- gobby-0.2.5/src/gobby/install/claude/commands/gobby/bug.md +0 -51
- gobby-0.2.5/src/gobby/install/claude/commands/gobby/chore.md +0 -51
- gobby-0.2.5/src/gobby/install/claude/commands/gobby/epic.md +0 -52
- gobby-0.2.5/src/gobby/install/claude/commands/gobby/eval.md +0 -235
- gobby-0.2.5/src/gobby/install/claude/commands/gobby/feat.md +0 -49
- gobby-0.2.5/src/gobby/install/claude/commands/gobby/nit.md +0 -52
- gobby-0.2.5/src/gobby/install/claude/commands/gobby/ref.md +0 -52
- gobby-0.2.5/src/gobby/install/codex/prompts/forget.md +0 -7
- gobby-0.2.5/src/gobby/install/codex/prompts/memories.md +0 -7
- gobby-0.2.5/src/gobby/install/codex/prompts/recall.md +0 -7
- gobby-0.2.5/src/gobby/install/codex/prompts/remember.md +0 -13
- gobby-0.2.5/src/gobby/llm/claude_executor.py +0 -503
- gobby-0.2.5/src/gobby/llm/codex_executor.py +0 -513
- gobby-0.2.5/src/gobby/llm/gemini.py +0 -258
- gobby-0.2.5/src/gobby/llm/gemini_executor.py +0 -339
- gobby-0.2.5/src/gobby/mcp_proxy/tools/agents.py +0 -1103
- gobby-0.2.5/src/gobby/mcp_proxy/tools/session_messages.py +0 -1056
- gobby-0.2.5/src/gobby/mcp_proxy/tools/task_expansion.py +0 -591
- gobby-0.2.5/src/gobby/prompts/defaults/expansion/system.md +0 -119
- gobby-0.2.5/src/gobby/prompts/defaults/expansion/user.md +0 -48
- gobby-0.2.5/src/gobby/prompts/defaults/external_validation/agent.md +0 -72
- gobby-0.2.5/src/gobby/prompts/defaults/external_validation/external.md +0 -63
- gobby-0.2.5/src/gobby/prompts/defaults/external_validation/spawn.md +0 -83
- gobby-0.2.5/src/gobby/prompts/defaults/external_validation/system.md +0 -6
- gobby-0.2.5/src/gobby/prompts/defaults/features/import_mcp.md +0 -22
- gobby-0.2.5/src/gobby/prompts/defaults/features/import_mcp_github.md +0 -17
- gobby-0.2.5/src/gobby/prompts/defaults/features/import_mcp_search.md +0 -16
- gobby-0.2.5/src/gobby/prompts/defaults/features/recommend_tools.md +0 -32
- gobby-0.2.5/src/gobby/prompts/defaults/features/recommend_tools_hybrid.md +0 -35
- gobby-0.2.5/src/gobby/prompts/defaults/features/recommend_tools_llm.md +0 -30
- gobby-0.2.5/src/gobby/prompts/defaults/features/server_description.md +0 -20
- gobby-0.2.5/src/gobby/prompts/defaults/features/server_description_system.md +0 -6
- gobby-0.2.5/src/gobby/prompts/defaults/features/task_description.md +0 -31
- gobby-0.2.5/src/gobby/prompts/defaults/features/task_description_system.md +0 -6
- gobby-0.2.5/src/gobby/prompts/defaults/features/tool_summary.md +0 -17
- gobby-0.2.5/src/gobby/prompts/defaults/features/tool_summary_system.md +0 -6
- gobby-0.2.5/src/gobby/prompts/defaults/research/step.md +0 -58
- gobby-0.2.5/src/gobby/prompts/defaults/validation/criteria.md +0 -47
- gobby-0.2.5/src/gobby/prompts/defaults/validation/validate.md +0 -38
- gobby-0.2.5/src/gobby/search/__init__.py +0 -23
- gobby-0.2.5/src/gobby/servers/routes/mcp/tools.py +0 -1337
- gobby-0.2.5/src/gobby/storage/migrations_legacy.py +0 -1359
- gobby-0.2.5/src/gobby/tasks/__init__.py +0 -8
- gobby-0.2.5/src/gobby/tasks/context.py +0 -747
- gobby-0.2.5/src/gobby/tasks/criteria.py +0 -342
- gobby-0.2.5/src/gobby/tasks/expansion.py +0 -626
- gobby-0.2.5/src/gobby/tasks/prompts/expand.py +0 -327
- gobby-0.2.5/src/gobby/tasks/research.py +0 -421
- gobby-0.2.5/src/gobby/tasks/tdd.py +0 -352
- gobby-0.2.5/src/gobby/workflows/actions.py +0 -1310
- gobby-0.2.5/src/gobby/workflows/git_utils.py +0 -96
- {gobby-0.2.5 → gobby-0.2.7}/LICENSE.md +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/setup.cfg +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/adapters/base.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/adapters/gemini.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/codex_session.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/constants.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/context.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/gemini_session.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/registry.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/session.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawners/base.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawners/cross_platform.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawners/linux.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawners/macos.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/spawners/windows.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/agents/tty_config.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/autonomous/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/autonomous/progress_tracker.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/autonomous/stop_registry.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/autonomous/stuck_detector.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/__main__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/agents.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/artifacts.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/daemon.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/extensions.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/github.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/init.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/installers/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/installers/git_hooks.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/linear.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/mcp.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/mcp_proxy.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/memory.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/merge.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/projects.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/_utils.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/commits.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/deps.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/labels.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/tasks/search.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/workflows.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/cli/worktrees.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/llm_providers.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/logging.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/mcp.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/persistence.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/config/sessions.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/artifact_capture.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/broadcaster.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/events.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/git.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/health_monitor.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/hook_types.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/session_coordinator.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/hooks/verification_runner.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/claude/hooks/HOOK_SCHEMAS.md +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/claude/hooks/validate_settings.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/claude/hooks-template.json +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/gemini/hooks-template.json +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/shared/plugins/code_guardian.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/install/shared/plugins/example_notify.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/integrations/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/integrations/github.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/integrations/linear.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/base.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/codex.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/factory.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/litellm.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/llm/service.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/actions.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/daemon_control.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/lazy.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/manager.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/metrics.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/schema_hash.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/semantic_search.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/services/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/services/fallback.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/services/server_mgmt.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/services/system.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/services/tool_filter.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/artifacts.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/hub.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/internal.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/merge.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/orchestration/monitor.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/orchestration/orchestrate.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/orchestration/review.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/orchestration/utils.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/task_dependencies.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/task_github.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/task_linear.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/task_validation.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_helpers.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_resolution.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_search.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/tools/tasks/_session.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/transports/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/transports/base.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/transports/factory.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/transports/http.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/transports/stdio.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/mcp_proxy/transports/websocket.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/backends/memu.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/backends/null.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/backends/openmemory.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/backends/sqlite.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/context.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/protocol.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/search/text.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/memory/viz.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/prompts/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/prompts/models.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/py.typed +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/search/protocol.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/search/tfidf.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/models.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/routes/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/routes/dependencies.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/routes/mcp/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/routes/mcp/plugins.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/routes/mcp/webhooks.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/servers/routes/sessions.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/manager.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/summary.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/transcripts/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/transcripts/codex.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sessions/transcripts/gemini.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/agents.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/artifact_classifier.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/artifacts.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/compaction.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/inter_session_messages.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/mcp.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/merge_resolutions.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/projects.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/session_messages.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/session_tasks.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/task_dependencies.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_aggregates.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_id.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_ordering.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_path_cache.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_queries.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/tasks/_search.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/workflow_audit.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/storage/worktrees.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sync/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sync/github.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/sync/linear.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/build_verification.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/commits.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/enhanced_validator.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/escalation.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/issue_extraction.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/tree_builder.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/validation_history.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tasks/validation_models.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tools/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/agents.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/chat.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/dashboard.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/memory.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/metrics.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/sessions.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/workflows.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/screens/worktrees.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/widgets/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/widgets/chat.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/widgets/conductor.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/widgets/menu.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/widgets/message_panel.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/widgets/review_gate.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/widgets/task_tree.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/tui/widgets/token_budget.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/git.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/id.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/json_helpers.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/logging.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/machine_id.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/metrics.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/project_init.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/validation.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/utils/version.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/approval_flow.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/audit_helpers.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/definitions.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/evaluator.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/hooks.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/premature_stop.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/state_manager.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/task_actions.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/templates.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/webhook.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/workflows/webhook_executor.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/worktrees/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/worktrees/git.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/worktrees/merge/__init__.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/worktrees/merge/conflict_parser.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby/worktrees/merge/resolver.py +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby.egg-info/dependency_links.txt +0 -0
- {gobby-0.2.5 → gobby-0.2.7}/src/gobby.egg-info/entry_points.txt +0 -0
- {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.
|
|
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
|
-
|
|
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
|
-
#
|
|
156
|
-
|
|
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
|
-
|
|
207
|
+
gobby start
|
|
162
208
|
|
|
163
209
|
# In your project directory
|
|
164
|
-
|
|
165
|
-
|
|
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:**
|
|
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": "
|
|
199
|
-
"args": ["
|
|
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 = "
|
|
210
|
-
args = ["
|
|
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 (:
|
|
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
|
-
|
|
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
|
-
#
|
|
112
|
-
|
|
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
|
-
|
|
161
|
+
gobby start
|
|
118
162
|
|
|
119
163
|
# In your project directory
|
|
120
|
-
|
|
121
|
-
|
|
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:**
|
|
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": "
|
|
155
|
-
"args": ["
|
|
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 = "
|
|
166
|
-
args = ["
|
|
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 (:
|
|
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.
|
|
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
|
-
|
|
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]
|
|
@@ -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.
|
|
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
|
-
|
|
196
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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] = []
|