gobby 0.2.5__py3-none-any.whl → 0.2.7__py3-none-any.whl
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/__init__.py +1 -1
- gobby/adapters/__init__.py +2 -1
- gobby/adapters/claude_code.py +13 -4
- gobby/adapters/codex_impl/__init__.py +28 -0
- gobby/adapters/codex_impl/adapter.py +722 -0
- gobby/adapters/codex_impl/client.py +679 -0
- gobby/adapters/codex_impl/protocol.py +20 -0
- gobby/adapters/codex_impl/types.py +68 -0
- gobby/agents/definitions.py +11 -1
- gobby/agents/isolation.py +395 -0
- gobby/agents/runner.py +8 -0
- gobby/agents/sandbox.py +261 -0
- gobby/agents/spawn.py +42 -287
- gobby/agents/spawn_executor.py +385 -0
- gobby/agents/spawners/__init__.py +24 -0
- gobby/agents/spawners/command_builder.py +189 -0
- gobby/agents/spawners/embedded.py +21 -2
- gobby/agents/spawners/headless.py +21 -2
- gobby/agents/spawners/prompt_manager.py +125 -0
- gobby/cli/__init__.py +6 -0
- gobby/cli/clones.py +419 -0
- gobby/cli/conductor.py +266 -0
- gobby/cli/install.py +4 -4
- gobby/cli/installers/antigravity.py +3 -9
- gobby/cli/installers/claude.py +15 -9
- gobby/cli/installers/codex.py +2 -8
- gobby/cli/installers/gemini.py +8 -8
- gobby/cli/installers/shared.py +175 -13
- gobby/cli/sessions.py +1 -1
- gobby/cli/skills.py +858 -0
- gobby/cli/tasks/ai.py +0 -440
- gobby/cli/tasks/crud.py +44 -6
- gobby/cli/tasks/main.py +0 -4
- gobby/cli/tui.py +2 -2
- gobby/cli/utils.py +12 -5
- gobby/clones/__init__.py +13 -0
- gobby/clones/git.py +547 -0
- gobby/conductor/__init__.py +16 -0
- gobby/conductor/alerts.py +135 -0
- gobby/conductor/loop.py +164 -0
- gobby/conductor/monitors/__init__.py +11 -0
- gobby/conductor/monitors/agents.py +116 -0
- gobby/conductor/monitors/tasks.py +155 -0
- gobby/conductor/pricing.py +234 -0
- gobby/conductor/token_tracker.py +160 -0
- gobby/config/__init__.py +12 -97
- gobby/config/app.py +69 -91
- gobby/config/extensions.py +2 -2
- gobby/config/features.py +7 -130
- gobby/config/search.py +110 -0
- gobby/config/servers.py +1 -1
- gobby/config/skills.py +43 -0
- gobby/config/tasks.py +9 -41
- gobby/hooks/__init__.py +0 -13
- gobby/hooks/event_handlers.py +188 -2
- gobby/hooks/hook_manager.py +50 -4
- gobby/hooks/plugins.py +1 -1
- gobby/hooks/skill_manager.py +130 -0
- gobby/hooks/webhooks.py +1 -1
- gobby/install/claude/hooks/hook_dispatcher.py +4 -4
- gobby/install/codex/hooks/hook_dispatcher.py +1 -1
- gobby/install/gemini/hooks/hook_dispatcher.py +87 -12
- gobby/llm/claude.py +22 -34
- gobby/llm/claude_executor.py +46 -256
- gobby/llm/codex_executor.py +59 -291
- gobby/llm/executor.py +21 -0
- gobby/llm/gemini.py +134 -110
- gobby/llm/litellm_executor.py +143 -6
- gobby/llm/resolver.py +98 -35
- gobby/mcp_proxy/importer.py +62 -4
- gobby/mcp_proxy/instructions.py +56 -0
- gobby/mcp_proxy/models.py +15 -0
- gobby/mcp_proxy/registries.py +68 -8
- gobby/mcp_proxy/server.py +33 -3
- gobby/mcp_proxy/services/recommendation.py +43 -11
- gobby/mcp_proxy/services/tool_proxy.py +81 -1
- gobby/mcp_proxy/stdio.py +2 -1
- gobby/mcp_proxy/tools/__init__.py +0 -2
- gobby/mcp_proxy/tools/agent_messaging.py +317 -0
- gobby/mcp_proxy/tools/agents.py +31 -731
- gobby/mcp_proxy/tools/clones.py +518 -0
- gobby/mcp_proxy/tools/memory.py +3 -26
- gobby/mcp_proxy/tools/metrics.py +65 -1
- gobby/mcp_proxy/tools/orchestration/__init__.py +3 -0
- gobby/mcp_proxy/tools/orchestration/cleanup.py +151 -0
- gobby/mcp_proxy/tools/orchestration/wait.py +467 -0
- gobby/mcp_proxy/tools/sessions/__init__.py +14 -0
- gobby/mcp_proxy/tools/sessions/_commits.py +232 -0
- gobby/mcp_proxy/tools/sessions/_crud.py +253 -0
- gobby/mcp_proxy/tools/sessions/_factory.py +63 -0
- gobby/mcp_proxy/tools/sessions/_handoff.py +499 -0
- gobby/mcp_proxy/tools/sessions/_messages.py +138 -0
- gobby/mcp_proxy/tools/skills/__init__.py +616 -0
- gobby/mcp_proxy/tools/spawn_agent.py +417 -0
- gobby/mcp_proxy/tools/task_orchestration.py +7 -0
- gobby/mcp_proxy/tools/task_readiness.py +14 -0
- gobby/mcp_proxy/tools/task_sync.py +1 -1
- gobby/mcp_proxy/tools/tasks/_context.py +0 -20
- gobby/mcp_proxy/tools/tasks/_crud.py +91 -4
- gobby/mcp_proxy/tools/tasks/_expansion.py +348 -0
- gobby/mcp_proxy/tools/tasks/_factory.py +6 -16
- gobby/mcp_proxy/tools/tasks/_lifecycle.py +110 -45
- gobby/mcp_proxy/tools/tasks/_lifecycle_validation.py +18 -29
- gobby/mcp_proxy/tools/workflows.py +1 -1
- gobby/mcp_proxy/tools/worktrees.py +0 -338
- gobby/memory/backends/__init__.py +6 -1
- gobby/memory/backends/mem0.py +6 -1
- gobby/memory/extractor.py +477 -0
- gobby/memory/ingestion/__init__.py +5 -0
- gobby/memory/ingestion/multimodal.py +221 -0
- gobby/memory/manager.py +73 -285
- gobby/memory/search/__init__.py +10 -0
- gobby/memory/search/coordinator.py +248 -0
- gobby/memory/services/__init__.py +5 -0
- gobby/memory/services/crossref.py +142 -0
- gobby/prompts/loader.py +5 -2
- gobby/runner.py +37 -16
- gobby/search/__init__.py +48 -6
- gobby/search/backends/__init__.py +159 -0
- gobby/search/backends/embedding.py +225 -0
- gobby/search/embeddings.py +238 -0
- gobby/search/models.py +148 -0
- gobby/search/unified.py +496 -0
- gobby/servers/http.py +24 -12
- gobby/servers/routes/admin.py +294 -0
- gobby/servers/routes/mcp/endpoints/__init__.py +61 -0
- gobby/servers/routes/mcp/endpoints/discovery.py +405 -0
- gobby/servers/routes/mcp/endpoints/execution.py +568 -0
- gobby/servers/routes/mcp/endpoints/registry.py +378 -0
- gobby/servers/routes/mcp/endpoints/server.py +304 -0
- gobby/servers/routes/mcp/hooks.py +1 -1
- gobby/servers/routes/mcp/tools.py +48 -1317
- gobby/servers/websocket.py +2 -2
- gobby/sessions/analyzer.py +2 -0
- gobby/sessions/lifecycle.py +1 -1
- gobby/sessions/processor.py +10 -0
- gobby/sessions/transcripts/base.py +2 -0
- gobby/sessions/transcripts/claude.py +79 -10
- gobby/skills/__init__.py +91 -0
- gobby/skills/loader.py +685 -0
- gobby/skills/manager.py +384 -0
- gobby/skills/parser.py +286 -0
- gobby/skills/search.py +463 -0
- gobby/skills/sync.py +119 -0
- gobby/skills/updater.py +385 -0
- gobby/skills/validator.py +368 -0
- gobby/storage/clones.py +378 -0
- gobby/storage/database.py +1 -1
- gobby/storage/memories.py +43 -13
- gobby/storage/migrations.py +162 -201
- gobby/storage/sessions.py +116 -7
- gobby/storage/skills.py +782 -0
- gobby/storage/tasks/_crud.py +4 -4
- gobby/storage/tasks/_lifecycle.py +57 -7
- gobby/storage/tasks/_manager.py +14 -5
- gobby/storage/tasks/_models.py +8 -3
- gobby/sync/memories.py +40 -5
- gobby/sync/tasks.py +83 -6
- gobby/tasks/__init__.py +1 -2
- gobby/tasks/external_validator.py +1 -1
- gobby/tasks/validation.py +46 -35
- gobby/tools/summarizer.py +91 -10
- gobby/tui/api_client.py +4 -7
- gobby/tui/app.py +5 -3
- gobby/tui/screens/orchestrator.py +1 -2
- gobby/tui/screens/tasks.py +2 -4
- gobby/tui/ws_client.py +1 -1
- gobby/utils/daemon_client.py +2 -2
- gobby/utils/project_context.py +2 -3
- gobby/utils/status.py +13 -0
- gobby/workflows/actions.py +221 -1135
- gobby/workflows/artifact_actions.py +31 -0
- gobby/workflows/autonomous_actions.py +11 -0
- gobby/workflows/context_actions.py +93 -1
- gobby/workflows/detection_helpers.py +115 -31
- gobby/workflows/enforcement/__init__.py +47 -0
- gobby/workflows/enforcement/blocking.py +269 -0
- gobby/workflows/enforcement/commit_policy.py +283 -0
- gobby/workflows/enforcement/handlers.py +269 -0
- gobby/workflows/{task_enforcement_actions.py → enforcement/task_policy.py} +29 -388
- gobby/workflows/engine.py +13 -2
- gobby/workflows/git_utils.py +106 -0
- gobby/workflows/lifecycle_evaluator.py +29 -1
- gobby/workflows/llm_actions.py +30 -0
- gobby/workflows/loader.py +19 -6
- gobby/workflows/mcp_actions.py +20 -1
- gobby/workflows/memory_actions.py +154 -0
- gobby/workflows/safe_evaluator.py +183 -0
- gobby/workflows/session_actions.py +44 -0
- gobby/workflows/state_actions.py +60 -1
- gobby/workflows/stop_signal_actions.py +55 -0
- gobby/workflows/summary_actions.py +111 -1
- gobby/workflows/task_sync_actions.py +347 -0
- gobby/workflows/todo_actions.py +34 -1
- gobby/workflows/webhook_actions.py +185 -0
- {gobby-0.2.5.dist-info → gobby-0.2.7.dist-info}/METADATA +87 -21
- {gobby-0.2.5.dist-info → gobby-0.2.7.dist-info}/RECORD +201 -172
- {gobby-0.2.5.dist-info → gobby-0.2.7.dist-info}/WHEEL +1 -1
- gobby/adapters/codex.py +0 -1292
- gobby/install/claude/commands/gobby/bug.md +0 -51
- gobby/install/claude/commands/gobby/chore.md +0 -51
- gobby/install/claude/commands/gobby/epic.md +0 -52
- gobby/install/claude/commands/gobby/eval.md +0 -235
- gobby/install/claude/commands/gobby/feat.md +0 -49
- gobby/install/claude/commands/gobby/nit.md +0 -52
- gobby/install/claude/commands/gobby/ref.md +0 -52
- gobby/install/codex/prompts/forget.md +0 -7
- gobby/install/codex/prompts/memories.md +0 -7
- gobby/install/codex/prompts/recall.md +0 -7
- gobby/install/codex/prompts/remember.md +0 -13
- gobby/llm/gemini_executor.py +0 -339
- gobby/mcp_proxy/tools/session_messages.py +0 -1056
- gobby/mcp_proxy/tools/task_expansion.py +0 -591
- gobby/prompts/defaults/expansion/system.md +0 -119
- gobby/prompts/defaults/expansion/user.md +0 -48
- gobby/prompts/defaults/external_validation/agent.md +0 -72
- gobby/prompts/defaults/external_validation/external.md +0 -63
- gobby/prompts/defaults/external_validation/spawn.md +0 -83
- gobby/prompts/defaults/external_validation/system.md +0 -6
- gobby/prompts/defaults/features/import_mcp.md +0 -22
- gobby/prompts/defaults/features/import_mcp_github.md +0 -17
- gobby/prompts/defaults/features/import_mcp_search.md +0 -16
- gobby/prompts/defaults/features/recommend_tools.md +0 -32
- gobby/prompts/defaults/features/recommend_tools_hybrid.md +0 -35
- gobby/prompts/defaults/features/recommend_tools_llm.md +0 -30
- gobby/prompts/defaults/features/server_description.md +0 -20
- gobby/prompts/defaults/features/server_description_system.md +0 -6
- gobby/prompts/defaults/features/task_description.md +0 -31
- gobby/prompts/defaults/features/task_description_system.md +0 -6
- gobby/prompts/defaults/features/tool_summary.md +0 -17
- gobby/prompts/defaults/features/tool_summary_system.md +0 -6
- gobby/prompts/defaults/research/step.md +0 -58
- gobby/prompts/defaults/validation/criteria.md +0 -47
- gobby/prompts/defaults/validation/validate.md +0 -38
- gobby/storage/migrations_legacy.py +0 -1359
- gobby/tasks/context.py +0 -747
- gobby/tasks/criteria.py +0 -342
- gobby/tasks/expansion.py +0 -626
- gobby/tasks/prompts/expand.py +0 -327
- gobby/tasks/research.py +0 -421
- gobby/tasks/tdd.py +0 -352
- {gobby-0.2.5.dist-info → gobby-0.2.7.dist-info}/entry_points.txt +0 -0
- {gobby-0.2.5.dist-info → gobby-0.2.7.dist-info}/licenses/LICENSE.md +0 -0
- {gobby-0.2.5.dist-info → gobby-0.2.7.dist-info}/top_level.txt +0 -0
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: research-step
|
|
3
|
-
description: ReAct loop prompt for codebase research
|
|
4
|
-
version: "1.0"
|
|
5
|
-
variables:
|
|
6
|
-
task_title:
|
|
7
|
-
type: str
|
|
8
|
-
required: true
|
|
9
|
-
description: Task title being researched
|
|
10
|
-
task_description:
|
|
11
|
-
type: str
|
|
12
|
-
default: ""
|
|
13
|
-
description: Task description
|
|
14
|
-
found_files:
|
|
15
|
-
type: list
|
|
16
|
-
default: []
|
|
17
|
-
description: List of files found so far
|
|
18
|
-
snippets_keys:
|
|
19
|
-
type: list
|
|
20
|
-
default: []
|
|
21
|
-
description: List of snippet keys/paths found
|
|
22
|
-
history:
|
|
23
|
-
type: str
|
|
24
|
-
default: ""
|
|
25
|
-
description: Formatted history of recent agent turns
|
|
26
|
-
step:
|
|
27
|
-
type: int
|
|
28
|
-
required: true
|
|
29
|
-
description: Current step number (1-indexed)
|
|
30
|
-
max_steps:
|
|
31
|
-
type: int
|
|
32
|
-
default: 10
|
|
33
|
-
description: Maximum number of steps
|
|
34
|
-
search_tool_section:
|
|
35
|
-
type: str
|
|
36
|
-
default: ""
|
|
37
|
-
description: Optional web search tool description if available
|
|
38
|
-
---
|
|
39
|
-
Task: {{ task_title }}
|
|
40
|
-
Description: {{ task_description }}
|
|
41
|
-
|
|
42
|
-
You are researching this task to identify relevant files and implementation details.
|
|
43
|
-
You have access to the following tools:
|
|
44
|
-
|
|
45
|
-
1. glob(pattern): Find files matching a pattern (e.g. "src/**/*.py")
|
|
46
|
-
2. grep(pattern, path): Search for text in files (e.g. "def login", "src/")
|
|
47
|
-
3. read_file(path): Read the content of a file
|
|
48
|
-
4. done(reason): Finish research
|
|
49
|
-
{{ search_tool_section }}
|
|
50
|
-
|
|
51
|
-
Current Context:
|
|
52
|
-
Found Files: {{ found_files }}
|
|
53
|
-
Snippets: {{ snippets_keys }}
|
|
54
|
-
|
|
55
|
-
History:
|
|
56
|
-
{{ history }}
|
|
57
|
-
|
|
58
|
-
Step {{ step }}/{{ max_steps }}. What is your next move? Respond with THOUGHT followed by ACTION.
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: validation-criteria
|
|
3
|
-
description: Prompt for generating validation criteria from task description
|
|
4
|
-
version: "1.0"
|
|
5
|
-
variables:
|
|
6
|
-
title:
|
|
7
|
-
type: str
|
|
8
|
-
required: true
|
|
9
|
-
description: Task title
|
|
10
|
-
description:
|
|
11
|
-
type: str
|
|
12
|
-
default: "(no description)"
|
|
13
|
-
description: Task description
|
|
14
|
-
---
|
|
15
|
-
Generate validation criteria for this task.
|
|
16
|
-
|
|
17
|
-
Task: {{ title }}
|
|
18
|
-
Description: {{ description }}
|
|
19
|
-
|
|
20
|
-
CRITICAL RULES - You MUST follow these:
|
|
21
|
-
1. **Only stated requirements** - Include ONLY requirements explicitly written in the title or description
|
|
22
|
-
2. **No invented values** - Do NOT invent specific numbers, timeouts, thresholds, or limits unless they appear in the task
|
|
23
|
-
3. **No invented edge cases** - Do NOT add edge cases, error scenarios, or boundary conditions beyond what's described
|
|
24
|
-
4. **Proportional detail** - Vague tasks get vague criteria; detailed tasks get detailed criteria
|
|
25
|
-
5. **When in doubt, leave it out** - If something isn't mentioned, don't include it
|
|
26
|
-
|
|
27
|
-
For vague requirements like "fix X" or "add Y", use criteria like:
|
|
28
|
-
- "X no longer produces the reported error/warning"
|
|
29
|
-
- "Y functionality works as expected"
|
|
30
|
-
- "Existing tests continue to pass"
|
|
31
|
-
- "No regressions introduced"
|
|
32
|
-
|
|
33
|
-
DO NOT generate criteria like:
|
|
34
|
-
- "timeout defaults to 30 seconds" (unless 30 seconds is in the task description)
|
|
35
|
-
- "handles edge case Z" (unless Z is mentioned in the task)
|
|
36
|
-
- "logs with format X" (unless that format is specified)
|
|
37
|
-
|
|
38
|
-
Format as markdown checkboxes:
|
|
39
|
-
## Deliverable
|
|
40
|
-
- [ ] What the task explicitly asks for
|
|
41
|
-
|
|
42
|
-
## Functional Requirements
|
|
43
|
-
- [ ] Only requirements stated in the description
|
|
44
|
-
|
|
45
|
-
## Verification
|
|
46
|
-
- [ ] Tests pass (if applicable)
|
|
47
|
-
- [ ] No regressions
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: validation-validate
|
|
3
|
-
description: Base prompt for validating task completion against criteria
|
|
4
|
-
version: "1.0"
|
|
5
|
-
variables:
|
|
6
|
-
title:
|
|
7
|
-
type: str
|
|
8
|
-
required: true
|
|
9
|
-
description: Task title
|
|
10
|
-
category_section:
|
|
11
|
-
type: str
|
|
12
|
-
default: ""
|
|
13
|
-
description: Optional category/test strategy section
|
|
14
|
-
criteria_text:
|
|
15
|
-
type: str
|
|
16
|
-
required: true
|
|
17
|
-
description: Validation criteria or task description
|
|
18
|
-
changes_section:
|
|
19
|
-
type: str
|
|
20
|
-
required: true
|
|
21
|
-
description: Summary of changes made (files, diffs, etc.)
|
|
22
|
-
file_context:
|
|
23
|
-
type: str
|
|
24
|
-
default: ""
|
|
25
|
-
description: Optional file content context
|
|
26
|
-
---
|
|
27
|
-
Validate if the following changes satisfy the requirements.
|
|
28
|
-
|
|
29
|
-
Task: {{ title }}
|
|
30
|
-
{{ category_section }}{{ criteria_text }}
|
|
31
|
-
|
|
32
|
-
{{ changes_section }}
|
|
33
|
-
IMPORTANT: Return ONLY a JSON object, nothing else. No explanation, no preamble.
|
|
34
|
-
Format: {"status": "valid", "feedback": "..."} or {"status": "invalid", "feedback": "..."}
|
|
35
|
-
{% if file_context %}
|
|
36
|
-
File Context:
|
|
37
|
-
{{ file_context }}
|
|
38
|
-
{% endif %}
|