hungry-ghost-hive 0.3.0
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.
- package/LICENSE +111 -0
- package/README.md +352 -0
- package/dist/agents/base-agent.d.ts +63 -0
- package/dist/agents/base-agent.d.ts.map +1 -0
- package/dist/agents/base-agent.js +189 -0
- package/dist/agents/base-agent.js.map +1 -0
- package/dist/agents/index.d.ts +7 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +7 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/intermediate.d.ts +15 -0
- package/dist/agents/intermediate.d.ts.map +1 -0
- package/dist/agents/intermediate.js +142 -0
- package/dist/agents/intermediate.js.map +1 -0
- package/dist/agents/junior.d.ts +15 -0
- package/dist/agents/junior.d.ts.map +1 -0
- package/dist/agents/junior.js +147 -0
- package/dist/agents/junior.js.map +1 -0
- package/dist/agents/qa.d.ts +23 -0
- package/dist/agents/qa.d.ts.map +1 -0
- package/dist/agents/qa.js +238 -0
- package/dist/agents/qa.js.map +1 -0
- package/dist/agents/senior.d.ts +18 -0
- package/dist/agents/senior.d.ts.map +1 -0
- package/dist/agents/senior.js +267 -0
- package/dist/agents/senior.js.map +1 -0
- package/dist/agents/tech-lead.d.ts +17 -0
- package/dist/agents/tech-lead.d.ts.map +1 -0
- package/dist/agents/tech-lead.js +274 -0
- package/dist/agents/tech-lead.js.map +1 -0
- package/dist/cli/commands/add-repo.d.ts +3 -0
- package/dist/cli/commands/add-repo.d.ts.map +1 -0
- package/dist/cli/commands/add-repo.js +84 -0
- package/dist/cli/commands/add-repo.js.map +1 -0
- package/dist/cli/commands/agents.d.ts +3 -0
- package/dist/cli/commands/agents.d.ts.map +1 -0
- package/dist/cli/commands/agents.js +214 -0
- package/dist/cli/commands/agents.js.map +1 -0
- package/dist/cli/commands/assign.d.ts +3 -0
- package/dist/cli/commands/assign.d.ts.map +1 -0
- package/dist/cli/commands/assign.js +81 -0
- package/dist/cli/commands/assign.js.map +1 -0
- package/dist/cli/commands/config.d.ts +3 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +118 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/escalations.d.ts +3 -0
- package/dist/cli/commands/escalations.d.ts.map +1 -0
- package/dist/cli/commands/escalations.js +157 -0
- package/dist/cli/commands/escalations.js.map +1 -0
- package/dist/cli/commands/index.d.ts +17 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +17 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +59 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/manager.d.ts +3 -0
- package/dist/cli/commands/manager.d.ts.map +1 -0
- package/dist/cli/commands/manager.js +775 -0
- package/dist/cli/commands/manager.js.map +1 -0
- package/dist/cli/commands/manager.test.d.ts +2 -0
- package/dist/cli/commands/manager.test.d.ts.map +1 -0
- package/dist/cli/commands/manager.test.js +45 -0
- package/dist/cli/commands/manager.test.js.map +1 -0
- package/dist/cli/commands/msg.d.ts +3 -0
- package/dist/cli/commands/msg.d.ts.map +1 -0
- package/dist/cli/commands/msg.js +190 -0
- package/dist/cli/commands/msg.js.map +1 -0
- package/dist/cli/commands/my-stories.d.ts +3 -0
- package/dist/cli/commands/my-stories.d.ts.map +1 -0
- package/dist/cli/commands/my-stories.js +174 -0
- package/dist/cli/commands/my-stories.js.map +1 -0
- package/dist/cli/commands/nuke.d.ts +3 -0
- package/dist/cli/commands/nuke.d.ts.map +1 -0
- package/dist/cli/commands/nuke.js +189 -0
- package/dist/cli/commands/nuke.js.map +1 -0
- package/dist/cli/commands/pr.d.ts +3 -0
- package/dist/cli/commands/pr.d.ts.map +1 -0
- package/dist/cli/commands/pr.js +488 -0
- package/dist/cli/commands/pr.js.map +1 -0
- package/dist/cli/commands/req.d.ts +3 -0
- package/dist/cli/commands/req.d.ts.map +1 -0
- package/dist/cli/commands/req.js +212 -0
- package/dist/cli/commands/req.js.map +1 -0
- package/dist/cli/commands/resume.d.ts +3 -0
- package/dist/cli/commands/resume.d.ts.map +1 -0
- package/dist/cli/commands/resume.js +114 -0
- package/dist/cli/commands/resume.js.map +1 -0
- package/dist/cli/commands/status.d.ts +3 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +259 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/stories.d.ts +3 -0
- package/dist/cli/commands/stories.d.ts.map +1 -0
- package/dist/cli/commands/stories.js +111 -0
- package/dist/cli/commands/stories.js.map +1 -0
- package/dist/cli/commands/teams.d.ts +3 -0
- package/dist/cli/commands/teams.d.ts.map +1 -0
- package/dist/cli/commands/teams.js +137 -0
- package/dist/cli/commands/teams.js.map +1 -0
- package/dist/cli/dashboard/index.d.ts +5 -0
- package/dist/cli/dashboard/index.d.ts.map +1 -0
- package/dist/cli/dashboard/index.js +128 -0
- package/dist/cli/dashboard/index.js.map +1 -0
- package/dist/cli/dashboard/panels/activity.d.ts +5 -0
- package/dist/cli/dashboard/panels/activity.d.ts.map +1 -0
- package/dist/cli/dashboard/panels/activity.js +64 -0
- package/dist/cli/dashboard/panels/activity.js.map +1 -0
- package/dist/cli/dashboard/panels/agents.d.ts +5 -0
- package/dist/cli/dashboard/panels/agents.d.ts.map +1 -0
- package/dist/cli/dashboard/panels/agents.js +196 -0
- package/dist/cli/dashboard/panels/agents.js.map +1 -0
- package/dist/cli/dashboard/panels/escalations.d.ts +5 -0
- package/dist/cli/dashboard/panels/escalations.d.ts.map +1 -0
- package/dist/cli/dashboard/panels/escalations.js +93 -0
- package/dist/cli/dashboard/panels/escalations.js.map +1 -0
- package/dist/cli/dashboard/panels/merge-queue.d.ts +5 -0
- package/dist/cli/dashboard/panels/merge-queue.d.ts.map +1 -0
- package/dist/cli/dashboard/panels/merge-queue.js +57 -0
- package/dist/cli/dashboard/panels/merge-queue.js.map +1 -0
- package/dist/cli/dashboard/panels/pipeline.d.ts +5 -0
- package/dist/cli/dashboard/panels/pipeline.d.ts.map +1 -0
- package/dist/cli/dashboard/panels/pipeline.js +54 -0
- package/dist/cli/dashboard/panels/pipeline.js.map +1 -0
- package/dist/cli/dashboard/panels/stories.d.ts +5 -0
- package/dist/cli/dashboard/panels/stories.d.ts.map +1 -0
- package/dist/cli/dashboard/panels/stories.js +79 -0
- package/dist/cli/dashboard/panels/stories.js.map +1 -0
- package/dist/cli-runtimes/claude.d.ts +8 -0
- package/dist/cli-runtimes/claude.d.ts.map +1 -0
- package/dist/cli-runtimes/claude.js +27 -0
- package/dist/cli-runtimes/claude.js.map +1 -0
- package/dist/cli-runtimes/codex.d.ts +8 -0
- package/dist/cli-runtimes/codex.d.ts.map +1 -0
- package/dist/cli-runtimes/codex.js +27 -0
- package/dist/cli-runtimes/codex.js.map +1 -0
- package/dist/cli-runtimes/gemini.d.ts +8 -0
- package/dist/cli-runtimes/gemini.d.ts.map +1 -0
- package/dist/cli-runtimes/gemini.js +29 -0
- package/dist/cli-runtimes/gemini.js.map +1 -0
- package/dist/cli-runtimes/index.d.ts +25 -0
- package/dist/cli-runtimes/index.d.ts.map +1 -0
- package/dist/cli-runtimes/index.js +48 -0
- package/dist/cli-runtimes/index.js.map +1 -0
- package/dist/cli-runtimes/index.test.d.ts +2 -0
- package/dist/cli-runtimes/index.test.d.ts.map +1 -0
- package/dist/cli-runtimes/index.test.js +216 -0
- package/dist/cli-runtimes/index.test.js.map +1 -0
- package/dist/cli-runtimes/types.d.ts +27 -0
- package/dist/cli-runtimes/types.d.ts.map +1 -0
- package/dist/cli-runtimes/types.js +2 -0
- package/dist/cli-runtimes/types.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +3 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +11 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +72 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schema.d.ts +660 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +217 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/schema.test.d.ts +2 -0
- package/dist/config/schema.test.d.ts.map +1 -0
- package/dist/config/schema.test.js +123 -0
- package/dist/config/schema.test.js.map +1 -0
- package/dist/context-files/generator.d.ts +32 -0
- package/dist/context-files/generator.d.ts.map +1 -0
- package/dist/context-files/generator.js +120 -0
- package/dist/context-files/generator.js.map +1 -0
- package/dist/context-files/index.d.ts +38 -0
- package/dist/context-files/index.d.ts.map +1 -0
- package/dist/context-files/index.js +76 -0
- package/dist/context-files/index.js.map +1 -0
- package/dist/context-files/index.test.d.ts +2 -0
- package/dist/context-files/index.test.d.ts.map +1 -0
- package/dist/context-files/index.test.js +265 -0
- package/dist/context-files/index.test.js.map +1 -0
- package/dist/context-files/templates.d.ts +19 -0
- package/dist/context-files/templates.d.ts.map +1 -0
- package/dist/context-files/templates.js +266 -0
- package/dist/context-files/templates.js.map +1 -0
- package/dist/db/client.d.ts +95 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +343 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/lock.d.ts +25 -0
- package/dist/db/lock.d.ts.map +1 -0
- package/dist/db/lock.js +56 -0
- package/dist/db/lock.js.map +1 -0
- package/dist/db/lock.test.d.ts +2 -0
- package/dist/db/lock.test.d.ts.map +1 -0
- package/dist/db/lock.test.js +73 -0
- package/dist/db/lock.test.js.map +1 -0
- package/dist/db/queries/agents.d.ts +31 -0
- package/dist/db/queries/agents.d.ts.map +1 -0
- package/dist/db/queries/agents.js +76 -0
- package/dist/db/queries/agents.js.map +1 -0
- package/dist/db/queries/escalations.d.ts +29 -0
- package/dist/db/queries/escalations.d.ts.map +1 -0
- package/dist/db/queries/escalations.js +105 -0
- package/dist/db/queries/escalations.js.map +1 -0
- package/dist/db/queries/heartbeat.d.ts +20 -0
- package/dist/db/queries/heartbeat.d.ts.map +1 -0
- package/dist/db/queries/heartbeat.js +61 -0
- package/dist/db/queries/heartbeat.js.map +1 -0
- package/dist/db/queries/index.d.ts +8 -0
- package/dist/db/queries/index.d.ts.map +1 -0
- package/dist/db/queries/index.js +8 -0
- package/dist/db/queries/index.js.map +1 -0
- package/dist/db/queries/logs.d.ts +21 -0
- package/dist/db/queries/logs.d.ts.map +1 -0
- package/dist/db/queries/logs.js +72 -0
- package/dist/db/queries/logs.js.map +1 -0
- package/dist/db/queries/messages.d.ts +17 -0
- package/dist/db/queries/messages.d.ts.map +1 -0
- package/dist/db/queries/messages.js +22 -0
- package/dist/db/queries/messages.js.map +1 -0
- package/dist/db/queries/pull-requests.d.ts +33 -0
- package/dist/db/queries/pull-requests.d.ts.map +1 -0
- package/dist/db/queries/pull-requests.js +130 -0
- package/dist/db/queries/pull-requests.js.map +1 -0
- package/dist/db/queries/requirements.d.ts +22 -0
- package/dist/db/queries/requirements.d.ts.map +1 -0
- package/dist/db/queries/requirements.js +53 -0
- package/dist/db/queries/requirements.js.map +1 -0
- package/dist/db/queries/stories.d.ts +42 -0
- package/dist/db/queries/stories.d.ts.map +1 -0
- package/dist/db/queries/stories.js +163 -0
- package/dist/db/queries/stories.js.map +1 -0
- package/dist/db/queries/teams.d.ts +14 -0
- package/dist/db/queries/teams.d.ts.map +1 -0
- package/dist/db/queries/teams.js +24 -0
- package/dist/db/queries/teams.js.map +1 -0
- package/dist/git/branches.d.ts +52 -0
- package/dist/git/branches.d.ts.map +1 -0
- package/dist/git/branches.js +133 -0
- package/dist/git/branches.js.map +1 -0
- package/dist/git/github.d.ts +75 -0
- package/dist/git/github.d.ts.map +1 -0
- package/dist/git/github.js +162 -0
- package/dist/git/github.js.map +1 -0
- package/dist/git/index.d.ts +4 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +4 -0
- package/dist/git/index.js.map +1 -0
- package/dist/git/submodules.d.ts +47 -0
- package/dist/git/submodules.d.ts.map +1 -0
- package/dist/git/submodules.js +115 -0
- package/dist/git/submodules.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +62 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/anthropic.d.ts +18 -0
- package/dist/llm/anthropic.d.ts.map +1 -0
- package/dist/llm/anthropic.js +111 -0
- package/dist/llm/anthropic.js.map +1 -0
- package/dist/llm/index.d.ts +6 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +24 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/openai.d.ts +18 -0
- package/dist/llm/openai.d.ts.map +1 -0
- package/dist/llm/openai.js +103 -0
- package/dist/llm/openai.js.map +1 -0
- package/dist/llm/provider.d.ts +38 -0
- package/dist/llm/provider.d.ts.map +1 -0
- package/dist/llm/provider.js +17 -0
- package/dist/llm/provider.js.map +1 -0
- package/dist/orchestrator/index.d.ts +4 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +4 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/scaler.d.ts +42 -0
- package/dist/orchestrator/scaler.d.ts.map +1 -0
- package/dist/orchestrator/scaler.js +154 -0
- package/dist/orchestrator/scaler.js.map +1 -0
- package/dist/orchestrator/scheduler.d.ts +90 -0
- package/dist/orchestrator/scheduler.d.ts.map +1 -0
- package/dist/orchestrator/scheduler.js +1003 -0
- package/dist/orchestrator/scheduler.js.map +1 -0
- package/dist/orchestrator/scheduler.test.d.ts +2 -0
- package/dist/orchestrator/scheduler.test.d.ts.map +1 -0
- package/dist/orchestrator/scheduler.test.js +242 -0
- package/dist/orchestrator/scheduler.test.js.map +1 -0
- package/dist/orchestrator/workflow.d.ts +18 -0
- package/dist/orchestrator/workflow.d.ts.map +1 -0
- package/dist/orchestrator/workflow.js +106 -0
- package/dist/orchestrator/workflow.js.map +1 -0
- package/dist/state-detectors/claude.d.ts +33 -0
- package/dist/state-detectors/claude.d.ts.map +1 -0
- package/dist/state-detectors/claude.js +237 -0
- package/dist/state-detectors/claude.js.map +1 -0
- package/dist/state-detectors/claude.test.d.ts +2 -0
- package/dist/state-detectors/claude.test.d.ts.map +1 -0
- package/dist/state-detectors/claude.test.js +127 -0
- package/dist/state-detectors/claude.test.js.map +1 -0
- package/dist/state-detectors/codex.d.ts +34 -0
- package/dist/state-detectors/codex.d.ts.map +1 -0
- package/dist/state-detectors/codex.js +233 -0
- package/dist/state-detectors/codex.js.map +1 -0
- package/dist/state-detectors/codex.test.d.ts +2 -0
- package/dist/state-detectors/codex.test.d.ts.map +1 -0
- package/dist/state-detectors/codex.test.js +85 -0
- package/dist/state-detectors/codex.test.js.map +1 -0
- package/dist/state-detectors/factory.d.ts +22 -0
- package/dist/state-detectors/factory.d.ts.map +1 -0
- package/dist/state-detectors/factory.js +37 -0
- package/dist/state-detectors/factory.js.map +1 -0
- package/dist/state-detectors/factory.test.d.ts +2 -0
- package/dist/state-detectors/factory.test.d.ts.map +1 -0
- package/dist/state-detectors/factory.test.js +44 -0
- package/dist/state-detectors/factory.test.js.map +1 -0
- package/dist/state-detectors/gemini.d.ts +34 -0
- package/dist/state-detectors/gemini.d.ts.map +1 -0
- package/dist/state-detectors/gemini.js +236 -0
- package/dist/state-detectors/gemini.js.map +1 -0
- package/dist/state-detectors/gemini.test.d.ts +2 -0
- package/dist/state-detectors/gemini.test.d.ts.map +1 -0
- package/dist/state-detectors/gemini.test.js +93 -0
- package/dist/state-detectors/gemini.test.js.map +1 -0
- package/dist/state-detectors/index.d.ts +20 -0
- package/dist/state-detectors/index.d.ts.map +1 -0
- package/dist/state-detectors/index.js +21 -0
- package/dist/state-detectors/index.js.map +1 -0
- package/dist/state-detectors/types.d.ts +67 -0
- package/dist/state-detectors/types.d.ts.map +1 -0
- package/dist/state-detectors/types.js +28 -0
- package/dist/state-detectors/types.js.map +1 -0
- package/dist/tmux/index.d.ts +2 -0
- package/dist/tmux/index.d.ts.map +1 -0
- package/dist/tmux/index.js +2 -0
- package/dist/tmux/index.js.map +1 -0
- package/dist/tmux/manager.d.ts +45 -0
- package/dist/tmux/manager.d.ts.map +1 -0
- package/dist/tmux/manager.js +252 -0
- package/dist/tmux/manager.js.map +1 -0
- package/dist/utils/claude-code-state.d.ts +46 -0
- package/dist/utils/claude-code-state.d.ts.map +1 -0
- package/dist/utils/claude-code-state.js +252 -0
- package/dist/utils/claude-code-state.js.map +1 -0
- package/dist/utils/cli-builder.d.ts +19 -0
- package/dist/utils/cli-builder.d.ts.map +1 -0
- package/dist/utils/cli-builder.js +58 -0
- package/dist/utils/cli-builder.js.map +1 -0
- package/dist/utils/cli-commands.d.ts +27 -0
- package/dist/utils/cli-commands.d.ts.map +1 -0
- package/dist/utils/cli-commands.js +69 -0
- package/dist/utils/cli-commands.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +13 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +77 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/paths.d.ts +17 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +33 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/timeout.d.ts +25 -0
- package/dist/utils/timeout.d.ts.map +1 -0
- package/dist/utils/timeout.js +57 -0
- package/dist/utils/timeout.js.map +1 -0
- package/package.json +78 -0
- package/src/agents/base-agent.ts +255 -0
- package/src/agents/index.ts +6 -0
- package/src/agents/intermediate.ts +161 -0
- package/src/agents/junior.ts +166 -0
- package/src/agents/qa.ts +272 -0
- package/src/agents/senior.ts +307 -0
- package/src/agents/tech-lead.ts +324 -0
- package/src/cli/commands/add-repo.ts +89 -0
- package/src/cli/commands/agents.ts +247 -0
- package/src/cli/commands/assign.ts +86 -0
- package/src/cli/commands/config.ts +121 -0
- package/src/cli/commands/escalations.ts +179 -0
- package/src/cli/commands/index.ts +16 -0
- package/src/cli/commands/init.ts +66 -0
- package/src/cli/commands/manager.test.ts +52 -0
- package/src/cli/commands/manager.ts +916 -0
- package/src/cli/commands/msg.ts +232 -0
- package/src/cli/commands/my-stories.ts +198 -0
- package/src/cli/commands/nuke.ts +223 -0
- package/src/cli/commands/pr.ts +559 -0
- package/src/cli/commands/req.ts +231 -0
- package/src/cli/commands/resume.ts +129 -0
- package/src/cli/commands/status.ts +284 -0
- package/src/cli/commands/stories.ts +131 -0
- package/src/cli/commands/teams.ts +158 -0
- package/src/cli/dashboard/index.ts +141 -0
- package/src/cli/dashboard/panels/activity.ts +77 -0
- package/src/cli/dashboard/panels/agents.ts +244 -0
- package/src/cli/dashboard/panels/escalations.ts +109 -0
- package/src/cli/dashboard/panels/merge-queue.ts +65 -0
- package/src/cli/dashboard/panels/pipeline.ts +65 -0
- package/src/cli/dashboard/panels/stories.ts +87 -0
- package/src/cli-runtimes/claude.ts +31 -0
- package/src/cli-runtimes/codex.ts +31 -0
- package/src/cli-runtimes/gemini.ts +33 -0
- package/src/cli-runtimes/index.test.ts +261 -0
- package/src/cli-runtimes/index.ts +52 -0
- package/src/cli-runtimes/types.ts +30 -0
- package/src/config/index.ts +2 -0
- package/src/config/loader.ts +89 -0
- package/src/config/schema.test.ts +135 -0
- package/src/config/schema.ts +238 -0
- package/src/context-files/generator.ts +132 -0
- package/src/context-files/index.test.ts +323 -0
- package/src/context-files/index.ts +102 -0
- package/src/context-files/templates.ts +279 -0
- package/src/db/client.ts +475 -0
- package/src/db/lock.test.ts +93 -0
- package/src/db/lock.ts +74 -0
- package/src/db/migrations/001-initial.sql +121 -0
- package/src/db/migrations/005-add-agent-heartbeat.sql +4 -0
- package/src/db/queries/agents.ts +113 -0
- package/src/db/queries/escalations.ts +140 -0
- package/src/db/queries/heartbeat.ts +92 -0
- package/src/db/queries/index.ts +7 -0
- package/src/db/queries/logs.ts +136 -0
- package/src/db/queries/messages.ts +38 -0
- package/src/db/queries/pull-requests.ts +170 -0
- package/src/db/queries/requirements.ts +81 -0
- package/src/db/queries/stories.ts +223 -0
- package/src/db/queries/teams.ts +39 -0
- package/src/git/branches.ts +186 -0
- package/src/git/github.ts +247 -0
- package/src/git/index.ts +3 -0
- package/src/git/submodules.ts +141 -0
- package/src/index.ts +93 -0
- package/src/llm/anthropic.ts +134 -0
- package/src/llm/index.ts +26 -0
- package/src/llm/openai.ts +125 -0
- package/src/llm/provider.ts +60 -0
- package/src/orchestrator/index.ts +3 -0
- package/src/orchestrator/scaler.ts +201 -0
- package/src/orchestrator/scheduler.test.ts +288 -0
- package/src/orchestrator/scheduler.ts +1130 -0
- package/src/orchestrator/workflow.ts +137 -0
- package/src/state-detectors/claude.test.ts +149 -0
- package/src/state-detectors/claude.ts +256 -0
- package/src/state-detectors/codex.test.ts +100 -0
- package/src/state-detectors/codex.ts +252 -0
- package/src/state-detectors/factory.test.ts +51 -0
- package/src/state-detectors/factory.ts +40 -0
- package/src/state-detectors/gemini.test.ts +110 -0
- package/src/state-detectors/gemini.ts +255 -0
- package/src/state-detectors/index.ts +25 -0
- package/src/state-detectors/types.ts +80 -0
- package/src/tmux/index.ts +1 -0
- package/src/tmux/manager.ts +310 -0
- package/src/types/sql.js.d.ts +34 -0
- package/src/utils/claude-code-state.ts +281 -0
- package/src/utils/cli-builder.ts +78 -0
- package/src/utils/cli-commands.ts +84 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/logger.ts +93 -0
- package/src/utils/paths.ts +49 -0
- package/src/utils/timeout.ts +84 -0
- package/tsconfig.json +25 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context File Management
|
|
3
|
+
*
|
|
4
|
+
* Generates and manages CLI-specific context files (CLAUDE.md, AGENTS.md, GEMINI.md)
|
|
5
|
+
* that provide Hive workflow context to AI agents.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { readFileSync, writeFileSync, existsSync } from 'fs';
|
|
9
|
+
import { dirname } from 'path';
|
|
10
|
+
import { mkdirSync } from 'fs';
|
|
11
|
+
import { generateContextFileContent } from './generator.js';
|
|
12
|
+
import type { TeamRow } from '../db/queries/teams.js';
|
|
13
|
+
import type { StoryRow } from '../db/queries/stories.js';
|
|
14
|
+
import type { HiveConfig } from '../config/schema.js';
|
|
15
|
+
|
|
16
|
+
export type CLITool = 'claude-code' | 'codex' | 'gemini';
|
|
17
|
+
|
|
18
|
+
export interface ContextFileOptions {
|
|
19
|
+
cliTool: CLITool;
|
|
20
|
+
team: TeamRow;
|
|
21
|
+
stories: StoryRow[];
|
|
22
|
+
agentType: 'tech_lead' | 'senior' | 'intermediate' | 'junior' | 'qa';
|
|
23
|
+
config: HiveConfig;
|
|
24
|
+
agentId?: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Get the context file name for a given CLI tool
|
|
29
|
+
*/
|
|
30
|
+
export function getContextFileName(cliTool: CLITool): string {
|
|
31
|
+
switch (cliTool) {
|
|
32
|
+
case 'claude-code':
|
|
33
|
+
return 'CLAUDE.md';
|
|
34
|
+
case 'codex':
|
|
35
|
+
return 'AGENTS.md';
|
|
36
|
+
case 'gemini':
|
|
37
|
+
return 'GEMINI.md';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Get the context file path in a repository
|
|
43
|
+
*/
|
|
44
|
+
export function getContextFilePath(repoPath: string, cliTool: CLITool): string {
|
|
45
|
+
return `${repoPath}/${getContextFileName(cliTool)}`;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Check if a context file exists in a repository
|
|
50
|
+
*/
|
|
51
|
+
export function contextFileExists(repoPath: string, cliTool: CLITool): boolean {
|
|
52
|
+
return existsSync(getContextFilePath(repoPath, cliTool));
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Generate and write context file to a repository
|
|
57
|
+
* If file exists, only updates the HIVE-managed section (between markers)
|
|
58
|
+
*/
|
|
59
|
+
export function generateContextFile(options: ContextFileOptions): void {
|
|
60
|
+
const filePath = getContextFilePath(options.team.repo_path, options.cliTool);
|
|
61
|
+
const newContent = generateContextFileContent(options);
|
|
62
|
+
|
|
63
|
+
// If file doesn't exist, write it entirely
|
|
64
|
+
if (!existsSync(filePath)) {
|
|
65
|
+
// Create directory if it doesn't exist
|
|
66
|
+
const dirPath = dirname(filePath);
|
|
67
|
+
if (!existsSync(dirPath)) {
|
|
68
|
+
mkdirSync(dirPath, { recursive: true });
|
|
69
|
+
}
|
|
70
|
+
writeFileSync(filePath, newContent, 'utf-8');
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// If file exists, merge content using markers
|
|
75
|
+
const existingContent = readFileSync(filePath, 'utf-8');
|
|
76
|
+
const mergedContent = mergeContextFileContent(existingContent, newContent);
|
|
77
|
+
writeFileSync(filePath, mergedContent, 'utf-8');
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Merge new Hive content into existing file using markers
|
|
82
|
+
*/
|
|
83
|
+
function mergeContextFileContent(existingContent: string, newContent: string): string {
|
|
84
|
+
const hiveStartMarker = '<!-- HIVE:START -->';
|
|
85
|
+
const hiveEndMarker = '<!-- HIVE:END -->';
|
|
86
|
+
|
|
87
|
+
const startIdx = existingContent.indexOf(hiveStartMarker);
|
|
88
|
+
const endIdx = existingContent.indexOf(hiveEndMarker);
|
|
89
|
+
|
|
90
|
+
// If markers don't exist, append Hive section at the end
|
|
91
|
+
if (startIdx === -1 || endIdx === -1) {
|
|
92
|
+
return existingContent + '\n\n' + newContent;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Replace content between markers
|
|
96
|
+
const beforeMarker = existingContent.substring(0, startIdx);
|
|
97
|
+
const afterMarker = existingContent.substring(endIdx + hiveEndMarker.length);
|
|
98
|
+
|
|
99
|
+
return beforeMarker + newContent + afterMarker;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export { generateContextFileContent };
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context File Templates
|
|
3
|
+
*
|
|
4
|
+
* CLI-specific templates for generating context files
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
formatStoriesForContext,
|
|
9
|
+
formatQualityChecks,
|
|
10
|
+
getAgentRoleDescription,
|
|
11
|
+
formatHiveMsgCommands,
|
|
12
|
+
formatGitWorkflow,
|
|
13
|
+
} from './generator.js';
|
|
14
|
+
import type { ContextFileOptions } from './index.js';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Template for Claude Code context file (CLAUDE.md)
|
|
18
|
+
*/
|
|
19
|
+
export function claudeCodeTemplate(options: ContextFileOptions): string {
|
|
20
|
+
const { team, stories, agentType, config, agentId } = options;
|
|
21
|
+
const formattedStories = formatStoriesForContext(stories);
|
|
22
|
+
const agentRole = getAgentRoleDescription(agentType);
|
|
23
|
+
const hiveMsgCommands = formatHiveMsgCommands(agentId);
|
|
24
|
+
const gitWorkflow = formatGitWorkflow();
|
|
25
|
+
const qualityChecks = formatQualityChecks(config.qa?.quality_checks || []);
|
|
26
|
+
const buildCommand = config.qa?.build_command || 'npm run build';
|
|
27
|
+
|
|
28
|
+
return `<!-- HIVE:START -->
|
|
29
|
+
# Hive Workflow Context - Claude Code
|
|
30
|
+
|
|
31
|
+
**Team**: ${team.name}
|
|
32
|
+
**Repository**: ${team.repo_path}
|
|
33
|
+
**Role**: ${agentRole}
|
|
34
|
+
|
|
35
|
+
## Your Assignment
|
|
36
|
+
|
|
37
|
+
You are part of the Hive orchestration system. This document contains the context you need to work effectively within the team.
|
|
38
|
+
|
|
39
|
+
${agentId ? `**Your Agent ID**: \`${agentId}\`` : ''}
|
|
40
|
+
|
|
41
|
+
## Active Stories
|
|
42
|
+
|
|
43
|
+
${formattedStories}
|
|
44
|
+
|
|
45
|
+
## Quality Standards
|
|
46
|
+
|
|
47
|
+
Before submitting work for review, ensure your code passes all quality checks:
|
|
48
|
+
|
|
49
|
+
### Quality Checks
|
|
50
|
+
|
|
51
|
+
${qualityChecks}
|
|
52
|
+
|
|
53
|
+
### Build Command
|
|
54
|
+
|
|
55
|
+
\`\`\`bash
|
|
56
|
+
${buildCommand}
|
|
57
|
+
\`\`\`
|
|
58
|
+
|
|
59
|
+
${config.qa?.test_command
|
|
60
|
+
? `### Test Command
|
|
61
|
+
|
|
62
|
+
\`\`\`bash
|
|
63
|
+
${config.qa.test_command}
|
|
64
|
+
\`\`\``
|
|
65
|
+
: ''}
|
|
66
|
+
|
|
67
|
+
## Development Workflow
|
|
68
|
+
|
|
69
|
+
${gitWorkflow}
|
|
70
|
+
|
|
71
|
+
${hiveMsgCommands}
|
|
72
|
+
|
|
73
|
+
## Story Implementation Process
|
|
74
|
+
|
|
75
|
+
1. **Select a story** - Your senior will assign stories to you
|
|
76
|
+
2. **Create feature branch** - Name it \`feature/<story-id>-<short-description>\`
|
|
77
|
+
3. **Implement changes** - Write clean, tested code following existing patterns
|
|
78
|
+
4. **Run quality checks** - Execute all quality checks before committing
|
|
79
|
+
5. **Commit regularly** - Keep commits small and focused
|
|
80
|
+
6. **Push and create PR** - Push your branch and create a pull request on GitHub
|
|
81
|
+
7. **Review feedback** - Address code review comments promptly
|
|
82
|
+
8. **Merge** - Once approved and all checks pass, the story will be merged
|
|
83
|
+
|
|
84
|
+
## Important Notes
|
|
85
|
+
|
|
86
|
+
- Always ask for help if you're stuck (use \`hive msg\`)
|
|
87
|
+
- Run tests locally before pushing
|
|
88
|
+
- Keep your branch up to date with main
|
|
89
|
+
- Link stories to PRs using the story ID in the PR description
|
|
90
|
+
- Follow the existing code patterns and conventions in the repository
|
|
91
|
+
|
|
92
|
+
## Escalation
|
|
93
|
+
|
|
94
|
+
If you encounter blockers that you cannot resolve:
|
|
95
|
+
1. Document what you've tried
|
|
96
|
+
2. Message your Senior using \`hive msg\`
|
|
97
|
+
3. Wait for guidance before proceeding further
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
<!-- HIVE:END -->`;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Template for Codex context file (AGENTS.md)
|
|
105
|
+
*/
|
|
106
|
+
export function codexTemplate(options: ContextFileOptions): string {
|
|
107
|
+
const { team, stories, agentType, config, agentId } = options;
|
|
108
|
+
const formattedStories = formatStoriesForContext(stories);
|
|
109
|
+
const agentRole = getAgentRoleDescription(agentType);
|
|
110
|
+
const hiveMsgCommands = formatHiveMsgCommands(agentId);
|
|
111
|
+
const gitWorkflow = formatGitWorkflow();
|
|
112
|
+
const qualityChecks = formatQualityChecks(config.qa?.quality_checks || []);
|
|
113
|
+
const buildCommand = config.qa?.build_command || 'npm run build';
|
|
114
|
+
|
|
115
|
+
return `<!-- HIVE:START -->
|
|
116
|
+
# Hive Team Context - Codex Agent
|
|
117
|
+
|
|
118
|
+
**Team**: ${team.name}
|
|
119
|
+
**Repository Path**: ${team.repo_path}
|
|
120
|
+
**Agent Role**: ${agentRole}
|
|
121
|
+
|
|
122
|
+
## Team Assignment Overview
|
|
123
|
+
|
|
124
|
+
This file contains essential information for working within the Hive orchestration system using Codex CLI.
|
|
125
|
+
|
|
126
|
+
${agentId ? `**Agent Identifier**: \`${agentId}\`` : ''}
|
|
127
|
+
|
|
128
|
+
## Current Work Items
|
|
129
|
+
|
|
130
|
+
${formattedStories}
|
|
131
|
+
|
|
132
|
+
## Code Quality Requirements
|
|
133
|
+
|
|
134
|
+
All code must pass the following quality checks before submission:
|
|
135
|
+
|
|
136
|
+
### Quality Assurance Checks
|
|
137
|
+
|
|
138
|
+
${qualityChecks}
|
|
139
|
+
|
|
140
|
+
### Build Process
|
|
141
|
+
|
|
142
|
+
\`\`\`bash
|
|
143
|
+
${buildCommand}
|
|
144
|
+
\`\`\`
|
|
145
|
+
|
|
146
|
+
${config.qa?.test_command
|
|
147
|
+
? `### Test Suite
|
|
148
|
+
|
|
149
|
+
\`\`\`bash
|
|
150
|
+
${config.qa.test_command}
|
|
151
|
+
\`\`\``
|
|
152
|
+
: ''}
|
|
153
|
+
|
|
154
|
+
## Implementation Standards
|
|
155
|
+
|
|
156
|
+
${gitWorkflow}
|
|
157
|
+
|
|
158
|
+
${hiveMsgCommands}
|
|
159
|
+
|
|
160
|
+
## Story Delivery Pipeline
|
|
161
|
+
|
|
162
|
+
1. **Story Assignment** - Your team lead assigns stories based on complexity
|
|
163
|
+
2. **Branch Creation** - Create branches named \`feature/<story-id>-<feature-name>\`
|
|
164
|
+
3. **Code Development** - Implement features following team conventions
|
|
165
|
+
4. **Quality Assurance** - Run all quality checks and verify the build succeeds
|
|
166
|
+
5. **Commit Management** - Make focused commits with clear messages
|
|
167
|
+
6. **Push and PR** - Push your branch and open a GitHub pull request
|
|
168
|
+
7. **Code Review** - Respond to review comments and refine as needed
|
|
169
|
+
8. **Merge Process** - Once approved, code is merged to main branch
|
|
170
|
+
|
|
171
|
+
## Best Practices
|
|
172
|
+
|
|
173
|
+
- Always verify quality checks pass before pushing
|
|
174
|
+
- Test all changes locally
|
|
175
|
+
- Maintain branch freshness - rebase on main regularly
|
|
176
|
+
- Link PRs to stories using story identifiers
|
|
177
|
+
- Follow established code patterns and conventions
|
|
178
|
+
- Document non-obvious implementation decisions
|
|
179
|
+
|
|
180
|
+
## Getting Help
|
|
181
|
+
|
|
182
|
+
If you need assistance:
|
|
183
|
+
1. Clearly document any blockers
|
|
184
|
+
2. Use \`hive msg send\` to contact your team lead or senior
|
|
185
|
+
3. Provide context about what you've already tried
|
|
186
|
+
4. Wait for guidance before making workarounds
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
<!-- HIVE:END -->`;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Template for Gemini context file (GEMINI.md)
|
|
194
|
+
*/
|
|
195
|
+
export function geminiTemplate(options: ContextFileOptions): string {
|
|
196
|
+
const { team, stories, agentType, config, agentId } = options;
|
|
197
|
+
const formattedStories = formatStoriesForContext(stories);
|
|
198
|
+
const agentRole = getAgentRoleDescription(agentType);
|
|
199
|
+
const hiveMsgCommands = formatHiveMsgCommands(agentId);
|
|
200
|
+
const gitWorkflow = formatGitWorkflow();
|
|
201
|
+
const qualityChecks = formatQualityChecks(config.qa?.quality_checks || []);
|
|
202
|
+
const buildCommand = config.qa?.build_command || 'npm run build';
|
|
203
|
+
|
|
204
|
+
return `<!-- HIVE:START -->
|
|
205
|
+
# Hive Development Context - Gemini
|
|
206
|
+
|
|
207
|
+
**Team Assignment**: ${team.name}
|
|
208
|
+
**Repository**: ${team.repo_path}
|
|
209
|
+
**Position**: ${agentRole}
|
|
210
|
+
|
|
211
|
+
## Hive Context Document
|
|
212
|
+
|
|
213
|
+
This document provides all necessary context for your work as a Hive agent.
|
|
214
|
+
|
|
215
|
+
${agentId ? `**Agent ID**: \`${agentId}\`` : ''}
|
|
216
|
+
|
|
217
|
+
## Assigned Stories
|
|
218
|
+
|
|
219
|
+
${formattedStories}
|
|
220
|
+
|
|
221
|
+
## Code Quality Standards
|
|
222
|
+
|
|
223
|
+
Your code must meet these quality standards before final submission:
|
|
224
|
+
|
|
225
|
+
### Validation Checks
|
|
226
|
+
|
|
227
|
+
${qualityChecks}
|
|
228
|
+
|
|
229
|
+
### Build Verification
|
|
230
|
+
|
|
231
|
+
\`\`\`bash
|
|
232
|
+
${buildCommand}
|
|
233
|
+
\`\`\`
|
|
234
|
+
|
|
235
|
+
${config.qa?.test_command
|
|
236
|
+
? `### Testing
|
|
237
|
+
|
|
238
|
+
\`\`\`bash
|
|
239
|
+
${config.qa.test_command}
|
|
240
|
+
\`\`\``
|
|
241
|
+
: ''}
|
|
242
|
+
|
|
243
|
+
## Development Process
|
|
244
|
+
|
|
245
|
+
${gitWorkflow}
|
|
246
|
+
|
|
247
|
+
${hiveMsgCommands}
|
|
248
|
+
|
|
249
|
+
## Workflow for Story Completion
|
|
250
|
+
|
|
251
|
+
1. **Receive Assignment** - Your manager assigns stories matched to your skills
|
|
252
|
+
2. **Setup Branch** - Initialize feature branch: \`feature/<story-id>-<brief-title>\`
|
|
253
|
+
3. **Implementation** - Develop the feature with attention to quality
|
|
254
|
+
4. **Validation** - Confirm all quality checks and builds pass
|
|
255
|
+
5. **Save Changes** - Commit your work with meaningful messages
|
|
256
|
+
6. **Upload Work** - Push branch and create pull request on GitHub
|
|
257
|
+
7. **Handle Feedback** - Address review comments and iterate
|
|
258
|
+
8. **Complete** - Story is merged once all approvals obtained
|
|
259
|
+
|
|
260
|
+
## Quality Standards
|
|
261
|
+
|
|
262
|
+
- Always run quality checks locally before pushing
|
|
263
|
+
- Verify the build completes successfully
|
|
264
|
+
- Run tests to catch regressions
|
|
265
|
+
- Use story IDs in PR references for tracking
|
|
266
|
+
- Maintain consistency with existing codebase
|
|
267
|
+
- Comment complex logic
|
|
268
|
+
|
|
269
|
+
## Support and Escalation
|
|
270
|
+
|
|
271
|
+
When you encounter issues:
|
|
272
|
+
1. Document what you've investigated
|
|
273
|
+
2. Send a message to your team lead: \`hive msg send hive-senior-${team.name} "your question"\`
|
|
274
|
+
3. Include details of what you've tried
|
|
275
|
+
4. Await direction before implementing workarounds
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
<!-- HIVE:END -->`;
|
|
279
|
+
}
|