hungry-ghost-hive 0.48.0 → 0.49.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/dist/agents/base-agent.d.ts +11 -11
- package/dist/agents/base-agent.d.ts.map +1 -1
- package/dist/agents/base-agent.js +25 -25
- package/dist/agents/base-agent.js.map +1 -1
- package/dist/agents/base-agent.test.js +2 -1
- package/dist/agents/base-agent.test.js.map +1 -1
- package/dist/agents/intermediate.d.ts +2 -0
- package/dist/agents/intermediate.d.ts.map +1 -1
- package/dist/agents/intermediate.js +25 -18
- package/dist/agents/intermediate.js.map +1 -1
- package/dist/agents/junior.d.ts +2 -0
- package/dist/agents/junior.d.ts.map +1 -1
- package/dist/agents/junior.js +25 -18
- package/dist/agents/junior.js.map +1 -1
- package/dist/agents/qa.d.ts +2 -0
- package/dist/agents/qa.d.ts.map +1 -1
- package/dist/agents/qa.js +47 -38
- package/dist/agents/qa.js.map +1 -1
- package/dist/agents/senior.d.ts +2 -0
- package/dist/agents/senior.d.ts.map +1 -1
- package/dist/agents/senior.js +40 -27
- package/dist/agents/senior.js.map +1 -1
- package/dist/agents/tech-lead.d.ts +2 -0
- package/dist/agents/tech-lead.d.ts.map +1 -1
- package/dist/agents/tech-lead.js +37 -31
- package/dist/agents/tech-lead.js.map +1 -1
- package/dist/cli/commands/add-repo.js +2 -2
- package/dist/cli/commands/add-repo.js.map +1 -1
- package/dist/cli/commands/add-repo.test.js +1 -1
- package/dist/cli/commands/add-repo.test.js.map +1 -1
- package/dist/cli/commands/agents.d.ts.map +1 -1
- package/dist/cli/commands/agents.js +12 -10
- package/dist/cli/commands/agents.js.map +1 -1
- package/dist/cli/commands/agents.test.js +7 -7
- package/dist/cli/commands/agents.test.js.map +1 -1
- package/dist/cli/commands/approach.js +2 -2
- package/dist/cli/commands/approach.js.map +1 -1
- package/dist/cli/commands/approvals.js +7 -7
- package/dist/cli/commands/approvals.js.map +1 -1
- package/dist/cli/commands/approvals.test.js +8 -8
- package/dist/cli/commands/approvals.test.js.map +1 -1
- package/dist/cli/commands/assign.js +4 -4
- package/dist/cli/commands/assign.js.map +1 -1
- package/dist/cli/commands/assign.test.js +18 -16
- package/dist/cli/commands/assign.test.js.map +1 -1
- package/dist/cli/commands/cleanup.d.ts.map +1 -1
- package/dist/cli/commands/cleanup.js +8 -8
- package/dist/cli/commands/cleanup.js.map +1 -1
- package/dist/cli/commands/cleanup.test.js +5 -1
- package/dist/cli/commands/cleanup.test.js.map +1 -1
- package/dist/cli/commands/escalations.js +9 -7
- package/dist/cli/commands/escalations.js.map +1 -1
- package/dist/cli/commands/escalations.test.js +2 -2
- package/dist/cli/commands/escalations.test.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +48 -5
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/init.test.js +4 -0
- package/dist/cli/commands/init.test.js.map +1 -1
- package/dist/cli/commands/manager/agent-monitoring.d.ts +2 -2
- package/dist/cli/commands/manager/agent-monitoring.d.ts.map +1 -1
- package/dist/cli/commands/manager/agent-monitoring.js +1 -1
- package/dist/cli/commands/manager/agent-monitoring.js.map +1 -1
- package/dist/cli/commands/manager/auditor-lifecycle.js +3 -3
- package/dist/cli/commands/manager/auditor-lifecycle.js.map +1 -1
- package/dist/cli/commands/manager/auditor-lifecycle.test.js +21 -14
- package/dist/cli/commands/manager/auditor-lifecycle.test.js.map +1 -1
- package/dist/cli/commands/manager/auto-reject-comment-only-reviews.test.js +28 -23
- package/dist/cli/commands/manager/auto-reject-comment-only-reviews.test.js.map +1 -1
- package/dist/cli/commands/manager/escalation-handler.d.ts +2 -2
- package/dist/cli/commands/manager/escalation-handler.d.ts.map +1 -1
- package/dist/cli/commands/manager/escalation-handler.js +11 -10
- package/dist/cli/commands/manager/escalation-handler.js.map +1 -1
- package/dist/cli/commands/manager/escalation-handler.test.js +8 -8
- package/dist/cli/commands/manager/escalation-handler.test.js.map +1 -1
- package/dist/cli/commands/manager/feature-sign-off.js +7 -7
- package/dist/cli/commands/manager/feature-sign-off.js.map +1 -1
- package/dist/cli/commands/manager/feature-sign-off.test.js +40 -31
- package/dist/cli/commands/manager/feature-sign-off.test.js.map +1 -1
- package/dist/cli/commands/manager/feature-test-result.d.ts.map +1 -1
- package/dist/cli/commands/manager/feature-test-result.js +12 -13
- package/dist/cli/commands/manager/feature-test-result.js.map +1 -1
- package/dist/cli/commands/manager/handoff-recovery.d.ts.map +1 -1
- package/dist/cli/commands/manager/handoff-recovery.js +14 -15
- package/dist/cli/commands/manager/handoff-recovery.js.map +1 -1
- package/dist/cli/commands/manager/index.d.ts.map +1 -1
- package/dist/cli/commands/manager/index.js +26 -26
- package/dist/cli/commands/manager/index.js.map +1 -1
- package/dist/cli/commands/manager/index.test.js +3 -3
- package/dist/cli/commands/manager/index.test.js.map +1 -1
- package/dist/cli/commands/manager/merged-story-cleanup.d.ts +2 -2
- package/dist/cli/commands/manager/merged-story-cleanup.d.ts.map +1 -1
- package/dist/cli/commands/manager/merged-story-cleanup.js +6 -7
- package/dist/cli/commands/manager/merged-story-cleanup.js.map +1 -1
- package/dist/cli/commands/manager/merged-story-cleanup.test.js +27 -18
- package/dist/cli/commands/manager/merged-story-cleanup.test.js.map +1 -1
- package/dist/cli/commands/manager/pr-sync-orchestrator.d.ts.map +1 -1
- package/dist/cli/commands/manager/pr-sync-orchestrator.js +46 -38
- package/dist/cli/commands/manager/pr-sync-orchestrator.js.map +1 -1
- package/dist/cli/commands/manager/qa-review-handler.d.ts.map +1 -1
- package/dist/cli/commands/manager/qa-review-handler.js +25 -22
- package/dist/cli/commands/manager/qa-review-handler.js.map +1 -1
- package/dist/cli/commands/manager/spin-down.d.ts.map +1 -1
- package/dist/cli/commands/manager/spin-down.js +23 -19
- package/dist/cli/commands/manager/spin-down.js.map +1 -1
- package/dist/cli/commands/manager/stale-escalations.d.ts +2 -3
- package/dist/cli/commands/manager/stale-escalations.d.ts.map +1 -1
- package/dist/cli/commands/manager/stale-escalations.js.map +1 -1
- package/dist/cli/commands/manager/stuck-story-helpers.js +8 -8
- package/dist/cli/commands/manager/stuck-story-helpers.js.map +1 -1
- package/dist/cli/commands/manager/stuck-story-processor.d.ts +2 -2
- package/dist/cli/commands/manager/stuck-story-processor.d.ts.map +1 -1
- package/dist/cli/commands/manager/stuck-story-processor.js +23 -22
- package/dist/cli/commands/manager/stuck-story-processor.js.map +1 -1
- package/dist/cli/commands/manager/tech-lead-lifecycle.js +6 -6
- package/dist/cli/commands/manager/tech-lead-lifecycle.js.map +1 -1
- package/dist/cli/commands/manager/types.d.ts +2 -3
- package/dist/cli/commands/manager/types.d.ts.map +1 -1
- package/dist/cli/commands/manager/types.js.map +1 -1
- package/dist/cli/commands/msg.test.js +2 -2
- package/dist/cli/commands/msg.test.js.map +1 -1
- package/dist/cli/commands/my-stories.d.ts.map +1 -1
- package/dist/cli/commands/my-stories.js +17 -18
- package/dist/cli/commands/my-stories.js.map +1 -1
- package/dist/cli/commands/my-stories.test.js +2 -2
- package/dist/cli/commands/my-stories.test.js.map +1 -1
- package/dist/cli/commands/nuke.test.js +1 -1
- package/dist/cli/commands/nuke.test.js.map +1 -1
- package/dist/cli/commands/pr.js +32 -32
- package/dist/cli/commands/pr.js.map +1 -1
- package/dist/cli/commands/pr.test.js +10 -6
- package/dist/cli/commands/pr.test.js.map +1 -1
- package/dist/cli/commands/progress.d.ts.map +1 -1
- package/dist/cli/commands/progress.js +4 -5
- package/dist/cli/commands/progress.js.map +1 -1
- package/dist/cli/commands/progress.test.js +1 -1
- package/dist/cli/commands/progress.test.js.map +1 -1
- package/dist/cli/commands/req-headless.test.d.ts +2 -0
- package/dist/cli/commands/req-headless.test.d.ts.map +1 -0
- package/dist/cli/commands/req-headless.test.js +128 -0
- package/dist/cli/commands/req-headless.test.js.map +1 -0
- package/dist/cli/commands/req-spawn.test.js +5 -1
- package/dist/cli/commands/req-spawn.test.js.map +1 -1
- package/dist/cli/commands/req.d.ts.map +1 -1
- package/dist/cli/commands/req.js +13 -14
- package/dist/cli/commands/req.js.map +1 -1
- package/dist/cli/commands/resume.d.ts.map +1 -1
- package/dist/cli/commands/resume.js +7 -8
- package/dist/cli/commands/resume.js.map +1 -1
- package/dist/cli/commands/resume.test.js +1 -1
- package/dist/cli/commands/resume.test.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +42 -40
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/status.test.js +1 -1
- package/dist/cli/commands/status.test.js.map +1 -1
- package/dist/cli/commands/stories.js +9 -9
- package/dist/cli/commands/stories.js.map +1 -1
- package/dist/cli/commands/stories.test.js +2 -2
- package/dist/cli/commands/stories.test.js.map +1 -1
- package/dist/cli/commands/teams.js +11 -11
- package/dist/cli/commands/teams.js.map +1 -1
- package/dist/cli/commands/teams.test.js +2 -2
- package/dist/cli/commands/teams.test.js.map +1 -1
- package/dist/cli/dashboard/index.d.ts +2 -2
- package/dist/cli/dashboard/index.d.ts.map +1 -1
- package/dist/cli/dashboard/index.js +29 -20
- package/dist/cli/dashboard/index.js.map +1 -1
- package/dist/cli/dashboard/index.test.js +34 -32
- package/dist/cli/dashboard/index.test.js.map +1 -1
- package/dist/cli/dashboard/panels/activity.d.ts +3 -3
- package/dist/cli/dashboard/panels/activity.d.ts.map +1 -1
- package/dist/cli/dashboard/panels/activity.js +1 -1
- package/dist/cli/dashboard/panels/activity.js.map +1 -1
- package/dist/cli/dashboard/panels/agents.d.ts +3 -3
- package/dist/cli/dashboard/panels/agents.d.ts.map +1 -1
- package/dist/cli/dashboard/panels/agents.js +2 -2
- package/dist/cli/dashboard/panels/agents.js.map +1 -1
- package/dist/cli/dashboard/panels/escalations.d.ts +3 -3
- package/dist/cli/dashboard/panels/escalations.d.ts.map +1 -1
- package/dist/cli/dashboard/panels/escalations.js +1 -1
- package/dist/cli/dashboard/panels/escalations.js.map +1 -1
- package/dist/cli/dashboard/panels/merge-queue.d.ts +3 -3
- package/dist/cli/dashboard/panels/merge-queue.d.ts.map +1 -1
- package/dist/cli/dashboard/panels/merge-queue.js +1 -1
- package/dist/cli/dashboard/panels/merge-queue.js.map +1 -1
- package/dist/cli/dashboard/panels/pipeline.d.ts +3 -3
- package/dist/cli/dashboard/panels/pipeline.d.ts.map +1 -1
- package/dist/cli/dashboard/panels/pipeline.js +1 -1
- package/dist/cli/dashboard/panels/pipeline.js.map +1 -1
- package/dist/config/schema.d.ts +85 -82
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +1 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/connectors/project-management/operations.d.ts +7 -7
- package/dist/connectors/project-management/operations.d.ts.map +1 -1
- package/dist/connectors/project-management/operations.js +2 -3
- package/dist/connectors/project-management/operations.js.map +1 -1
- package/dist/context-files/index.test.js +1 -0
- package/dist/context-files/index.test.js.map +1 -1
- package/dist/db/client.d.ts +6 -0
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +7 -0
- package/dist/db/client.js.map +1 -1
- package/dist/db/postgres-provider.d.ts +43 -0
- package/dist/db/postgres-provider.d.ts.map +1 -0
- package/dist/db/postgres-provider.integration.test.d.ts +2 -0
- package/dist/db/postgres-provider.integration.test.d.ts.map +1 -0
- package/dist/db/postgres-provider.integration.test.js +399 -0
- package/dist/db/postgres-provider.integration.test.js.map +1 -0
- package/dist/db/postgres-provider.js +315 -0
- package/dist/db/postgres-provider.js.map +1 -0
- package/dist/db/postgres-provider.test.d.ts +2 -0
- package/dist/db/postgres-provider.test.d.ts.map +1 -0
- package/dist/db/postgres-provider.test.js +72 -0
- package/dist/db/postgres-provider.test.js.map +1 -0
- package/dist/db/provider.d.ts +59 -0
- package/dist/db/provider.d.ts.map +1 -0
- package/dist/db/provider.js +121 -0
- package/dist/db/provider.js.map +1 -0
- package/dist/db/provider.test.d.ts +2 -0
- package/dist/db/provider.test.d.ts.map +1 -0
- package/dist/db/provider.test.js +226 -0
- package/dist/db/provider.test.js.map +1 -0
- package/dist/db/queries/agents.d.ts +13 -13
- package/dist/db/queries/agents.d.ts.map +1 -1
- package/dist/db/queries/agents.js +27 -28
- package/dist/db/queries/agents.js.map +1 -1
- package/dist/db/queries/agents.test.js +113 -111
- package/dist/db/queries/agents.test.js.map +1 -1
- package/dist/db/queries/escalations.d.ts +16 -16
- package/dist/db/queries/escalations.d.ts.map +1 -1
- package/dist/db/queries/escalations.js +34 -35
- package/dist/db/queries/escalations.js.map +1 -1
- package/dist/db/queries/escalations.test.js +133 -131
- package/dist/db/queries/escalations.test.js.map +1 -1
- package/dist/db/queries/heartbeat.d.ts +5 -5
- package/dist/db/queries/heartbeat.d.ts.map +1 -1
- package/dist/db/queries/heartbeat.js +7 -23
- package/dist/db/queries/heartbeat.js.map +1 -1
- package/dist/db/queries/heartbeat.test.js +76 -76
- package/dist/db/queries/heartbeat.test.js.map +1 -1
- package/dist/db/queries/integration-sync.d.ts +7 -7
- package/dist/db/queries/integration-sync.d.ts.map +1 -1
- package/dist/db/queries/integration-sync.js +13 -14
- package/dist/db/queries/integration-sync.js.map +1 -1
- package/dist/db/queries/logs.d.ts +10 -10
- package/dist/db/queries/logs.d.ts.map +1 -1
- package/dist/db/queries/logs.js +44 -42
- package/dist/db/queries/logs.js.map +1 -1
- package/dist/db/queries/logs.test.js +149 -146
- package/dist/db/queries/logs.test.js.map +1 -1
- package/dist/db/queries/messages.d.ts +6 -6
- package/dist/db/queries/messages.d.ts.map +1 -1
- package/dist/db/queries/messages.js +12 -11
- package/dist/db/queries/messages.js.map +1 -1
- package/dist/db/queries/messages.test.js +47 -46
- package/dist/db/queries/messages.test.js.map +1 -1
- package/dist/db/queries/pull-requests.d.ts +18 -18
- package/dist/db/queries/pull-requests.d.ts.map +1 -1
- package/dist/db/queries/pull-requests.js +50 -48
- package/dist/db/queries/pull-requests.js.map +1 -1
- package/dist/db/queries/pull-requests.test.js +195 -198
- package/dist/db/queries/pull-requests.test.js.map +1 -1
- package/dist/db/queries/requirements.d.ts +8 -8
- package/dist/db/queries/requirements.d.ts.map +1 -1
- package/dist/db/queries/requirements.js +17 -18
- package/dist/db/queries/requirements.js.map +1 -1
- package/dist/db/queries/requirements.test.js +83 -81
- package/dist/db/queries/requirements.test.js.map +1 -1
- package/dist/db/queries/stories.d.ts +29 -29
- package/dist/db/queries/stories.d.ts.map +1 -1
- package/dist/db/queries/stories.js +58 -64
- package/dist/db/queries/stories.js.map +1 -1
- package/dist/db/queries/stories.test.js +172 -170
- package/dist/db/queries/stories.test.js.map +1 -1
- package/dist/db/queries/teams.d.ts +6 -6
- package/dist/db/queries/teams.d.ts.map +1 -1
- package/dist/db/queries/teams.js +11 -12
- package/dist/db/queries/teams.js.map +1 -1
- package/dist/db/queries/teams.test.js +36 -34
- package/dist/db/queries/teams.test.js.map +1 -1
- package/dist/integrations/jira/repair.test.js +26 -24
- package/dist/integrations/jira/repair.test.js.map +1 -1
- package/dist/integrations/jira/stories.d.ts +3 -3
- package/dist/integrations/jira/stories.d.ts.map +1 -1
- package/dist/integrations/jira/stories.js +12 -12
- package/dist/integrations/jira/stories.js.map +1 -1
- package/dist/integrations/jira/stories.test.js +10 -8
- package/dist/integrations/jira/stories.test.js.map +1 -1
- package/dist/integrations/jira/sync.d.ts +7 -7
- package/dist/integrations/jira/sync.d.ts.map +1 -1
- package/dist/integrations/jira/sync.js +17 -20
- package/dist/integrations/jira/sync.js.map +1 -1
- package/dist/integrations/jira/sync.test.js +63 -62
- package/dist/integrations/jira/sync.test.js.map +1 -1
- package/dist/integrations/jira/transitions.d.ts +3 -3
- package/dist/integrations/jira/transitions.d.ts.map +1 -1
- package/dist/integrations/jira/transitions.js +3 -3
- package/dist/integrations/jira/transitions.js.map +1 -1
- package/dist/orchestrator/agent-selector.d.ts +3 -3
- package/dist/orchestrator/agent-selector.d.ts.map +1 -1
- package/dist/orchestrator/agent-selector.js +5 -6
- package/dist/orchestrator/agent-selector.js.map +1 -1
- package/dist/orchestrator/dependency-resolver.d.ts +4 -4
- package/dist/orchestrator/dependency-resolver.d.ts.map +1 -1
- package/dist/orchestrator/dependency-resolver.js +6 -6
- package/dist/orchestrator/dependency-resolver.js.map +1 -1
- package/dist/orchestrator/feature-branch.d.ts +3 -3
- package/dist/orchestrator/feature-branch.d.ts.map +1 -1
- package/dist/orchestrator/feature-branch.js +9 -10
- package/dist/orchestrator/feature-branch.js.map +1 -1
- package/dist/orchestrator/feature-branch.test.js +80 -78
- package/dist/orchestrator/feature-branch.test.js.map +1 -1
- package/dist/orchestrator/orphan-recovery.d.ts +2 -2
- package/dist/orchestrator/orphan-recovery.d.ts.map +1 -1
- package/dist/orchestrator/orphan-recovery.js +10 -10
- package/dist/orchestrator/orphan-recovery.js.map +1 -1
- package/dist/orchestrator/scheduler.d.ts +4 -4
- package/dist/orchestrator/scheduler.d.ts.map +1 -1
- package/dist/orchestrator/scheduler.js +90 -76
- package/dist/orchestrator/scheduler.js.map +1 -1
- package/dist/orchestrator/scheduler.test.js +496 -374
- package/dist/orchestrator/scheduler.test.js.map +1 -1
- package/dist/utils/auto-merge.d.ts.map +1 -1
- package/dist/utils/auto-merge.js +74 -56
- package/dist/utils/auto-merge.js.map +1 -1
- package/dist/utils/auto-merge.test.js +101 -66
- package/dist/utils/auto-merge.test.js.map +1 -1
- package/dist/utils/cli-helpers.d.ts +5 -5
- package/dist/utils/cli-helpers.d.ts.map +1 -1
- package/dist/utils/cli-helpers.js +8 -9
- package/dist/utils/cli-helpers.js.map +1 -1
- package/dist/utils/cli-helpers.test.js +28 -30
- package/dist/utils/cli-helpers.test.js.map +1 -1
- package/dist/utils/paths.d.ts +6 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +12 -1
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/paths.test.js +1 -0
- package/dist/utils/paths.test.js.map +1 -1
- package/dist/utils/pr-sync.d.ts +10 -10
- package/dist/utils/pr-sync.d.ts.map +1 -1
- package/dist/utils/pr-sync.js +20 -21
- package/dist/utils/pr-sync.js.map +1 -1
- package/dist/utils/pr-sync.test.js +52 -50
- package/dist/utils/pr-sync.test.js.map +1 -1
- package/dist/utils/with-hive-context.d.ts.map +1 -1
- package/dist/utils/with-hive-context.js +70 -1
- package/dist/utils/with-hive-context.js.map +1 -1
- package/package.json +3 -1
- package/src/agents/base-agent.test.ts +2 -1
- package/src/agents/base-agent.ts +32 -28
- package/src/agents/intermediate.ts +27 -18
- package/src/agents/junior.ts +27 -18
- package/src/agents/qa.ts +54 -40
- package/src/agents/senior.ts +42 -27
- package/src/agents/tech-lead.ts +42 -32
- package/src/cli/commands/add-repo.test.ts +1 -1
- package/src/cli/commands/add-repo.ts +2 -2
- package/src/cli/commands/agents.test.ts +7 -7
- package/src/cli/commands/agents.ts +12 -10
- package/src/cli/commands/approach.ts +2 -2
- package/src/cli/commands/approvals.test.ts +8 -8
- package/src/cli/commands/approvals.ts +9 -7
- package/src/cli/commands/assign.test.ts +19 -18
- package/src/cli/commands/assign.ts +4 -4
- package/src/cli/commands/cleanup.test.ts +5 -1
- package/src/cli/commands/cleanup.ts +11 -9
- package/src/cli/commands/escalations.test.ts +2 -2
- package/src/cli/commands/escalations.ts +9 -7
- package/src/cli/commands/init.test.ts +5 -0
- package/src/cli/commands/init.ts +53 -5
- package/src/cli/commands/manager/agent-monitoring.ts +3 -3
- package/src/cli/commands/manager/auditor-lifecycle.test.ts +21 -14
- package/src/cli/commands/manager/auditor-lifecycle.ts +3 -3
- package/src/cli/commands/manager/auto-reject-comment-only-reviews.test.ts +28 -23
- package/src/cli/commands/manager/escalation-handler.test.ts +13 -13
- package/src/cli/commands/manager/escalation-handler.ts +19 -12
- package/src/cli/commands/manager/feature-sign-off.test.ts +40 -31
- package/src/cli/commands/manager/feature-sign-off.ts +7 -7
- package/src/cli/commands/manager/feature-test-result.ts +13 -16
- package/src/cli/commands/manager/handoff-recovery.ts +20 -20
- package/src/cli/commands/manager/index.test.ts +4 -4
- package/src/cli/commands/manager/index.ts +58 -59
- package/src/cli/commands/manager/merged-story-cleanup.test.ts +28 -19
- package/src/cli/commands/manager/merged-story-cleanup.ts +11 -14
- package/src/cli/commands/manager/pr-sync-orchestrator.ts +115 -110
- package/src/cli/commands/manager/qa-review-handler.ts +50 -63
- package/src/cli/commands/manager/spin-down.ts +27 -25
- package/src/cli/commands/manager/stale-escalations.ts +2 -3
- package/src/cli/commands/manager/stuck-story-helpers.ts +10 -10
- package/src/cli/commands/manager/stuck-story-processor.ts +56 -62
- package/src/cli/commands/manager/tech-lead-lifecycle.ts +6 -6
- package/src/cli/commands/manager/types.ts +2 -3
- package/src/cli/commands/msg.test.ts +2 -2
- package/src/cli/commands/my-stories.test.ts +4 -2
- package/src/cli/commands/my-stories.ts +22 -27
- package/src/cli/commands/nuke.test.ts +1 -1
- package/src/cli/commands/pr.test.ts +10 -6
- package/src/cli/commands/pr.ts +41 -32
- package/src/cli/commands/progress.test.ts +1 -1
- package/src/cli/commands/progress.ts +11 -6
- package/src/cli/commands/req-headless.test.ts +170 -0
- package/src/cli/commands/req-spawn.test.ts +12 -2
- package/src/cli/commands/req.ts +13 -14
- package/src/cli/commands/resume.test.ts +1 -1
- package/src/cli/commands/resume.ts +7 -8
- package/src/cli/commands/status.test.ts +1 -1
- package/src/cli/commands/status.ts +52 -40
- package/src/cli/commands/stories.test.ts +4 -2
- package/src/cli/commands/stories.ts +11 -11
- package/src/cli/commands/teams.test.ts +2 -2
- package/src/cli/commands/teams.ts +11 -11
- package/src/cli/dashboard/index.test.ts +35 -34
- package/src/cli/dashboard/index.ts +34 -23
- package/src/cli/dashboard/panels/activity.ts +10 -4
- package/src/cli/dashboard/panels/agents.ts +8 -5
- package/src/cli/dashboard/panels/escalations.ts +4 -4
- package/src/cli/dashboard/panels/merge-queue.ts +4 -4
- package/src/cli/dashboard/panels/pipeline.ts +10 -4
- package/src/config/schema.ts +1 -0
- package/src/connectors/project-management/operations.ts +9 -10
- package/src/context-files/index.test.ts +1 -0
- package/src/db/client.ts +17 -0
- package/src/db/pg-migrations/001-full-schema.sql +209 -0
- package/src/db/postgres-provider.integration.test.ts +574 -0
- package/src/db/postgres-provider.test.ts +97 -0
- package/src/db/postgres-provider.ts +364 -0
- package/src/db/provider.test.ts +283 -0
- package/src/db/provider.ts +161 -0
- package/src/db/queries/agents.test.ts +114 -113
- package/src/db/queries/agents.ts +50 -36
- package/src/db/queries/escalations.test.ts +134 -133
- package/src/db/queries/escalations.ts +72 -57
- package/src/db/queries/heartbeat.test.ts +77 -78
- package/src/db/queries/heartbeat.ts +24 -46
- package/src/db/queries/integration-sync.ts +26 -26
- package/src/db/queries/logs.test.ts +151 -148
- package/src/db/queries/logs.ts +78 -53
- package/src/db/queries/messages.test.ts +48 -50
- package/src/db/queries/messages.ts +26 -18
- package/src/db/queries/pull-requests.test.ts +194 -199
- package/src/db/queries/pull-requests.ts +117 -88
- package/src/db/queries/requirements.test.ts +84 -83
- package/src/db/queries/requirements.ts +33 -28
- package/src/db/queries/stories.test.ts +173 -172
- package/src/db/queries/stories.ts +141 -110
- package/src/db/queries/teams.test.ts +37 -36
- package/src/db/queries/teams.ts +22 -14
- package/src/integrations/jira/repair.test.ts +27 -26
- package/src/integrations/jira/stories.test.ts +15 -16
- package/src/integrations/jira/stories.ts +15 -15
- package/src/integrations/jira/sync.test.ts +68 -68
- package/src/integrations/jira/sync.ts +29 -39
- package/src/integrations/jira/transitions.ts +6 -6
- package/src/orchestrator/agent-selector.ts +9 -8
- package/src/orchestrator/dependency-resolver.ts +16 -7
- package/src/orchestrator/feature-branch.test.ts +85 -80
- package/src/orchestrator/feature-branch.ts +13 -14
- package/src/orchestrator/orphan-recovery.ts +14 -13
- package/src/orchestrator/scheduler.test.ts +536 -394
- package/src/orchestrator/scheduler.ts +129 -115
- package/src/utils/auto-merge.test.ts +102 -68
- package/src/utils/auto-merge.ts +161 -168
- package/src/utils/cli-helpers.test.ts +30 -32
- package/src/utils/cli-helpers.ts +15 -11
- package/src/utils/paths.test.ts +1 -0
- package/src/utils/paths.ts +14 -1
- package/src/utils/pr-sync.test.ts +55 -52
- package/src/utils/pr-sync.ts +27 -32
- package/src/utils/with-hive-context.ts +89 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Licensed under the Hungry Ghost Hive License. See LICENSE.
|
|
2
2
|
import initSqlJs from 'sql.js';
|
|
3
3
|
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
|
+
import { SqliteProvider } from '../db/provider.js';
|
|
4
5
|
import { getLogsByEventType } from '../db/queries/logs.js';
|
|
5
6
|
import { createRequirement, getRequirementById, updateRequirement, } from '../db/queries/requirements.js';
|
|
6
7
|
import { createStory } from '../db/queries/stories.js';
|
|
@@ -113,10 +114,11 @@ const mockHiveConfigWithE2E = {
|
|
|
113
114
|
const mockHiveConfigWithoutE2E = {};
|
|
114
115
|
beforeEach(async () => {
|
|
115
116
|
const SQL = await initSqlJs();
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
117
|
+
const rawDb = new SQL.Database();
|
|
118
|
+
rawDb.run('PRAGMA foreign_keys = ON');
|
|
119
|
+
rawDb.run(INITIAL_MIGRATION);
|
|
120
|
+
rawDb.run("INSERT INTO migrations (name) VALUES ('001-initial.sql')");
|
|
121
|
+
db = new SqliteProvider(rawDb);
|
|
120
122
|
vi.clearAllMocks();
|
|
121
123
|
});
|
|
122
124
|
describe('getFeatureBranchName', () => {
|
|
@@ -139,40 +141,40 @@ describe('requiresFeatureBranch', () => {
|
|
|
139
141
|
});
|
|
140
142
|
});
|
|
141
143
|
describe('isEligibleForFeatureBranch', () => {
|
|
142
|
-
it('should return true for planned requirement with e2e_tests and no feature branch', () => {
|
|
143
|
-
const req = createRequirement(db, {
|
|
144
|
+
it('should return true for planned requirement with e2e_tests and no feature branch', async () => {
|
|
145
|
+
const req = await createRequirement(db, {
|
|
144
146
|
title: 'Test',
|
|
145
147
|
description: 'Test req',
|
|
146
148
|
});
|
|
147
|
-
updateRequirement(db, req.id, { status: 'planned' });
|
|
148
|
-
const updated = getRequirementById(db, req.id);
|
|
149
|
+
await updateRequirement(db, req.id, { status: 'planned' });
|
|
150
|
+
const updated = (await getRequirementById(db, req.id));
|
|
149
151
|
expect(isEligibleForFeatureBranch(updated, mockHiveConfigWithE2E)).toBe(true);
|
|
150
152
|
});
|
|
151
|
-
it('should return false when requirement already has a feature branch', () => {
|
|
152
|
-
const req = createRequirement(db, {
|
|
153
|
+
it('should return false when requirement already has a feature branch', async () => {
|
|
154
|
+
const req = await createRequirement(db, {
|
|
153
155
|
title: 'Test',
|
|
154
156
|
description: 'Test req',
|
|
155
157
|
});
|
|
156
|
-
updateRequirement(db, req.id, { status: 'planned', featureBranch: 'feature/REQ-123' });
|
|
157
|
-
const updated = getRequirementById(db, req.id);
|
|
158
|
+
await updateRequirement(db, req.id, { status: 'planned', featureBranch: 'feature/REQ-123' });
|
|
159
|
+
const updated = (await getRequirementById(db, req.id));
|
|
158
160
|
expect(isEligibleForFeatureBranch(updated, mockHiveConfigWithE2E)).toBe(false);
|
|
159
161
|
});
|
|
160
|
-
it('should return false when requirement is not in planned status', () => {
|
|
161
|
-
const req = createRequirement(db, {
|
|
162
|
+
it('should return false when requirement is not in planned status', async () => {
|
|
163
|
+
const req = await createRequirement(db, {
|
|
162
164
|
title: 'Test',
|
|
163
165
|
description: 'Test req',
|
|
164
166
|
});
|
|
165
|
-
updateRequirement(db, req.id, { status: 'in_progress' });
|
|
166
|
-
const updated = getRequirementById(db, req.id);
|
|
167
|
+
await updateRequirement(db, req.id, { status: 'in_progress' });
|
|
168
|
+
const updated = (await getRequirementById(db, req.id));
|
|
167
169
|
expect(isEligibleForFeatureBranch(updated, mockHiveConfigWithE2E)).toBe(false);
|
|
168
170
|
});
|
|
169
|
-
it('should return false when e2e_tests is not configured', () => {
|
|
170
|
-
const req = createRequirement(db, {
|
|
171
|
+
it('should return false when e2e_tests is not configured', async () => {
|
|
172
|
+
const req = await createRequirement(db, {
|
|
171
173
|
title: 'Test',
|
|
172
174
|
description: 'Test req',
|
|
173
175
|
});
|
|
174
|
-
updateRequirement(db, req.id, { status: 'planned' });
|
|
175
|
-
const updated = getRequirementById(db, req.id);
|
|
176
|
+
await updateRequirement(db, req.id, { status: 'planned' });
|
|
177
|
+
const updated = (await getRequirementById(db, req.id));
|
|
176
178
|
expect(isEligibleForFeatureBranch(updated, mockHiveConfigWithoutE2E)).toBe(false);
|
|
177
179
|
});
|
|
178
180
|
});
|
|
@@ -180,11 +182,11 @@ describe('createRequirementFeatureBranch', () => {
|
|
|
180
182
|
it('should create feature branch and update requirement', async () => {
|
|
181
183
|
const { execa } = await import('execa');
|
|
182
184
|
const mockExeca = vi.mocked(execa);
|
|
183
|
-
const req = createRequirement(db, {
|
|
185
|
+
const req = await createRequirement(db, {
|
|
184
186
|
title: 'Test Feature',
|
|
185
187
|
description: 'Test feature req',
|
|
186
188
|
});
|
|
187
|
-
updateRequirement(db, req.id, { status: 'planned' });
|
|
189
|
+
await updateRequirement(db, req.id, { status: 'planned' });
|
|
188
190
|
const saveFn = vi.fn();
|
|
189
191
|
const result = await createRequirementFeatureBranch(db, '/tmp/repo', req.id, saveFn);
|
|
190
192
|
expect(result).toBe(`feature/${req.id}`);
|
|
@@ -193,21 +195,21 @@ describe('createRequirementFeatureBranch', () => {
|
|
|
193
195
|
expect(mockExeca).toHaveBeenCalledWith('git', ['branch', `feature/${req.id}`, 'origin/main'], expect.any(Object));
|
|
194
196
|
expect(mockExeca).toHaveBeenCalledWith('git', ['push', 'origin', `feature/${req.id}`], expect.any(Object));
|
|
195
197
|
// Verify requirement was updated
|
|
196
|
-
const updated = getRequirementById(db, req.id);
|
|
198
|
+
const updated = (await getRequirementById(db, req.id));
|
|
197
199
|
expect(updated.feature_branch).toBe(`feature/${req.id}`);
|
|
198
200
|
expect(updated.target_branch).toBe(`feature/${req.id}`);
|
|
199
201
|
expect(updated.status).toBe('in_progress');
|
|
200
202
|
// Verify save was called
|
|
201
203
|
expect(saveFn).toHaveBeenCalled();
|
|
202
204
|
// Verify log was created
|
|
203
|
-
const logs = getLogsByEventType(db, 'FEATURE_BRANCH_CREATED');
|
|
205
|
+
const logs = await getLogsByEventType(db, 'FEATURE_BRANCH_CREATED');
|
|
204
206
|
expect(logs.length).toBe(1);
|
|
205
207
|
expect(logs[0].message).toContain(req.id);
|
|
206
208
|
});
|
|
207
209
|
it('should return null and log error for non-existent requirement', async () => {
|
|
208
210
|
const result = await createRequirementFeatureBranch(db, '/tmp/repo', 'NON-EXISTENT');
|
|
209
211
|
expect(result).toBeNull();
|
|
210
|
-
const logs = getLogsByEventType(db, 'FEATURE_BRANCH_FAILED');
|
|
212
|
+
const logs = await getLogsByEventType(db, 'FEATURE_BRANCH_FAILED');
|
|
211
213
|
expect(logs.length).toBe(1);
|
|
212
214
|
expect(logs[0].message).toContain('not found');
|
|
213
215
|
});
|
|
@@ -217,19 +219,19 @@ describe('createRequirementFeatureBranch', () => {
|
|
|
217
219
|
// Make git branch command fail
|
|
218
220
|
mockExeca.mockRejectedValueOnce(new Error('fetch failed')); // fetch (non-fatal)
|
|
219
221
|
mockExeca.mockRejectedValueOnce(new Error('branch already exists'));
|
|
220
|
-
const req = createRequirement(db, {
|
|
222
|
+
const req = await createRequirement(db, {
|
|
221
223
|
title: 'Test',
|
|
222
224
|
description: 'Test req',
|
|
223
225
|
});
|
|
224
|
-
updateRequirement(db, req.id, { status: 'planned' });
|
|
226
|
+
await updateRequirement(db, req.id, { status: 'planned' });
|
|
225
227
|
const result = await createRequirementFeatureBranch(db, '/tmp/repo', req.id);
|
|
226
228
|
expect(result).toBeNull();
|
|
227
229
|
// Requirement should still transition to in_progress as a fallback
|
|
228
|
-
const updated = getRequirementById(db, req.id);
|
|
230
|
+
const updated = (await getRequirementById(db, req.id));
|
|
229
231
|
expect(updated.status).toBe('in_progress');
|
|
230
232
|
// feature_branch should NOT be set on failure
|
|
231
233
|
expect(updated.feature_branch).toBeNull();
|
|
232
|
-
const logs = getLogsByEventType(db, 'FEATURE_BRANCH_FAILED');
|
|
234
|
+
const logs = await getLogsByEventType(db, 'FEATURE_BRANCH_FAILED');
|
|
233
235
|
expect(logs.length).toBe(1);
|
|
234
236
|
});
|
|
235
237
|
it('should handle fetch failure gracefully and still create branch', async () => {
|
|
@@ -240,11 +242,11 @@ describe('createRequirementFeatureBranch', () => {
|
|
|
240
242
|
// Subsequent calls (branch, push) succeed
|
|
241
243
|
mockExeca.mockResolvedValueOnce({ stdout: '', stderr: '' });
|
|
242
244
|
mockExeca.mockResolvedValueOnce({ stdout: '', stderr: '' });
|
|
243
|
-
const req = createRequirement(db, {
|
|
245
|
+
const req = await createRequirement(db, {
|
|
244
246
|
title: 'Test',
|
|
245
247
|
description: 'Test req',
|
|
246
248
|
});
|
|
247
|
-
updateRequirement(db, req.id, { status: 'planned' });
|
|
249
|
+
await updateRequirement(db, req.id, { status: 'planned' });
|
|
248
250
|
const result = await createRequirementFeatureBranch(db, '/tmp/repo', req.id);
|
|
249
251
|
expect(result).toBe(`feature/${req.id}`);
|
|
250
252
|
});
|
|
@@ -252,15 +254,15 @@ describe('createRequirementFeatureBranch', () => {
|
|
|
252
254
|
describe('createFeatureBranchPR', () => {
|
|
253
255
|
it('should create PR from feature branch to main', async () => {
|
|
254
256
|
const { createPullRequest } = await import('../git/github.js');
|
|
255
|
-
const req = createRequirement(db, {
|
|
257
|
+
const req = await createRequirement(db, {
|
|
256
258
|
title: 'Test Feature',
|
|
257
259
|
description: 'Test feature req',
|
|
258
260
|
});
|
|
259
|
-
updateRequirement(db, req.id, {
|
|
261
|
+
await updateRequirement(db, req.id, {
|
|
260
262
|
status: 'sign_off_passed',
|
|
261
263
|
featureBranch: `feature/${req.id}`,
|
|
262
264
|
});
|
|
263
|
-
const updated = getRequirementById(db, req.id);
|
|
265
|
+
const updated = (await getRequirementById(db, req.id));
|
|
264
266
|
const result = await createFeatureBranchPR('/tmp/repo', updated);
|
|
265
267
|
expect(result).not.toBeNull();
|
|
266
268
|
expect(result.number).toBe(42);
|
|
@@ -273,162 +275,162 @@ describe('createFeatureBranchPR', () => {
|
|
|
273
275
|
});
|
|
274
276
|
});
|
|
275
277
|
it('should return null when requirement has no feature branch', async () => {
|
|
276
|
-
const req = createRequirement(db, {
|
|
278
|
+
const req = await createRequirement(db, {
|
|
277
279
|
title: 'Test',
|
|
278
280
|
description: 'Test req',
|
|
279
281
|
});
|
|
280
|
-
const updated = getRequirementById(db, req.id);
|
|
282
|
+
const updated = (await getRequirementById(db, req.id));
|
|
281
283
|
const result = await createFeatureBranchPR('/tmp/repo', updated);
|
|
282
284
|
expect(result).toBeNull();
|
|
283
285
|
});
|
|
284
286
|
it('should return null on PR creation failure', async () => {
|
|
285
287
|
const { createPullRequest } = await import('../git/github.js');
|
|
286
288
|
vi.mocked(createPullRequest).mockRejectedValueOnce(new Error('PR creation failed'));
|
|
287
|
-
const req = createRequirement(db, {
|
|
289
|
+
const req = await createRequirement(db, {
|
|
288
290
|
title: 'Test',
|
|
289
291
|
description: 'Test req',
|
|
290
292
|
featureBranch: 'feature/REQ-TEST',
|
|
291
293
|
});
|
|
292
|
-
const updated = getRequirementById(db, req.id);
|
|
294
|
+
const updated = (await getRequirementById(db, req.id));
|
|
293
295
|
const result = await createFeatureBranchPR('/tmp/repo', updated);
|
|
294
296
|
expect(result).toBeNull();
|
|
295
297
|
});
|
|
296
298
|
});
|
|
297
299
|
describe('getRequirementsNeedingFeatureBranch', () => {
|
|
298
|
-
it('should return requirement IDs for stories with eligible requirements', () => {
|
|
299
|
-
const team = createTeam(db, {
|
|
300
|
+
it('should return requirement IDs for stories with eligible requirements', async () => {
|
|
301
|
+
const team = await createTeam(db, {
|
|
300
302
|
name: 'Test Team',
|
|
301
303
|
repoUrl: 'https://github.com/test/repo',
|
|
302
304
|
repoPath: 'test',
|
|
303
305
|
});
|
|
304
|
-
const req = createRequirement(db, {
|
|
306
|
+
const req = await createRequirement(db, {
|
|
305
307
|
title: 'Test',
|
|
306
308
|
description: 'Test req',
|
|
307
309
|
});
|
|
308
|
-
updateRequirement(db, req.id, { status: 'planned' });
|
|
309
|
-
const story = createStory(db, {
|
|
310
|
+
await updateRequirement(db, req.id, { status: 'planned' });
|
|
311
|
+
const story = await createStory(db, {
|
|
310
312
|
teamId: team.id,
|
|
311
313
|
title: 'Story 1',
|
|
312
314
|
description: 'Test',
|
|
313
315
|
requirementId: req.id,
|
|
314
316
|
});
|
|
315
|
-
const result = getRequirementsNeedingFeatureBranch(db, [story.id], mockHiveConfigWithE2E);
|
|
317
|
+
const result = await getRequirementsNeedingFeatureBranch(db, [story.id], mockHiveConfigWithE2E);
|
|
316
318
|
expect(result).toEqual([req.id]);
|
|
317
319
|
});
|
|
318
|
-
it('should not return requirements that already have feature branches', () => {
|
|
319
|
-
const team = createTeam(db, {
|
|
320
|
+
it('should not return requirements that already have feature branches', async () => {
|
|
321
|
+
const team = await createTeam(db, {
|
|
320
322
|
name: 'Test Team',
|
|
321
323
|
repoUrl: 'https://github.com/test/repo',
|
|
322
324
|
repoPath: 'test',
|
|
323
325
|
});
|
|
324
|
-
const req = createRequirement(db, {
|
|
326
|
+
const req = await createRequirement(db, {
|
|
325
327
|
title: 'Test',
|
|
326
328
|
description: 'Test req',
|
|
327
329
|
});
|
|
328
|
-
updateRequirement(db, req.id, { status: 'planned', featureBranch: 'feature/REQ-123' });
|
|
329
|
-
const story = createStory(db, {
|
|
330
|
+
await updateRequirement(db, req.id, { status: 'planned', featureBranch: 'feature/REQ-123' });
|
|
331
|
+
const story = await createStory(db, {
|
|
330
332
|
teamId: team.id,
|
|
331
333
|
title: 'Story 1',
|
|
332
334
|
description: 'Test',
|
|
333
335
|
requirementId: req.id,
|
|
334
336
|
});
|
|
335
|
-
const result = getRequirementsNeedingFeatureBranch(db, [story.id], mockHiveConfigWithE2E);
|
|
337
|
+
const result = await getRequirementsNeedingFeatureBranch(db, [story.id], mockHiveConfigWithE2E);
|
|
336
338
|
expect(result).toEqual([]);
|
|
337
339
|
});
|
|
338
|
-
it('should return empty array when e2e_tests is not configured', () => {
|
|
339
|
-
const team = createTeam(db, {
|
|
340
|
+
it('should return empty array when e2e_tests is not configured', async () => {
|
|
341
|
+
const team = await createTeam(db, {
|
|
340
342
|
name: 'Test Team',
|
|
341
343
|
repoUrl: 'https://github.com/test/repo',
|
|
342
344
|
repoPath: 'test',
|
|
343
345
|
});
|
|
344
|
-
const req = createRequirement(db, {
|
|
346
|
+
const req = await createRequirement(db, {
|
|
345
347
|
title: 'Test',
|
|
346
348
|
description: 'Test req',
|
|
347
349
|
});
|
|
348
|
-
updateRequirement(db, req.id, { status: 'planned' });
|
|
349
|
-
const story = createStory(db, {
|
|
350
|
+
await updateRequirement(db, req.id, { status: 'planned' });
|
|
351
|
+
const story = await createStory(db, {
|
|
350
352
|
teamId: team.id,
|
|
351
353
|
title: 'Story 1',
|
|
352
354
|
description: 'Test',
|
|
353
355
|
requirementId: req.id,
|
|
354
356
|
});
|
|
355
|
-
const result = getRequirementsNeedingFeatureBranch(db, [story.id], mockHiveConfigWithoutE2E);
|
|
357
|
+
const result = await getRequirementsNeedingFeatureBranch(db, [story.id], mockHiveConfigWithoutE2E);
|
|
356
358
|
expect(result).toEqual([]);
|
|
357
359
|
});
|
|
358
|
-
it('should deduplicate requirements from multiple stories', () => {
|
|
359
|
-
const team = createTeam(db, {
|
|
360
|
+
it('should deduplicate requirements from multiple stories', async () => {
|
|
361
|
+
const team = await createTeam(db, {
|
|
360
362
|
name: 'Test Team',
|
|
361
363
|
repoUrl: 'https://github.com/test/repo',
|
|
362
364
|
repoPath: 'test',
|
|
363
365
|
});
|
|
364
|
-
const req = createRequirement(db, {
|
|
366
|
+
const req = await createRequirement(db, {
|
|
365
367
|
title: 'Test',
|
|
366
368
|
description: 'Test req',
|
|
367
369
|
});
|
|
368
|
-
updateRequirement(db, req.id, { status: 'planned' });
|
|
369
|
-
const story1 = createStory(db, {
|
|
370
|
+
await updateRequirement(db, req.id, { status: 'planned' });
|
|
371
|
+
const story1 = await createStory(db, {
|
|
370
372
|
teamId: team.id,
|
|
371
373
|
title: 'Story 1',
|
|
372
374
|
description: 'Test',
|
|
373
375
|
requirementId: req.id,
|
|
374
376
|
});
|
|
375
|
-
const story2 = createStory(db, {
|
|
377
|
+
const story2 = await createStory(db, {
|
|
376
378
|
teamId: team.id,
|
|
377
379
|
title: 'Story 2',
|
|
378
380
|
description: 'Test',
|
|
379
381
|
requirementId: req.id,
|
|
380
382
|
});
|
|
381
|
-
const result = getRequirementsNeedingFeatureBranch(db, [story1.id, story2.id], mockHiveConfigWithE2E);
|
|
383
|
+
const result = await getRequirementsNeedingFeatureBranch(db, [story1.id, story2.id], mockHiveConfigWithE2E);
|
|
382
384
|
// Should only return the requirement once, not twice
|
|
383
385
|
expect(result).toEqual([req.id]);
|
|
384
386
|
});
|
|
385
|
-
it('should return empty array for empty story list', () => {
|
|
386
|
-
const result = getRequirementsNeedingFeatureBranch(db, [], mockHiveConfigWithE2E);
|
|
387
|
+
it('should return empty array for empty story list', async () => {
|
|
388
|
+
const result = await getRequirementsNeedingFeatureBranch(db, [], mockHiveConfigWithE2E);
|
|
387
389
|
expect(result).toEqual([]);
|
|
388
390
|
});
|
|
389
|
-
it('should skip stories without requirement_id', () => {
|
|
390
|
-
const team = createTeam(db, {
|
|
391
|
+
it('should skip stories without requirement_id', async () => {
|
|
392
|
+
const team = await createTeam(db, {
|
|
391
393
|
name: 'Test Team',
|
|
392
394
|
repoUrl: 'https://github.com/test/repo',
|
|
393
395
|
repoPath: 'test',
|
|
394
396
|
});
|
|
395
|
-
const story = createStory(db, {
|
|
397
|
+
const story = await createStory(db, {
|
|
396
398
|
teamId: team.id,
|
|
397
399
|
title: 'Story without requirement',
|
|
398
400
|
description: 'Test',
|
|
399
401
|
});
|
|
400
|
-
const result = getRequirementsNeedingFeatureBranch(db, [story.id], mockHiveConfigWithE2E);
|
|
402
|
+
const result = await getRequirementsNeedingFeatureBranch(db, [story.id], mockHiveConfigWithE2E);
|
|
401
403
|
expect(result).toEqual([]);
|
|
402
404
|
});
|
|
403
|
-
it('should handle multiple requirements from different stories', () => {
|
|
404
|
-
const team = createTeam(db, {
|
|
405
|
+
it('should handle multiple requirements from different stories', async () => {
|
|
406
|
+
const team = await createTeam(db, {
|
|
405
407
|
name: 'Test Team',
|
|
406
408
|
repoUrl: 'https://github.com/test/repo',
|
|
407
409
|
repoPath: 'test',
|
|
408
410
|
});
|
|
409
|
-
const req1 = createRequirement(db, {
|
|
411
|
+
const req1 = await createRequirement(db, {
|
|
410
412
|
title: 'Req 1',
|
|
411
413
|
description: 'Test req 1',
|
|
412
414
|
});
|
|
413
|
-
updateRequirement(db, req1.id, { status: 'planned' });
|
|
414
|
-
const req2 = createRequirement(db, {
|
|
415
|
+
await updateRequirement(db, req1.id, { status: 'planned' });
|
|
416
|
+
const req2 = await createRequirement(db, {
|
|
415
417
|
title: 'Req 2',
|
|
416
418
|
description: 'Test req 2',
|
|
417
419
|
});
|
|
418
|
-
updateRequirement(db, req2.id, { status: 'planned' });
|
|
419
|
-
const story1 = createStory(db, {
|
|
420
|
+
await updateRequirement(db, req2.id, { status: 'planned' });
|
|
421
|
+
const story1 = await createStory(db, {
|
|
420
422
|
teamId: team.id,
|
|
421
423
|
title: 'Story 1',
|
|
422
424
|
description: 'Test',
|
|
423
425
|
requirementId: req1.id,
|
|
424
426
|
});
|
|
425
|
-
const story2 = createStory(db, {
|
|
427
|
+
const story2 = await createStory(db, {
|
|
426
428
|
teamId: team.id,
|
|
427
429
|
title: 'Story 2',
|
|
428
430
|
description: 'Test',
|
|
429
431
|
requirementId: req2.id,
|
|
430
432
|
});
|
|
431
|
-
const result = getRequirementsNeedingFeatureBranch(db, [story1.id, story2.id], mockHiveConfigWithE2E);
|
|
433
|
+
const result = await getRequirementsNeedingFeatureBranch(db, [story1.id, story2.id], mockHiveConfigWithE2E);
|
|
432
434
|
expect(result).toHaveLength(2);
|
|
433
435
|
expect(result).toContain(req1.id);
|
|
434
436
|
expect(result).toContain(req2.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-branch.test.js","sourceRoot":"","sources":["../../src/orchestrator/feature-branch.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feature-branch.test.js","sourceRoot":"","sources":["../../src/orchestrator/feature-branch.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DatabaseProvider } from '../db/provider.js';
|
|
2
2
|
/**
|
|
3
3
|
* Detect and recover orphaned stories (assigned to terminated agents).
|
|
4
4
|
* Returns the story IDs that were recovered.
|
|
5
5
|
*/
|
|
6
|
-
export declare function detectAndRecoverOrphanedStories(db:
|
|
6
|
+
export declare function detectAndRecoverOrphanedStories(db: DatabaseProvider, rootDir: string, storiesDir?: string): Promise<string[]>;
|
|
7
7
|
//# sourceMappingURL=orphan-recovery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphan-recovery.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orphan-recovery.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orphan-recovery.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orphan-recovery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAS1D;;;GAGG;AACH,wBAAsB,+BAA+B,CACnD,EAAE,EAAE,gBAAgB,EACpB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,EAAE,CAAC,CAuGnB"}
|
|
@@ -6,10 +6,10 @@ import { getInProgressStoriesWithInconsistentAssignments, getStaleInProgressStor
|
|
|
6
6
|
* Detect and recover orphaned stories (assigned to terminated agents).
|
|
7
7
|
* Returns the story IDs that were recovered.
|
|
8
8
|
*/
|
|
9
|
-
export function detectAndRecoverOrphanedStories(db, rootDir, storiesDir) {
|
|
10
|
-
const orphanedAssignments = getStoriesWithOrphanedAssignments(db);
|
|
11
|
-
const staleInProgressStories = getStaleInProgressStoriesWithoutAssignment(db);
|
|
12
|
-
const inconsistentInProgressAssignments = getInProgressStoriesWithInconsistentAssignments(db);
|
|
9
|
+
export async function detectAndRecoverOrphanedStories(db, rootDir, storiesDir) {
|
|
10
|
+
const orphanedAssignments = await getStoriesWithOrphanedAssignments(db);
|
|
11
|
+
const staleInProgressStories = await getStaleInProgressStoriesWithoutAssignment(db);
|
|
12
|
+
const inconsistentInProgressAssignments = await getInProgressStoriesWithInconsistentAssignments(db);
|
|
13
13
|
const recovered = [];
|
|
14
14
|
const recoveredSet = new Set();
|
|
15
15
|
for (const assignment of orphanedAssignments) {
|
|
@@ -17,11 +17,11 @@ export function detectAndRecoverOrphanedStories(db, rootDir, storiesDir) {
|
|
|
17
17
|
if (recoveredSet.has(assignment.id))
|
|
18
18
|
continue;
|
|
19
19
|
// Update story in single atomic operation
|
|
20
|
-
updateStory(db, assignment.id, {
|
|
20
|
+
await updateStory(db, assignment.id, {
|
|
21
21
|
assignedAgentId: null,
|
|
22
22
|
status: 'planned',
|
|
23
23
|
}, storiesDir);
|
|
24
|
-
createLog(db, {
|
|
24
|
+
await createLog(db, {
|
|
25
25
|
agentId: 'scheduler',
|
|
26
26
|
storyId: assignment.id,
|
|
27
27
|
eventType: 'ORPHANED_STORY_RECOVERED',
|
|
@@ -40,11 +40,11 @@ export function detectAndRecoverOrphanedStories(db, rootDir, storiesDir) {
|
|
|
40
40
|
try {
|
|
41
41
|
if (recoveredSet.has(story.id))
|
|
42
42
|
continue;
|
|
43
|
-
updateStory(db, story.id, {
|
|
43
|
+
await updateStory(db, story.id, {
|
|
44
44
|
assignedAgentId: null,
|
|
45
45
|
status: 'planned',
|
|
46
46
|
}, storiesDir);
|
|
47
|
-
createLog(db, {
|
|
47
|
+
await createLog(db, {
|
|
48
48
|
agentId: 'scheduler',
|
|
49
49
|
storyId: story.id,
|
|
50
50
|
eventType: 'ORPHANED_STORY_RECOVERED',
|
|
@@ -63,11 +63,11 @@ export function detectAndRecoverOrphanedStories(db, rootDir, storiesDir) {
|
|
|
63
63
|
try {
|
|
64
64
|
if (recoveredSet.has(assignment.id))
|
|
65
65
|
continue;
|
|
66
|
-
updateStory(db, assignment.id, {
|
|
66
|
+
await updateStory(db, assignment.id, {
|
|
67
67
|
assignedAgentId: null,
|
|
68
68
|
status: 'planned',
|
|
69
69
|
}, storiesDir);
|
|
70
|
-
createLog(db, {
|
|
70
|
+
await createLog(db, {
|
|
71
71
|
agentId: 'scheduler',
|
|
72
72
|
storyId: assignment.id,
|
|
73
73
|
eventType: 'ORPHANED_STORY_RECOVERED',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphan-recovery.js","sourceRoot":"","sources":["../../src/orchestrator/orphan-recovery.ts"],"names":[],"mappings":"AAAA,6DAA6D;
|
|
1
|
+
{"version":3,"file":"orphan-recovery.js","sourceRoot":"","sources":["../../src/orchestrator/orphan-recovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Database } from 'sql.js';
|
|
2
1
|
import type { HiveConfig, ModelsConfig, QAConfig, ScalingConfig } from '../config/schema.js';
|
|
2
|
+
import type { DatabaseProvider } from '../db/provider.js';
|
|
3
3
|
import { type AgentRow } from '../db/queries/agents.js';
|
|
4
4
|
import { type StoryRow } from '../db/queries/stories.js';
|
|
5
5
|
export interface SchedulerConfig {
|
|
@@ -11,11 +11,11 @@ export interface SchedulerConfig {
|
|
|
11
11
|
hiveConfig?: HiveConfig;
|
|
12
12
|
}
|
|
13
13
|
export declare class Scheduler {
|
|
14
|
-
private
|
|
14
|
+
private provider;
|
|
15
15
|
private config;
|
|
16
16
|
private saveFn?;
|
|
17
17
|
private pmQueue;
|
|
18
|
-
constructor(db:
|
|
18
|
+
constructor(db: DatabaseProvider, config: SchedulerConfig);
|
|
19
19
|
private get storiesDir();
|
|
20
20
|
/**
|
|
21
21
|
* Wait for all pending Jira operations to complete.
|
|
@@ -50,7 +50,7 @@ export declare class Scheduler {
|
|
|
50
50
|
/**
|
|
51
51
|
* Get the next story to work on for a specific agent
|
|
52
52
|
*/
|
|
53
|
-
getNextStoryForAgent(agentId: string): StoryRow | null
|
|
53
|
+
getNextStoryForAgent(agentId: string): Promise<StoryRow | null>;
|
|
54
54
|
/**
|
|
55
55
|
* Check if scaling is needed based on workload
|
|
56
56
|
* Only spawns agents when there is assignable work (stories with satisfied dependencies)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/orchestrator/scheduler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/orchestrator/scheduler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAO7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAKL,KAAK,QAAQ,EACd,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAKL,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAqDlC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAmB;gBAEtB,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,eAAe;IAOzD,OAAO,KAAK,UAAU,GAErB;IAED;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;;OAGG;YACW,cAAc;IAqD5B;;OAEG;YACW,mBAAmB;IAqBjC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;YAqQY,qBAAqB;IA2CnC;;;;;OAKG;YACW,yBAAyB;IAqEvC;;OAEG;IACG,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IA0BrE;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA4DnC;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,iBAAiB,EAAE,MAAM,EAAE,CAAC;KAC7B,CAAC;IAoEF;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtC;;;;;;;;;;;;OAYG;YACW,aAAa;YA6Ib,oBAAoB;IAOlC;;;OAGG;YACW,UAAU;IA6MxB;;;;OAIG;YACW,eAAe;IAO7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,4BAA4B;YAOtB,OAAO;IASrB;;;;OAIG;IACG,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,kBAAkB,EAAE;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,GACA,OAAO,CAAC,QAAQ,CAAC;IAWpB;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;YAI3E,WAAW;YASX,iBAAiB;YAYjB,WAAW;IAQzB;;;;;OAKG;YACW,sBAAsB;YA0BtB,cAAc;IAW5B;;;;;;;;;;OAUG;YACW,sCAAsC;CAiCrD"}
|