@urateam/core 0.1.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/__tests__/assembler.test.d.ts +2 -0
- package/dist/__tests__/assembler.test.d.ts.map +1 -0
- package/dist/__tests__/assembler.test.js +63 -0
- package/dist/__tests__/assembler.test.js.map +1 -0
- package/dist/__tests__/auth-check.test.d.ts +2 -0
- package/dist/__tests__/auth-check.test.d.ts.map +1 -0
- package/dist/__tests__/auth-check.test.js +88 -0
- package/dist/__tests__/auth-check.test.js.map +1 -0
- package/dist/__tests__/auto-merge.test.d.ts +15 -0
- package/dist/__tests__/auto-merge.test.d.ts.map +1 -0
- package/dist/__tests__/auto-merge.test.js +428 -0
- package/dist/__tests__/auto-merge.test.js.map +1 -0
- package/dist/__tests__/bec89-unified-schema.test.d.ts +2 -0
- package/dist/__tests__/bec89-unified-schema.test.d.ts.map +1 -0
- package/dist/__tests__/bec89-unified-schema.test.js +235 -0
- package/dist/__tests__/bec89-unified-schema.test.js.map +1 -0
- package/dist/__tests__/conflict-detector.test.d.ts +2 -0
- package/dist/__tests__/conflict-detector.test.d.ts.map +1 -0
- package/dist/__tests__/conflict-detector.test.js +206 -0
- package/dist/__tests__/conflict-detector.test.js.map +1 -0
- package/dist/__tests__/coordination.test.d.ts +2 -0
- package/dist/__tests__/coordination.test.d.ts.map +1 -0
- package/dist/__tests__/coordination.test.js +257 -0
- package/dist/__tests__/coordination.test.js.map +1 -0
- package/dist/__tests__/db-postgres.test.d.ts +14 -0
- package/dist/__tests__/db-postgres.test.d.ts.map +1 -0
- package/dist/__tests__/db-postgres.test.js +289 -0
- package/dist/__tests__/db-postgres.test.js.map +1 -0
- package/dist/__tests__/db.test.d.ts +2 -0
- package/dist/__tests__/db.test.d.ts.map +1 -0
- package/dist/__tests__/db.test.js +182 -0
- package/dist/__tests__/db.test.js.map +1 -0
- package/dist/__tests__/deep-review.test.d.ts +2 -0
- package/dist/__tests__/deep-review.test.d.ts.map +1 -0
- package/dist/__tests__/deep-review.test.js +322 -0
- package/dist/__tests__/deep-review.test.js.map +1 -0
- package/dist/__tests__/devcontainer.test.d.ts +2 -0
- package/dist/__tests__/devcontainer.test.d.ts.map +1 -0
- package/dist/__tests__/devcontainer.test.js +89 -0
- package/dist/__tests__/devcontainer.test.js.map +1 -0
- package/dist/__tests__/distributed-lock.test.d.ts +18 -0
- package/dist/__tests__/distributed-lock.test.d.ts.map +1 -0
- package/dist/__tests__/distributed-lock.test.js +237 -0
- package/dist/__tests__/distributed-lock.test.js.map +1 -0
- package/dist/__tests__/e2e-pipeline.test.d.ts +25 -0
- package/dist/__tests__/e2e-pipeline.test.d.ts.map +1 -0
- package/dist/__tests__/e2e-pipeline.test.js +517 -0
- package/dist/__tests__/e2e-pipeline.test.js.map +1 -0
- package/dist/__tests__/error-classifier.test.d.ts +2 -0
- package/dist/__tests__/error-classifier.test.d.ts.map +1 -0
- package/dist/__tests__/error-classifier.test.js +33 -0
- package/dist/__tests__/error-classifier.test.js.map +1 -0
- package/dist/__tests__/executor-integration.test.d.ts +11 -0
- package/dist/__tests__/executor-integration.test.d.ts.map +1 -0
- package/dist/__tests__/executor-integration.test.js +246 -0
- package/dist/__tests__/executor-integration.test.js.map +1 -0
- package/dist/__tests__/executor-issue-id.test.d.ts +13 -0
- package/dist/__tests__/executor-issue-id.test.d.ts.map +1 -0
- package/dist/__tests__/executor-issue-id.test.js +211 -0
- package/dist/__tests__/executor-issue-id.test.js.map +1 -0
- package/dist/__tests__/executor.test.d.ts +2 -0
- package/dist/__tests__/executor.test.d.ts.map +1 -0
- package/dist/__tests__/executor.test.js +164 -0
- package/dist/__tests__/executor.test.js.map +1 -0
- package/dist/__tests__/extract-handoff.test.d.ts +2 -0
- package/dist/__tests__/extract-handoff.test.d.ts.map +1 -0
- package/dist/__tests__/extract-handoff.test.js +131 -0
- package/dist/__tests__/extract-handoff.test.js.map +1 -0
- package/dist/__tests__/fail-on-auto-commit.test.d.ts +2 -0
- package/dist/__tests__/fail-on-auto-commit.test.d.ts.map +1 -0
- package/dist/__tests__/fail-on-auto-commit.test.js +156 -0
- package/dist/__tests__/fail-on-auto-commit.test.js.map +1 -0
- package/dist/__tests__/fixtures/webhook-comment.json +5 -0
- package/dist/__tests__/fixtures/webhook-state-change.json +15 -0
- package/dist/__tests__/force-push-agent-branches.test.d.ts +12 -0
- package/dist/__tests__/force-push-agent-branches.test.d.ts.map +1 -0
- package/dist/__tests__/force-push-agent-branches.test.js +348 -0
- package/dist/__tests__/force-push-agent-branches.test.js.map +1 -0
- package/dist/__tests__/github-webhook.test.d.ts +2 -0
- package/dist/__tests__/github-webhook.test.d.ts.map +1 -0
- package/dist/__tests__/github-webhook.test.js +370 -0
- package/dist/__tests__/github-webhook.test.js.map +1 -0
- package/dist/__tests__/gitlab.test.d.ts +28 -0
- package/dist/__tests__/gitlab.test.d.ts.map +1 -0
- package/dist/__tests__/gitlab.test.js +241 -0
- package/dist/__tests__/gitlab.test.js.map +1 -0
- package/dist/__tests__/integration/auto-commit.test.d.ts +2 -0
- package/dist/__tests__/integration/auto-commit.test.d.ts.map +1 -0
- package/dist/__tests__/integration/auto-commit.test.js +207 -0
- package/dist/__tests__/integration/auto-commit.test.js.map +1 -0
- package/dist/__tests__/integration/bec99-cross-worktree-guard.test.d.ts +10 -0
- package/dist/__tests__/integration/bec99-cross-worktree-guard.test.d.ts.map +1 -0
- package/dist/__tests__/integration/bec99-cross-worktree-guard.test.js +183 -0
- package/dist/__tests__/integration/bec99-cross-worktree-guard.test.js.map +1 -0
- package/dist/__tests__/integration/reproduce-bec99.test.d.ts +32 -0
- package/dist/__tests__/integration/reproduce-bec99.test.d.ts.map +1 -0
- package/dist/__tests__/integration/reproduce-bec99.test.js +243 -0
- package/dist/__tests__/integration/reproduce-bec99.test.js.map +1 -0
- package/dist/__tests__/integration/vitest-changed.test.d.ts +10 -0
- package/dist/__tests__/integration/vitest-changed.test.d.ts.map +1 -0
- package/dist/__tests__/integration/vitest-changed.test.js +128 -0
- package/dist/__tests__/integration/vitest-changed.test.js.map +1 -0
- package/dist/__tests__/license.test.d.ts +2 -0
- package/dist/__tests__/license.test.d.ts.map +1 -0
- package/dist/__tests__/license.test.js +53 -0
- package/dist/__tests__/license.test.js.map +1 -0
- package/dist/__tests__/mcp-resolver.test.d.ts +2 -0
- package/dist/__tests__/mcp-resolver.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-resolver.test.js +65 -0
- package/dist/__tests__/mcp-resolver.test.js.map +1 -0
- package/dist/__tests__/migrator.test.d.ts +2 -0
- package/dist/__tests__/migrator.test.d.ts.map +1 -0
- package/dist/__tests__/migrator.test.js +300 -0
- package/dist/__tests__/migrator.test.js.map +1 -0
- package/dist/__tests__/notifier-discord.test.d.ts +2 -0
- package/dist/__tests__/notifier-discord.test.d.ts.map +1 -0
- package/dist/__tests__/notifier-discord.test.js +166 -0
- package/dist/__tests__/notifier-discord.test.js.map +1 -0
- package/dist/__tests__/notifier-slack.test.d.ts +2 -0
- package/dist/__tests__/notifier-slack.test.d.ts.map +1 -0
- package/dist/__tests__/notifier-slack.test.js +157 -0
- package/dist/__tests__/notifier-slack.test.js.map +1 -0
- package/dist/__tests__/notifier.test.d.ts +2 -0
- package/dist/__tests__/notifier.test.d.ts.map +1 -0
- package/dist/__tests__/notifier.test.js +207 -0
- package/dist/__tests__/notifier.test.js.map +1 -0
- package/dist/__tests__/pipeline-config.test.d.ts +2 -0
- package/dist/__tests__/pipeline-config.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline-config.test.js +143 -0
- package/dist/__tests__/pipeline-config.test.js.map +1 -0
- package/dist/__tests__/pipeline-runner.test.d.ts +2 -0
- package/dist/__tests__/pipeline-runner.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline-runner.test.js +359 -0
- package/dist/__tests__/pipeline-runner.test.js.map +1 -0
- package/dist/__tests__/pm-approvals-n1.repro.test.d.ts +9 -0
- package/dist/__tests__/pm-approvals-n1.repro.test.d.ts.map +1 -0
- package/dist/__tests__/pm-approvals-n1.repro.test.js +175 -0
- package/dist/__tests__/pm-approvals-n1.repro.test.js.map +1 -0
- package/dist/__tests__/pm-approvals.test.d.ts +2 -0
- package/dist/__tests__/pm-approvals.test.d.ts.map +1 -0
- package/dist/__tests__/pm-approvals.test.js +162 -0
- package/dist/__tests__/pm-approvals.test.js.map +1 -0
- package/dist/__tests__/pm-budget.test.d.ts +2 -0
- package/dist/__tests__/pm-budget.test.d.ts.map +1 -0
- package/dist/__tests__/pm-budget.test.js +65 -0
- package/dist/__tests__/pm-budget.test.js.map +1 -0
- package/dist/__tests__/pm-conflict.test.d.ts +2 -0
- package/dist/__tests__/pm-conflict.test.d.ts.map +1 -0
- package/dist/__tests__/pm-conflict.test.js +87 -0
- package/dist/__tests__/pm-conflict.test.js.map +1 -0
- package/dist/__tests__/pm-promote.test.d.ts +2 -0
- package/dist/__tests__/pm-promote.test.d.ts.map +1 -0
- package/dist/__tests__/pm-promote.test.js +82 -0
- package/dist/__tests__/pm-promote.test.js.map +1 -0
- package/dist/__tests__/pm-recover.test.d.ts +2 -0
- package/dist/__tests__/pm-recover.test.d.ts.map +1 -0
- package/dist/__tests__/pm-recover.test.js +100 -0
- package/dist/__tests__/pm-recover.test.js.map +1 -0
- package/dist/__tests__/pm-scheduler.test.d.ts +2 -0
- package/dist/__tests__/pm-scheduler.test.d.ts.map +1 -0
- package/dist/__tests__/pm-scheduler.test.js +112 -0
- package/dist/__tests__/pm-scheduler.test.js.map +1 -0
- package/dist/__tests__/pm-slack-interface.test.d.ts +2 -0
- package/dist/__tests__/pm-slack-interface.test.d.ts.map +1 -0
- package/dist/__tests__/pm-slack-interface.test.js +372 -0
- package/dist/__tests__/pm-slack-interface.test.js.map +1 -0
- package/dist/__tests__/pm-slack.test.d.ts +2 -0
- package/dist/__tests__/pm-slack.test.d.ts.map +1 -0
- package/dist/__tests__/pm-slack.test.js +83 -0
- package/dist/__tests__/pm-slack.test.js.map +1 -0
- package/dist/__tests__/pm-triage.test.d.ts +2 -0
- package/dist/__tests__/pm-triage.test.d.ts.map +1 -0
- package/dist/__tests__/pm-triage.test.js +198 -0
- package/dist/__tests__/pm-triage.test.js.map +1 -0
- package/dist/__tests__/pm-types.test.d.ts +2 -0
- package/dist/__tests__/pm-types.test.d.ts.map +1 -0
- package/dist/__tests__/pm-types.test.js +76 -0
- package/dist/__tests__/pm-types.test.js.map +1 -0
- package/dist/__tests__/pr-automerge.test.d.ts +18 -0
- package/dist/__tests__/pr-automerge.test.d.ts.map +1 -0
- package/dist/__tests__/pr-automerge.test.js +645 -0
- package/dist/__tests__/pr-automerge.test.js.map +1 -0
- package/dist/__tests__/pr-description.test.d.ts +2 -0
- package/dist/__tests__/pr-description.test.d.ts.map +1 -0
- package/dist/__tests__/pr-description.test.js +728 -0
- package/dist/__tests__/pr-description.test.js.map +1 -0
- package/dist/__tests__/prompt-injection.test.d.ts +2 -0
- package/dist/__tests__/prompt-injection.test.d.ts.map +1 -0
- package/dist/__tests__/prompt-injection.test.js +446 -0
- package/dist/__tests__/prompt-injection.test.js.map +1 -0
- package/dist/__tests__/ralph-gate.test.d.ts +19 -0
- package/dist/__tests__/ralph-gate.test.d.ts.map +1 -0
- package/dist/__tests__/ralph-gate.test.js +593 -0
- package/dist/__tests__/ralph-gate.test.js.map +1 -0
- package/dist/__tests__/ralph-review-fix-regression.test.d.ts +18 -0
- package/dist/__tests__/ralph-review-fix-regression.test.d.ts.map +1 -0
- package/dist/__tests__/ralph-review-fix-regression.test.js +306 -0
- package/dist/__tests__/ralph-review-fix-regression.test.js.map +1 -0
- package/dist/__tests__/ralph.test.d.ts +2 -0
- package/dist/__tests__/ralph.test.d.ts.map +1 -0
- package/dist/__tests__/ralph.test.js +96 -0
- package/dist/__tests__/ralph.test.js.map +1 -0
- package/dist/__tests__/recover-stuck.test.d.ts +8 -0
- package/dist/__tests__/recover-stuck.test.d.ts.map +1 -0
- package/dist/__tests__/recover-stuck.test.js +399 -0
- package/dist/__tests__/recover-stuck.test.js.map +1 -0
- package/dist/__tests__/repo.test.d.ts +2 -0
- package/dist/__tests__/repo.test.d.ts.map +1 -0
- package/dist/__tests__/repo.test.js +295 -0
- package/dist/__tests__/repo.test.js.map +1 -0
- package/dist/__tests__/repro-bec58-n-plus-one.test.d.ts +2 -0
- package/dist/__tests__/repro-bec58-n-plus-one.test.d.ts.map +1 -0
- package/dist/__tests__/repro-bec58-n-plus-one.test.js +187 -0
- package/dist/__tests__/repro-bec58-n-plus-one.test.js.map +1 -0
- package/dist/__tests__/reproduce-bec113-pagination-warning.test.d.ts +16 -0
- package/dist/__tests__/reproduce-bec113-pagination-warning.test.d.ts.map +1 -0
- package/dist/__tests__/reproduce-bec113-pagination-warning.test.js +226 -0
- package/dist/__tests__/reproduce-bec113-pagination-warning.test.js.map +1 -0
- package/dist/__tests__/reproduce-bec43-updatedat.test.d.ts +2 -0
- package/dist/__tests__/reproduce-bec43-updatedat.test.d.ts.map +1 -0
- package/dist/__tests__/reproduce-bec43-updatedat.test.js +76 -0
- package/dist/__tests__/reproduce-bec43-updatedat.test.js.map +1 -0
- package/dist/__tests__/reproduce-bec48-distributed-race.test.d.ts +18 -0
- package/dist/__tests__/reproduce-bec48-distributed-race.test.d.ts.map +1 -0
- package/dist/__tests__/reproduce-bec48-distributed-race.test.js +178 -0
- package/dist/__tests__/reproduce-bec48-distributed-race.test.js.map +1 -0
- package/dist/__tests__/reproduce-bec62.test.d.ts +2 -0
- package/dist/__tests__/reproduce-bec62.test.d.ts.map +1 -0
- package/dist/__tests__/reproduce-bec62.test.js +86 -0
- package/dist/__tests__/reproduce-bec62.test.js.map +1 -0
- package/dist/__tests__/reproduce-bec91-stuck-in-progress.test.d.ts +13 -0
- package/dist/__tests__/reproduce-bec91-stuck-in-progress.test.d.ts.map +1 -0
- package/dist/__tests__/reproduce-bec91-stuck-in-progress.test.js +220 -0
- package/dist/__tests__/reproduce-bec91-stuck-in-progress.test.js.map +1 -0
- package/dist/__tests__/review-feedback.test.d.ts +2 -0
- package/dist/__tests__/review-feedback.test.d.ts.map +1 -0
- package/dist/__tests__/review-feedback.test.js +383 -0
- package/dist/__tests__/review-feedback.test.js.map +1 -0
- package/dist/__tests__/sanitizer.test.d.ts +2 -0
- package/dist/__tests__/sanitizer.test.d.ts.map +1 -0
- package/dist/__tests__/sanitizer.test.js +162 -0
- package/dist/__tests__/sanitizer.test.js.map +1 -0
- package/dist/__tests__/security.test.d.ts +2 -0
- package/dist/__tests__/security.test.d.ts.map +1 -0
- package/dist/__tests__/security.test.js +52 -0
- package/dist/__tests__/security.test.js.map +1 -0
- package/dist/__tests__/server.test.d.ts +2 -0
- package/dist/__tests__/server.test.d.ts.map +1 -0
- package/dist/__tests__/server.test.js +61 -0
- package/dist/__tests__/server.test.js.map +1 -0
- package/dist/__tests__/slack-alerts.test.d.ts +2 -0
- package/dist/__tests__/slack-alerts.test.d.ts.map +1 -0
- package/dist/__tests__/slack-alerts.test.js +214 -0
- package/dist/__tests__/slack-alerts.test.js.map +1 -0
- package/dist/__tests__/stage-models.test.d.ts +14 -0
- package/dist/__tests__/stage-models.test.d.ts.map +1 -0
- package/dist/__tests__/stage-models.test.js +244 -0
- package/dist/__tests__/stage-models.test.js.map +1 -0
- package/dist/__tests__/start-todo.test.d.ts +2 -0
- package/dist/__tests__/start-todo.test.d.ts.map +1 -0
- package/dist/__tests__/start-todo.test.js +175 -0
- package/dist/__tests__/start-todo.test.js.map +1 -0
- package/dist/__tests__/tech-stack.test.d.ts +2 -0
- package/dist/__tests__/tech-stack.test.d.ts.map +1 -0
- package/dist/__tests__/tech-stack.test.js +75 -0
- package/dist/__tests__/tech-stack.test.js.map +1 -0
- package/dist/__tests__/templates.test.d.ts +2 -0
- package/dist/__tests__/templates.test.d.ts.map +1 -0
- package/dist/__tests__/templates.test.js +161 -0
- package/dist/__tests__/templates.test.js.map +1 -0
- package/dist/__tests__/test-quality.test.d.ts +2 -0
- package/dist/__tests__/test-quality.test.d.ts.map +1 -0
- package/dist/__tests__/test-quality.test.js +329 -0
- package/dist/__tests__/test-quality.test.js.map +1 -0
- package/dist/__tests__/token-budget.test.d.ts +2 -0
- package/dist/__tests__/token-budget.test.d.ts.map +1 -0
- package/dist/__tests__/token-budget.test.js +198 -0
- package/dist/__tests__/token-budget.test.js.map +1 -0
- package/dist/__tests__/types.test.d.ts +2 -0
- package/dist/__tests__/types.test.d.ts.map +1 -0
- package/dist/__tests__/types.test.js +156 -0
- package/dist/__tests__/types.test.js.map +1 -0
- package/dist/__tests__/validate.test.d.ts +2 -0
- package/dist/__tests__/validate.test.d.ts.map +1 -0
- package/dist/__tests__/validate.test.js +128 -0
- package/dist/__tests__/validate.test.js.map +1 -0
- package/dist/__tests__/webhook-handler.test.d.ts +2 -0
- package/dist/__tests__/webhook-handler.test.d.ts.map +1 -0
- package/dist/__tests__/webhook-handler.test.js +286 -0
- package/dist/__tests__/webhook-handler.test.js.map +1 -0
- package/dist/__tests__/webhook.test.d.ts +2 -0
- package/dist/__tests__/webhook.test.d.ts.map +1 -0
- package/dist/__tests__/webhook.test.js +58 -0
- package/dist/__tests__/webhook.test.js.map +1 -0
- package/dist/db/client.d.ts +56 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +201 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/index.d.ts +4 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +4 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrations/postgres/001_initial_schema.sql +78 -0
- package/dist/db/migrations/postgres/002_pg_timestamps.sql +78 -0
- package/dist/db/migrations/postgres/003_retry_count.sql +10 -0
- package/dist/db/migrations/postgres/004_review_feedback.sql +20 -0
- package/dist/db/migrations/postgres/005_auto_merge.sql +15 -0
- package/dist/db/migrations/sqlite/001_initial_schema.sql +78 -0
- package/dist/db/migrations/sqlite/002_retry_count.sql +5 -0
- package/dist/db/migrations/sqlite/003_review_feedback.sql +7 -0
- package/dist/db/migrations/sqlite/004_auto_merge.sql +6 -0
- package/dist/db/migrator.d.ts +51 -0
- package/dist/db/migrator.d.ts.map +1 -0
- package/dist/db/migrator.js +188 -0
- package/dist/db/migrator.js.map +1 -0
- package/dist/db/schema.d.ts +1114 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +129 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/entrypoint.d.ts +2 -0
- package/dist/entrypoint.d.ts.map +1 -0
- package/dist/entrypoint.js +113 -0
- package/dist/entrypoint.js.map +1 -0
- package/dist/executor/agent-config.d.ts +10 -0
- package/dist/executor/agent-config.d.ts.map +1 -0
- package/dist/executor/agent-config.js +81 -0
- package/dist/executor/agent-config.js.map +1 -0
- package/dist/executor/agent-stream.d.ts +65 -0
- package/dist/executor/agent-stream.d.ts.map +1 -0
- package/dist/executor/agent-stream.js +101 -0
- package/dist/executor/agent-stream.js.map +1 -0
- package/dist/executor/auth-check.d.ts +10 -0
- package/dist/executor/auth-check.d.ts.map +1 -0
- package/dist/executor/auth-check.js +52 -0
- package/dist/executor/auth-check.js.map +1 -0
- package/dist/executor/deep-review.d.ts +61 -0
- package/dist/executor/deep-review.d.ts.map +1 -0
- package/dist/executor/deep-review.js +308 -0
- package/dist/executor/deep-review.js.map +1 -0
- package/dist/executor/executor.d.ts +27 -0
- package/dist/executor/executor.d.ts.map +1 -0
- package/dist/executor/executor.js +168 -0
- package/dist/executor/executor.js.map +1 -0
- package/dist/executor/extract-handoff.d.ts +14 -0
- package/dist/executor/extract-handoff.d.ts.map +1 -0
- package/dist/executor/extract-handoff.js +80 -0
- package/dist/executor/extract-handoff.js.map +1 -0
- package/dist/executor/handoff.d.ts +24 -0
- package/dist/executor/handoff.d.ts.map +1 -0
- package/dist/executor/handoff.js +63 -0
- package/dist/executor/handoff.js.map +1 -0
- package/dist/executor/index.d.ts +8 -0
- package/dist/executor/index.d.ts.map +1 -0
- package/dist/executor/index.js +8 -0
- package/dist/executor/index.js.map +1 -0
- package/dist/executor/mcp-resolver.d.ts +29 -0
- package/dist/executor/mcp-resolver.d.ts.map +1 -0
- package/dist/executor/mcp-resolver.js +80 -0
- package/dist/executor/mcp-resolver.js.map +1 -0
- package/dist/executor/permissions.d.ts +11 -0
- package/dist/executor/permissions.d.ts.map +1 -0
- package/dist/executor/permissions.js +32 -0
- package/dist/executor/permissions.js.map +1 -0
- package/dist/executor/profiles.d.ts +5 -0
- package/dist/executor/profiles.d.ts.map +1 -0
- package/dist/executor/profiles.js +35 -0
- package/dist/executor/profiles.js.map +1 -0
- package/dist/executor/prompt/assembler.d.ts +10 -0
- package/dist/executor/prompt/assembler.d.ts.map +1 -0
- package/dist/executor/prompt/assembler.js +28 -0
- package/dist/executor/prompt/assembler.js.map +1 -0
- package/dist/executor/prompt/index.d.ts +5 -0
- package/dist/executor/prompt/index.d.ts.map +1 -0
- package/dist/executor/prompt/index.js +5 -0
- package/dist/executor/prompt/index.js.map +1 -0
- package/dist/executor/prompt/sanitizer.d.ts +25 -0
- package/dist/executor/prompt/sanitizer.d.ts.map +1 -0
- package/dist/executor/prompt/sanitizer.js +81 -0
- package/dist/executor/prompt/sanitizer.js.map +1 -0
- package/dist/executor/prompt/schema-mapper.d.ts +7 -0
- package/dist/executor/prompt/schema-mapper.d.ts.map +1 -0
- package/dist/executor/prompt/schema-mapper.js +59 -0
- package/dist/executor/prompt/schema-mapper.js.map +1 -0
- package/dist/executor/prompt/templates.d.ts +31 -0
- package/dist/executor/prompt/templates.d.ts.map +1 -0
- package/dist/executor/prompt/templates.js +283 -0
- package/dist/executor/prompt/templates.js.map +1 -0
- package/dist/executor/ralph.d.ts +19 -0
- package/dist/executor/ralph.d.ts.map +1 -0
- package/dist/executor/ralph.js +112 -0
- package/dist/executor/ralph.js.map +1 -0
- package/dist/executor/test-quality.d.ts +117 -0
- package/dist/executor/test-quality.d.ts.map +1 -0
- package/dist/executor/test-quality.js +261 -0
- package/dist/executor/test-quality.js.map +1 -0
- package/dist/executor/validate.d.ts +15 -0
- package/dist/executor/validate.d.ts.map +1 -0
- package/dist/executor/validate.js +124 -0
- package/dist/executor/validate.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/license.d.ts +18 -0
- package/dist/license.d.ts.map +1 -0
- package/dist/license.js +44 -0
- package/dist/license.js.map +1 -0
- package/dist/logger.d.ts +43 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +91 -0
- package/dist/logger.js.map +1 -0
- package/dist/notifier/composite.d.ts +13 -0
- package/dist/notifier/composite.d.ts.map +1 -0
- package/dist/notifier/composite.js +28 -0
- package/dist/notifier/composite.js.map +1 -0
- package/dist/notifier/discord.d.ts +14 -0
- package/dist/notifier/discord.d.ts.map +1 -0
- package/dist/notifier/discord.js +105 -0
- package/dist/notifier/discord.js.map +1 -0
- package/dist/notifier/index.d.ts +6 -0
- package/dist/notifier/index.d.ts.map +1 -0
- package/dist/notifier/index.js +6 -0
- package/dist/notifier/index.js.map +1 -0
- package/dist/notifier/linear.d.ts +28 -0
- package/dist/notifier/linear.d.ts.map +1 -0
- package/dist/notifier/linear.js +138 -0
- package/dist/notifier/linear.js.map +1 -0
- package/dist/notifier/slack-alerts.d.ts +62 -0
- package/dist/notifier/slack-alerts.d.ts.map +1 -0
- package/dist/notifier/slack-alerts.js +184 -0
- package/dist/notifier/slack-alerts.js.map +1 -0
- package/dist/notifier/slack.d.ts +14 -0
- package/dist/notifier/slack.d.ts.map +1 -0
- package/dist/notifier/slack.js +146 -0
- package/dist/notifier/slack.js.map +1 -0
- package/dist/pipeline/automerge.d.ts +44 -0
- package/dist/pipeline/automerge.d.ts.map +1 -0
- package/dist/pipeline/automerge.js +135 -0
- package/dist/pipeline/automerge.js.map +1 -0
- package/dist/pipeline/config.d.ts +5 -0
- package/dist/pipeline/config.d.ts.map +1 -0
- package/dist/pipeline/config.js +68 -0
- package/dist/pipeline/config.js.map +1 -0
- package/dist/pipeline/distributed-lock.d.ts +50 -0
- package/dist/pipeline/distributed-lock.d.ts.map +1 -0
- package/dist/pipeline/distributed-lock.js +114 -0
- package/dist/pipeline/distributed-lock.js.map +1 -0
- package/dist/pipeline/error-classifier.d.ts +9 -0
- package/dist/pipeline/error-classifier.d.ts.map +1 -0
- package/dist/pipeline/error-classifier.js +25 -0
- package/dist/pipeline/error-classifier.js.map +1 -0
- package/dist/pipeline/index.d.ts +9 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +9 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/pr-description.d.ts +35 -0
- package/dist/pipeline/pr-description.d.ts.map +1 -0
- package/dist/pipeline/pr-description.js +52 -0
- package/dist/pipeline/pr-description.js.map +1 -0
- package/dist/pipeline/queue.d.ts +7 -0
- package/dist/pipeline/queue.d.ts.map +1 -0
- package/dist/pipeline/queue.js +39 -0
- package/dist/pipeline/queue.js.map +1 -0
- package/dist/pipeline/router.d.ts +6 -0
- package/dist/pipeline/router.d.ts.map +1 -0
- package/dist/pipeline/router.js +19 -0
- package/dist/pipeline/router.js.map +1 -0
- package/dist/pipeline/runner.d.ts +142 -0
- package/dist/pipeline/runner.d.ts.map +1 -0
- package/dist/pipeline/runner.js +1848 -0
- package/dist/pipeline/runner.js.map +1 -0
- package/dist/pm/actions/approval-helpers.d.ts +11 -0
- package/dist/pm/actions/approval-helpers.d.ts.map +1 -0
- package/dist/pm/actions/approval-helpers.js +34 -0
- package/dist/pm/actions/approval-helpers.js.map +1 -0
- package/dist/pm/actions/cancel.d.ts +11 -0
- package/dist/pm/actions/cancel.d.ts.map +1 -0
- package/dist/pm/actions/cancel.js +68 -0
- package/dist/pm/actions/cancel.js.map +1 -0
- package/dist/pm/actions/deprioritize.d.ts +12 -0
- package/dist/pm/actions/deprioritize.d.ts.map +1 -0
- package/dist/pm/actions/deprioritize.js +55 -0
- package/dist/pm/actions/deprioritize.js.map +1 -0
- package/dist/pm/actions/promote.d.ts +11 -0
- package/dist/pm/actions/promote.d.ts.map +1 -0
- package/dist/pm/actions/promote.js +78 -0
- package/dist/pm/actions/promote.js.map +1 -0
- package/dist/pm/actions/recover-stuck.d.ts +42 -0
- package/dist/pm/actions/recover-stuck.d.ts.map +1 -0
- package/dist/pm/actions/recover-stuck.js +143 -0
- package/dist/pm/actions/recover-stuck.js.map +1 -0
- package/dist/pm/actions/recover.d.ts +18 -0
- package/dist/pm/actions/recover.d.ts.map +1 -0
- package/dist/pm/actions/recover.js +56 -0
- package/dist/pm/actions/recover.js.map +1 -0
- package/dist/pm/actions/resolve-approvals.d.ts +17 -0
- package/dist/pm/actions/resolve-approvals.d.ts.map +1 -0
- package/dist/pm/actions/resolve-approvals.js +92 -0
- package/dist/pm/actions/resolve-approvals.js.map +1 -0
- package/dist/pm/actions/start-todo.d.ts +28 -0
- package/dist/pm/actions/start-todo.d.ts.map +1 -0
- package/dist/pm/actions/start-todo.js +117 -0
- package/dist/pm/actions/start-todo.js.map +1 -0
- package/dist/pm/actions/triage.d.ts +13 -0
- package/dist/pm/actions/triage.d.ts.map +1 -0
- package/dist/pm/actions/triage.js +109 -0
- package/dist/pm/actions/triage.js.map +1 -0
- package/dist/pm/budget.d.ts +9 -0
- package/dist/pm/budget.d.ts.map +1 -0
- package/dist/pm/budget.js +62 -0
- package/dist/pm/budget.js.map +1 -0
- package/dist/pm/call-claude.d.ts +3 -0
- package/dist/pm/call-claude.d.ts.map +1 -0
- package/dist/pm/call-claude.js +37 -0
- package/dist/pm/call-claude.js.map +1 -0
- package/dist/pm/conflict-detector.d.ts +42 -0
- package/dist/pm/conflict-detector.d.ts.map +1 -0
- package/dist/pm/conflict-detector.js +116 -0
- package/dist/pm/conflict-detector.js.map +1 -0
- package/dist/pm/conflict.d.ts +20 -0
- package/dist/pm/conflict.d.ts.map +1 -0
- package/dist/pm/conflict.js +63 -0
- package/dist/pm/conflict.js.map +1 -0
- package/dist/pm/coordination.d.ts +50 -0
- package/dist/pm/coordination.d.ts.map +1 -0
- package/dist/pm/coordination.js +163 -0
- package/dist/pm/coordination.js.map +1 -0
- package/dist/pm/linear-helpers.d.ts +2 -0
- package/dist/pm/linear-helpers.d.ts.map +1 -0
- package/dist/pm/linear-helpers.js +16 -0
- package/dist/pm/linear-helpers.js.map +1 -0
- package/dist/pm/scheduler.d.ts +47 -0
- package/dist/pm/scheduler.d.ts.map +1 -0
- package/dist/pm/scheduler.js +346 -0
- package/dist/pm/scheduler.js.map +1 -0
- package/dist/pm/slack-helpers.d.ts +2 -0
- package/dist/pm/slack-helpers.d.ts.map +1 -0
- package/dist/pm/slack-helpers.js +24 -0
- package/dist/pm/slack-helpers.js.map +1 -0
- package/dist/pm/slack-interface.d.ts +133 -0
- package/dist/pm/slack-interface.d.ts.map +1 -0
- package/dist/pm/slack-interface.js +641 -0
- package/dist/pm/slack-interface.js.map +1 -0
- package/dist/pm/slack.d.ts +18 -0
- package/dist/pm/slack.d.ts.map +1 -0
- package/dist/pm/slack.js +144 -0
- package/dist/pm/slack.js.map +1 -0
- package/dist/pm/types.d.ts +99 -0
- package/dist/pm/types.d.ts.map +1 -0
- package/dist/pm/types.js +17 -0
- package/dist/pm/types.js.map +1 -0
- package/dist/repo/config.d.ts +35 -0
- package/dist/repo/config.d.ts.map +1 -0
- package/dist/repo/config.js +72 -0
- package/dist/repo/config.js.map +1 -0
- package/dist/repo/devcontainer.d.ts +33 -0
- package/dist/repo/devcontainer.d.ts.map +1 -0
- package/dist/repo/devcontainer.js +90 -0
- package/dist/repo/devcontainer.js.map +1 -0
- package/dist/repo/git.d.ts +185 -0
- package/dist/repo/git.d.ts.map +1 -0
- package/dist/repo/git.js +586 -0
- package/dist/repo/git.js.map +1 -0
- package/dist/repo/github.d.ts +56 -0
- package/dist/repo/github.d.ts.map +1 -0
- package/dist/repo/github.js +164 -0
- package/dist/repo/github.js.map +1 -0
- package/dist/repo/gitlab.d.ts +47 -0
- package/dist/repo/gitlab.d.ts.map +1 -0
- package/dist/repo/gitlab.js +91 -0
- package/dist/repo/gitlab.js.map +1 -0
- package/dist/repo/index.d.ts +7 -0
- package/dist/repo/index.d.ts.map +1 -0
- package/dist/repo/index.js +5 -0
- package/dist/repo/index.js.map +1 -0
- package/dist/repo/tech-stack.d.ts +13 -0
- package/dist/repo/tech-stack.d.ts.map +1 -0
- package/dist/repo/tech-stack.js +112 -0
- package/dist/repo/tech-stack.js.map +1 -0
- package/dist/security/index.d.ts +3 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +3 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/review-checklist.d.ts +9 -0
- package/dist/security/review-checklist.d.ts.map +1 -0
- package/dist/security/review-checklist.js +46 -0
- package/dist/security/review-checklist.js.map +1 -0
- package/dist/security/sandbox.d.ts +7 -0
- package/dist/security/sandbox.d.ts.map +1 -0
- package/dist/security/sandbox.js +31 -0
- package/dist/security/sandbox.js.map +1 -0
- package/dist/server.d.ts +48 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +90 -0
- package/dist/server.js.map +1 -0
- package/dist/types.d.ts +1230 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +225 -0
- package/dist/types.js.map +1 -0
- package/dist/webhook/github-handler.d.ts +39 -0
- package/dist/webhook/github-handler.d.ts.map +1 -0
- package/dist/webhook/github-handler.js +439 -0
- package/dist/webhook/github-handler.js.map +1 -0
- package/dist/webhook/handler.d.ts +16 -0
- package/dist/webhook/handler.d.ts.map +1 -0
- package/dist/webhook/handler.js +171 -0
- package/dist/webhook/handler.js.map +1 -0
- package/dist/webhook/index.d.ts +5 -0
- package/dist/webhook/index.d.ts.map +1 -0
- package/dist/webhook/index.js +5 -0
- package/dist/webhook/index.js.map +1 -0
- package/dist/webhook/parser.d.ts +18 -0
- package/dist/webhook/parser.d.ts.map +1 -0
- package/dist/webhook/parser.js +30 -0
- package/dist/webhook/parser.js.map +1 -0
- package/dist/webhook/signature.d.ts +2 -0
- package/dist/webhook/signature.d.ts.map +1 -0
- package/dist/webhook/signature.js +14 -0
- package/dist/webhook/signature.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { createDb, isPostgres, sqlDateGroup, sqlDaysAgoFilter, getCreateTablesDDL, getMigratePostgres, getMigrateSqlite, type Db, type AnyDb, type CreateDbOptions } from "./client.js";
|
|
2
|
+
export { pipelineRuns, stageRuns, agentLogs, activeWork, webhookDedup, pmApprovals } from "./schema.js";
|
|
3
|
+
export { loadMigrationFiles, runMigrationsSqlite, runMigrationsPostgres, getMigrationStatusSqlite, getMigrationStatusPostgres, type Migration, type MigrationStatus, } from "./migrator.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,KAAK,KAAK,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AACxL,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxG,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC"}
|
package/dist/db/index.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { createDb, isPostgres, sqlDateGroup, sqlDaysAgoFilter, getCreateTablesDDL, getMigratePostgres, getMigrateSqlite } from "./client.js";
|
|
2
|
+
export { pipelineRuns, stageRuns, agentLogs, activeWork, webhookDedup, pmApprovals } from "./schema.js";
|
|
3
|
+
export { loadMigrationFiles, runMigrationsSqlite, runMigrationsPostgres, getMigrationStatusSqlite, getMigrationStatusPostgres, } from "./migrator.js";
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAA6C,MAAM,aAAa,CAAC;AACxL,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxG,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,GAG3B,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
-- Migration: Initial schema
|
|
2
|
+
-- Creates all base tables and indices for PostgreSQL.
|
|
3
|
+
-- Idempotent: all statements use IF NOT EXISTS.
|
|
4
|
+
|
|
5
|
+
CREATE TABLE IF NOT EXISTS pipeline_runs (
|
|
6
|
+
id TEXT PRIMARY KEY,
|
|
7
|
+
issue_id TEXT NOT NULL,
|
|
8
|
+
issue_title TEXT NOT NULL,
|
|
9
|
+
pipeline_key TEXT NOT NULL,
|
|
10
|
+
repo_url TEXT NOT NULL,
|
|
11
|
+
branch TEXT,
|
|
12
|
+
status TEXT NOT NULL,
|
|
13
|
+
started_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
14
|
+
completed_at TIMESTAMPTZ,
|
|
15
|
+
pr_url TEXT,
|
|
16
|
+
total_input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
17
|
+
total_output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
18
|
+
error_message TEXT,
|
|
19
|
+
current_stage_index INTEGER,
|
|
20
|
+
resume_payload TEXT
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
CREATE TABLE IF NOT EXISTS stage_runs (
|
|
24
|
+
id TEXT PRIMARY KEY,
|
|
25
|
+
pipeline_run_id TEXT NOT NULL REFERENCES pipeline_runs(id),
|
|
26
|
+
stage TEXT NOT NULL,
|
|
27
|
+
status TEXT NOT NULL,
|
|
28
|
+
started_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
29
|
+
completed_at TIMESTAMPTZ,
|
|
30
|
+
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
31
|
+
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
32
|
+
turns INTEGER NOT NULL DEFAULT 0,
|
|
33
|
+
handoff_artifact TEXT,
|
|
34
|
+
error_message TEXT
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
CREATE TABLE IF NOT EXISTS agent_logs (
|
|
38
|
+
id TEXT PRIMARY KEY,
|
|
39
|
+
stage_run_id TEXT NOT NULL REFERENCES stage_runs(id),
|
|
40
|
+
timestamp TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
41
|
+
type TEXT NOT NULL,
|
|
42
|
+
content TEXT NOT NULL
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
CREATE INDEX IF NOT EXISTS idx_stage_runs_pipeline_run_id ON stage_runs(pipeline_run_id);
|
|
46
|
+
CREATE INDEX IF NOT EXISTS idx_agent_logs_stage_run_id ON agent_logs(stage_run_id);
|
|
47
|
+
CREATE INDEX IF NOT EXISTS idx_pipeline_runs_issue_id ON pipeline_runs(issue_id);
|
|
48
|
+
CREATE INDEX IF NOT EXISTS idx_pipeline_runs_status ON pipeline_runs(status);
|
|
49
|
+
|
|
50
|
+
CREATE TABLE IF NOT EXISTS pm_approvals (
|
|
51
|
+
id TEXT PRIMARY KEY,
|
|
52
|
+
issue_id TEXT NOT NULL,
|
|
53
|
+
action TEXT NOT NULL,
|
|
54
|
+
reason TEXT NOT NULL,
|
|
55
|
+
slack_message_ts TEXT NOT NULL,
|
|
56
|
+
status TEXT NOT NULL,
|
|
57
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
58
|
+
resolved_at TIMESTAMPTZ
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
CREATE INDEX IF NOT EXISTS idx_pm_approvals_status ON pm_approvals(status);
|
|
62
|
+
|
|
63
|
+
CREATE TABLE IF NOT EXISTS active_work (
|
|
64
|
+
id TEXT PRIMARY KEY,
|
|
65
|
+
run_id TEXT NOT NULL UNIQUE,
|
|
66
|
+
issue_id TEXT NOT NULL,
|
|
67
|
+
stage TEXT NOT NULL,
|
|
68
|
+
files_modified TEXT,
|
|
69
|
+
started_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
70
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
CREATE INDEX IF NOT EXISTS idx_active_work_issue_id ON active_work(issue_id);
|
|
74
|
+
|
|
75
|
+
CREATE TABLE IF NOT EXISTS webhook_dedup (
|
|
76
|
+
id TEXT PRIMARY KEY,
|
|
77
|
+
expires_at TIMESTAMPTZ NOT NULL
|
|
78
|
+
);
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
-- Migration: Convert INTEGER epoch-second timestamp columns to TIMESTAMPTZ
|
|
2
|
+
--
|
|
3
|
+
-- Only needed for PostgreSQL deployments that were initially created with the
|
|
4
|
+
-- legacy INTEGER timestamp schema. Safe to run on fresh installations (no-op).
|
|
5
|
+
--
|
|
6
|
+
-- Idempotent: each ALTER is guarded by a data_type check.
|
|
7
|
+
--
|
|
8
|
+
-- NOTE: Must DROP DEFAULT before ALTER TYPE because Postgres cannot auto-cast
|
|
9
|
+
-- an integer default expression to timestamptz.
|
|
10
|
+
|
|
11
|
+
DO $$
|
|
12
|
+
BEGIN
|
|
13
|
+
-- pipeline_runs.started_at
|
|
14
|
+
IF (SELECT data_type FROM information_schema.columns
|
|
15
|
+
WHERE table_name = 'pipeline_runs' AND column_name = 'started_at') = 'integer' THEN
|
|
16
|
+
ALTER TABLE pipeline_runs ALTER COLUMN started_at DROP DEFAULT;
|
|
17
|
+
ALTER TABLE pipeline_runs ALTER COLUMN started_at TYPE TIMESTAMPTZ USING to_timestamp(started_at);
|
|
18
|
+
ALTER TABLE pipeline_runs ALTER COLUMN started_at SET DEFAULT now();
|
|
19
|
+
END IF;
|
|
20
|
+
|
|
21
|
+
-- pipeline_runs.completed_at
|
|
22
|
+
IF (SELECT data_type FROM information_schema.columns
|
|
23
|
+
WHERE table_name = 'pipeline_runs' AND column_name = 'completed_at') = 'integer' THEN
|
|
24
|
+
ALTER TABLE pipeline_runs ALTER COLUMN completed_at TYPE TIMESTAMPTZ USING to_timestamp(completed_at);
|
|
25
|
+
END IF;
|
|
26
|
+
|
|
27
|
+
-- stage_runs.started_at
|
|
28
|
+
IF (SELECT data_type FROM information_schema.columns
|
|
29
|
+
WHERE table_name = 'stage_runs' AND column_name = 'started_at') = 'integer' THEN
|
|
30
|
+
ALTER TABLE stage_runs ALTER COLUMN started_at DROP DEFAULT;
|
|
31
|
+
ALTER TABLE stage_runs ALTER COLUMN started_at TYPE TIMESTAMPTZ USING to_timestamp(started_at);
|
|
32
|
+
ALTER TABLE stage_runs ALTER COLUMN started_at SET DEFAULT now();
|
|
33
|
+
END IF;
|
|
34
|
+
|
|
35
|
+
-- stage_runs.completed_at
|
|
36
|
+
IF (SELECT data_type FROM information_schema.columns
|
|
37
|
+
WHERE table_name = 'stage_runs' AND column_name = 'completed_at') = 'integer' THEN
|
|
38
|
+
ALTER TABLE stage_runs ALTER COLUMN completed_at TYPE TIMESTAMPTZ USING to_timestamp(completed_at);
|
|
39
|
+
END IF;
|
|
40
|
+
|
|
41
|
+
-- agent_logs.timestamp
|
|
42
|
+
IF (SELECT data_type FROM information_schema.columns
|
|
43
|
+
WHERE table_name = 'agent_logs' AND column_name = 'timestamp') = 'integer' THEN
|
|
44
|
+
ALTER TABLE agent_logs ALTER COLUMN timestamp DROP DEFAULT;
|
|
45
|
+
ALTER TABLE agent_logs ALTER COLUMN timestamp TYPE TIMESTAMPTZ USING to_timestamp(timestamp);
|
|
46
|
+
ALTER TABLE agent_logs ALTER COLUMN timestamp SET DEFAULT now();
|
|
47
|
+
END IF;
|
|
48
|
+
|
|
49
|
+
-- pm_approvals.created_at
|
|
50
|
+
IF (SELECT data_type FROM information_schema.columns
|
|
51
|
+
WHERE table_name = 'pm_approvals' AND column_name = 'created_at') = 'integer' THEN
|
|
52
|
+
ALTER TABLE pm_approvals ALTER COLUMN created_at DROP DEFAULT;
|
|
53
|
+
ALTER TABLE pm_approvals ALTER COLUMN created_at TYPE TIMESTAMPTZ USING to_timestamp(created_at);
|
|
54
|
+
ALTER TABLE pm_approvals ALTER COLUMN created_at SET DEFAULT now();
|
|
55
|
+
END IF;
|
|
56
|
+
|
|
57
|
+
-- pm_approvals.resolved_at (nullable, no default)
|
|
58
|
+
IF (SELECT data_type FROM information_schema.columns
|
|
59
|
+
WHERE table_name = 'pm_approvals' AND column_name = 'resolved_at') = 'integer' THEN
|
|
60
|
+
ALTER TABLE pm_approvals ALTER COLUMN resolved_at TYPE TIMESTAMPTZ USING to_timestamp(resolved_at);
|
|
61
|
+
END IF;
|
|
62
|
+
|
|
63
|
+
-- active_work.started_at
|
|
64
|
+
IF (SELECT data_type FROM information_schema.columns
|
|
65
|
+
WHERE table_name = 'active_work' AND column_name = 'started_at') = 'integer' THEN
|
|
66
|
+
ALTER TABLE active_work ALTER COLUMN started_at DROP DEFAULT;
|
|
67
|
+
ALTER TABLE active_work ALTER COLUMN started_at TYPE TIMESTAMPTZ USING to_timestamp(started_at);
|
|
68
|
+
ALTER TABLE active_work ALTER COLUMN started_at SET DEFAULT now();
|
|
69
|
+
END IF;
|
|
70
|
+
|
|
71
|
+
-- active_work.updated_at
|
|
72
|
+
IF (SELECT data_type FROM information_schema.columns
|
|
73
|
+
WHERE table_name = 'active_work' AND column_name = 'updated_at') = 'integer' THEN
|
|
74
|
+
ALTER TABLE active_work ALTER COLUMN updated_at DROP DEFAULT;
|
|
75
|
+
ALTER TABLE active_work ALTER COLUMN updated_at TYPE TIMESTAMPTZ USING to_timestamp(updated_at);
|
|
76
|
+
ALTER TABLE active_work ALTER COLUMN updated_at SET DEFAULT now();
|
|
77
|
+
END IF;
|
|
78
|
+
END $$;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
-- Migration: BEC-87 - Add retry_count column for transient failure recovery
|
|
2
|
+
-- Idempotent: guarded by information_schema check.
|
|
3
|
+
|
|
4
|
+
DO $$
|
|
5
|
+
BEGIN
|
|
6
|
+
IF NOT EXISTS (SELECT 1 FROM information_schema.columns
|
|
7
|
+
WHERE table_name = 'pipeline_runs' AND column_name = 'retry_count') THEN
|
|
8
|
+
ALTER TABLE pipeline_runs ADD COLUMN retry_count INTEGER NOT NULL DEFAULT 0;
|
|
9
|
+
END IF;
|
|
10
|
+
END $$;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
-- Migration: BEC-84 - Add columns for review-feedback pipeline support
|
|
2
|
+
-- Idempotent: each column addition is guarded by information_schema check.
|
|
3
|
+
|
|
4
|
+
DO $$
|
|
5
|
+
BEGIN
|
|
6
|
+
IF NOT EXISTS (SELECT 1 FROM information_schema.columns
|
|
7
|
+
WHERE table_name = 'pipeline_runs' AND column_name = 'run_type') THEN
|
|
8
|
+
ALTER TABLE pipeline_runs ADD COLUMN run_type TEXT NOT NULL DEFAULT 'standard';
|
|
9
|
+
END IF;
|
|
10
|
+
|
|
11
|
+
IF NOT EXISTS (SELECT 1 FROM information_schema.columns
|
|
12
|
+
WHERE table_name = 'pipeline_runs' AND column_name = 'parent_run_id') THEN
|
|
13
|
+
ALTER TABLE pipeline_runs ADD COLUMN parent_run_id TEXT;
|
|
14
|
+
END IF;
|
|
15
|
+
|
|
16
|
+
IF NOT EXISTS (SELECT 1 FROM information_schema.columns
|
|
17
|
+
WHERE table_name = 'pipeline_runs' AND column_name = 'feedback_context') THEN
|
|
18
|
+
ALTER TABLE pipeline_runs ADD COLUMN feedback_context TEXT;
|
|
19
|
+
END IF;
|
|
20
|
+
END $$;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
-- Migration: BEC-95 - Add auto-merge audit log columns
|
|
2
|
+
-- Idempotent: each column addition is guarded by information_schema check.
|
|
3
|
+
|
|
4
|
+
DO $$
|
|
5
|
+
BEGIN
|
|
6
|
+
IF NOT EXISTS (SELECT 1 FROM information_schema.columns
|
|
7
|
+
WHERE table_name = 'pipeline_runs' AND column_name = 'auto_merged') THEN
|
|
8
|
+
ALTER TABLE pipeline_runs ADD COLUMN auto_merged BOOLEAN;
|
|
9
|
+
END IF;
|
|
10
|
+
|
|
11
|
+
IF NOT EXISTS (SELECT 1 FROM information_schema.columns
|
|
12
|
+
WHERE table_name = 'pipeline_runs' AND column_name = 'auto_merge_reason') THEN
|
|
13
|
+
ALTER TABLE pipeline_runs ADD COLUMN auto_merge_reason TEXT;
|
|
14
|
+
END IF;
|
|
15
|
+
END $$;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
-- Migration: Initial schema
|
|
2
|
+
-- Creates all base tables and indices for SQLite.
|
|
3
|
+
-- Idempotent: all statements use IF NOT EXISTS.
|
|
4
|
+
|
|
5
|
+
CREATE TABLE IF NOT EXISTS pipeline_runs (
|
|
6
|
+
id TEXT PRIMARY KEY,
|
|
7
|
+
issue_id TEXT NOT NULL,
|
|
8
|
+
issue_title TEXT NOT NULL,
|
|
9
|
+
pipeline_key TEXT NOT NULL,
|
|
10
|
+
repo_url TEXT NOT NULL,
|
|
11
|
+
branch TEXT,
|
|
12
|
+
status TEXT NOT NULL,
|
|
13
|
+
started_at INTEGER NOT NULL DEFAULT (unixepoch()),
|
|
14
|
+
completed_at INTEGER,
|
|
15
|
+
pr_url TEXT,
|
|
16
|
+
total_input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
17
|
+
total_output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
18
|
+
error_message TEXT,
|
|
19
|
+
current_stage_index INTEGER,
|
|
20
|
+
resume_payload TEXT
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
CREATE TABLE IF NOT EXISTS stage_runs (
|
|
24
|
+
id TEXT PRIMARY KEY,
|
|
25
|
+
pipeline_run_id TEXT NOT NULL REFERENCES pipeline_runs(id),
|
|
26
|
+
stage TEXT NOT NULL,
|
|
27
|
+
status TEXT NOT NULL,
|
|
28
|
+
started_at INTEGER NOT NULL DEFAULT (unixepoch()),
|
|
29
|
+
completed_at INTEGER,
|
|
30
|
+
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
31
|
+
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
32
|
+
turns INTEGER NOT NULL DEFAULT 0,
|
|
33
|
+
handoff_artifact TEXT,
|
|
34
|
+
error_message TEXT
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
CREATE TABLE IF NOT EXISTS agent_logs (
|
|
38
|
+
id TEXT PRIMARY KEY,
|
|
39
|
+
stage_run_id TEXT NOT NULL REFERENCES stage_runs(id),
|
|
40
|
+
timestamp INTEGER NOT NULL DEFAULT (unixepoch()),
|
|
41
|
+
type TEXT NOT NULL,
|
|
42
|
+
content TEXT NOT NULL
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
CREATE INDEX IF NOT EXISTS idx_stage_runs_pipeline_run_id ON stage_runs(pipeline_run_id);
|
|
46
|
+
CREATE INDEX IF NOT EXISTS idx_agent_logs_stage_run_id ON agent_logs(stage_run_id);
|
|
47
|
+
CREATE INDEX IF NOT EXISTS idx_pipeline_runs_issue_id ON pipeline_runs(issue_id);
|
|
48
|
+
CREATE INDEX IF NOT EXISTS idx_pipeline_runs_status ON pipeline_runs(status);
|
|
49
|
+
|
|
50
|
+
CREATE TABLE IF NOT EXISTS pm_approvals (
|
|
51
|
+
id TEXT PRIMARY KEY,
|
|
52
|
+
issue_id TEXT NOT NULL,
|
|
53
|
+
action TEXT NOT NULL,
|
|
54
|
+
reason TEXT NOT NULL,
|
|
55
|
+
slack_message_ts TEXT NOT NULL,
|
|
56
|
+
status TEXT NOT NULL,
|
|
57
|
+
created_at INTEGER NOT NULL DEFAULT (unixepoch()),
|
|
58
|
+
resolved_at INTEGER
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
CREATE INDEX IF NOT EXISTS idx_pm_approvals_status ON pm_approvals(status);
|
|
62
|
+
|
|
63
|
+
CREATE TABLE IF NOT EXISTS active_work (
|
|
64
|
+
id TEXT PRIMARY KEY,
|
|
65
|
+
run_id TEXT NOT NULL UNIQUE,
|
|
66
|
+
issue_id TEXT NOT NULL,
|
|
67
|
+
stage TEXT NOT NULL,
|
|
68
|
+
files_modified TEXT,
|
|
69
|
+
started_at INTEGER NOT NULL DEFAULT (unixepoch()),
|
|
70
|
+
updated_at INTEGER NOT NULL DEFAULT (unixepoch())
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
CREATE INDEX IF NOT EXISTS idx_active_work_issue_id ON active_work(issue_id);
|
|
74
|
+
|
|
75
|
+
CREATE TABLE IF NOT EXISTS webhook_dedup (
|
|
76
|
+
id TEXT PRIMARY KEY,
|
|
77
|
+
expires_at INTEGER NOT NULL
|
|
78
|
+
);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
-- Migration: BEC-87 - Add retry_count column for transient failure recovery
|
|
2
|
+
-- SQLite does not support IF NOT EXISTS on ALTER TABLE.
|
|
3
|
+
-- The migration runner catches duplicate-column errors to ensure idempotency.
|
|
4
|
+
|
|
5
|
+
ALTER TABLE pipeline_runs ADD COLUMN retry_count INTEGER NOT NULL DEFAULT 0;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
-- Migration: BEC-84 - Add columns for review-feedback pipeline support
|
|
2
|
+
-- SQLite does not support IF NOT EXISTS on ALTER TABLE.
|
|
3
|
+
-- The migration runner catches duplicate-column errors to ensure idempotency.
|
|
4
|
+
|
|
5
|
+
ALTER TABLE pipeline_runs ADD COLUMN run_type TEXT NOT NULL DEFAULT 'standard';
|
|
6
|
+
ALTER TABLE pipeline_runs ADD COLUMN parent_run_id TEXT;
|
|
7
|
+
ALTER TABLE pipeline_runs ADD COLUMN feedback_context TEXT;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
-- Migration: BEC-95 - Add auto-merge audit log columns
|
|
2
|
+
-- SQLite does not support IF NOT EXISTS on ALTER TABLE.
|
|
3
|
+
-- The migration runner catches duplicate-column errors to ensure idempotency.
|
|
4
|
+
|
|
5
|
+
ALTER TABLE pipeline_runs ADD COLUMN auto_merged INTEGER;
|
|
6
|
+
ALTER TABLE pipeline_runs ADD COLUMN auto_merge_reason TEXT;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration framework for Linear Agent Framework.
|
|
3
|
+
*
|
|
4
|
+
* Reads numbered SQL migration files from packages/core/src/db/migrations/{driver}/
|
|
5
|
+
* and applies any that have not yet been recorded in the schema_migrations table.
|
|
6
|
+
*
|
|
7
|
+
* Design:
|
|
8
|
+
* - schema_migrations table is created before any migrations run.
|
|
9
|
+
* - Migration files are sorted by name (NNN_description.sql) so they apply in order.
|
|
10
|
+
* - Each applied migration is recorded atomically; a failed migration is not recorded.
|
|
11
|
+
* - SQLite ALTER TABLE does not support IF NOT EXISTS, so duplicate-column errors are
|
|
12
|
+
* caught and treated as a no-op (idempotent re-run safety).
|
|
13
|
+
* - Postgres migrations use DO $$ IF NOT EXISTS $$ guards for native idempotency.
|
|
14
|
+
*/
|
|
15
|
+
import type Database from "better-sqlite3";
|
|
16
|
+
import type { Sql } from "postgres";
|
|
17
|
+
/** A single migration file with its name and SQL content. */
|
|
18
|
+
export interface Migration {
|
|
19
|
+
name: string;
|
|
20
|
+
sql: string;
|
|
21
|
+
}
|
|
22
|
+
/** Status of a migration (applied or pending). */
|
|
23
|
+
export interface MigrationStatus {
|
|
24
|
+
name: string;
|
|
25
|
+
applied: boolean;
|
|
26
|
+
appliedAt?: Date;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Read all .sql migration files for a driver from the migrations subdirectory,
|
|
30
|
+
* sorted by filename (ascending, so NNN prefix determines order).
|
|
31
|
+
*/
|
|
32
|
+
export declare function loadMigrationFiles(driver: "sqlite" | "postgres"): Migration[];
|
|
33
|
+
/**
|
|
34
|
+
* Run all pending migrations against a better-sqlite3 Database instance.
|
|
35
|
+
* Creates schema_migrations table if it does not exist.
|
|
36
|
+
*/
|
|
37
|
+
export declare function runMigrationsSqlite(db: Database.Database): void;
|
|
38
|
+
/**
|
|
39
|
+
* Return the status of every migration file for SQLite.
|
|
40
|
+
*/
|
|
41
|
+
export declare function getMigrationStatusSqlite(db: Database.Database): MigrationStatus[];
|
|
42
|
+
/**
|
|
43
|
+
* Run all pending migrations against a postgres.js Sql client.
|
|
44
|
+
* Creates schema_migrations table if it does not exist.
|
|
45
|
+
*/
|
|
46
|
+
export declare function runMigrationsPostgres(client: Sql): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Return the status of every migration file for Postgres.
|
|
49
|
+
*/
|
|
50
|
+
export declare function getMigrationStatusPostgres(client: Sql): Promise<MigrationStatus[]>;
|
|
51
|
+
//# sourceMappingURL=migrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../src/db/migrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAKpC,6DAA6D;AAC7D,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAkBD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,EAAE,CAe7E;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAiE/D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GACpB,eAAe,EAAE,CAuBnB;AAMD;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BtE;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,GAAG,GACV,OAAO,CAAC,eAAe,EAAE,CAAC,CAuB5B"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration framework for Linear Agent Framework.
|
|
3
|
+
*
|
|
4
|
+
* Reads numbered SQL migration files from packages/core/src/db/migrations/{driver}/
|
|
5
|
+
* and applies any that have not yet been recorded in the schema_migrations table.
|
|
6
|
+
*
|
|
7
|
+
* Design:
|
|
8
|
+
* - schema_migrations table is created before any migrations run.
|
|
9
|
+
* - Migration files are sorted by name (NNN_description.sql) so they apply in order.
|
|
10
|
+
* - Each applied migration is recorded atomically; a failed migration is not recorded.
|
|
11
|
+
* - SQLite ALTER TABLE does not support IF NOT EXISTS, so duplicate-column errors are
|
|
12
|
+
* caught and treated as a no-op (idempotent re-run safety).
|
|
13
|
+
* - Postgres migrations use DO $$ IF NOT EXISTS $$ guards for native idempotency.
|
|
14
|
+
*/
|
|
15
|
+
import { readdirSync, readFileSync } from "node:fs";
|
|
16
|
+
import { fileURLToPath } from "node:url";
|
|
17
|
+
import { dirname, join } from "node:path";
|
|
18
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
19
|
+
const __dirname = dirname(__filename);
|
|
20
|
+
const CREATE_SCHEMA_MIGRATIONS_SQLITE = `
|
|
21
|
+
CREATE TABLE IF NOT EXISTS schema_migrations (
|
|
22
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
23
|
+
name TEXT NOT NULL UNIQUE,
|
|
24
|
+
applied_at INTEGER NOT NULL DEFAULT (unixepoch())
|
|
25
|
+
)
|
|
26
|
+
`;
|
|
27
|
+
const CREATE_SCHEMA_MIGRATIONS_POSTGRES = `
|
|
28
|
+
CREATE TABLE IF NOT EXISTS schema_migrations (
|
|
29
|
+
id SERIAL PRIMARY KEY,
|
|
30
|
+
name TEXT NOT NULL UNIQUE,
|
|
31
|
+
applied_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
32
|
+
)
|
|
33
|
+
`;
|
|
34
|
+
/**
|
|
35
|
+
* Read all .sql migration files for a driver from the migrations subdirectory,
|
|
36
|
+
* sorted by filename (ascending, so NNN prefix determines order).
|
|
37
|
+
*/
|
|
38
|
+
export function loadMigrationFiles(driver) {
|
|
39
|
+
const dir = join(__dirname, "migrations", driver);
|
|
40
|
+
let files;
|
|
41
|
+
try {
|
|
42
|
+
files = readdirSync(dir)
|
|
43
|
+
.filter((f) => f.endsWith(".sql"))
|
|
44
|
+
.sort();
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// migrations directory missing — no migrations to run
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
return files.map((file) => ({
|
|
51
|
+
name: file.replace(/\.sql$/, ""),
|
|
52
|
+
sql: readFileSync(join(dir, file), "utf8"),
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
// SQLite
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
/**
|
|
59
|
+
* Run all pending migrations against a better-sqlite3 Database instance.
|
|
60
|
+
* Creates schema_migrations table if it does not exist.
|
|
61
|
+
*/
|
|
62
|
+
export function runMigrationsSqlite(db) {
|
|
63
|
+
// Ensure tracking table exists
|
|
64
|
+
db.exec(CREATE_SCHEMA_MIGRATIONS_SQLITE);
|
|
65
|
+
const migrations = loadMigrationFiles("sqlite");
|
|
66
|
+
const getApplied = db.prepare("SELECT name FROM schema_migrations WHERE name = ?");
|
|
67
|
+
const recordApplied = db.prepare("INSERT OR IGNORE INTO schema_migrations (name) VALUES (?)");
|
|
68
|
+
for (const migration of migrations) {
|
|
69
|
+
const existing = getApplied.get(migration.name);
|
|
70
|
+
if (existing) {
|
|
71
|
+
continue; // already applied
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
// Execute each statement individually so we can catch column-exists errors.
|
|
75
|
+
// Split on semicolons, strip comment lines from each chunk, then keep non-empty statements.
|
|
76
|
+
// We must strip comments BEFORE checking for empty — a chunk that starts with "--" may
|
|
77
|
+
// also contain valid SQL (e.g. the very first statement in a file that has a comment header).
|
|
78
|
+
const statements = migration.sql
|
|
79
|
+
.split(";")
|
|
80
|
+
.map((s) => s
|
|
81
|
+
.split("\n")
|
|
82
|
+
.filter((line) => !line.trim().startsWith("--"))
|
|
83
|
+
.join("\n")
|
|
84
|
+
.trim())
|
|
85
|
+
.filter((s) => s.length > 0);
|
|
86
|
+
for (const stmt of statements) {
|
|
87
|
+
try {
|
|
88
|
+
db.exec(stmt);
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
// SQLite has no IF NOT EXISTS for ALTER TABLE ADD COLUMN.
|
|
92
|
+
// Treat "duplicate column name" as a no-op so re-running is safe.
|
|
93
|
+
if (err instanceof Error &&
|
|
94
|
+
err.message.includes("duplicate column name")) {
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
// Also handle "table X already exists" for idempotent CREATE TABLE
|
|
98
|
+
if (err instanceof Error &&
|
|
99
|
+
err.message.includes("already exists")) {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
throw err;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// Record as applied only after all statements succeed
|
|
106
|
+
recordApplied.run(migration.name);
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
throw new Error(`Migration "${migration.name}" failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Return the status of every migration file for SQLite.
|
|
115
|
+
*/
|
|
116
|
+
export function getMigrationStatusSqlite(db) {
|
|
117
|
+
// Ensure tracking table exists before querying
|
|
118
|
+
db.exec(CREATE_SCHEMA_MIGRATIONS_SQLITE);
|
|
119
|
+
const migrations = loadMigrationFiles("sqlite");
|
|
120
|
+
const rows = db
|
|
121
|
+
.prepare("SELECT name, applied_at FROM schema_migrations")
|
|
122
|
+
.all();
|
|
123
|
+
const appliedMap = new Map(rows.map((r) => [r.name, new Date(r.applied_at * 1000)]));
|
|
124
|
+
// Include any applied migrations that no longer have a file (e.g., squashed)
|
|
125
|
+
const allNames = new Set([
|
|
126
|
+
...migrations.map((m) => m.name),
|
|
127
|
+
...appliedMap.keys(),
|
|
128
|
+
]);
|
|
129
|
+
return Array.from(allNames)
|
|
130
|
+
.sort()
|
|
131
|
+
.map((name) => ({
|
|
132
|
+
name,
|
|
133
|
+
applied: appliedMap.has(name),
|
|
134
|
+
appliedAt: appliedMap.get(name),
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
// ---------------------------------------------------------------------------
|
|
138
|
+
// Postgres
|
|
139
|
+
// ---------------------------------------------------------------------------
|
|
140
|
+
/**
|
|
141
|
+
* Run all pending migrations against a postgres.js Sql client.
|
|
142
|
+
* Creates schema_migrations table if it does not exist.
|
|
143
|
+
*/
|
|
144
|
+
export async function runMigrationsPostgres(client) {
|
|
145
|
+
// Ensure tracking table exists
|
|
146
|
+
await client.unsafe(CREATE_SCHEMA_MIGRATIONS_POSTGRES);
|
|
147
|
+
const migrations = loadMigrationFiles("postgres");
|
|
148
|
+
for (const migration of migrations) {
|
|
149
|
+
const existing = await client `
|
|
150
|
+
SELECT name FROM schema_migrations WHERE name = ${migration.name}
|
|
151
|
+
`;
|
|
152
|
+
if (existing.length > 0) {
|
|
153
|
+
continue; // already applied
|
|
154
|
+
}
|
|
155
|
+
try {
|
|
156
|
+
await client.unsafe(migration.sql);
|
|
157
|
+
await client `
|
|
158
|
+
INSERT INTO schema_migrations (name) VALUES (${migration.name})
|
|
159
|
+
ON CONFLICT (name) DO NOTHING
|
|
160
|
+
`;
|
|
161
|
+
}
|
|
162
|
+
catch (err) {
|
|
163
|
+
throw new Error(`Migration "${migration.name}" failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Return the status of every migration file for Postgres.
|
|
169
|
+
*/
|
|
170
|
+
export async function getMigrationStatusPostgres(client) {
|
|
171
|
+
// Ensure tracking table exists before querying
|
|
172
|
+
await client.unsafe(CREATE_SCHEMA_MIGRATIONS_POSTGRES);
|
|
173
|
+
const migrations = loadMigrationFiles("postgres");
|
|
174
|
+
const rows = await client `SELECT name, applied_at FROM schema_migrations`;
|
|
175
|
+
const appliedMap = new Map(rows.map((r) => [r.name, r.applied_at]));
|
|
176
|
+
const allNames = new Set([
|
|
177
|
+
...migrations.map((m) => m.name),
|
|
178
|
+
...appliedMap.keys(),
|
|
179
|
+
]);
|
|
180
|
+
return Array.from(allNames)
|
|
181
|
+
.sort()
|
|
182
|
+
.map((name) => ({
|
|
183
|
+
name,
|
|
184
|
+
applied: appliedMap.has(name),
|
|
185
|
+
appliedAt: appliedMap.get(name),
|
|
186
|
+
}));
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=migrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../src/db/migrator.ts"],"names":[],"mappings":"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"}
|