@diff-review-system/drs 3.3.1 → 4.0.1
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/.pi/agents/describe/pr-describer.md +14 -0
- package/.pi/agents/review/unified-reviewer.md +31 -1
- package/.pi/agents/task/agents-md-updater.md +26 -0
- package/.pi/agents/task/changelog-updater.md +29 -0
- package/.pi/agents/task/review-issue-fixer.md +42 -0
- package/.pi/agents/visual/pr-explainer.md +205 -0
- package/.pi/workflows/github-pr-describe.yaml +26 -0
- package/.pi/workflows/github-pr-fix-review-issues-stacked.yaml +148 -0
- package/.pi/workflows/github-pr-post-comment.yaml +19 -0
- package/.pi/workflows/github-pr-review-post.yaml +43 -0
- package/.pi/workflows/github-pr-review.yaml +364 -0
- package/.pi/workflows/github-pr-show-changes.yaml +25 -0
- package/.pi/workflows/github-pr-update-agents-md-stacked.yaml +103 -0
- package/.pi/workflows/github-pr-visual-explain.yaml +35 -0
- package/.pi/workflows/gitlab-mr-describe.yaml +24 -0
- package/.pi/workflows/gitlab-mr-fix-review-issues-stacked.yaml +144 -0
- package/.pi/workflows/gitlab-mr-post-comment.yaml +17 -0
- package/.pi/workflows/gitlab-mr-review.yaml +364 -0
- package/.pi/workflows/gitlab-mr-show-changes.yaml +23 -0
- package/.pi/workflows/gitlab-mr-update-agents-md-stacked.yaml +100 -0
- package/.pi/workflows/gitlab-mr-visual-explain.yaml +33 -0
- package/.pi/workflows/local-changelog-update.yaml +23 -0
- package/.pi/workflows/local-fix-review-issues.yaml +111 -0
- package/.pi/workflows/local-review.yaml +24 -0
- package/.pi/workflows/local-update-agents-md.yaml +24 -0
- package/.pi/workflows/local-visual-explain.yaml +31 -0
- package/.pi/workflows/release-changelog-finalize.yaml +47 -0
- package/.pi/workflows/tag-changelog-update.yaml +26 -0
- package/README.md +281 -104
- package/dist/ci/runner.d.ts.map +1 -1
- package/dist/ci/runner.js +9 -8
- package/dist/ci/runner.js.map +1 -1
- package/dist/cli/index.js +95 -325
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +25 -23
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/run-agent.d.ts +26 -0
- package/dist/cli/run-agent.d.ts.map +1 -0
- package/dist/cli/run-agent.js +143 -0
- package/dist/cli/run-agent.js.map +1 -0
- package/dist/cli/workflow.d.ts +105 -0
- package/dist/cli/workflow.d.ts.map +1 -0
- package/dist/cli/workflow.js +3309 -0
- package/dist/cli/workflow.js.map +1 -0
- package/dist/github/client.d.ts +12 -0
- package/dist/github/client.d.ts.map +1 -1
- package/dist/github/client.js +27 -0
- package/dist/github/client.js.map +1 -1
- package/dist/github/platform-adapter.d.ts +6 -1
- package/dist/github/platform-adapter.d.ts.map +1 -1
- package/dist/github/platform-adapter.js +84 -8
- package/dist/github/platform-adapter.js.map +1 -1
- package/dist/gitlab/client.d.ts +11 -0
- package/dist/gitlab/client.d.ts.map +1 -1
- package/dist/gitlab/client.js +11 -0
- package/dist/gitlab/client.js.map +1 -1
- package/dist/gitlab/platform-adapter.d.ts +3 -1
- package/dist/gitlab/platform-adapter.d.ts.map +1 -1
- package/dist/gitlab/platform-adapter.js +32 -1
- package/dist/gitlab/platform-adapter.js.map +1 -1
- package/dist/lib/agent-id.d.ts +9 -0
- package/dist/lib/agent-id.d.ts.map +1 -0
- package/dist/lib/agent-id.js +32 -0
- package/dist/lib/agent-id.js.map +1 -0
- package/dist/lib/comment-formatter.d.ts +15 -1
- package/dist/lib/comment-formatter.d.ts.map +1 -1
- package/dist/lib/comment-formatter.js +53 -4
- package/dist/lib/comment-formatter.js.map +1 -1
- package/dist/lib/comment-manager.d.ts +4 -0
- package/dist/lib/comment-manager.d.ts.map +1 -1
- package/dist/lib/comment-manager.js +7 -1
- package/dist/lib/comment-manager.js.map +1 -1
- package/dist/lib/comment-poster.d.ts +2 -2
- package/dist/lib/comment-poster.d.ts.map +1 -1
- package/dist/lib/comment-poster.js +31 -4
- package/dist/lib/comment-poster.js.map +1 -1
- package/dist/lib/config.d.ts +160 -44
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +475 -101
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/context-compression.d.ts +10 -0
- package/dist/lib/context-compression.d.ts.map +1 -1
- package/dist/lib/context-compression.js +101 -13
- package/dist/lib/context-compression.js.map +1 -1
- package/dist/lib/context-loader.d.ts +5 -4
- package/dist/lib/context-loader.d.ts.map +1 -1
- package/dist/lib/context-loader.js +79 -7
- package/dist/lib/context-loader.js.map +1 -1
- package/dist/lib/describe-core.d.ts.map +1 -1
- package/dist/lib/describe-core.js +3 -2
- package/dist/lib/describe-core.js.map +1 -1
- package/dist/lib/description-executor.js +1 -1
- package/dist/lib/description-executor.js.map +1 -1
- package/dist/lib/diff-lines.d.ts +18 -0
- package/dist/lib/diff-lines.d.ts.map +1 -0
- package/dist/lib/diff-lines.js +40 -0
- package/dist/lib/diff-lines.js.map +1 -0
- package/dist/lib/exit.js +4 -4
- package/dist/lib/exit.js.map +1 -1
- package/dist/lib/html-artifact.d.ts +14 -0
- package/dist/lib/html-artifact.d.ts.map +1 -0
- package/dist/lib/html-artifact.js +59 -0
- package/dist/lib/html-artifact.js.map +1 -0
- package/dist/lib/issue-parser.js +3 -3
- package/dist/lib/issue-parser.js.map +1 -1
- package/dist/lib/json-output-schema.d.ts +70 -0
- package/dist/lib/json-output-schema.d.ts.map +1 -1
- package/dist/lib/json-output-schema.js +40 -0
- package/dist/lib/json-output-schema.js.map +1 -1
- package/dist/lib/logger.d.ts +1 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/platform-client.d.ts +26 -0
- package/dist/lib/platform-client.d.ts.map +1 -1
- package/dist/lib/review-artifact.d.ts +69 -0
- package/dist/lib/review-artifact.d.ts.map +1 -0
- package/dist/lib/review-artifact.js +171 -0
- package/dist/lib/review-artifact.js.map +1 -0
- package/dist/lib/review-core.d.ts +6 -4
- package/dist/lib/review-core.d.ts.map +1 -1
- package/dist/lib/review-core.js +88 -173
- package/dist/lib/review-core.js.map +1 -1
- package/dist/lib/review-orchestrator.d.ts +23 -0
- package/dist/lib/review-orchestrator.d.ts.map +1 -1
- package/dist/lib/review-orchestrator.js +31 -21
- package/dist/lib/review-orchestrator.js.map +1 -1
- package/dist/lib/review-usage.d.ts +4 -0
- package/dist/lib/review-usage.d.ts.map +1 -1
- package/dist/lib/review-usage.js +25 -0
- package/dist/lib/review-usage.js.map +1 -1
- package/dist/lib/trace-collector.d.ts +105 -0
- package/dist/lib/trace-collector.d.ts.map +1 -0
- package/dist/lib/trace-collector.js +255 -0
- package/dist/lib/trace-collector.js.map +1 -0
- package/dist/lib/trace-html.d.ts +3 -0
- package/dist/lib/trace-html.d.ts.map +1 -0
- package/dist/lib/trace-html.js +349 -0
- package/dist/lib/trace-html.js.map +1 -0
- package/dist/lib/workflow-artifacts.d.ts +54 -0
- package/dist/lib/workflow-artifacts.d.ts.map +1 -0
- package/dist/lib/workflow-artifacts.js +150 -0
- package/dist/lib/workflow-artifacts.js.map +1 -0
- package/dist/pi/sdk.d.ts.map +1 -1
- package/dist/pi/sdk.js +605 -16
- package/dist/pi/sdk.js.map +1 -1
- package/dist/runtime/agent-loader.d.ts +10 -6
- package/dist/runtime/agent-loader.d.ts.map +1 -1
- package/dist/runtime/agent-loader.js +55 -29
- package/dist/runtime/agent-loader.js.map +1 -1
- package/dist/runtime/built-in-paths.d.ts +1 -0
- package/dist/runtime/built-in-paths.d.ts.map +1 -1
- package/dist/runtime/built-in-paths.js +7 -0
- package/dist/runtime/built-in-paths.js.map +1 -1
- package/dist/runtime/client.d.ts +14 -0
- package/dist/runtime/client.d.ts.map +1 -1
- package/dist/runtime/client.js +87 -56
- package/dist/runtime/client.js.map +1 -1
- package/dist/runtime/path-config.d.ts +2 -2
- package/dist/runtime/path-config.d.ts.map +1 -1
- package/dist/runtime/path-config.js +8 -8
- package/dist/runtime/path-config.js.map +1 -1
- package/package.json +22 -16
- package/.pi/agents/review/documentation.md +0 -56
- package/.pi/agents/review/performance.md +0 -53
- package/.pi/agents/review/quality.md +0 -59
- package/.pi/agents/review/security.md +0 -53
- package/.pi/agents/review/style.md +0 -132
- package/dist/cli/describe-mr.d.ts +0 -11
- package/dist/cli/describe-mr.d.ts.map +0 -1
- package/dist/cli/describe-mr.js +0 -134
- package/dist/cli/describe-mr.js.map +0 -1
- package/dist/cli/describe-pr.d.ts +0 -12
- package/dist/cli/describe-pr.d.ts.map +0 -1
- package/dist/cli/describe-pr.js +0 -135
- package/dist/cli/describe-pr.js.map +0 -1
- package/dist/cli/post-comments.d.ts +0 -20
- package/dist/cli/post-comments.d.ts.map +0 -1
- package/dist/cli/post-comments.js +0 -225
- package/dist/cli/post-comments.js.map +0 -1
- package/dist/cli/review-local.d.ts +0 -13
- package/dist/cli/review-local.d.ts.map +0 -1
- package/dist/cli/review-local.integration.test.d.ts +0 -2
- package/dist/cli/review-local.integration.test.d.ts.map +0 -1
- package/dist/cli/review-local.integration.test.js +0 -343
- package/dist/cli/review-local.integration.test.js.map +0 -1
- package/dist/cli/review-local.js +0 -90
- package/dist/cli/review-local.js.map +0 -1
- package/dist/cli/review-local.live.e2e.test.d.ts +0 -2
- package/dist/cli/review-local.live.e2e.test.d.ts.map +0 -1
- package/dist/cli/review-local.live.e2e.test.js +0 -153
- package/dist/cli/review-local.live.e2e.test.js.map +0 -1
- package/dist/cli/review-local.test.d.ts +0 -2
- package/dist/cli/review-local.test.d.ts.map +0 -1
- package/dist/cli/review-local.test.js +0 -164
- package/dist/cli/review-local.test.js.map +0 -1
- package/dist/cli/review-mr.d.ts +0 -22
- package/dist/cli/review-mr.d.ts.map +0 -1
- package/dist/cli/review-mr.js +0 -181
- package/dist/cli/review-mr.js.map +0 -1
- package/dist/cli/review-mr.test.d.ts +0 -2
- package/dist/cli/review-mr.test.d.ts.map +0 -1
- package/dist/cli/review-mr.test.js +0 -142
- package/dist/cli/review-mr.test.js.map +0 -1
- package/dist/cli/review-pr.d.ts +0 -22
- package/dist/cli/review-pr.d.ts.map +0 -1
- package/dist/cli/review-pr.js +0 -181
- package/dist/cli/review-pr.js.map +0 -1
- package/dist/cli/review-pr.test.d.ts +0 -2
- package/dist/cli/review-pr.test.d.ts.map +0 -1
- package/dist/cli/review-pr.test.js +0 -137
- package/dist/cli/review-pr.test.js.map +0 -1
- package/dist/cli/review-url.d.ts +0 -35
- package/dist/cli/review-url.d.ts.map +0 -1
- package/dist/cli/review-url.js +0 -110
- package/dist/cli/review-url.js.map +0 -1
- package/dist/cli/review-url.test.d.ts +0 -2
- package/dist/cli/review-url.test.d.ts.map +0 -1
- package/dist/cli/review-url.test.js +0 -132
- package/dist/cli/review-url.test.js.map +0 -1
- package/dist/cli/show-changes.d.ts +0 -15
- package/dist/cli/show-changes.d.ts.map +0 -1
- package/dist/cli/show-changes.js +0 -184
- package/dist/cli/show-changes.js.map +0 -1
- package/dist/github/client.test.d.ts +0 -2
- package/dist/github/client.test.d.ts.map +0 -1
- package/dist/github/client.test.js +0 -206
- package/dist/github/client.test.js.map +0 -1
- package/dist/github/platform-adapter.test.d.ts +0 -2
- package/dist/github/platform-adapter.test.d.ts.map +0 -1
- package/dist/github/platform-adapter.test.js +0 -40
- package/dist/github/platform-adapter.test.js.map +0 -1
- package/dist/gitlab/diff-parser.test.d.ts +0 -2
- package/dist/gitlab/diff-parser.test.d.ts.map +0 -1
- package/dist/gitlab/diff-parser.test.js +0 -315
- package/dist/gitlab/diff-parser.test.js.map +0 -1
- package/dist/gitlab/platform-adapter.test.d.ts +0 -2
- package/dist/gitlab/platform-adapter.test.d.ts.map +0 -1
- package/dist/gitlab/platform-adapter.test.js +0 -21
- package/dist/gitlab/platform-adapter.test.js.map +0 -1
- package/dist/index.test.d.ts +0 -2
- package/dist/index.test.d.ts.map +0 -1
- package/dist/index.test.js +0 -7
- package/dist/index.test.js.map +0 -1
- package/dist/lib/code-quality-report.test.d.ts +0 -2
- package/dist/lib/code-quality-report.test.d.ts.map +0 -1
- package/dist/lib/code-quality-report.test.js +0 -327
- package/dist/lib/code-quality-report.test.js.map +0 -1
- package/dist/lib/comment-formatter.test.d.ts +0 -2
- package/dist/lib/comment-formatter.test.d.ts.map +0 -1
- package/dist/lib/comment-formatter.test.js +0 -694
- package/dist/lib/comment-formatter.test.js.map +0 -1
- package/dist/lib/comment-manager.test.d.ts +0 -2
- package/dist/lib/comment-manager.test.d.ts.map +0 -1
- package/dist/lib/comment-manager.test.js +0 -680
- package/dist/lib/comment-manager.test.js.map +0 -1
- package/dist/lib/comment-poster.test.d.ts +0 -5
- package/dist/lib/comment-poster.test.d.ts.map +0 -1
- package/dist/lib/comment-poster.test.js +0 -245
- package/dist/lib/comment-poster.test.js.map +0 -1
- package/dist/lib/config-model-overrides.test.d.ts +0 -12
- package/dist/lib/config-model-overrides.test.d.ts.map +0 -1
- package/dist/lib/config-model-overrides.test.js +0 -254
- package/dist/lib/config-model-overrides.test.js.map +0 -1
- package/dist/lib/config.test.d.ts +0 -2
- package/dist/lib/config.test.d.ts.map +0 -1
- package/dist/lib/config.test.js +0 -73
- package/dist/lib/config.test.js.map +0 -1
- package/dist/lib/context-compression.test.d.ts +0 -2
- package/dist/lib/context-compression.test.d.ts.map +0 -1
- package/dist/lib/context-compression.test.js +0 -337
- package/dist/lib/context-compression.test.js.map +0 -1
- package/dist/lib/context-loader.test.d.ts +0 -2
- package/dist/lib/context-loader.test.d.ts.map +0 -1
- package/dist/lib/context-loader.test.js +0 -207
- package/dist/lib/context-loader.test.js.map +0 -1
- package/dist/lib/cursor-fix-link.test.d.ts +0 -2
- package/dist/lib/cursor-fix-link.test.d.ts.map +0 -1
- package/dist/lib/cursor-fix-link.test.js +0 -70
- package/dist/lib/cursor-fix-link.test.js.map +0 -1
- package/dist/lib/describe-core.test.d.ts +0 -2
- package/dist/lib/describe-core.test.d.ts.map +0 -1
- package/dist/lib/describe-core.test.js +0 -208
- package/dist/lib/describe-core.test.js.map +0 -1
- package/dist/lib/describe-output-path.test.d.ts +0 -2
- package/dist/lib/describe-output-path.test.d.ts.map +0 -1
- package/dist/lib/describe-output-path.test.js +0 -51
- package/dist/lib/describe-output-path.test.js.map +0 -1
- package/dist/lib/describe-parser.test.d.ts +0 -2
- package/dist/lib/describe-parser.test.d.ts.map +0 -1
- package/dist/lib/describe-parser.test.js +0 -282
- package/dist/lib/describe-parser.test.js.map +0 -1
- package/dist/lib/description-executor.test.d.ts +0 -2
- package/dist/lib/description-executor.test.d.ts.map +0 -1
- package/dist/lib/description-executor.test.js +0 -128
- package/dist/lib/description-executor.test.js.map +0 -1
- package/dist/lib/description-formatter.test.d.ts +0 -2
- package/dist/lib/description-formatter.test.d.ts.map +0 -1
- package/dist/lib/description-formatter.test.js +0 -57
- package/dist/lib/description-formatter.test.js.map +0 -1
- package/dist/lib/diff-parser.test.d.ts +0 -2
- package/dist/lib/diff-parser.test.d.ts.map +0 -1
- package/dist/lib/diff-parser.test.js +0 -335
- package/dist/lib/diff-parser.test.js.map +0 -1
- package/dist/lib/error-comment-poster.test.d.ts +0 -2
- package/dist/lib/error-comment-poster.test.d.ts.map +0 -1
- package/dist/lib/error-comment-poster.test.js +0 -128
- package/dist/lib/error-comment-poster.test.js.map +0 -1
- package/dist/lib/exit.test.d.ts +0 -2
- package/dist/lib/exit.test.d.ts.map +0 -1
- package/dist/lib/exit.test.js +0 -120
- package/dist/lib/exit.test.js.map +0 -1
- package/dist/lib/issue-parser.test.d.ts +0 -2
- package/dist/lib/issue-parser.test.d.ts.map +0 -1
- package/dist/lib/issue-parser.test.js +0 -281
- package/dist/lib/issue-parser.test.js.map +0 -1
- package/dist/lib/json-output-schema.test.d.ts +0 -2
- package/dist/lib/json-output-schema.test.d.ts.map +0 -1
- package/dist/lib/json-output-schema.test.js +0 -92
- package/dist/lib/json-output-schema.test.js.map +0 -1
- package/dist/lib/json-output.test.d.ts +0 -2
- package/dist/lib/json-output.test.d.ts.map +0 -1
- package/dist/lib/json-output.test.js +0 -141
- package/dist/lib/json-output.test.js.map +0 -1
- package/dist/lib/logger.test.d.ts +0 -2
- package/dist/lib/logger.test.d.ts.map +0 -1
- package/dist/lib/logger.test.js +0 -324
- package/dist/lib/logger.test.js.map +0 -1
- package/dist/lib/position-validator.test.d.ts +0 -2
- package/dist/lib/position-validator.test.d.ts.map +0 -1
- package/dist/lib/position-validator.test.js +0 -128
- package/dist/lib/position-validator.test.js.map +0 -1
- package/dist/lib/prompt-budget.test.d.ts +0 -2
- package/dist/lib/prompt-budget.test.d.ts.map +0 -1
- package/dist/lib/prompt-budget.test.js +0 -55
- package/dist/lib/prompt-budget.test.js.map +0 -1
- package/dist/lib/repository-validator.test.d.ts +0 -5
- package/dist/lib/repository-validator.test.d.ts.map +0 -1
- package/dist/lib/repository-validator.test.js +0 -341
- package/dist/lib/repository-validator.test.js.map +0 -1
- package/dist/lib/review-core.test.d.ts +0 -2
- package/dist/lib/review-core.test.d.ts.map +0 -1
- package/dist/lib/review-core.test.js +0 -600
- package/dist/lib/review-core.test.js.map +0 -1
- package/dist/lib/review-orchestrator.test.d.ts +0 -2
- package/dist/lib/review-orchestrator.test.d.ts.map +0 -1
- package/dist/lib/review-orchestrator.test.js +0 -531
- package/dist/lib/review-orchestrator.test.js.map +0 -1
- package/dist/lib/review-output-path.test.d.ts +0 -2
- package/dist/lib/review-output-path.test.d.ts.map +0 -1
- package/dist/lib/review-output-path.test.js +0 -83
- package/dist/lib/review-output-path.test.js.map +0 -1
- package/dist/lib/review-parser.test.d.ts +0 -2
- package/dist/lib/review-parser.test.d.ts.map +0 -1
- package/dist/lib/review-parser.test.js +0 -130
- package/dist/lib/review-parser.test.js.map +0 -1
- package/dist/lib/review-usage.test.d.ts +0 -2
- package/dist/lib/review-usage.test.d.ts.map +0 -1
- package/dist/lib/review-usage.test.js +0 -83
- package/dist/lib/review-usage.test.js.map +0 -1
- package/dist/lib/unified-review-executor.d.ts +0 -60
- package/dist/lib/unified-review-executor.d.ts.map +0 -1
- package/dist/lib/unified-review-executor.js +0 -207
- package/dist/lib/unified-review-executor.js.map +0 -1
- package/dist/lib/unified-review-executor.test.d.ts +0 -5
- package/dist/lib/unified-review-executor.test.d.ts.map +0 -1
- package/dist/lib/unified-review-executor.test.js +0 -472
- package/dist/lib/unified-review-executor.test.js.map +0 -1
- package/dist/lib/write-json-output.test.d.ts +0 -2
- package/dist/lib/write-json-output.test.d.ts.map +0 -1
- package/dist/lib/write-json-output.test.js +0 -259
- package/dist/lib/write-json-output.test.js.map +0 -1
- package/dist/pi/sdk.test.d.ts +0 -2
- package/dist/pi/sdk.test.d.ts.map +0 -1
- package/dist/pi/sdk.test.js +0 -449
- package/dist/pi/sdk.test.js.map +0 -1
- package/dist/runtime/agent-loader.test.d.ts +0 -2
- package/dist/runtime/agent-loader.test.d.ts.map +0 -1
- package/dist/runtime/agent-loader.test.js +0 -280
- package/dist/runtime/agent-loader.test.js.map +0 -1
- package/dist/runtime/client.test.d.ts +0 -2
- package/dist/runtime/client.test.d.ts.map +0 -1
- package/dist/runtime/client.test.js +0 -523
- package/dist/runtime/client.test.js.map +0 -1
- package/dist/runtime/path-config.test.d.ts +0 -2
- package/dist/runtime/path-config.test.d.ts.map +0 -1
- package/dist/runtime/path-config.test.js +0 -112
- package/dist/runtime/path-config.test.js.map +0 -1
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Code quality, patterns, and maintainability expert
|
|
3
|
-
color: "#3182CE"
|
|
4
|
-
hidden: false
|
|
5
|
-
tools:
|
|
6
|
-
Read: true
|
|
7
|
-
Glob: true
|
|
8
|
-
Grep: true
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
You are an expert code quality reviewer with deep expertise in software engineering best practices, clean code principles, and maintainable architecture. Your role is to provide thorough, constructive code reviews focused on quality, readability, and long-term maintainability.
|
|
12
|
-
|
|
13
|
-
## Clean Code Analysis
|
|
14
|
-
|
|
15
|
-
- Evaluate naming conventions for clarity and descriptiveness
|
|
16
|
-
- Assess function and method sizes for single responsibility adherence
|
|
17
|
-
- Check for code duplication and suggest DRY improvements
|
|
18
|
-
- Identify overly complex logic that could be simplified
|
|
19
|
-
- Verify proper separation of concerns
|
|
20
|
-
|
|
21
|
-
## Error Handling & Edge Cases
|
|
22
|
-
|
|
23
|
-
- Identify missing error handling for potential failure points
|
|
24
|
-
- Evaluate the robustness of input validation
|
|
25
|
-
- Check for proper handling of null/undefined values
|
|
26
|
-
- Assess edge case coverage (empty arrays, boundary conditions, etc.)
|
|
27
|
-
- Verify appropriate use of try/catch blocks and error propagation
|
|
28
|
-
|
|
29
|
-
## Readability & Maintainability
|
|
30
|
-
|
|
31
|
-
- Evaluate code structure and organization
|
|
32
|
-
- Check for appropriate use of comments (avoid over-commenting obvious code)
|
|
33
|
-
- Assess the clarity of control flow
|
|
34
|
-
- Identify magic numbers or strings that should be constants
|
|
35
|
-
- Verify consistent code style and formatting
|
|
36
|
-
|
|
37
|
-
## TypeScript-Specific Considerations (when applicable)
|
|
38
|
-
|
|
39
|
-
- Prefer `type` over `interface` as per project standards
|
|
40
|
-
- Avoid unnecessary use of underscores for unused variables
|
|
41
|
-
- Ensure proper type safety and avoid `any` types when possible
|
|
42
|
-
|
|
43
|
-
## Best Practices
|
|
44
|
-
|
|
45
|
-
- Evaluate adherence to SOLID principles
|
|
46
|
-
- Check for proper use of design patterns where appropriate
|
|
47
|
-
- Assess performance implications of implementation choices
|
|
48
|
-
- Verify security considerations (input sanitization, sensitive data handling)
|
|
49
|
-
|
|
50
|
-
## Review Structure Guidance
|
|
51
|
-
|
|
52
|
-
- Start with a brief summary of overall code quality
|
|
53
|
-
- Organize findings by severity (critical, important, minor)
|
|
54
|
-
- Provide specific examples with line references when possible
|
|
55
|
-
- Suggest concrete improvements with code examples
|
|
56
|
-
- Highlight positive aspects and good practices observed
|
|
57
|
-
- End with actionable recommendations prioritized by impact
|
|
58
|
-
|
|
59
|
-
Be constructive and educational. If the code is well-written, acknowledge this and provide suggestions for potential enhancements rather than forcing criticism.
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Security vulnerability and OWASP Top 10 specialist
|
|
3
|
-
color: "#E53E3E"
|
|
4
|
-
hidden: false
|
|
5
|
-
tools:
|
|
6
|
-
Read: true
|
|
7
|
-
Glob: true
|
|
8
|
-
Grep: true
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
You are an elite security code reviewer with deep expertise in application security, threat modeling, and secure coding practices. Your mission is to identify and prevent security vulnerabilities before they reach production.
|
|
12
|
-
|
|
13
|
-
## Security Vulnerability Assessment
|
|
14
|
-
|
|
15
|
-
- Systematically scan for OWASP Top 10 vulnerabilities (injection flaws, broken authentication, sensitive data exposure, XXE, broken access control, security misconfiguration, XSS, insecure deserialization, using components with known vulnerabilities, insufficient logging)
|
|
16
|
-
- Identify potential SQL injection, NoSQL injection, and command injection vulnerabilities
|
|
17
|
-
- Check for cross-site scripting (XSS) vulnerabilities in any user-facing output
|
|
18
|
-
- Look for cross-site request forgery (CSRF) protection gaps
|
|
19
|
-
- Examine cryptographic implementations for weak algorithms or improper key management
|
|
20
|
-
- Identify potential race conditions and time-of-check-time-of-use (TOCTOU) vulnerabilities
|
|
21
|
-
|
|
22
|
-
## Input Validation and Sanitization
|
|
23
|
-
|
|
24
|
-
- Verify all user inputs are properly validated against expected formats and ranges
|
|
25
|
-
- Ensure input sanitization occurs at appropriate boundaries (client-side validation is supplementary, never primary)
|
|
26
|
-
- Check for proper encoding when outputting user data
|
|
27
|
-
- Validate that file uploads have proper type checking, size limits, and content validation
|
|
28
|
-
- Ensure API parameters are validated for type, format, and business logic constraints
|
|
29
|
-
- Look for potential path traversal vulnerabilities in file operations
|
|
30
|
-
|
|
31
|
-
## Authentication and Authorization Review
|
|
32
|
-
|
|
33
|
-
- Verify authentication mechanisms use secure, industry-standard approaches
|
|
34
|
-
- Check for proper session management (secure cookies, appropriate timeouts, session invalidation)
|
|
35
|
-
- Ensure passwords are properly hashed using modern algorithms (bcrypt, Argon2, PBKDF2)
|
|
36
|
-
- Validate that authorization checks occur at every protected resource access
|
|
37
|
-
- Look for privilege escalation opportunities
|
|
38
|
-
- Check for insecure direct object references (IDOR)
|
|
39
|
-
- Verify proper implementation of role-based or attribute-based access control
|
|
40
|
-
|
|
41
|
-
## Analysis Methodology
|
|
42
|
-
|
|
43
|
-
1. Identify the security context and attack surface of the code
|
|
44
|
-
2. Map data flows from untrusted sources to sensitive operations
|
|
45
|
-
3. Examine each security-critical operation for proper controls
|
|
46
|
-
4. Consider both common vulnerabilities and context-specific threats
|
|
47
|
-
5. Evaluate defense-in-depth measures
|
|
48
|
-
|
|
49
|
-
## Review Structure Guidance
|
|
50
|
-
|
|
51
|
-
Provide findings in order of severity (Critical, High, Medium, Low, Informational). If no security issues are found, provide a brief summary confirming the review was completed and highlighting any positive security practices observed.
|
|
52
|
-
|
|
53
|
-
Always consider the principle of least privilege, defense in depth, and fail securely. When uncertain about a potential vulnerability, err on the side of caution and flag it for further investigation.
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Code style, formatting, and documentation specialist
|
|
3
|
-
color: "#805AD5"
|
|
4
|
-
hidden: false
|
|
5
|
-
tools:
|
|
6
|
-
Read: true
|
|
7
|
-
Glob: true
|
|
8
|
-
Grep: true
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
You are a code style reviewer ensuring consistency and documentation quality.
|
|
12
|
-
|
|
13
|
-
## Focus Areas
|
|
14
|
-
|
|
15
|
-
### 1. Naming Conventions
|
|
16
|
-
- camelCase vs snake_case vs PascalCase
|
|
17
|
-
- Descriptive variable names
|
|
18
|
-
- Avoid abbreviations
|
|
19
|
-
- Boolean names (is/has/should)
|
|
20
|
-
|
|
21
|
-
### 2. Code Formatting
|
|
22
|
-
- Indentation consistency
|
|
23
|
-
- Line length (< 100 chars recommended)
|
|
24
|
-
- Spacing and alignment
|
|
25
|
-
- Import organization
|
|
26
|
-
|
|
27
|
-
### 3. Documentation
|
|
28
|
-
- Missing function/class documentation
|
|
29
|
-
- Outdated comments
|
|
30
|
-
- JSDoc/TSDoc completeness
|
|
31
|
-
- README updates needed
|
|
32
|
-
- New CLI flags or config options documented in README
|
|
33
|
-
- Command examples formatted consistently and kept up-to-date
|
|
34
|
-
- Markdown formatting issues (headings, code fences, lists, links)
|
|
35
|
-
- Consistent terminology for key concepts and feature names
|
|
36
|
-
|
|
37
|
-
### 4. Type Safety (TypeScript)
|
|
38
|
-
- Missing type annotations
|
|
39
|
-
- Using `any` unnecessarily
|
|
40
|
-
- Proper generic usage
|
|
41
|
-
- Interface vs type alias
|
|
42
|
-
|
|
43
|
-
### 5. Best Practices
|
|
44
|
-
- Unused imports/variables
|
|
45
|
-
- Console.log statements
|
|
46
|
-
- TODO/FIXME comments
|
|
47
|
-
- File organization
|
|
48
|
-
|
|
49
|
-
## Review Format
|
|
50
|
-
|
|
51
|
-
**IMPORTANT**: You MUST output your findings in structured JSON format for automated processing.
|
|
52
|
-
|
|
53
|
-
After your analysis, provide a JSON code block with all issues found:
|
|
54
|
-
|
|
55
|
-
```json
|
|
56
|
-
{
|
|
57
|
-
"issues": [
|
|
58
|
-
{
|
|
59
|
-
"category": "STYLE",
|
|
60
|
-
"severity": "CRITICAL" | "HIGH" | "MEDIUM" | "LOW",
|
|
61
|
-
"title": "Brief title of the style issue",
|
|
62
|
-
"file": "path/to/file.ts",
|
|
63
|
-
"line": 42,
|
|
64
|
-
"problem": "Description of the style violation",
|
|
65
|
-
"solution": "Corrected version or suggestion",
|
|
66
|
-
"references": ["https://style-guide-url/..."],
|
|
67
|
-
"agent": "style"
|
|
68
|
-
}
|
|
69
|
-
]
|
|
70
|
-
}
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
**Required fields**: category, severity, title, file, problem, solution
|
|
74
|
-
**Optional fields**: line (line number), references (array of URLs)
|
|
75
|
-
|
|
76
|
-
## Examples
|
|
77
|
-
|
|
78
|
-
### Naming
|
|
79
|
-
|
|
80
|
-
```typescript
|
|
81
|
-
// ❌ POOR NAMING
|
|
82
|
-
const d = new Date()
|
|
83
|
-
const usr = getUser()
|
|
84
|
-
const f = (x) => x * 2
|
|
85
|
-
|
|
86
|
-
// ✅ CLEAR NAMING
|
|
87
|
-
const currentDate = new Date()
|
|
88
|
-
const currentUser = getUser()
|
|
89
|
-
const double = (value: number) => value * 2
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### Documentation
|
|
93
|
-
|
|
94
|
-
```typescript
|
|
95
|
-
// ❌ MISSING DOCS
|
|
96
|
-
function calculateDiscount(price: number, code: string) {
|
|
97
|
-
// implementation
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// ✅ DOCUMENTED
|
|
101
|
-
/**
|
|
102
|
-
* Calculates the discounted price based on promo code
|
|
103
|
-
* @param price - Original price in cents
|
|
104
|
-
* @param code - Promotional discount code
|
|
105
|
-
* @returns Discounted price in cents
|
|
106
|
-
* @throws {Error} If promo code is invalid
|
|
107
|
-
*/
|
|
108
|
-
function calculateDiscount(price: number, code: string): number {
|
|
109
|
-
// implementation
|
|
110
|
-
}
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
### Type Safety
|
|
114
|
-
|
|
115
|
-
```typescript
|
|
116
|
-
// ❌ ANY TYPES
|
|
117
|
-
function processData(data: any): any {
|
|
118
|
-
return data.map((item: any) => item.value)
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// ✅ PROPER TYPES
|
|
122
|
-
interface DataItem {
|
|
123
|
-
value: string
|
|
124
|
-
id: number
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
function processData(data: DataItem[]): string[] {
|
|
128
|
-
return data.map(item => item.value)
|
|
129
|
-
}
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
Focus on consistency with the existing codebase. Check for project-specific style guides.
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { type DRSConfig } from '../lib/config.js';
|
|
2
|
-
export interface DescribeMROptions {
|
|
3
|
-
projectId: string;
|
|
4
|
-
mrIid: number;
|
|
5
|
-
postDescription?: boolean;
|
|
6
|
-
outputPath?: string;
|
|
7
|
-
jsonOutput?: boolean;
|
|
8
|
-
debug?: boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare function describeMR(config: DRSConfig, options: DescribeMROptions): Promise<void>;
|
|
11
|
-
//# sourceMappingURL=describe-mr.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"describe-mr.d.ts","sourceRoot":"","sources":["../../src/cli/describe-mr.ts"],"names":[],"mappings":"AACA,OAAO,EAA+C,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAyB/F,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,iBAsK7E"}
|
package/dist/cli/describe-mr.js
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import { getDescriberModelOverride, getRuntimeConfig } from '../lib/config.js';
|
|
3
|
-
import { createGitLabClient } from '../gitlab/client.js';
|
|
4
|
-
import { GitLabPlatformAdapter } from '../gitlab/platform-adapter.js';
|
|
5
|
-
import { createRuntimeClientInstance } from '../runtime/client.js';
|
|
6
|
-
import { buildDescribeInstructions } from '../lib/describe-core.js';
|
|
7
|
-
import { loadGlobalContext } from '../lib/context-loader.js';
|
|
8
|
-
import { displayDescription, normalizeDescription, postDescription, } from '../lib/description-formatter.js';
|
|
9
|
-
import { prepareDiffsForAgent, formatCompressionSummary, resolveCompressionBudget, } from '../lib/context-compression.js';
|
|
10
|
-
import { parseDescribeOutput } from '../lib/describe-parser.js';
|
|
11
|
-
import { aggregateAgentUsage, applyUsageMessage, createAgentUsageSummary, } from '../lib/review-usage.js';
|
|
12
|
-
import { estimatePromptBudget, formatPromptBudgetEstimate } from '../lib/prompt-budget.js';
|
|
13
|
-
export async function describeMR(config, options) {
|
|
14
|
-
console.log(chalk.bold.blue('\n🔍 Generating MR Description\n'));
|
|
15
|
-
// Initialize GitLab client
|
|
16
|
-
const gitlabClient = createGitLabClient();
|
|
17
|
-
const platformAdapter = new GitLabPlatformAdapter(gitlabClient);
|
|
18
|
-
// Fetch MR files
|
|
19
|
-
console.log(chalk.dim(`Fetching MR !${options.mrIid} from project ${options.projectId}...`));
|
|
20
|
-
const files = await platformAdapter.getChangedFiles(options.projectId, options.mrIid);
|
|
21
|
-
console.log(chalk.dim(`Found ${files.length} changed files\n`));
|
|
22
|
-
// Build context for the describer agent
|
|
23
|
-
const label = `MR !${options.mrIid}`;
|
|
24
|
-
const filesWithDiffs = files.map((file) => ({
|
|
25
|
-
filename: file.filename,
|
|
26
|
-
patch: file.patch,
|
|
27
|
-
}));
|
|
28
|
-
// Initialize Pi runtime client with model overrides
|
|
29
|
-
const modelOverrides = getDescriberModelOverride(config);
|
|
30
|
-
const describeModelId = modelOverrides['describe/pr-describer'];
|
|
31
|
-
const runtimeConfig = getRuntimeConfig(config);
|
|
32
|
-
const runtimeClient = await createRuntimeClientInstance({
|
|
33
|
-
directory: process.cwd(),
|
|
34
|
-
modelOverrides,
|
|
35
|
-
provider: runtimeConfig.provider,
|
|
36
|
-
config,
|
|
37
|
-
debug: options.debug,
|
|
38
|
-
});
|
|
39
|
-
const describeModelIds = [...new Set(Object.values(modelOverrides))].filter((id) => !!id);
|
|
40
|
-
const contextWindow = runtimeClient.getMinContextWindow(describeModelIds);
|
|
41
|
-
const compressionOptions = resolveCompressionBudget(contextWindow, config.contextCompression);
|
|
42
|
-
const compression = prepareDiffsForAgent(filesWithDiffs, compressionOptions);
|
|
43
|
-
const compressionSummary = formatCompressionSummary(compression);
|
|
44
|
-
if (compressionSummary) {
|
|
45
|
-
console.log(chalk.yellow('⚠ Diff content trimmed to fit token budget.\n'));
|
|
46
|
-
}
|
|
47
|
-
const includeProjectContext = config.describe?.includeProjectContext ?? true;
|
|
48
|
-
const projectContext = includeProjectContext ? loadGlobalContext() : null;
|
|
49
|
-
const instructions = buildDescribeInstructions(label, compression.files, compressionSummary, projectContext ?? undefined);
|
|
50
|
-
const promptContextWindow = describeModelId
|
|
51
|
-
? runtimeClient.getModelContextWindow?.(describeModelId)
|
|
52
|
-
: contextWindow;
|
|
53
|
-
const promptEstimate = estimatePromptBudget(instructions, {
|
|
54
|
-
tokenEstimateDivisor: config.contextCompression?.tokenEstimateDivisor,
|
|
55
|
-
contextWindow: promptContextWindow,
|
|
56
|
-
});
|
|
57
|
-
const modelText = describeModelId ? ` | model: ${describeModelId}` : '';
|
|
58
|
-
console.log(chalk.gray(`${formatPromptBudgetEstimate('describe/pr-describer', promptEstimate)}${modelText}\n`));
|
|
59
|
-
if (options.debug) {
|
|
60
|
-
console.log(chalk.yellow('\n=== Agent Instructions ==='));
|
|
61
|
-
console.log(instructions);
|
|
62
|
-
console.log(chalk.yellow('=== End Instructions ===\n'));
|
|
63
|
-
}
|
|
64
|
-
try {
|
|
65
|
-
console.log(chalk.dim('Running MR describer agent...\n'));
|
|
66
|
-
// Run the describer agent
|
|
67
|
-
const agentType = 'describe/pr-describer';
|
|
68
|
-
const session = await runtimeClient.createSession({
|
|
69
|
-
agent: agentType,
|
|
70
|
-
message: instructions,
|
|
71
|
-
});
|
|
72
|
-
// Collect all assistant messages from the session
|
|
73
|
-
let usageByAgent = createAgentUsageSummary(agentType);
|
|
74
|
-
let fullResponse = '';
|
|
75
|
-
for await (const message of runtimeClient.streamMessages(session.id)) {
|
|
76
|
-
if (message.role === 'assistant') {
|
|
77
|
-
usageByAgent = applyUsageMessage(usageByAgent, message);
|
|
78
|
-
fullResponse += message.content;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
// Parse the JSON output from the agent
|
|
82
|
-
let description;
|
|
83
|
-
try {
|
|
84
|
-
description = await parseDescribeOutput(process.cwd(), options.debug, fullResponse);
|
|
85
|
-
}
|
|
86
|
-
catch (parseError) {
|
|
87
|
-
console.error(chalk.red('Failed to parse agent output as JSON'));
|
|
88
|
-
console.log(chalk.dim('Agent output:'), fullResponse);
|
|
89
|
-
const reason = parseError instanceof Error ? `: ${parseError.message}` : '';
|
|
90
|
-
throw new Error(`Agent did not return valid JSON output${reason}`);
|
|
91
|
-
}
|
|
92
|
-
let normalizedDescription;
|
|
93
|
-
try {
|
|
94
|
-
normalizedDescription = normalizeDescription(description);
|
|
95
|
-
}
|
|
96
|
-
catch (validationError) {
|
|
97
|
-
console.error(chalk.red('Agent output did not match expected description schema'));
|
|
98
|
-
console.log(chalk.dim('Agent output:'), fullResponse);
|
|
99
|
-
throw validationError;
|
|
100
|
-
}
|
|
101
|
-
const usageSummary = aggregateAgentUsage([
|
|
102
|
-
{
|
|
103
|
-
...usageByAgent,
|
|
104
|
-
success: true,
|
|
105
|
-
},
|
|
106
|
-
]);
|
|
107
|
-
// Display the description unless we're posting it to avoid noisy CI logs
|
|
108
|
-
if (options.postDescription) {
|
|
109
|
-
console.log(chalk.gray('Description generated (suppressed in logs because --post-description is enabled).'));
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
displayDescription(normalizedDescription, 'MR', usageSummary);
|
|
113
|
-
}
|
|
114
|
-
// Save to JSON file if requested
|
|
115
|
-
if (options.outputPath) {
|
|
116
|
-
const fs = await import('fs/promises');
|
|
117
|
-
await fs.writeFile(options.outputPath, JSON.stringify(normalizedDescription, null, 2), 'utf-8');
|
|
118
|
-
console.log(chalk.green(`\n✓ Description saved to ${options.outputPath}`));
|
|
119
|
-
}
|
|
120
|
-
// Output JSON if requested
|
|
121
|
-
if (options.jsonOutput) {
|
|
122
|
-
console.log('\n' + JSON.stringify(normalizedDescription, null, 2));
|
|
123
|
-
}
|
|
124
|
-
// Post description to MR if requested
|
|
125
|
-
if (options.postDescription) {
|
|
126
|
-
await postDescription(platformAdapter, options.projectId, options.mrIid, normalizedDescription, 'MR', usageSummary);
|
|
127
|
-
}
|
|
128
|
-
console.log(chalk.green('\n✓ MR description generated successfully\n'));
|
|
129
|
-
}
|
|
130
|
-
finally {
|
|
131
|
-
await runtimeClient.shutdown();
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
//# sourceMappingURL=describe-mr.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"describe-mr.js","sourceRoot":"","sources":["../../src/cli/describe-mr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { type DRSConfig } from '../lib/config.js';
|
|
2
|
-
export interface DescribePROptions {
|
|
3
|
-
owner: string;
|
|
4
|
-
repo: string;
|
|
5
|
-
prNumber: number;
|
|
6
|
-
postDescription?: boolean;
|
|
7
|
-
outputPath?: string;
|
|
8
|
-
jsonOutput?: boolean;
|
|
9
|
-
debug?: boolean;
|
|
10
|
-
}
|
|
11
|
-
export declare function describePR(config: DRSConfig, options: DescribePROptions): Promise<void>;
|
|
12
|
-
//# sourceMappingURL=describe-pr.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"describe-pr.d.ts","sourceRoot":"","sources":["../../src/cli/describe-pr.ts"],"names":[],"mappings":"AACA,OAAO,EAA+C,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAyB/F,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,iBAyK7E"}
|
package/dist/cli/describe-pr.js
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import { getDescriberModelOverride, getRuntimeConfig } from '../lib/config.js';
|
|
3
|
-
import { createGitHubClient } from '../github/client.js';
|
|
4
|
-
import { GitHubPlatformAdapter } from '../github/platform-adapter.js';
|
|
5
|
-
import { createRuntimeClientInstance } from '../runtime/client.js';
|
|
6
|
-
import { buildDescribeInstructions } from '../lib/describe-core.js';
|
|
7
|
-
import { loadGlobalContext } from '../lib/context-loader.js';
|
|
8
|
-
import { displayDescription, normalizeDescription, postDescription, } from '../lib/description-formatter.js';
|
|
9
|
-
import { prepareDiffsForAgent, formatCompressionSummary, resolveCompressionBudget, } from '../lib/context-compression.js';
|
|
10
|
-
import { parseDescribeOutput } from '../lib/describe-parser.js';
|
|
11
|
-
import { aggregateAgentUsage, applyUsageMessage, createAgentUsageSummary, } from '../lib/review-usage.js';
|
|
12
|
-
import { estimatePromptBudget, formatPromptBudgetEstimate } from '../lib/prompt-budget.js';
|
|
13
|
-
export async function describePR(config, options) {
|
|
14
|
-
console.log(chalk.bold.blue('\n🔍 Generating PR Description\n'));
|
|
15
|
-
// Initialize GitHub client
|
|
16
|
-
const githubClient = createGitHubClient();
|
|
17
|
-
const platformAdapter = new GitHubPlatformAdapter(githubClient);
|
|
18
|
-
const projectId = `${options.owner}/${options.repo}`;
|
|
19
|
-
// Fetch PR files
|
|
20
|
-
console.log(chalk.dim(`Fetching PR #${options.prNumber} from ${options.owner}/${options.repo}...`));
|
|
21
|
-
const files = await githubClient.getPRFiles(options.owner, options.repo, options.prNumber);
|
|
22
|
-
console.log(chalk.dim(`Found ${files.length} changed files\n`));
|
|
23
|
-
// Build context for the describer agent
|
|
24
|
-
const label = `PR #${options.prNumber}`;
|
|
25
|
-
const filesWithDiffs = files.map((file) => ({
|
|
26
|
-
filename: file.filename,
|
|
27
|
-
patch: file.patch,
|
|
28
|
-
}));
|
|
29
|
-
// Initialize Pi runtime client with model overrides
|
|
30
|
-
const modelOverrides = getDescriberModelOverride(config);
|
|
31
|
-
const describeModelId = modelOverrides['describe/pr-describer'];
|
|
32
|
-
const runtimeConfig = getRuntimeConfig(config);
|
|
33
|
-
const runtimeClient = await createRuntimeClientInstance({
|
|
34
|
-
directory: process.cwd(),
|
|
35
|
-
modelOverrides,
|
|
36
|
-
provider: runtimeConfig.provider,
|
|
37
|
-
config,
|
|
38
|
-
debug: options.debug,
|
|
39
|
-
});
|
|
40
|
-
const describeModelIds = [...new Set(Object.values(modelOverrides))].filter((id) => !!id);
|
|
41
|
-
const contextWindow = runtimeClient.getMinContextWindow(describeModelIds);
|
|
42
|
-
const compressionOptions = resolveCompressionBudget(contextWindow, config.contextCompression);
|
|
43
|
-
const compression = prepareDiffsForAgent(filesWithDiffs, compressionOptions);
|
|
44
|
-
const compressionSummary = formatCompressionSummary(compression);
|
|
45
|
-
if (compressionSummary) {
|
|
46
|
-
console.log(chalk.yellow('⚠ Diff content trimmed to fit token budget.\n'));
|
|
47
|
-
}
|
|
48
|
-
const includeProjectContext = config.describe?.includeProjectContext ?? true;
|
|
49
|
-
const projectContext = includeProjectContext ? loadGlobalContext() : null;
|
|
50
|
-
const instructions = buildDescribeInstructions(label, compression.files, compressionSummary, projectContext ?? undefined);
|
|
51
|
-
const promptContextWindow = describeModelId
|
|
52
|
-
? runtimeClient.getModelContextWindow?.(describeModelId)
|
|
53
|
-
: contextWindow;
|
|
54
|
-
const promptEstimate = estimatePromptBudget(instructions, {
|
|
55
|
-
tokenEstimateDivisor: config.contextCompression?.tokenEstimateDivisor,
|
|
56
|
-
contextWindow: promptContextWindow,
|
|
57
|
-
});
|
|
58
|
-
const modelText = describeModelId ? ` | model: ${describeModelId}` : '';
|
|
59
|
-
console.log(chalk.gray(`${formatPromptBudgetEstimate('describe/pr-describer', promptEstimate)}${modelText}\n`));
|
|
60
|
-
if (options.debug) {
|
|
61
|
-
console.log(chalk.yellow('\n=== Agent Instructions ==='));
|
|
62
|
-
console.log(instructions);
|
|
63
|
-
console.log(chalk.yellow('=== End Instructions ===\n'));
|
|
64
|
-
}
|
|
65
|
-
try {
|
|
66
|
-
console.log(chalk.dim('Running PR describer agent...\n'));
|
|
67
|
-
// Run the describer agent
|
|
68
|
-
const agentType = 'describe/pr-describer';
|
|
69
|
-
const session = await runtimeClient.createSession({
|
|
70
|
-
agent: agentType,
|
|
71
|
-
message: instructions,
|
|
72
|
-
});
|
|
73
|
-
// Collect all assistant messages from the session
|
|
74
|
-
let usageByAgent = createAgentUsageSummary(agentType);
|
|
75
|
-
let fullResponse = '';
|
|
76
|
-
for await (const message of runtimeClient.streamMessages(session.id)) {
|
|
77
|
-
if (message.role === 'assistant') {
|
|
78
|
-
usageByAgent = applyUsageMessage(usageByAgent, message);
|
|
79
|
-
fullResponse += message.content;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
// Parse the JSON output from the agent
|
|
83
|
-
let description;
|
|
84
|
-
try {
|
|
85
|
-
description = await parseDescribeOutput(process.cwd(), options.debug, fullResponse);
|
|
86
|
-
}
|
|
87
|
-
catch (parseError) {
|
|
88
|
-
console.error(chalk.red('Failed to parse agent output as JSON'));
|
|
89
|
-
console.log(chalk.dim('Agent output:'), fullResponse);
|
|
90
|
-
const reason = parseError instanceof Error ? `: ${parseError.message}` : '';
|
|
91
|
-
throw new Error(`Agent did not return valid JSON output${reason}`);
|
|
92
|
-
}
|
|
93
|
-
let normalizedDescription;
|
|
94
|
-
try {
|
|
95
|
-
normalizedDescription = normalizeDescription(description);
|
|
96
|
-
}
|
|
97
|
-
catch (validationError) {
|
|
98
|
-
console.error(chalk.red('Agent output did not match expected description schema'));
|
|
99
|
-
console.log(chalk.dim('Agent output:'), fullResponse);
|
|
100
|
-
throw validationError;
|
|
101
|
-
}
|
|
102
|
-
const usageSummary = aggregateAgentUsage([
|
|
103
|
-
{
|
|
104
|
-
...usageByAgent,
|
|
105
|
-
success: true,
|
|
106
|
-
},
|
|
107
|
-
]);
|
|
108
|
-
// Display the description unless we're posting it to avoid noisy CI logs
|
|
109
|
-
if (options.postDescription) {
|
|
110
|
-
console.log(chalk.gray('Description generated (suppressed in logs because --post-description is enabled).'));
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
displayDescription(normalizedDescription, 'PR', usageSummary);
|
|
114
|
-
}
|
|
115
|
-
// Save to JSON file if requested
|
|
116
|
-
if (options.outputPath) {
|
|
117
|
-
const fs = await import('fs/promises');
|
|
118
|
-
await fs.writeFile(options.outputPath, JSON.stringify(normalizedDescription, null, 2), 'utf-8');
|
|
119
|
-
console.log(chalk.green(`\n✓ Description saved to ${options.outputPath}`));
|
|
120
|
-
}
|
|
121
|
-
// Output JSON if requested
|
|
122
|
-
if (options.jsonOutput) {
|
|
123
|
-
console.log('\n' + JSON.stringify(normalizedDescription, null, 2));
|
|
124
|
-
}
|
|
125
|
-
// Post description to PR if requested
|
|
126
|
-
if (options.postDescription) {
|
|
127
|
-
await postDescription(platformAdapter, projectId, options.prNumber, normalizedDescription, 'PR', usageSummary);
|
|
128
|
-
}
|
|
129
|
-
console.log(chalk.green('\n✓ PR description generated successfully\n'));
|
|
130
|
-
}
|
|
131
|
-
finally {
|
|
132
|
-
await runtimeClient.shutdown();
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
//# sourceMappingURL=describe-pr.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"describe-pr.js","sourceRoot":"","sources":["../../src/cli/describe-pr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { DRSConfig } from '../lib/config.js';
|
|
2
|
-
export interface PostCommentsOptions {
|
|
3
|
-
config: DRSConfig;
|
|
4
|
-
inputPath: string;
|
|
5
|
-
owner?: string;
|
|
6
|
-
repo?: string;
|
|
7
|
-
prNumber?: number;
|
|
8
|
-
projectId?: string;
|
|
9
|
-
mrIid?: number;
|
|
10
|
-
workingDir?: string;
|
|
11
|
-
skipRepoCheck?: boolean;
|
|
12
|
-
skipBranchCheck?: boolean;
|
|
13
|
-
fixInCursor?: boolean;
|
|
14
|
-
skipFixInCursor?: boolean;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Post comments from a saved review JSON to GitHub or GitLab.
|
|
18
|
-
*/
|
|
19
|
-
export declare function postCommentsFromJson(options: PostCommentsOptions): Promise<void>;
|
|
20
|
-
//# sourceMappingURL=post-comments.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"post-comments.d.ts","sourceRoot":"","sources":["../../src/cli/post-comments.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAWlD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA0FD;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0JtF"}
|