@humanbased/crosscheck 1.2.0 → 1.3.0-beta.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +183 -375
- package/README.zh.md +1 -1
- package/assets/icon-256.png +0 -0
- package/assets/linear-comment.svg +18 -0
- package/assets/linear-onboard.svg +30 -0
- package/assets/linear-status.svg +23 -0
- package/assets/linear-test.svg +34 -0
- package/assets/skills/code-review/.crosscheck-skill.json +9 -0
- package/assets/skills/code-review/LICENSE +21 -0
- package/assets/skills/code-review/SKILL.md +89 -0
- package/assets/skills/code-review/agents/openai.yaml +3 -0
- package/assets/skills/code-review-skill/.crosscheck-skill.json +9 -0
- package/assets/skills/code-review-skill/LICENSE +21 -0
- package/assets/skills/code-review-skill/SKILL.md +231 -0
- package/assets/skills/code-review-skill/assets/pr-review-template.md +137 -0
- package/assets/skills/code-review-skill/assets/review-checklist.md +123 -0
- package/assets/skills/code-review-skill/reference/angular.md +768 -0
- package/assets/skills/code-review-skill/reference/architecture-review-guide.md +472 -0
- package/assets/skills/code-review-skill/reference/c.md +890 -0
- package/assets/skills/code-review-skill/reference/code-quality-universal.md +488 -0
- package/assets/skills/code-review-skill/reference/code-review-best-practices.md +136 -0
- package/assets/skills/code-review-skill/reference/common-bugs-checklist.md +286 -0
- package/assets/skills/code-review-skill/reference/cpp.md +893 -0
- package/assets/skills/code-review-skill/reference/cross-cutting/async-concurrency-patterns.md +515 -0
- package/assets/skills/code-review-skill/reference/cross-cutting/error-handling-principles.md +492 -0
- package/assets/skills/code-review-skill/reference/cross-cutting/n-plus-one-queries.md +309 -0
- package/assets/skills/code-review-skill/reference/cross-cutting/sql-injection-prevention.md +308 -0
- package/assets/skills/code-review-skill/reference/cross-cutting/xss-prevention.md +264 -0
- package/assets/skills/code-review-skill/reference/csharp.md +525 -0
- package/assets/skills/code-review-skill/reference/css-less-sass.md +661 -0
- package/assets/skills/code-review-skill/reference/django.md +985 -0
- package/assets/skills/code-review-skill/reference/fastapi.md +580 -0
- package/assets/skills/code-review-skill/reference/go.md +993 -0
- package/assets/skills/code-review-skill/reference/java.md +409 -0
- package/assets/skills/code-review-skill/reference/java8.md +586 -0
- package/assets/skills/code-review-skill/reference/kotlin.md +1018 -0
- package/assets/skills/code-review-skill/reference/nestjs.md +593 -0
- package/assets/skills/code-review-skill/reference/performance-review-guide.md +816 -0
- package/assets/skills/code-review-skill/reference/php.md +684 -0
- package/assets/skills/code-review-skill/reference/python.md +1073 -0
- package/assets/skills/code-review-skill/reference/qt.md +757 -0
- package/assets/skills/code-review-skill/reference/react.md +871 -0
- package/assets/skills/code-review-skill/reference/ruby.md +964 -0
- package/assets/skills/code-review-skill/reference/rust.md +846 -0
- package/assets/skills/code-review-skill/reference/security-review-guide.md +494 -0
- package/assets/skills/code-review-skill/reference/svelte.md +1064 -0
- package/assets/skills/code-review-skill/reference/swift.md +936 -0
- package/assets/skills/code-review-skill/reference/typescript.md +1016 -0
- package/assets/skills/code-review-skill/reference/vue.md +924 -0
- package/assets/skills/code-review-skill/reference/zig.md +440 -0
- package/assets/skills/code-review-skill/scripts/pr-analyzer.py +435 -0
- package/assets/skills/code-review-skill/scripts/test_pr_analyzer.py +380 -0
- package/assets/skills/codebase-design/.crosscheck-skill.json +9 -0
- package/assets/skills/codebase-design/DEEPENING.md +37 -0
- package/assets/skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
- package/assets/skills/codebase-design/LICENSE +21 -0
- package/assets/skills/codebase-design/SKILL.md +114 -0
- package/assets/skills/codebase-design/agents/openai.yaml +3 -0
- package/assets/skills/diagnosing-bugs/.crosscheck-skill.json +9 -0
- package/assets/skills/diagnosing-bugs/LICENSE +21 -0
- package/assets/skills/diagnosing-bugs/SKILL.md +134 -0
- package/assets/skills/diagnosing-bugs/agents/openai.yaml +3 -0
- package/assets/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
- package/crosscheck.config.example.yml +124 -11
- package/dist/__tests__/adoption.test.d.ts +2 -0
- package/dist/__tests__/adoption.test.d.ts.map +1 -0
- package/dist/__tests__/adoption.test.js +175 -0
- package/dist/__tests__/adoption.test.js.map +1 -0
- package/dist/__tests__/auto-fix-branch.test.d.ts +2 -0
- package/dist/__tests__/auto-fix-branch.test.d.ts.map +1 -0
- package/dist/__tests__/auto-fix-branch.test.js +143 -0
- package/dist/__tests__/auto-fix-branch.test.js.map +1 -0
- package/dist/__tests__/board.test.js +13 -0
- package/dist/__tests__/board.test.js.map +1 -1
- package/dist/__tests__/can-write-verdict.test.d.ts +2 -0
- package/dist/__tests__/can-write-verdict.test.d.ts.map +1 -0
- package/dist/__tests__/can-write-verdict.test.js +31 -0
- package/dist/__tests__/can-write-verdict.test.js.map +1 -0
- package/dist/__tests__/codex-env.test.d.ts +2 -0
- package/dist/__tests__/codex-env.test.d.ts.map +1 -0
- package/dist/__tests__/codex-env.test.js +70 -0
- package/dist/__tests__/codex-env.test.js.map +1 -0
- package/dist/__tests__/codex.test.js +100 -25
- package/dist/__tests__/codex.test.js.map +1 -1
- package/dist/__tests__/comment-bodies.test.js +49 -1
- package/dist/__tests__/comment-bodies.test.js.map +1 -1
- package/dist/__tests__/commit-subject.test.d.ts +2 -0
- package/dist/__tests__/commit-subject.test.d.ts.map +1 -0
- package/dist/__tests__/commit-subject.test.js +72 -0
- package/dist/__tests__/commit-subject.test.js.map +1 -0
- package/dist/__tests__/conflict-resolve.test.js +44 -1
- package/dist/__tests__/conflict-resolve.test.js.map +1 -1
- package/dist/__tests__/credential-free-origin.test.d.ts +2 -0
- package/dist/__tests__/credential-free-origin.test.d.ts.map +1 -0
- package/dist/__tests__/credential-free-origin.test.js +59 -0
- package/dist/__tests__/credential-free-origin.test.js.map +1 -0
- package/dist/__tests__/detector.test.js +87 -1
- package/dist/__tests__/detector.test.js.map +1 -1
- package/dist/__tests__/error-classification.test.js +34 -0
- package/dist/__tests__/error-classification.test.js.map +1 -1
- package/dist/__tests__/fix.test.js +69 -0
- package/dist/__tests__/fix.test.js.map +1 -1
- package/dist/__tests__/harness-section.test.d.ts +2 -0
- package/dist/__tests__/harness-section.test.d.ts.map +1 -0
- package/dist/__tests__/harness-section.test.js +46 -0
- package/dist/__tests__/harness-section.test.js.map +1 -0
- package/dist/__tests__/kickass.test.js +31 -0
- package/dist/__tests__/kickass.test.js.map +1 -1
- package/dist/__tests__/linear-branding.test.d.ts +2 -0
- package/dist/__tests__/linear-branding.test.d.ts.map +1 -0
- package/dist/__tests__/linear-branding.test.js +156 -0
- package/dist/__tests__/linear-branding.test.js.map +1 -0
- package/dist/__tests__/linear-client.test.d.ts +2 -0
- package/dist/__tests__/linear-client.test.d.ts.map +1 -0
- package/dist/__tests__/linear-client.test.js +120 -0
- package/dist/__tests__/linear-client.test.js.map +1 -0
- package/dist/__tests__/linear-comment.test.d.ts +2 -0
- package/dist/__tests__/linear-comment.test.d.ts.map +1 -0
- package/dist/__tests__/linear-comment.test.js +151 -0
- package/dist/__tests__/linear-comment.test.js.map +1 -0
- package/dist/__tests__/linear-identity.test.d.ts +2 -0
- package/dist/__tests__/linear-identity.test.d.ts.map +1 -0
- package/dist/__tests__/linear-identity.test.js +253 -0
- package/dist/__tests__/linear-identity.test.js.map +1 -0
- package/dist/__tests__/linear-notify.test.d.ts +2 -0
- package/dist/__tests__/linear-notify.test.d.ts.map +1 -0
- package/dist/__tests__/linear-notify.test.js +144 -0
- package/dist/__tests__/linear-notify.test.js.map +1 -0
- package/dist/__tests__/linear-ref.test.d.ts +2 -0
- package/dist/__tests__/linear-ref.test.d.ts.map +1 -0
- package/dist/__tests__/linear-ref.test.js +261 -0
- package/dist/__tests__/linear-ref.test.js.map +1 -0
- package/dist/__tests__/linear-test-ref.test.d.ts +2 -0
- package/dist/__tests__/linear-test-ref.test.d.ts.map +1 -0
- package/dist/__tests__/linear-test-ref.test.js +81 -0
- package/dist/__tests__/linear-test-ref.test.js.map +1 -0
- package/dist/__tests__/linear-verify.test.d.ts +2 -0
- package/dist/__tests__/linear-verify.test.d.ts.map +1 -0
- package/dist/__tests__/linear-verify.test.js +132 -0
- package/dist/__tests__/linear-verify.test.js.map +1 -0
- package/dist/__tests__/linear-worker.test.d.ts +2 -0
- package/dist/__tests__/linear-worker.test.d.ts.map +1 -0
- package/dist/__tests__/linear-worker.test.js +83 -0
- package/dist/__tests__/linear-worker.test.js.map +1 -0
- package/dist/__tests__/linear-write-possible.test.d.ts +2 -0
- package/dist/__tests__/linear-write-possible.test.d.ts.map +1 -0
- package/dist/__tests__/linear-write-possible.test.js +30 -0
- package/dist/__tests__/linear-write-possible.test.js.map +1 -0
- package/dist/__tests__/loader.test.js +2 -2
- package/dist/__tests__/loader.test.js.map +1 -1
- package/dist/__tests__/onboard-preservation.test.js +59 -4
- package/dist/__tests__/onboard-preservation.test.js.map +1 -1
- package/dist/__tests__/optimize.test.js +2 -0
- package/dist/__tests__/optimize.test.js.map +1 -1
- package/dist/__tests__/pr-status.test.js +213 -3
- package/dist/__tests__/pr-status.test.js.map +1 -1
- package/dist/__tests__/pr-workflow-state.test.js +247 -7
- package/dist/__tests__/pr-workflow-state.test.js.map +1 -1
- package/dist/__tests__/repo-picker.test.js +7 -1
- package/dist/__tests__/repo-picker.test.js.map +1 -1
- package/dist/__tests__/repository-guidance.test.d.ts +2 -0
- package/dist/__tests__/repository-guidance.test.d.ts.map +1 -0
- package/dist/__tests__/repository-guidance.test.js +107 -0
- package/dist/__tests__/repository-guidance.test.js.map +1 -0
- package/dist/__tests__/review-comment-body.test.js +35 -0
- package/dist/__tests__/review-comment-body.test.js.map +1 -1
- package/dist/__tests__/review-models.test.js +19 -3
- package/dist/__tests__/review-models.test.js.map +1 -1
- package/dist/__tests__/review-strategy.test.d.ts +2 -0
- package/dist/__tests__/review-strategy.test.d.ts.map +1 -0
- package/dist/__tests__/review-strategy.test.js +397 -0
- package/dist/__tests__/review-strategy.test.js.map +1 -0
- package/dist/__tests__/reviewed-sha.test.d.ts +2 -0
- package/dist/__tests__/reviewed-sha.test.d.ts.map +1 -0
- package/dist/__tests__/reviewed-sha.test.js +116 -0
- package/dist/__tests__/reviewed-sha.test.js.map +1 -0
- package/dist/__tests__/runner.test.js +206 -2
- package/dist/__tests__/runner.test.js.map +1 -1
- package/dist/__tests__/skill-attribution.test.d.ts +2 -0
- package/dist/__tests__/skill-attribution.test.d.ts.map +1 -0
- package/dist/__tests__/skill-attribution.test.js +53 -0
- package/dist/__tests__/skill-attribution.test.js.map +1 -0
- package/dist/__tests__/skill-broker.test.d.ts +2 -0
- package/dist/__tests__/skill-broker.test.d.ts.map +1 -0
- package/dist/__tests__/skill-broker.test.js +186 -0
- package/dist/__tests__/skill-broker.test.js.map +1 -0
- package/dist/__tests__/skill-catalog.test.d.ts +2 -0
- package/dist/__tests__/skill-catalog.test.d.ts.map +1 -0
- package/dist/__tests__/skill-catalog.test.js +40 -0
- package/dist/__tests__/skill-catalog.test.js.map +1 -0
- package/dist/__tests__/skill-installer.test.d.ts +2 -0
- package/dist/__tests__/skill-installer.test.d.ts.map +1 -0
- package/dist/__tests__/skill-installer.test.js +96 -0
- package/dist/__tests__/skill-installer.test.js.map +1 -0
- package/dist/__tests__/skills-config.test.d.ts +2 -0
- package/dist/__tests__/skills-config.test.d.ts.map +1 -0
- package/dist/__tests__/skills-config.test.js +12 -0
- package/dist/__tests__/skills-config.test.js.map +1 -0
- package/dist/__tests__/superseded-fix-pr.test.d.ts +2 -0
- package/dist/__tests__/superseded-fix-pr.test.d.ts.map +1 -0
- package/dist/__tests__/superseded-fix-pr.test.js +225 -0
- package/dist/__tests__/superseded-fix-pr.test.js.map +1 -0
- package/dist/__tests__/webhook.test.js +60 -0
- package/dist/__tests__/webhook.test.js.map +1 -1
- package/dist/cli.js +37 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/adoption.d.ts +6 -0
- package/dist/commands/adoption.d.ts.map +1 -0
- package/dist/commands/adoption.js +132 -0
- package/dist/commands/adoption.js.map +1 -0
- package/dist/commands/detect-step.d.ts.map +1 -1
- package/dist/commands/detect-step.js +5 -1
- package/dist/commands/detect-step.js.map +1 -1
- package/dist/commands/diagnose.d.ts.map +1 -1
- package/dist/commands/diagnose.js +2 -2
- package/dist/commands/diagnose.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +1 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/issue.js +1 -1
- package/dist/commands/issue.js.map +1 -1
- package/dist/commands/kickass.d.ts +1 -1
- package/dist/commands/kickass.d.ts.map +1 -1
- package/dist/commands/kickass.js +36 -22
- package/dist/commands/kickass.js.map +1 -1
- package/dist/commands/linear-test.d.ts +18 -0
- package/dist/commands/linear-test.d.ts.map +1 -0
- package/dist/commands/linear-test.js +130 -0
- package/dist/commands/linear-test.js.map +1 -0
- package/dist/commands/onboard.d.ts +36 -3
- package/dist/commands/onboard.d.ts.map +1 -1
- package/dist/commands/onboard.js +263 -45
- package/dist/commands/onboard.js.map +1 -1
- package/dist/commands/optimize.d.ts.map +1 -1
- package/dist/commands/optimize.js +1 -0
- package/dist/commands/optimize.js.map +1 -1
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +65 -6
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +85 -11
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/scan.d.ts.map +1 -1
- package/dist/commands/scan.js +6 -0
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/skill.d.ts +2 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +16 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +53 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +215 -66
- package/dist/commands/watch.js.map +1 -1
- package/dist/config/loader.d.ts +3 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +19 -6
- package/dist/config/loader.js.map +1 -1
- package/dist/config/review-model-tiers.json +3 -3
- package/dist/config/review-strategy.json +204 -0
- package/dist/config/schema.d.ts +269 -15
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +109 -10
- package/dist/config/schema.js.map +1 -1
- package/dist/github/client.d.ts +21 -1
- package/dist/github/client.d.ts.map +1 -1
- package/dist/github/client.js +46 -7
- package/dist/github/client.js.map +1 -1
- package/dist/github/detector.d.ts.map +1 -1
- package/dist/github/detector.js +28 -1
- package/dist/github/detector.js.map +1 -1
- package/dist/github/merge.d.ts +0 -5
- package/dist/github/merge.d.ts.map +1 -1
- package/dist/github/merge.js +0 -9
- package/dist/github/merge.js.map +1 -1
- package/dist/github/reviewed-sha.d.ts +13 -0
- package/dist/github/reviewed-sha.d.ts.map +1 -0
- package/dist/github/reviewed-sha.js +62 -0
- package/dist/github/reviewed-sha.js.map +1 -0
- package/dist/github/superseded-fix-pr.d.ts +19 -0
- package/dist/github/superseded-fix-pr.d.ts.map +1 -0
- package/dist/github/superseded-fix-pr.js +97 -0
- package/dist/github/superseded-fix-pr.js.map +1 -0
- package/dist/github/webhook.d.ts +8 -1
- package/dist/github/webhook.d.ts.map +1 -1
- package/dist/github/webhook.js +8 -1
- package/dist/github/webhook.js.map +1 -1
- package/dist/issues/ticket-ref.d.ts.map +1 -1
- package/dist/issues/ticket-ref.js +6 -5
- package/dist/issues/ticket-ref.js.map +1 -1
- package/dist/lib/adoption.d.ts +64 -0
- package/dist/lib/adoption.d.ts.map +1 -0
- package/dist/lib/adoption.js +165 -0
- package/dist/lib/adoption.js.map +1 -0
- package/dist/lib/annotation.d.ts +7 -0
- package/dist/lib/annotation.d.ts.map +1 -1
- package/dist/lib/annotation.js +11 -8
- package/dist/lib/annotation.js.map +1 -1
- package/dist/lib/auto-fix-branch.d.ts +35 -0
- package/dist/lib/auto-fix-branch.d.ts.map +1 -0
- package/dist/lib/auto-fix-branch.js +88 -0
- package/dist/lib/auto-fix-branch.js.map +1 -0
- package/dist/lib/board.d.ts +3 -0
- package/dist/lib/board.d.ts.map +1 -1
- package/dist/lib/board.js +4 -2
- package/dist/lib/board.js.map +1 -1
- package/dist/lib/clone.d.ts +2 -0
- package/dist/lib/clone.d.ts.map +1 -1
- package/dist/lib/clone.js +69 -10
- package/dist/lib/clone.js.map +1 -1
- package/dist/lib/comment-bodies.d.ts +37 -0
- package/dist/lib/comment-bodies.d.ts.map +1 -1
- package/dist/lib/comment-bodies.js +50 -9
- package/dist/lib/comment-bodies.js.map +1 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +17 -1
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/pr-picker.d.ts +1 -1
- package/dist/lib/pr-picker.d.ts.map +1 -1
- package/dist/lib/pr-picker.js +10 -5
- package/dist/lib/pr-picker.js.map +1 -1
- package/dist/lib/pr-status.d.ts +2 -1
- package/dist/lib/pr-status.d.ts.map +1 -1
- package/dist/lib/pr-status.js +70 -6
- package/dist/lib/pr-status.js.map +1 -1
- package/dist/lib/pr-workflow-state.d.ts +17 -1
- package/dist/lib/pr-workflow-state.d.ts.map +1 -1
- package/dist/lib/pr-workflow-state.js +110 -5
- package/dist/lib/pr-workflow-state.js.map +1 -1
- package/dist/lib/repo-picker.d.ts +3 -0
- package/dist/lib/repo-picker.d.ts.map +1 -1
- package/dist/lib/repo-picker.js +45 -10
- package/dist/lib/repo-picker.js.map +1 -1
- package/dist/lib/repository-guidance.d.ts +2 -0
- package/dist/lib/repository-guidance.d.ts.map +1 -0
- package/dist/lib/repository-guidance.js +55 -0
- package/dist/lib/repository-guidance.js.map +1 -0
- package/dist/lib/review-models.d.ts +15 -2
- package/dist/lib/review-models.d.ts.map +1 -1
- package/dist/lib/review-models.js +26 -6
- package/dist/lib/review-models.js.map +1 -1
- package/dist/lib/review-strategy.d.ts +92 -0
- package/dist/lib/review-strategy.d.ts.map +1 -0
- package/dist/lib/review-strategy.js +282 -0
- package/dist/lib/review-strategy.js.map +1 -0
- package/dist/lib/runner.d.ts +123 -1
- package/dist/lib/runner.d.ts.map +1 -1
- package/dist/lib/runner.js +919 -101
- package/dist/lib/runner.js.map +1 -1
- package/dist/lib/vendor.d.ts +1 -0
- package/dist/lib/vendor.d.ts.map +1 -1
- package/dist/lib/vendor.js +6 -0
- package/dist/lib/vendor.js.map +1 -1
- package/dist/lib/workflow.d.ts +13 -0
- package/dist/lib/workflow.d.ts.map +1 -1
- package/dist/lib/workflow.js +24 -1
- package/dist/lib/workflow.js.map +1 -1
- package/dist/linear/client.d.ts +18 -0
- package/dist/linear/client.d.ts.map +1 -0
- package/dist/linear/client.js +67 -0
- package/dist/linear/client.js.map +1 -0
- package/dist/linear/comment.d.ts +20 -0
- package/dist/linear/comment.d.ts.map +1 -0
- package/dist/linear/comment.js +57 -0
- package/dist/linear/comment.js.map +1 -0
- package/dist/linear/identity.d.ts +59 -0
- package/dist/linear/identity.d.ts.map +1 -0
- package/dist/linear/identity.js +187 -0
- package/dist/linear/identity.js.map +1 -0
- package/dist/linear/notify.d.ts +35 -0
- package/dist/linear/notify.d.ts.map +1 -0
- package/dist/linear/notify.js +76 -0
- package/dist/linear/notify.js.map +1 -0
- package/dist/linear/ref.d.ts +13 -0
- package/dist/linear/ref.d.ts.map +1 -0
- package/dist/linear/ref.js +90 -0
- package/dist/linear/ref.js.map +1 -0
- package/dist/linear/verify.d.ts +26 -0
- package/dist/linear/verify.d.ts.map +1 -0
- package/dist/linear/verify.js +67 -0
- package/dist/linear/verify.js.map +1 -0
- package/dist/reviewers/address.d.ts +1 -1
- package/dist/reviewers/address.d.ts.map +1 -1
- package/dist/reviewers/address.js +1 -1
- package/dist/reviewers/address.js.map +1 -1
- package/dist/reviewers/claude.d.ts +4 -1
- package/dist/reviewers/claude.d.ts.map +1 -1
- package/dist/reviewers/claude.js +39 -7
- package/dist/reviewers/claude.js.map +1 -1
- package/dist/reviewers/codex-env.d.ts +12 -0
- package/dist/reviewers/codex-env.d.ts.map +1 -0
- package/dist/reviewers/codex-env.js +54 -0
- package/dist/reviewers/codex-env.js.map +1 -0
- package/dist/reviewers/codex.d.ts +18 -1
- package/dist/reviewers/codex.d.ts.map +1 -1
- package/dist/reviewers/codex.js +164 -81
- package/dist/reviewers/codex.js.map +1 -1
- package/dist/reviewers/conflict-resolve.d.ts +3 -1
- package/dist/reviewers/conflict-resolve.d.ts.map +1 -1
- package/dist/reviewers/conflict-resolve.js +21 -6
- package/dist/reviewers/conflict-resolve.js.map +1 -1
- package/dist/reviewers/fix.d.ts +5 -2
- package/dist/reviewers/fix.d.ts.map +1 -1
- package/dist/reviewers/fix.js +38 -12
- package/dist/reviewers/fix.js.map +1 -1
- package/dist/skills/attribution.d.ts +4 -0
- package/dist/skills/attribution.d.ts.map +1 -0
- package/dist/skills/attribution.js +14 -0
- package/dist/skills/attribution.js.map +1 -0
- package/dist/skills/broker-server.d.ts +2 -0
- package/dist/skills/broker-server.d.ts.map +1 -0
- package/dist/skills/broker-server.js +17 -0
- package/dist/skills/broker-server.js.map +1 -0
- package/dist/skills/broker.d.ts +43 -0
- package/dist/skills/broker.d.ts.map +1 -0
- package/dist/skills/broker.js +311 -0
- package/dist/skills/broker.js.map +1 -0
- package/dist/skills/catalog.d.ts +28 -0
- package/dist/skills/catalog.d.ts.map +1 -0
- package/dist/skills/catalog.js +104 -0
- package/dist/skills/catalog.js.map +1 -0
- package/dist/skills/installer.d.ts +10 -0
- package/dist/skills/installer.d.ts.map +1 -0
- package/dist/skills/installer.js +138 -0
- package/dist/skills/installer.js.map +1 -0
- package/dist/skills/integrity.d.ts +4 -0
- package/dist/skills/integrity.d.ts.map +1 -0
- package/dist/skills/integrity.js +36 -0
- package/dist/skills/integrity.js.map +1 -0
- package/docs/dynamic-thoroughness.md +738 -0
- package/docs/linear-identity-contract.md +139 -0
- package/docs/linear-identity.md +293 -0
- package/docs/metrics.md +115 -0
- package/docs/trust.md +159 -0
- package/get-started.md +322 -16
- package/package.json +6 -3
package/dist/lib/clone.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { setTimeout as sleep } from 'node:timers/promises';
|
|
1
2
|
import { execFileSync } from 'child_process';
|
|
3
|
+
import { execa } from 'execa';
|
|
2
4
|
const GIT_RESILIENCE_ARGS = [
|
|
3
5
|
'-c', 'http.postBuffer=524288000',
|
|
4
6
|
'-c', 'http.lowSpeedLimit=1000',
|
|
@@ -26,11 +28,27 @@ function isTransientGitError(message) {
|
|
|
26
28
|
}
|
|
27
29
|
const MAX_GIT_RETRIES = 3;
|
|
28
30
|
const GIT_RETRY_DELAY_MS = 2000;
|
|
29
|
-
function runGit(args, cwd, retryable = false) {
|
|
31
|
+
async function runGit(args, cwd, retryable = false, onProgress) {
|
|
30
32
|
let lastErr;
|
|
31
33
|
for (let attempt = 1; attempt <= (retryable ? MAX_GIT_RETRIES : 1); attempt++) {
|
|
32
34
|
try {
|
|
33
|
-
|
|
35
|
+
const subprocess = execa('git', args, { cwd });
|
|
36
|
+
if (onProgress && subprocess.stderr) {
|
|
37
|
+
// git emits progress on stderr as \r-terminated updates ("Receiving
|
|
38
|
+
// objects: 42% ..."); flush on both \r and \n so each update surfaces.
|
|
39
|
+
let pending = '';
|
|
40
|
+
subprocess.stderr.on('data', (chunk) => {
|
|
41
|
+
pending += chunk.toString();
|
|
42
|
+
const lines = pending.split(/[\r\n]/);
|
|
43
|
+
pending = lines.pop() ?? '';
|
|
44
|
+
for (const line of lines) {
|
|
45
|
+
const trimmed = line.trim();
|
|
46
|
+
if (trimmed)
|
|
47
|
+
onProgress(redactCloneSecrets(trimmed));
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
await subprocess;
|
|
34
52
|
return;
|
|
35
53
|
}
|
|
36
54
|
catch (err) {
|
|
@@ -40,10 +58,8 @@ function runGit(args, cwd, retryable = false) {
|
|
|
40
58
|
if (retryable && isTransientGitError(redacted) && attempt < MAX_GIT_RETRIES) {
|
|
41
59
|
// Transient error — wait and retry
|
|
42
60
|
const delay = GIT_RETRY_DELAY_MS * attempt; // exponential backoff: 2s, 4s, 6s
|
|
43
|
-
// eslint-disable-next-line no-console
|
|
44
61
|
console.error(`git: transient error (attempt ${attempt}/${MAX_GIT_RETRIES}), retrying in ${delay / 1000}s...`);
|
|
45
|
-
|
|
46
|
-
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, delay);
|
|
62
|
+
await sleep(delay);
|
|
47
63
|
lastErr = new Error(redacted);
|
|
48
64
|
lastErr.stack = err.stack ? redactCloneSecrets(err.stack) : undefined;
|
|
49
65
|
continue;
|
|
@@ -60,24 +76,67 @@ function runGit(args, cwd, retryable = false) {
|
|
|
60
76
|
// refs/remotes/origin/<base>. onBaseFetchFailed lets callers log a warning;
|
|
61
77
|
// other failures bubble up.
|
|
62
78
|
export async function clonePRForReview(params) {
|
|
63
|
-
const { owner, repo, prNumber, baseRef, tmpDir, token, protocol, onBaseFetchFailed } = params;
|
|
79
|
+
const { owner, repo, prNumber, baseRef, tmpDir, token, protocol, onBaseFetchFailed, onProgress } = params;
|
|
64
80
|
const cloneUrl = buildCloneUrl(owner, repo, token, protocol);
|
|
65
81
|
// Clone is retryable — transient network issues (curl 16/18, framing errors) are common.
|
|
66
82
|
// GIT_RESILIENCE_ARGS inline (-c flags) apply HTTP buffer/timeout settings without
|
|
67
83
|
// requiring a local repo to already exist.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
runGit(['
|
|
84
|
+
// --progress forces git to emit stderr progress even when piped; without a
|
|
85
|
+
// progress consumer, stay --quiet so error output remains clean.
|
|
86
|
+
await runGit([...GIT_RESILIENCE_ARGS, 'clone', '--depth=50', onProgress ? '--progress' : '--quiet', cloneUrl, tmpDir], undefined, true, onProgress);
|
|
87
|
+
await runGit([...GIT_RESILIENCE_ARGS, 'fetch', ...(onProgress ? ['--progress'] : []), 'origin', `pull/${prNumber}/head:pr-${prNumber}`], tmpDir, true, onProgress);
|
|
88
|
+
await runGit(['checkout', `pr-${prNumber}`], tmpDir);
|
|
71
89
|
// Fetch base after PR checkout so we are never on the base branch during the fetch
|
|
72
90
|
// (git refuses to update a checked-out ref). Explicit refs/remotes/origin/<base>
|
|
73
91
|
// target so the remote-tracking ref is always created — `git fetch origin <branch>`
|
|
74
92
|
// alone only writes FETCH_HEAD in shallow clones when the branch is absent from
|
|
75
93
|
// the default refspec mapping.
|
|
94
|
+
// Retryable like the clone: a transient failure here is not cosmetic. Without
|
|
95
|
+
// origin/<base>, countCrosscheckCommitsForPR cannot scope its range and falls
|
|
96
|
+
// back to counting the whole history — which trips the auto-fix commit cap on
|
|
97
|
+
// any repo with prior [crosscheck] commits and silently disables fixing.
|
|
76
98
|
try {
|
|
77
|
-
runGit([...GIT_RESILIENCE_ARGS, 'fetch', 'origin', `${baseRef}:refs/remotes/origin/${baseRef}`], tmpDir);
|
|
99
|
+
await runGit([...GIT_RESILIENCE_ARGS, 'fetch', 'origin', `${baseRef}:refs/remotes/origin/${baseRef}`], tmpDir, true);
|
|
78
100
|
}
|
|
79
101
|
catch {
|
|
80
102
|
onBaseFetchFailed?.();
|
|
81
103
|
}
|
|
82
104
|
}
|
|
105
|
+
// Runs `fn` with the clone's `origin` URL stripped of its embedded credentials.
|
|
106
|
+
//
|
|
107
|
+
// An HTTPS clone stores `https://x-access-token:<token>@github.com/...` in
|
|
108
|
+
// .git/config, so the checkout carries a writable GitHub token as a plain file.
|
|
109
|
+
// That is fine while only crosscheck runs there, and not fine once a vendor
|
|
110
|
+
// agent executes shell commands in it — reading .git/config or simply running
|
|
111
|
+
// `git push` is then enough to act on the repository as the token's owner.
|
|
112
|
+
//
|
|
113
|
+
// The token is not needed while an agent runs: reviews only read, and the fix
|
|
114
|
+
// step's push happens back in the runner after the agent has exited. So it is
|
|
115
|
+
// removed for the duration and restored in `finally`, whether `fn` returned or
|
|
116
|
+
// threw. A crash hard enough to skip the finally loses only the throwaway clone.
|
|
117
|
+
//
|
|
118
|
+
// SSH remotes carry no credential and are left untouched.
|
|
119
|
+
export async function withCredentialFreeOrigin(repoDir, fn) {
|
|
120
|
+
let original;
|
|
121
|
+
try {
|
|
122
|
+
original = execFileSync('git', ['remote', 'get-url', 'origin'], { cwd: repoDir, encoding: 'utf8' }).trim();
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
// No origin (or no repo) — nothing to strip, and nothing to restore.
|
|
126
|
+
return fn();
|
|
127
|
+
}
|
|
128
|
+
const scrubbed = original.replace(/^https:\/\/[^@/]*@github\.com\//, 'https://github.com/');
|
|
129
|
+
if (scrubbed === original)
|
|
130
|
+
return fn();
|
|
131
|
+
execFileSync('git', ['remote', 'set-url', 'origin', scrubbed], { cwd: repoDir });
|
|
132
|
+
try {
|
|
133
|
+
return await fn();
|
|
134
|
+
}
|
|
135
|
+
finally {
|
|
136
|
+
try {
|
|
137
|
+
execFileSync('git', ['remote', 'set-url', 'origin', original], { cwd: repoDir });
|
|
138
|
+
}
|
|
139
|
+
catch { /* clone is disposable; a failed restore must not mask fn's result */ }
|
|
140
|
+
}
|
|
141
|
+
}
|
|
83
142
|
//# sourceMappingURL=clone.js.map
|
package/dist/lib/clone.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clone.js","sourceRoot":"","sources":["../../src/lib/clone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"clone.js","sourceRoot":"","sources":["../../src/lib/clone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAG7B,MAAM,mBAAmB,GAAG;IAC1B,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,wBAAwB;CAC/B,CAAA;AAED,6EAA6E;AAC7E,yEAAyE;AACzE,SAAS,aAAa,CAAC,KAAa,EAAE,IAAY,EAAE,KAAa,EAAE,QAAkC;IACnG,OAAO,QAAQ,KAAK,OAAO;QACzB,CAAC,CAAC,0BAA0B,KAAK,eAAe,KAAK,IAAI,IAAI,MAAM;QACnE,CAAC,CAAC,kBAAkB,KAAK,IAAI,IAAI,MAAM,CAAA;AAC3C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,iDAAiD,EAAE,+CAA+C,CAAC,CAAA;AAC1H,CAAC;AAED,4DAA4D;AAC5D,8CAA8C;AAC9C,oDAAoD;AACpD,kDAAkD;AAClD,SAAS,mBAAmB,CAAC,OAAe;IAC1C,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IAC/B,OAAO,mIAAmI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACpJ,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,CAAA;AACzB,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAE/B,KAAK,UAAU,MAAM,CAAC,IAAc,EAAE,GAAY,EAAE,SAAS,GAAG,KAAK,EAAE,UAAmC;IACxG,IAAI,OAA0B,CAAA;IAC9B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;QAC9E,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YAC9C,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACpC,oEAAoE;gBACpE,uEAAuE;gBACvE,IAAI,OAAO,GAAG,EAAE,CAAA;gBAChB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC7C,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAA;oBAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;oBACrC,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;oBAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;wBAC3B,IAAI,OAAO;4BAAE,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA;oBACtD,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;YACD,MAAM,UAAU,CAAA;YAChB,OAAM;QACR,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;gBAAE,MAAM,GAAG,CAAA;YACtC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAEhD,IAAI,SAAS,IAAI,mBAAmB,CAAC,QAAQ,CAAC,IAAI,OAAO,GAAG,eAAe,EAAE,CAAC;gBAC5E,mCAAmC;gBACnC,MAAM,KAAK,GAAG,kBAAkB,GAAG,OAAO,CAAA,CAAC,kCAAkC;gBAC7E,OAAO,CAAC,KAAK,CAAC,iCAAiC,OAAO,IAAI,eAAe,kBAAkB,KAAK,GAAG,IAAI,MAAM,CAAC,CAAA;gBAC9G,MAAM,KAAK,CAAC,KAAK,CAAC,CAAA;gBAClB,OAAO,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC7B,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;gBACrE,SAAQ;YACV,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAA;YACnC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACrE,MAAM,OAAO,CAAA;QACf,CAAC;IACH,CAAC;IACD,IAAI,OAAO;QAAE,MAAM,OAAO,CAAA;AAC5B,CAAC;AAED,4EAA4E;AAC5E,4EAA4E;AAC5E,4BAA4B;AAC5B,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAUtC;IACC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;IACzG,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC5D,yFAAyF;IACzF,mFAAmF;IACnF,2CAA2C;IAC3C,2EAA2E;IAC3E,iEAAiE;IACjE,MAAM,MAAM,CAAC,CAAC,GAAG,mBAAmB,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;IACnJ,MAAM,MAAM,CAAC,CAAC,GAAG,mBAAmB,EAAE,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,QAAQ,YAAY,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;IAClK,MAAM,MAAM,CAAC,CAAC,UAAU,EAAE,MAAM,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;IAEpD,mFAAmF;IACnF,iFAAiF;IACjF,oFAAoF;IACpF,gFAAgF;IAChF,+BAA+B;IAC/B,8EAA8E;IAC9E,8EAA8E;IAC9E,8EAA8E;IAC9E,yEAAyE;IACzE,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,CAAC,GAAG,mBAAmB,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,wBAAwB,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACtH,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB,EAAE,EAAE,CAAA;IACvB,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;AAChF,4EAA4E;AAC5E,8EAA8E;AAC9E,2EAA2E;AAC3E,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,iFAAiF;AACjF,EAAE;AACF,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAI,OAAe,EAAE,EAAoB;IACrF,IAAI,QAA4B,CAAA;IAChC,IAAI,CAAC;QACH,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAC5G,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;QACrE,OAAO,EAAE,EAAE,CAAA;IACb,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,iCAAiC,EAAE,qBAAqB,CAAC,CAAA;IAC3F,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,EAAE,EAAE,CAAA;IAEtC,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;IAChF,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAA;IACnB,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;QAClF,CAAC;QAAC,MAAM,CAAC,CAAC,qEAAqE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC"}
|
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
import type { SkillMetadata } from '../skills/broker.js';
|
|
2
|
+
export interface AttributionFooterInput {
|
|
3
|
+
/** Past-tense verb for what the step did: Reviewed / Fixed / Resolved. */
|
|
4
|
+
action: string;
|
|
5
|
+
/** 'claude' | 'codex'. Anything else (or unset) attributes to Claude Code. */
|
|
6
|
+
vendor?: string;
|
|
7
|
+
/** Resolved model id; 'default' and unset render no model segment. */
|
|
8
|
+
model?: string;
|
|
9
|
+
/** Reasoning effort the CLI actually ran with. */
|
|
10
|
+
effort?: string;
|
|
11
|
+
skills?: SkillMetadata[];
|
|
12
|
+
/** brand.reviewer_attribution — replaces the sentence, keeps the run details. */
|
|
13
|
+
override?: string;
|
|
14
|
+
/** One line naming the tier, why the PR earned it, and the strategy version. */
|
|
15
|
+
strategyNote?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function buildAttributionFooter(input: AttributionFooterInput): string;
|
|
1
18
|
export interface FixAppliedCommentInput {
|
|
2
19
|
owner: string;
|
|
3
20
|
repo: string;
|
|
@@ -10,8 +27,22 @@ export interface FixAppliedCommentInput {
|
|
|
10
27
|
vendor?: string;
|
|
11
28
|
/** Body of the review comment the fix addressed. Issue points are extracted and listed. */
|
|
12
29
|
reviewCommentBody?: string;
|
|
30
|
+
/** Model the fix ran with. Rendered in the attribution. */
|
|
31
|
+
model?: string;
|
|
32
|
+
/** Reasoning effort the fix ran with. Rendered in the attribution. */
|
|
33
|
+
effort?: string;
|
|
34
|
+
/** Skills the fix step activated. Rendered beneath the attribution. */
|
|
35
|
+
skills?: SkillMetadata[];
|
|
13
36
|
}
|
|
14
37
|
export declare function buildFixAppliedCommentBody(input: FixAppliedCommentInput): string;
|
|
38
|
+
export interface FixFailedCommentInput {
|
|
39
|
+
prUrl: string;
|
|
40
|
+
vendor?: string;
|
|
41
|
+
model?: string;
|
|
42
|
+
effort?: string;
|
|
43
|
+
skills?: SkillMetadata[];
|
|
44
|
+
}
|
|
45
|
+
export declare function buildFixFailedCommentBody(input: FixFailedCommentInput): string;
|
|
15
46
|
export declare function buildRetriedReviewBanner(timeoutMs: number, delayMs: number): string;
|
|
16
47
|
export type ReviewFailedReason = 'timeout' | 'usage_limit' | 'subprocess_error';
|
|
17
48
|
export interface ReviewFailedCommentInput {
|
|
@@ -27,6 +58,12 @@ export interface ConflictResolvedCommentInput {
|
|
|
27
58
|
sha: string;
|
|
28
59
|
conflictCount: number;
|
|
29
60
|
files: string[];
|
|
61
|
+
/** Model the resolver ran with. Rendered in the attribution. */
|
|
62
|
+
model?: string;
|
|
63
|
+
/** Reasoning effort the resolver ran with. Rendered in the attribution. */
|
|
64
|
+
effort?: string;
|
|
65
|
+
/** Skills the conflict-resolve step activated. Rendered beneath the attribution. */
|
|
66
|
+
skills?: SkillMetadata[];
|
|
30
67
|
}
|
|
31
68
|
export declare function buildConflictResolvedCommentBody(input: ConflictResolvedCommentInput): string;
|
|
32
69
|
//# sourceMappingURL=comment-bodies.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comment-bodies.d.ts","sourceRoot":"","sources":["../../src/lib/comment-bodies.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"comment-bodies.d.ts","sourceRoot":"","sources":["../../src/lib/comment-bodies.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAMxD,MAAM,WAAW,sBAAsB;IACrC,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;IACxB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAmB5E;AA0BD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2FAA2F;IAC3F,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,uEAAuE;IACvE,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;CACzB;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAuChF;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;CACzB;AAKD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAiB9E;AAKD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAMnF;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,aAAa,GAAG,kBAAkB,CAAA;AAE/E,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,kBAAkB,CAAA;IAE1B,OAAO,EAAE,MAAM,CAAA;IAGf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAMD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,wBAAwB,GAAG,MAAM,CA+BpF;AAQD,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oFAAoF;IACpF,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;CACzB;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,4BAA4B,GAAG,MAAM,CAyB5F"}
|
|
@@ -3,6 +3,29 @@
|
|
|
3
3
|
// N commits" line. Pure functions — kept here so they can be unit-tested
|
|
4
4
|
// without exercising the runner.
|
|
5
5
|
import { CROSSCHECK_REPO_URL } from './product.js';
|
|
6
|
+
import { modelDisplayName } from './review-models.js';
|
|
7
|
+
import { vendorDisplayName } from './vendor.js';
|
|
8
|
+
import { renderSkillAttributionLine } from '../skills/attribution.js';
|
|
9
|
+
export function buildAttributionFooter(input) {
|
|
10
|
+
// Same name the commit subjects credit, from the same helper — a card and the
|
|
11
|
+
// commit it describes must not disagree about who did the work.
|
|
12
|
+
const vendor = input.vendor === 'codex' ? 'codex' : 'claude';
|
|
13
|
+
const vendorUrl = vendor === 'codex' ? 'https://openai.com/codex' : 'https://claude.ai/code';
|
|
14
|
+
const vendorLink = `[${vendorDisplayName(vendor)}](${vendorUrl})`;
|
|
15
|
+
const sentence = input.override
|
|
16
|
+
|| `_${input.action} with ${vendorLink} via [Crosscheck](${CROSSCHECK_REPO_URL})_`;
|
|
17
|
+
// Its own italic run so a branded override keeps whatever markdown it uses.
|
|
18
|
+
const runDetail = [
|
|
19
|
+
modelDisplayName(input.model ?? 'default'),
|
|
20
|
+
input.effort ? `${input.effort} effort` : null,
|
|
21
|
+
].filter(Boolean).join(' · ');
|
|
22
|
+
const skillsLine = renderSkillAttributionLine(input.skills ?? []);
|
|
23
|
+
// Why this model ran, in the reviewer's own words — the matched class's
|
|
24
|
+
// reason, not prose written per review, so the explanation and the routing
|
|
25
|
+
// decision cannot drift apart.
|
|
26
|
+
const strategyLine = input.strategyNote ? `\n_${input.strategyNote}_` : '';
|
|
27
|
+
return `---\n${sentence}${runDetail ? ` _(${runDetail})_` : ''}${strategyLine}${skillsLine ? `\n\n${skillsLine}` : ''}`;
|
|
28
|
+
}
|
|
6
29
|
// Cap the file list at this length to keep comment bodies readable when a
|
|
7
30
|
// resolve touches many files.
|
|
8
31
|
const MAX_FILES_LISTED = 20;
|
|
@@ -33,7 +56,7 @@ function extractIssuePoints(reviewBody, max) {
|
|
|
33
56
|
return items;
|
|
34
57
|
}
|
|
35
58
|
export function buildFixAppliedCommentBody(input) {
|
|
36
|
-
const { owner, repo, sha, appliedCount, reviewCommentId, changedFiles, vendor, reviewCommentBody } = input;
|
|
59
|
+
const { owner, repo, sha, appliedCount, reviewCommentId, changedFiles, vendor, reviewCommentBody, model, effort, skills } = input;
|
|
37
60
|
const shortSha = sha.slice(0, 7);
|
|
38
61
|
const commitUrl = `https://github.com/${owner}/${repo}/commit/${sha}`;
|
|
39
62
|
const backlink = reviewCommentId
|
|
@@ -62,13 +85,30 @@ export function buildFixAppliedCommentBody(input) {
|
|
|
62
85
|
if (remainder > 0)
|
|
63
86
|
lines.push(`- _...and ${remainder} more_`);
|
|
64
87
|
}
|
|
65
|
-
|
|
66
|
-
const vendorAttribution = isClaude
|
|
67
|
-
? `_Fixed with [Claude Code](https://claude.ai/code) via [Crosscheck](${CROSSCHECK_REPO_URL})_`
|
|
68
|
-
: `_Fixed with [OpenAI Codex](https://openai.com/codex) via [Crosscheck](${CROSSCHECK_REPO_URL})_`;
|
|
69
|
-
lines.push('', '---', vendorAttribution, '', '<!-- crosscheck: fix_applied -->');
|
|
88
|
+
lines.push('', buildAttributionFooter({ action: 'Fixed', vendor, model, effort, skills }), '', '<!-- crosscheck: fix_applied -->');
|
|
70
89
|
return lines.join('\n');
|
|
71
90
|
}
|
|
91
|
+
// Posted when the fix step times out after its retry. Nothing was produced, so
|
|
92
|
+
// the footer reports rather than claims credit — but it still names the model
|
|
93
|
+
// and effort that timed out, which is the first thing worth knowing.
|
|
94
|
+
export function buildFixFailedCommentBody(input) {
|
|
95
|
+
return [
|
|
96
|
+
'⚠️ **Auto-fix failed**',
|
|
97
|
+
'',
|
|
98
|
+
`The fix step timed out after retrying. Push a new commit or run \`crosscheck run ${input.prUrl}\` to retry manually.`,
|
|
99
|
+
'',
|
|
100
|
+
buildAttributionFooter({
|
|
101
|
+
action: 'Attempted',
|
|
102
|
+
vendor: input.vendor,
|
|
103
|
+
model: input.model,
|
|
104
|
+
effort: input.effort,
|
|
105
|
+
skills: input.skills,
|
|
106
|
+
override: `_Reported by [Crosscheck](${CROSSCHECK_REPO_URL})_`,
|
|
107
|
+
}),
|
|
108
|
+
'',
|
|
109
|
+
'<!-- crosscheck: fix_failed -->',
|
|
110
|
+
].join('\n');
|
|
111
|
+
}
|
|
72
112
|
// Prominent banner prepended to a review comment when the first review attempt
|
|
73
113
|
// timed out but the delayed retry (same timeout) succeeded. Signals a transient
|
|
74
114
|
// blip that resolved on its own — the user's timeout budget was respected.
|
|
@@ -105,7 +145,7 @@ const TITLE_BY_REASON = {
|
|
|
105
145
|
subprocess_error: '### ❌ Review failed',
|
|
106
146
|
};
|
|
107
147
|
export function buildConflictResolvedCommentBody(input) {
|
|
108
|
-
const { owner, repo, sha, conflictCount, files } = input;
|
|
148
|
+
const { owner, repo, sha, conflictCount, files, model, effort, skills } = input;
|
|
109
149
|
const shortSha = sha.slice(0, 7);
|
|
110
150
|
const commitUrl = `https://github.com/${owner}/${repo}/commit/${sha}`;
|
|
111
151
|
const plural = conflictCount !== 1 ? 's' : '';
|
|
@@ -122,8 +162,9 @@ export function buildConflictResolvedCommentBody(input) {
|
|
|
122
162
|
'',
|
|
123
163
|
`Pushed [\`${shortSha}\`](${commitUrl}).`,
|
|
124
164
|
'',
|
|
125
|
-
|
|
126
|
-
|
|
165
|
+
// Conflict resolution is Claude-only today; the footer still routes through
|
|
166
|
+
// the shared builder so the wording matches review and fix.
|
|
167
|
+
buildAttributionFooter({ action: 'Resolved', vendor: 'claude', model, effort, skills }),
|
|
127
168
|
'',
|
|
128
169
|
'<!-- crosscheck: conflict_resolved -->',
|
|
129
170
|
].join('\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comment-bodies.js","sourceRoot":"","sources":["../../src/lib/comment-bodies.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,6EAA6E;AAC7E,yEAAyE;AACzE,iCAAiC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"comment-bodies.js","sourceRoot":"","sources":["../../src/lib/comment-bodies.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAErD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,SAAS,GACT,SAAS,GACT,KAAK,GACL,YAAY,GACZ,SAAS,CAAA;AAQb,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAsBnD;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAKzC;AAWD,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAKjD;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CAElD;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAErD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,SAAS,GACT,SAAS,GACT,KAAK,GACL,YAAY,GACZ,SAAS,CAAA;AAQb,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAsBnD;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAKzC;AAWD,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAKjD;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CAElD;AAYD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CA6B5D;AAuBD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAE7E;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAGD,wBAAgB,WAAW,CAAC,MAAM,EAAE,mBAAmB,GAAG,oBAAoB,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAElG"}
|
package/dist/lib/logger.js
CHANGED
|
@@ -57,8 +57,17 @@ export function logExtended(entry) {
|
|
|
57
57
|
export function isExtendedLoggingEnabled() {
|
|
58
58
|
return _extendedEnabled;
|
|
59
59
|
}
|
|
60
|
+
// Strips the userinfo out of any https URL in the message before classification.
|
|
61
|
+
// A clone URL carries `x-access-token` as its literal username, which the auth
|
|
62
|
+
// pattern's bare `token` matched — so a clone that failed for any reason (SSL,
|
|
63
|
+
// timeout, 403) was filed as an auth failure, and the same SSL error read
|
|
64
|
+
// `network` on a push and `auth` on a clone. Only the copy used for matching is
|
|
65
|
+
// rewritten; log redaction is redactCloneSecrets' job and happens elsewhere.
|
|
66
|
+
function withoutUrlCredentials(message) {
|
|
67
|
+
return message.replace(/https:\/\/[^\s/@]+(?::[^\s/@]*)?@/g, 'https://');
|
|
68
|
+
}
|
|
60
69
|
export function classifyError(message) {
|
|
61
|
-
const m = message.toLowerCase();
|
|
70
|
+
const m = withoutUrlCredentials(message.toLowerCase());
|
|
62
71
|
// Specific, transient model-API conditions are matched BEFORE the broad auth
|
|
63
72
|
// check below. Their error bodies routinely contain generic words like "token"
|
|
64
73
|
// (token usage, max_tokens) that the auth match would otherwise swallow, which
|
|
@@ -75,6 +84,13 @@ export function classifyError(message) {
|
|
|
75
84
|
// since git errors may contain "token" in the URL but aren't auth issues.
|
|
76
85
|
if (/rejected.*fetch first|updates were rejected.*remote contains work|non-fast-forward|curl 16|curl 18|http2 framing|early eof|rpc failed|fetch-pack: invalid/.test(m))
|
|
77
86
|
return 'git';
|
|
87
|
+
// Git's own credential rejections. Without these, removing the URL-embedded
|
|
88
|
+
// `token` above would leave a genuinely unauthenticated clone falling through to
|
|
89
|
+
// `subprocess` — the accidental match was masking the fact that these were never
|
|
90
|
+
// detected on their own. `permission denied (publickey)` is an SSH key failure,
|
|
91
|
+
// i.e. auth, and does not collide with the scope-based `permission` check below.
|
|
92
|
+
if (/authentication failed|could not read (?:username|password)|invalid username or password|permission denied \(publickey\)/.test(m))
|
|
93
|
+
return 'auth';
|
|
78
94
|
if (/bad credentials|401|not logged in|not authenticated|github_token|authentication required|token|auth failure/.test(m))
|
|
79
95
|
return 'auth';
|
|
80
96
|
if (/admin:org|admin:repo|forbidden|403|insufficient scope|requires.*scope|write:org/.test(m))
|
package/dist/lib/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAqB5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;AAEtD,IAAI,QAAQ,GAAG,KAAK,CAAA;AACpB,IAAI,gBAAgB,GAAG,KAAK,CAAA;AAC5B,IAAI,QAAQ,GAAG,EAAE,CAAA;AAEjB,MAAM,UAAU,UAAU,CAAC,MAAkB;IAC3C,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAA;IACzB,yEAAyE;IACzE,8EAA8E;IAC9E,gBAAgB,GAAG,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,KAAK,CAAC,CAAA;IAClE,IAAI,CAAC,QAAQ;QAAE,OAAM;IAErB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEvC,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IACzE,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,SAAQ;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAA;YACxC,IAAI,KAAK,GAAG,QAAQ;gBAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAE7B,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACnD,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,SAAS,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,KAAe;IACjC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ;QAAE,OAAM;IAClC,IAAI,CAAC;QACH,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAA;IAC7F,CAAC;IAAC,MAAM,CAAC,CAAC,gDAAgD,CAAC,CAAC;AAC9D,CAAC;AAED,oFAAoF;AACpF,iFAAiF;AACjF,EAAE;AACF,4EAA4E;AAC5E,uEAAuE;AACvE,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,qFAAqF;AACrF,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,IAAI,CAAC,gBAAgB,IAAI,CAAC,QAAQ;QAAE,OAAM;IAC1C,IAAI,CAAC;QACH,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAA;IAC9G,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED,iFAAiF;AACjF,+EAA+E;AAC/E,+EAA+E;AAC/E,0EAA0E;AAC1E,gFAAgF;AAChF,6EAA6E;AAC7E,SAAS,qBAAqB,CAAC,OAAe;IAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,oCAAoC,EAAE,UAAU,CAAC,CAAA;AAC1E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IACtD,6EAA6E;IAC7E,+EAA+E;IAC/E,+EAA+E;IAC/E,qFAAqF;IACrF,yEAAyE;IACzE,+EAA+E;IAC/E,IAAI,mCAAmC,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,YAAY,CAAA;IACpE,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,YAAY,CAAA;IACrD,IAAI,sFAAsF,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAA;IACnH,+EAA+E;IAC/E,0EAA0E;IAC1E,IAAI,2JAA2J,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACrL,4EAA4E;IAC5E,iFAAiF;IACjF,iFAAiF;IACjF,gFAAgF;IAChF,iFAAiF;IACjF,IAAI,yHAAyH,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,MAAM,CAAA;IACpJ,IAAI,6GAA6G,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,MAAM,CAAA;IACxI,IAAI,iFAAiF,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,YAAY,CAAA;IAClH,kFAAkF;IAClF,2EAA2E;IAC3E,gFAAgF;IAChF,IAAI,yGAAyG,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IACvI,IAAI,sCAAsC,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IACpE,IAAI,2DAA2D,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,YAAY,CAAA;IAC5F,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,8FAA8F;AAC9F,SAAS,kBAAkB,CAAC,GAAY;IACtC,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAA;IAEhD,MAAM,UAAU,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACnE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,CAAA;IACnG,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1E,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IAE1C,0EAA0E;IAC1E,MAAM,UAAU,GAAG,GAA8B,CAAA;IACjD,MAAM,QAAQ,GAAG,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1F,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAChE,MAAM,MAAM,GAAG,OAAO,UAAU,CAAC,MAAM,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE;QAC9E,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAE,qBAAqB;QAC/D,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,OAAO,GAAG,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IAEvF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC1E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAgC,EAAE,GAAY;IACrE,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;AACjF,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACnD,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,SAAS,CAAC,CAAA;AACzC,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,WAAW,CAAC,MAAkD,EAAE,GAAY;IAC1F,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACrF,CAAC"}
|
package/dist/lib/pr-picker.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ export declare class UserInputError extends Error {
|
|
|
5
5
|
export declare function pickPRs(prs: PRStatus[]): Promise<PRStatus[]>;
|
|
6
6
|
export declare function sortPRsForPicker(prs: PRStatus[]): PRStatus[];
|
|
7
7
|
export declare function formatPickerLabel(pr: PRStatus): string;
|
|
8
|
-
export declare function actionGroupLabel(pr: PRStatus): 'CR' | 'fix' | 'recheck' | 'merge';
|
|
8
|
+
export declare function actionGroupLabel(pr: PRStatus): 'CR' | 'resolve' | 'fix' | 'recheck' | 'merge';
|
|
9
9
|
export declare function parseSelection(answer: string, prs: PRStatus[]): PRStatus[];
|
|
10
10
|
//# sourceMappingURL=pr-picker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-picker.d.ts","sourceRoot":"","sources":["../../src/lib/pr-picker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9D,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAkBlE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAM5D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAEtD;AAMD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"pr-picker.d.ts","sourceRoot":"","sources":["../../src/lib/pr-picker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9D,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAkBlE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAM5D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAEtD;AAMD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAM7F;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAe1E"}
|
package/dist/lib/pr-picker.js
CHANGED
|
@@ -39,6 +39,8 @@ function formatPRSignature(pr) {
|
|
|
39
39
|
return `${pr.owner}/${pr.repo}/PR#${pr.number}`;
|
|
40
40
|
}
|
|
41
41
|
export function actionGroupLabel(pr) {
|
|
42
|
+
if (pr.nextAction === 'resolve')
|
|
43
|
+
return 'resolve';
|
|
42
44
|
if (pr.nextAction === 'fix')
|
|
43
45
|
return 'fix';
|
|
44
46
|
if (pr.nextAction === 'recheck')
|
|
@@ -64,15 +66,18 @@ export function parseSelection(answer, prs) {
|
|
|
64
66
|
return [...selectedIndexes].map(index => prs[index]);
|
|
65
67
|
}
|
|
66
68
|
function actionOrder(pr) {
|
|
67
|
-
|
|
69
|
+
// resolve first: a conflicted PR blocks everything downstream of it.
|
|
70
|
+
if (pr.nextAction === 'resolve')
|
|
68
71
|
return 0;
|
|
69
|
-
if (pr.nextAction === '
|
|
72
|
+
if (pr.nextAction === 'review')
|
|
70
73
|
return 1;
|
|
71
|
-
if (pr.nextAction === '
|
|
74
|
+
if (pr.nextAction === 'fix')
|
|
72
75
|
return 2;
|
|
73
|
-
if (pr.nextAction === '
|
|
76
|
+
if (pr.nextAction === 'recheck')
|
|
74
77
|
return 3;
|
|
75
|
-
|
|
78
|
+
if (pr.nextAction === 'merge')
|
|
79
|
+
return 4;
|
|
80
|
+
return 5;
|
|
76
81
|
}
|
|
77
82
|
function pickerDescription(pr) {
|
|
78
83
|
const ageMinutes = Math.floor(pr.ageMs / 60_000);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-picker.js","sourceRoot":"","sources":["../../src/lib/pr-picker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pr-picker.js","sourceRoot":"","sources":["../../src/lib/pr-picker.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/pr-status.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { Config } from '../config/schema.js';
|
|
|
2
2
|
import { type CommitStatusDetail } from '../github/client.js';
|
|
3
3
|
export type Freshness = 'stale' | 'not_stale';
|
|
4
4
|
export type ReviewState = 'NEEDS_REVIEW' | 'NEEDS_FIX' | 'NEEDS_RECHECK' | 'APPROVED';
|
|
5
|
-
export type NextAction = 'review' | 'fix' | 'recheck' | 'merge' | null;
|
|
5
|
+
export type NextAction = 'resolve' | 'review' | 'fix' | 'recheck' | 'merge' | null;
|
|
6
6
|
export type ReviewVerdict = 'UNREVIEWED' | 'APPROVE' | 'NEEDS_WORK' | 'BLOCK';
|
|
7
7
|
export type CrosscheckVerdict = 'APPROVE' | 'NEEDS_WORK' | 'BLOCK';
|
|
8
8
|
export interface CrosscheckAnnotation {
|
|
@@ -112,6 +112,7 @@ export interface ScanOpenPRStatusesOptions {
|
|
|
112
112
|
export declare function parseCrosscheckAnnotation(body: string): CrosscheckAnnotation | null;
|
|
113
113
|
export declare function derivePRStatus(input: PRStatusInput, options: DeriveStatusOptions): ScanPRStatus;
|
|
114
114
|
export declare function summarizeStatuses(prs: ScanPRStatus[]): ScanSummary;
|
|
115
|
+
export declare function applyRepoWorkflowOverrideToStatus(status: ScanPRStatus, workflowStepTypes: ReadonlySet<string>): ScanPRStatus;
|
|
115
116
|
export declare function scanOpenPRStatuses(config: Config, token: string, options: ScanOpenPRStatusesOptions): Promise<ScanResult>;
|
|
116
117
|
export declare function loadWorkflowLogEvents(logDir?: string): PRWorkflowLogEvent[];
|
|
117
118
|
export declare function filterLogEventsForPR(events: PRWorkflowLogEvent[], owner: string, repo: string, pr: number): PRWorkflowLogEvent[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-status.d.ts","sourceRoot":"","sources":["../../src/lib/pr-status.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAWL,KAAK,kBAAkB,EAExB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"pr-status.d.ts","sourceRoot":"","sources":["../../src/lib/pr-status.ts"],"names":[],"mappings":"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"}
|