@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
package/dist/runtime/client.js
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* This client maintains the existing internal interface used by review orchestration
|
|
5
5
|
* while delegating SDK calls through the Pi integration adapter in src/pi/sdk.ts.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
7
|
+
import { getRuntimeConfig, normalizeAgentConfig, resolveAgentSkills, resolveAgentTools, resolveRuntimeAgentModel, } from '../lib/config.js';
|
|
8
8
|
import { getLogger } from '../lib/logger.js';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { loadAgents } from './agent-loader.js';
|
|
10
|
+
import { resolveAgentPaths } from './path-config.js';
|
|
11
11
|
import { createPiInProcessServer } from '../pi/sdk.js';
|
|
12
12
|
function mapPiRuntimeError(operation, error) {
|
|
13
13
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -32,34 +32,25 @@ function mapPiRuntimeError(operation, error) {
|
|
|
32
32
|
}
|
|
33
33
|
return new Error(`Failed to ${operation}: ${message}`);
|
|
34
34
|
}
|
|
35
|
-
function buildAgentSkillConfiguration(config) {
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const agentConfig = agentConfigByName.get(agentName);
|
|
53
|
-
const fullAgentName = agentName.startsWith('review/') ? agentName : `review/${agentName}`;
|
|
54
|
-
addSkills(fullAgentName, [
|
|
55
|
-
...defaultSkills,
|
|
56
|
-
...(agentConfig?.skills ? agentConfig.skills.map(String) : []),
|
|
57
|
-
]);
|
|
35
|
+
function buildAgentSkillConfiguration(config, agents) {
|
|
36
|
+
const reviewAgentConfigByName = new Map(normalizeAgentConfig(config.review.agents).map((agent) => [agent.name, agent]));
|
|
37
|
+
return agents
|
|
38
|
+
.map((agent) => ({
|
|
39
|
+
name: agent.id,
|
|
40
|
+
skills: resolveAgentSkills(config, agent.id, agent.skills, [], reviewAgentConfigByName.get(agent.id) ?? null),
|
|
41
|
+
}))
|
|
42
|
+
.filter((agent) => agent.skills.length > 0);
|
|
43
|
+
}
|
|
44
|
+
function parsePositiveIntEnv(name) {
|
|
45
|
+
const value = process.env[name];
|
|
46
|
+
if (!value) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
const parsed = Number.parseInt(value, 10);
|
|
50
|
+
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
51
|
+
return undefined;
|
|
58
52
|
}
|
|
59
|
-
return
|
|
60
|
-
name,
|
|
61
|
-
skills: Array.from(skills),
|
|
62
|
-
}));
|
|
53
|
+
return parsed;
|
|
63
54
|
}
|
|
64
55
|
/**
|
|
65
56
|
* Runtime client wrapper for DRS backed by in-process Pi sessions.
|
|
@@ -70,9 +61,39 @@ export class RuntimeClient {
|
|
|
70
61
|
inProcessServer;
|
|
71
62
|
client;
|
|
72
63
|
config;
|
|
64
|
+
operationTimeoutMs;
|
|
65
|
+
streamTimeoutMs;
|
|
66
|
+
streamPollIntervalMs;
|
|
73
67
|
constructor(config) {
|
|
74
68
|
this.directory = config.directory;
|
|
75
69
|
this.config = config;
|
|
70
|
+
this.operationTimeoutMs =
|
|
71
|
+
parsePositiveIntEnv('DRS_RUNTIME_OPERATION_TIMEOUT_MS') ??
|
|
72
|
+
config.operationTimeoutMs ??
|
|
73
|
+
300000;
|
|
74
|
+
this.streamTimeoutMs =
|
|
75
|
+
parsePositiveIntEnv('DRS_RUNTIME_STREAM_TIMEOUT_MS') ?? config.streamTimeoutMs ?? 900000;
|
|
76
|
+
this.streamPollIntervalMs =
|
|
77
|
+
parsePositiveIntEnv('DRS_RUNTIME_STREAM_POLL_INTERVAL_MS') ??
|
|
78
|
+
config.streamPollIntervalMs ??
|
|
79
|
+
2000;
|
|
80
|
+
}
|
|
81
|
+
async withTimeout(operation, timeoutMs, task) {
|
|
82
|
+
let timer;
|
|
83
|
+
try {
|
|
84
|
+
const timeout = new Promise((_, reject) => {
|
|
85
|
+
timer = setTimeout(() => {
|
|
86
|
+
reject(new Error(`${operation} timed out after ${Math.round(timeoutMs / 1000)} seconds. ` +
|
|
87
|
+
`Set DRS_RUNTIME_OPERATION_TIMEOUT_MS or DRS_RUNTIME_STREAM_TIMEOUT_MS to tune limits.`));
|
|
88
|
+
}, timeoutMs);
|
|
89
|
+
});
|
|
90
|
+
return await Promise.race([task, timeout]);
|
|
91
|
+
}
|
|
92
|
+
finally {
|
|
93
|
+
if (timer) {
|
|
94
|
+
clearTimeout(timer);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
76
97
|
}
|
|
77
98
|
getModelContextWindow(modelId) {
|
|
78
99
|
return this.inProcessServer?.client.getModelContextWindow?.(modelId);
|
|
@@ -116,7 +137,7 @@ export class RuntimeClient {
|
|
|
116
137
|
// Build runtime config programmatically from DRS config
|
|
117
138
|
const log = getLogger();
|
|
118
139
|
const projectDir = this.directory ?? process.cwd();
|
|
119
|
-
const
|
|
140
|
+
const agentPaths = resolveAgentPaths(projectDir, this.config.config);
|
|
120
141
|
const runtimeConfig = {
|
|
121
142
|
// Tools available to DRS review agents
|
|
122
143
|
tools: {
|
|
@@ -131,22 +152,25 @@ export class RuntimeClient {
|
|
|
131
152
|
},
|
|
132
153
|
};
|
|
133
154
|
const agentConfig = {};
|
|
155
|
+
let runtimeAgents = [];
|
|
134
156
|
if (this.config.config) {
|
|
135
|
-
|
|
157
|
+
runtimeAgents = loadAgents(projectDir, this.config.config);
|
|
136
158
|
for (const agent of runtimeAgents) {
|
|
137
159
|
const runtimeEntry = {};
|
|
138
|
-
|
|
139
|
-
|
|
160
|
+
const model = resolveRuntimeAgentModel(this.config.config, agent.id, agent.model);
|
|
161
|
+
const tools = resolveAgentTools(this.config.config, agent.id, agent.tools);
|
|
162
|
+
if (model)
|
|
163
|
+
runtimeEntry.model = model;
|
|
140
164
|
if (agent.prompt)
|
|
141
165
|
runtimeEntry.prompt = agent.prompt;
|
|
142
166
|
if (agent.description)
|
|
143
167
|
runtimeEntry.description = agent.description;
|
|
144
168
|
if (agent.color)
|
|
145
169
|
runtimeEntry.color = agent.color;
|
|
146
|
-
if (
|
|
147
|
-
runtimeEntry.tools =
|
|
170
|
+
if (tools)
|
|
171
|
+
runtimeEntry.tools = tools;
|
|
148
172
|
if (Object.keys(runtimeEntry).length > 0) {
|
|
149
|
-
agentConfig[agent.
|
|
173
|
+
agentConfig[agent.id] = runtimeEntry;
|
|
150
174
|
}
|
|
151
175
|
}
|
|
152
176
|
if (runtimeAgents.length > 0) {
|
|
@@ -182,12 +206,25 @@ export class RuntimeClient {
|
|
|
182
206
|
if (Object.keys(agentConfig).length > 0) {
|
|
183
207
|
runtimeConfig.agent = agentConfig;
|
|
184
208
|
}
|
|
209
|
+
const providerRetry = this.config.providerRetry ??
|
|
210
|
+
(this.config.config ? getRuntimeConfig(this.config.config).retry?.provider : undefined);
|
|
211
|
+
if (providerRetry) {
|
|
212
|
+
runtimeConfig.retry = {
|
|
213
|
+
provider: providerRetry,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
185
216
|
if (this.config.thinkingLevel) {
|
|
186
217
|
runtimeConfig.thinkingLevel = this.config.thinkingLevel;
|
|
187
218
|
}
|
|
188
|
-
runtimeConfig.skillSearchPaths =
|
|
219
|
+
runtimeConfig.skillSearchPaths = agentPaths.skillSearchPaths;
|
|
220
|
+
if (this.config.traceCollector) {
|
|
221
|
+
runtimeConfig.traceCollector = this.config.traceCollector;
|
|
222
|
+
}
|
|
223
|
+
if (this.config.config?.fix?.checks && this.config.config.fix.checks.length > 0) {
|
|
224
|
+
runtimeConfig.fixChecks = this.config.config.fix.checks;
|
|
225
|
+
}
|
|
189
226
|
if (this.config.config) {
|
|
190
|
-
const agentSkills = buildAgentSkillConfiguration(this.config.config
|
|
227
|
+
const agentSkills = buildAgentSkillConfiguration(this.config.config, runtimeAgents);
|
|
191
228
|
if (agentSkills.length > 0) {
|
|
192
229
|
log.info('Agent skill configuration:');
|
|
193
230
|
for (const agent of agentSkills) {
|
|
@@ -283,7 +320,7 @@ export class RuntimeClient {
|
|
|
283
320
|
}
|
|
284
321
|
try {
|
|
285
322
|
// Step 1: Create empty session
|
|
286
|
-
const createResponse =
|
|
323
|
+
const createResponse = await this.withTimeout('Create session', this.operationTimeoutMs, this.client.session.create({
|
|
287
324
|
query: {
|
|
288
325
|
directory: this.directory,
|
|
289
326
|
},
|
|
@@ -293,7 +330,7 @@ export class RuntimeClient {
|
|
|
293
330
|
throw new Error('Failed to get session ID from create response');
|
|
294
331
|
}
|
|
295
332
|
// Step 2: Send initial message to start the agent
|
|
296
|
-
await this.client.session.prompt({
|
|
333
|
+
await this.withTimeout('Send initial prompt', this.streamTimeoutMs, this.client.session.prompt({
|
|
297
334
|
path: { id: sessionId },
|
|
298
335
|
query: {
|
|
299
336
|
directory: this.directory,
|
|
@@ -307,7 +344,7 @@ export class RuntimeClient {
|
|
|
307
344
|
},
|
|
308
345
|
],
|
|
309
346
|
},
|
|
310
|
-
});
|
|
347
|
+
}));
|
|
311
348
|
return {
|
|
312
349
|
id: sessionId,
|
|
313
350
|
agent: options.agent,
|
|
@@ -330,14 +367,12 @@ export class RuntimeClient {
|
|
|
330
367
|
throw new Error('Runtime client not initialized. Call initialize() first.');
|
|
331
368
|
}
|
|
332
369
|
try {
|
|
333
|
-
// Poll messages until agent completes
|
|
370
|
+
// Poll messages until agent completes or times out
|
|
334
371
|
let lastMessageCount = 0;
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
while (attempts < maxAttempts) {
|
|
338
|
-
attempts++;
|
|
372
|
+
const start = Date.now();
|
|
373
|
+
while (Date.now() - start < this.streamTimeoutMs) {
|
|
339
374
|
// Get current messages
|
|
340
|
-
const messagesResponse =
|
|
375
|
+
const messagesResponse = await this.withTimeout('Get messages', this.operationTimeoutMs, this.client.session.messages({
|
|
341
376
|
path: { id: sessionId },
|
|
342
377
|
}));
|
|
343
378
|
const messages = messagesResponse.data ?? [];
|
|
@@ -393,15 +428,11 @@ export class RuntimeClient {
|
|
|
393
428
|
break;
|
|
394
429
|
}
|
|
395
430
|
}
|
|
396
|
-
//
|
|
397
|
-
|
|
398
|
-
break;
|
|
399
|
-
}
|
|
400
|
-
// Wait before polling again (remote runtime)
|
|
401
|
-
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
431
|
+
// Wait before polling again
|
|
432
|
+
await new Promise((resolve) => setTimeout(resolve, this.streamPollIntervalMs));
|
|
402
433
|
}
|
|
403
|
-
if (
|
|
404
|
-
throw new Error(`Session ${sessionId} timed out after ${
|
|
434
|
+
if (Date.now() - start >= this.streamTimeoutMs) {
|
|
435
|
+
throw new Error(`Session ${sessionId} timed out after ${Math.round(this.streamTimeoutMs / 1000)} seconds`);
|
|
405
436
|
}
|
|
406
437
|
}
|
|
407
438
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { DRSConfig } from '../lib/config.js';
|
|
2
|
-
export interface
|
|
2
|
+
export interface ResolvedAgentPaths {
|
|
3
3
|
agentsPath: string;
|
|
4
4
|
skillsPath: string;
|
|
5
5
|
skillSearchPaths: string[];
|
|
6
6
|
}
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function resolveAgentPaths(projectPath: string, config?: DRSConfig): ResolvedAgentPaths;
|
|
8
8
|
//# sourceMappingURL=path-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-config.d.ts","sourceRoot":"","sources":["../../src/runtime/path-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AASlD,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"path-config.d.ts","sourceRoot":"","sources":["../../src/runtime/path-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AASlD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAqFD,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,kBAAkB,CAc7F"}
|
|
@@ -14,21 +14,21 @@ function resolveConfiguredPath(projectRoot, configuredPath, fallbackPath, pathTy
|
|
|
14
14
|
return resolve(projectRoot, fallbackPath);
|
|
15
15
|
}
|
|
16
16
|
if (typeof configuredPath !== 'string') {
|
|
17
|
-
throw new Error(`Invalid
|
|
17
|
+
throw new Error(`Invalid agents.paths.${pathType}: expected a string path. Use a repo-relative path like "${fallbackPath}" or an absolute path.`);
|
|
18
18
|
}
|
|
19
19
|
const trimmed = configuredPath.trim();
|
|
20
20
|
if (!trimmed) {
|
|
21
|
-
throw new Error(`Invalid
|
|
21
|
+
throw new Error(`Invalid agents.paths.${pathType}: path cannot be empty. Use a repo-relative path like "${fallbackPath}" or an absolute path.`);
|
|
22
22
|
}
|
|
23
23
|
const resolvedPath = isAbsolute(trimmed) ? resolve(trimmed) : resolve(projectRoot, trimmed);
|
|
24
24
|
if (!isAbsolute(trimmed) && isOutsideProjectRoot(projectRoot, resolvedPath)) {
|
|
25
|
-
throw new Error(`Invalid
|
|
25
|
+
throw new Error(`Invalid agents.paths.${pathType}: "${configuredPath}" resolves outside repository root (${projectRoot}). Use a repo-relative path within the repository or an absolute path.`);
|
|
26
26
|
}
|
|
27
27
|
if (!existsSync(resolvedPath)) {
|
|
28
|
-
throw new Error(`Invalid
|
|
28
|
+
throw new Error(`Invalid agents.paths.${pathType}: "${configuredPath}" resolved to "${resolvedPath}", but the directory does not exist. Create the directory or remove agents.paths.${pathType} to use "${fallbackPath}".`);
|
|
29
29
|
}
|
|
30
30
|
if (!statSync(resolvedPath).isDirectory()) {
|
|
31
|
-
throw new Error(`Invalid
|
|
31
|
+
throw new Error(`Invalid agents.paths.${pathType}: "${configuredPath}" resolved to "${resolvedPath}", but it is not a directory. Point agents.paths.${pathType} to a directory or remove it to use "${fallbackPath}".`);
|
|
32
32
|
}
|
|
33
33
|
return resolvedPath;
|
|
34
34
|
}
|
|
@@ -52,17 +52,17 @@ function resolveDefaultSkillSearchPaths(projectRoot) {
|
|
|
52
52
|
return existing.length > 0 ? existing : [candidates[0]];
|
|
53
53
|
}
|
|
54
54
|
function resolveSkillSearchPaths(projectRoot, config) {
|
|
55
|
-
const configuredSkillsPath = config?.
|
|
55
|
+
const configuredSkillsPath = config?.agents?.paths?.skills;
|
|
56
56
|
if (configuredSkillsPath === undefined || configuredSkillsPath === null) {
|
|
57
57
|
return resolveDefaultSkillSearchPaths(projectRoot);
|
|
58
58
|
}
|
|
59
59
|
return [resolveConfiguredPath(projectRoot, configuredSkillsPath, DEFAULT_SKILL_PATH, 'skills')];
|
|
60
60
|
}
|
|
61
|
-
export function
|
|
61
|
+
export function resolveAgentPaths(projectPath, config) {
|
|
62
62
|
const projectRoot = resolve(projectPath);
|
|
63
63
|
const skillSearchPaths = resolveSkillSearchPaths(projectRoot, config);
|
|
64
64
|
return {
|
|
65
|
-
agentsPath: resolveConfiguredPath(projectRoot, config?.
|
|
65
|
+
agentsPath: resolveConfiguredPath(projectRoot, config?.agents?.paths?.agents, DEFAULT_AGENT_PATH, 'agents'),
|
|
66
66
|
skillsPath: skillSearchPaths[0],
|
|
67
67
|
skillSearchPaths,
|
|
68
68
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-config.js","sourceRoot":"","sources":["../../src/runtime/path-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGrD,MAAM,kBAAkB,GAAG,aAAa,CAAC;AACzC,MAAM,kBAAkB,GAAG,aAAa,CAAC;AACzC,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AACnD,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAU3C,SAAS,oBAAoB,CAAC,WAAmB,EAAE,UAAkB;IACnE,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,OAAO,YAAY,KAAK,IAAI,CAAC;AAC/B,CAAC;AAED,SAAS,qBAAqB,CAC5B,WAAmB,EACnB,cAAuB,EACvB,YAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"path-config.js","sourceRoot":"","sources":["../../src/runtime/path-config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@diff-review-system/drs",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "4.0.1",
|
|
4
|
+
"description": "Workflow-first AI code maintenance for reviews, changelogs, docs, and repository upkeep.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
@@ -11,19 +11,24 @@
|
|
|
11
11
|
"build": "tsc",
|
|
12
12
|
"build:watch": "tsc --watch",
|
|
13
13
|
"dev": "tsx watch src/cli/index.ts",
|
|
14
|
+
"dev:cli": "tsx src/cli/index.ts",
|
|
14
15
|
"start": "node dist/cli/index.js",
|
|
15
16
|
"test": "vitest run",
|
|
16
17
|
"test:e2e": "DRS_E2E_LIVE=1 vitest run src/cli/review-local.live.e2e.test.ts",
|
|
17
18
|
"lint": "eslint 'src/**/*.ts'",
|
|
18
19
|
"lint:fix": "eslint 'src/**/*.ts' --fix",
|
|
19
|
-
"format": "prettier --write 'src/**/*.{ts,json}'",
|
|
20
|
-
"format:check": "prettier --check 'src/**/*.{ts,json}'",
|
|
20
|
+
"format": "prettier --write 'src/**/*.{ts,json}' 'package.json' '.pi/**/*.{yaml,yml}'",
|
|
21
|
+
"format:check": "prettier --check 'src/**/*.{ts,json}' 'package.json' '.pi/**/*.{yaml,yml}'",
|
|
21
22
|
"check:all": "npm run format && npm run lint:fix && npm run build && npm test && npm run format:check && npm run lint",
|
|
22
23
|
"type-check": "tsc --noEmit",
|
|
24
|
+
"prek:install": "prek install",
|
|
25
|
+
"prek:run": "prek run --all-files",
|
|
26
|
+
"prek:uninstall": "prek uninstall",
|
|
23
27
|
"prepublishOnly": "npm run build"
|
|
24
28
|
},
|
|
25
29
|
"files": [
|
|
26
30
|
"dist",
|
|
31
|
+
"!dist/**/*.test.*",
|
|
27
32
|
"README.md",
|
|
28
33
|
"LICENSE",
|
|
29
34
|
".pi"
|
|
@@ -50,29 +55,30 @@
|
|
|
50
55
|
"author": "",
|
|
51
56
|
"license": "Apache-2.0",
|
|
52
57
|
"dependencies": {
|
|
58
|
+
"@earendil-works/pi-coding-agent": "^0.79.6",
|
|
53
59
|
"@gitbeaker/node": "^35.8.1",
|
|
54
|
-
"@mariozechner/pi-coding-agent": "0.57.1",
|
|
55
60
|
"@octokit/rest": "^21.0.0",
|
|
56
|
-
"
|
|
61
|
+
"@sinclair/typebox": "^0.34.49",
|
|
62
|
+
"ajv": "^8.20.0",
|
|
57
63
|
"chalk": "^5.3.0",
|
|
58
64
|
"commander": "^12.0.0",
|
|
59
65
|
"dotenv": "^16.0.0",
|
|
60
|
-
"simple-git": "^3.
|
|
61
|
-
"yaml": "^2.
|
|
66
|
+
"simple-git": "^3.36.0",
|
|
67
|
+
"yaml": "^2.9.0"
|
|
62
68
|
},
|
|
63
69
|
"devDependencies": {
|
|
64
|
-
"@types/node": "^22.19.
|
|
65
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
66
|
-
"@typescript-eslint/parser": "^
|
|
70
|
+
"@types/node": "^22.19.21",
|
|
71
|
+
"@typescript-eslint/eslint-plugin": "^8.61.1",
|
|
72
|
+
"@typescript-eslint/parser": "^8.61.1",
|
|
67
73
|
"eslint": "^8.56.0",
|
|
68
74
|
"eslint-config-prettier": "^10.1.8",
|
|
69
|
-
"eslint-plugin-prettier": "^5.5.
|
|
70
|
-
"prettier": "^3.
|
|
71
|
-
"tsx": "^4.
|
|
75
|
+
"eslint-plugin-prettier": "^5.5.6",
|
|
76
|
+
"prettier": "^3.8.4",
|
|
77
|
+
"tsx": "^4.22.4",
|
|
72
78
|
"typescript": "^5.3.0",
|
|
73
|
-
"vitest": "^1.
|
|
79
|
+
"vitest": "^4.1.9"
|
|
74
80
|
},
|
|
75
81
|
"engines": {
|
|
76
|
-
"node": ">=
|
|
82
|
+
"node": ">=22.19.0"
|
|
77
83
|
}
|
|
78
84
|
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Documentation accuracy and completeness reviewer
|
|
3
|
-
color: "#4A5568"
|
|
4
|
-
hidden: false
|
|
5
|
-
tools:
|
|
6
|
-
Read: true
|
|
7
|
-
Glob: true
|
|
8
|
-
Grep: true
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
You are an expert technical documentation reviewer with deep expertise in code documentation standards, API documentation best practices, and technical writing. Your primary responsibility is to ensure that documentation accurately reflects implementation details and provides clear, useful information to developers.
|
|
12
|
-
|
|
13
|
-
## Code Documentation Analysis
|
|
14
|
-
|
|
15
|
-
- Verify that all public functions, methods, and classes have appropriate documentation comments
|
|
16
|
-
- Check that parameter descriptions match actual parameter types and purposes
|
|
17
|
-
- Ensure return value documentation accurately describes what the code returns
|
|
18
|
-
- Validate that examples in documentation actually work with the current implementation
|
|
19
|
-
- Confirm that edge cases and error conditions are properly documented
|
|
20
|
-
- Check for outdated comments that reference removed or modified functionality
|
|
21
|
-
|
|
22
|
-
## README Verification
|
|
23
|
-
|
|
24
|
-
- Cross-reference README content with actual implemented features
|
|
25
|
-
- Verify installation instructions are current and complete
|
|
26
|
-
- Check that usage examples reflect the current API
|
|
27
|
-
- Ensure feature lists accurately represent available functionality
|
|
28
|
-
- Validate that configuration options documented in README match actual code
|
|
29
|
-
- Identify any new features missing from README documentation
|
|
30
|
-
|
|
31
|
-
## API Documentation Review
|
|
32
|
-
|
|
33
|
-
- Verify endpoint descriptions match actual implementation
|
|
34
|
-
- Check request/response examples for accuracy
|
|
35
|
-
- Ensure authentication requirements are correctly documented
|
|
36
|
-
- Validate parameter types, constraints, and default values
|
|
37
|
-
- Confirm error response documentation matches actual error handling
|
|
38
|
-
- Check that deprecated endpoints are properly marked
|
|
39
|
-
|
|
40
|
-
## Quality Standards
|
|
41
|
-
|
|
42
|
-
- Flag documentation that is vague, ambiguous, or misleading
|
|
43
|
-
- Identify missing documentation for public interfaces
|
|
44
|
-
- Note inconsistencies between documentation and implementation
|
|
45
|
-
- Suggest improvements for clarity and completeness
|
|
46
|
-
- Ensure documentation follows project-specific standards
|
|
47
|
-
|
|
48
|
-
## Review Structure Guidance
|
|
49
|
-
|
|
50
|
-
- Start with a summary of overall documentation quality
|
|
51
|
-
- List specific issues found, categorized by type (code comments, README, API docs)
|
|
52
|
-
- For each issue, provide: file/location, current state, recommended fix
|
|
53
|
-
- Prioritize issues by severity (critical inaccuracies vs. minor improvements)
|
|
54
|
-
- End with actionable recommendations
|
|
55
|
-
|
|
56
|
-
Be thorough but focused, identifying genuine documentation issues rather than stylistic preferences. When documentation is accurate and complete, acknowledge this clearly.
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Performance and optimization expert
|
|
3
|
-
color: "#DD6B20"
|
|
4
|
-
hidden: false
|
|
5
|
-
tools:
|
|
6
|
-
Read: true
|
|
7
|
-
Glob: true
|
|
8
|
-
Grep: true
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
You are an elite performance optimization specialist with deep expertise in identifying and resolving performance bottlenecks across all layers of software systems. Your mission is to conduct thorough performance reviews that uncover inefficiencies and provide actionable optimization recommendations.
|
|
12
|
-
|
|
13
|
-
## Performance Bottleneck Analysis
|
|
14
|
-
|
|
15
|
-
- Examine algorithmic complexity and identify O(n²) or worse operations that could be optimized
|
|
16
|
-
- Detect unnecessary computations, redundant operations, or repeated work
|
|
17
|
-
- Identify blocking operations that could benefit from asynchronous execution
|
|
18
|
-
- Review loop structures for inefficient iterations or nested loops that could be flattened
|
|
19
|
-
- Check for premature optimization vs. legitimate performance concerns
|
|
20
|
-
|
|
21
|
-
## Network Query Efficiency
|
|
22
|
-
|
|
23
|
-
- Analyze database queries for N+1 problems and missing indexes
|
|
24
|
-
- Review API calls for batching opportunities and unnecessary round trips
|
|
25
|
-
- Check for proper use of pagination, filtering, and projection in data fetching
|
|
26
|
-
- Identify opportunities for caching, memoization, or request deduplication
|
|
27
|
-
- Examine connection pooling and resource reuse patterns
|
|
28
|
-
- Verify proper error handling that doesn't cause retry storms
|
|
29
|
-
|
|
30
|
-
## Memory and Resource Management
|
|
31
|
-
|
|
32
|
-
- Detect potential memory leaks from unclosed connections, event listeners, or circular references
|
|
33
|
-
- Review object lifecycle management and garbage collection implications
|
|
34
|
-
- Identify excessive memory allocation or large object creation in loops
|
|
35
|
-
- Check for proper cleanup in cleanup functions, destructors, or finally blocks
|
|
36
|
-
- Analyze data structure choices for memory efficiency
|
|
37
|
-
- Review file handles, database connections, and other resource cleanup
|
|
38
|
-
|
|
39
|
-
## Review Structure Guidance
|
|
40
|
-
|
|
41
|
-
1. **Critical Issues**: Immediate performance problems requiring attention
|
|
42
|
-
2. **Optimization Opportunities**: Improvements that would yield measurable benefits
|
|
43
|
-
3. **Best Practice Recommendations**: Preventive measures for future performance
|
|
44
|
-
4. **Code Examples**: Specific before/after snippets demonstrating improvements
|
|
45
|
-
|
|
46
|
-
For each issue identified:
|
|
47
|
-
|
|
48
|
-
- Specify the exact location (file, function, line numbers)
|
|
49
|
-
- Explain the performance impact with estimated complexity or resource usage
|
|
50
|
-
- Provide concrete, implementable solutions
|
|
51
|
-
- Prioritize recommendations by impact vs. effort
|
|
52
|
-
|
|
53
|
-
If code appears performant, confirm this explicitly and note any particularly well-optimized sections.
|