@diff-review-system/drs 3.3.1 → 4.0.0-rc.4
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/task/agents-md-updater.md +24 -0
- package/.pi/agents/task/changelog-updater.md +29 -0
- package/.pi/agents/task/review-issue-fixer.md +25 -0
- package/.pi/workflows/github-pr-describe-post.yaml +24 -0
- package/.pi/workflows/github-pr-describe.yaml +23 -0
- package/.pi/workflows/github-pr-post-comment.yaml +19 -0
- package/.pi/workflows/github-pr-review-post.yaml +32 -0
- package/.pi/workflows/github-pr-review.yaml +23 -0
- package/.pi/workflows/github-pr-show-changes.yaml +25 -0
- package/.pi/workflows/gitlab-mr-describe-post.yaml +22 -0
- package/.pi/workflows/gitlab-mr-describe.yaml +21 -0
- package/.pi/workflows/gitlab-mr-post-comment.yaml +17 -0
- package/.pi/workflows/gitlab-mr-review-code-quality.yaml +31 -0
- package/.pi/workflows/gitlab-mr-review-post-code-quality.yaml +40 -0
- package/.pi/workflows/gitlab-mr-review-post.yaml +30 -0
- package/.pi/workflows/gitlab-mr-review.yaml +21 -0
- package/.pi/workflows/gitlab-mr-show-changes.yaml +23 -0
- package/.pi/workflows/local-changelog-update.yaml +23 -0
- package/.pi/workflows/local-fix-review-issues.yaml +42 -0
- package/.pi/workflows/local-review.yaml +17 -0
- package/.pi/workflows/local-staged-review.yaml +17 -0
- package/.pi/workflows/local-update-agents-md.yaml +24 -0
- package/.pi/workflows/tag-changelog-update.yaml +26 -0
- package/README.md +214 -101
- package/dist/ci/runner.d.ts.map +1 -1
- package/dist/ci/runner.js +7 -8
- package/dist/ci/runner.js.map +1 -1
- package/dist/cli/index.js +69 -341
- 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 +24 -0
- package/dist/cli/run-agent.d.ts.map +1 -0
- package/dist/cli/run-agent.js +139 -0
- package/dist/cli/run-agent.js.map +1 -0
- package/dist/cli/run-agent.test.d.ts +2 -0
- package/dist/cli/run-agent.test.d.ts.map +1 -0
- package/dist/cli/run-agent.test.js +204 -0
- package/dist/cli/run-agent.test.js.map +1 -0
- package/dist/cli/workflow.d.ts +51 -0
- package/dist/cli/workflow.d.ts.map +1 -0
- package/dist/cli/workflow.js +1229 -0
- package/dist/cli/workflow.js.map +1 -0
- package/dist/cli/workflow.test.d.ts +2 -0
- package/dist/cli/workflow.test.d.ts.map +1 -0
- package/dist/cli/workflow.test.js +1410 -0
- package/dist/cli/workflow.test.js.map +1 -0
- 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 +7 -1
- package/dist/lib/comment-formatter.d.ts.map +1 -1
- package/dist/lib/comment-formatter.js +42 -1
- package/dist/lib/comment-formatter.js.map +1 -1
- package/dist/lib/comment-formatter.test.js +33 -0
- package/dist/lib/comment-formatter.test.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 +3 -3
- package/dist/lib/comment-poster.js.map +1 -1
- package/dist/lib/comment-poster.test.js +13 -3
- package/dist/lib/comment-poster.test.js.map +1 -1
- package/dist/lib/config-model-overrides.test.d.ts +0 -10
- package/dist/lib/config-model-overrides.test.d.ts.map +1 -1
- package/dist/lib/config-model-overrides.test.js +174 -210
- package/dist/lib/config-model-overrides.test.js.map +1 -1
- package/dist/lib/config.d.ts +111 -34
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +322 -83
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/config.test.js +282 -2
- package/dist/lib/config.test.js.map +1 -1
- package/dist/lib/context-loader.d.ts +4 -4
- package/dist/lib/context-loader.d.ts.map +1 -1
- package/dist/lib/context-loader.js +10 -7
- package/dist/lib/context-loader.js.map +1 -1
- package/dist/lib/context-loader.test.js +31 -26
- package/dist/lib/context-loader.test.js.map +1 -1
- package/dist/lib/description-executor.js +1 -1
- package/dist/lib/description-executor.js.map +1 -1
- package/dist/lib/description-executor.test.js +10 -3
- package/dist/lib/description-executor.test.js.map +1 -1
- package/dist/lib/diff-lines.d.ts +9 -0
- package/dist/lib/diff-lines.d.ts.map +1 -0
- package/dist/lib/diff-lines.js +32 -0
- package/dist/lib/diff-lines.js.map +1 -0
- package/dist/lib/diff-lines.test.d.ts +2 -0
- package/dist/lib/diff-lines.test.d.ts.map +1 -0
- package/dist/lib/diff-lines.test.js +13 -0
- package/dist/lib/diff-lines.test.js.map +1 -0
- package/dist/lib/logger.d.ts +1 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/review-core.d.ts.map +1 -1
- package/dist/lib/review-core.js +22 -27
- package/dist/lib/review-core.js.map +1 -1
- package/dist/lib/review-core.test.js +37 -23
- package/dist/lib/review-core.test.js.map +1 -1
- package/dist/lib/review-orchestrator.d.ts.map +1 -1
- package/dist/lib/review-orchestrator.js +11 -8
- package/dist/lib/review-orchestrator.js.map +1 -1
- package/dist/lib/review-orchestrator.test.js +27 -6
- package/dist/lib/review-orchestrator.test.js.map +1 -1
- package/dist/lib/unified-review-executor.d.ts +0 -2
- package/dist/lib/unified-review-executor.d.ts.map +1 -1
- package/dist/lib/unified-review-executor.js +7 -13
- package/dist/lib/unified-review-executor.js.map +1 -1
- package/dist/lib/unified-review-executor.test.js +2 -2
- package/dist/lib/unified-review-executor.test.js.map +1 -1
- package/dist/pi/sdk.d.ts.map +1 -1
- package/dist/pi/sdk.js +36 -11
- package/dist/pi/sdk.js.map +1 -1
- package/dist/pi/sdk.test.js +48 -9
- package/dist/pi/sdk.test.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 +53 -27
- package/dist/runtime/agent-loader.js.map +1 -1
- package/dist/runtime/agent-loader.test.js +116 -119
- package/dist/runtime/agent-loader.test.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 +12 -0
- package/dist/runtime/client.d.ts.map +1 -1
- package/dist/runtime/client.js +83 -58
- package/dist/runtime/client.js.map +1 -1
- package/dist/runtime/client.test.js +264 -15
- package/dist/runtime/client.test.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/dist/runtime/path-config.test.js +14 -14
- package/dist/runtime/path-config.test.js.map +1 -1
- package/package.json +3 -3
- 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/lib/config.js
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
import { readFileSync, existsSync } from 'fs';
|
|
2
|
-
import { resolve } from 'path';
|
|
1
|
+
import { readFileSync, existsSync, readdirSync, statSync } from 'fs';
|
|
2
|
+
import { basename, extname, join, resolve } from 'path';
|
|
3
3
|
import * as yaml from 'yaml';
|
|
4
|
+
import { requireAgentId } from './agent-id.js';
|
|
5
|
+
import { getBuiltInWorkflowPaths } from '../runtime/built-in-paths.js';
|
|
4
6
|
const DEFAULT_CONFIG = {
|
|
5
7
|
pi: {},
|
|
8
|
+
agents: {
|
|
9
|
+
default: {
|
|
10
|
+
model: getDefaultModelEnv() ?? 'anthropic/claude-sonnet-4-5-20250929',
|
|
11
|
+
skills: [],
|
|
12
|
+
},
|
|
13
|
+
},
|
|
6
14
|
gitlab: {
|
|
7
15
|
url: process.env.GITLAB_URL ?? 'https://gitlab.com',
|
|
8
16
|
token: process.env.GITLAB_TOKEN ?? '',
|
|
@@ -11,11 +19,7 @@ const DEFAULT_CONFIG = {
|
|
|
11
19
|
token: process.env.GITHUB_TOKEN ?? '',
|
|
12
20
|
},
|
|
13
21
|
review: {
|
|
14
|
-
agents: ['
|
|
15
|
-
default: {
|
|
16
|
-
model: process.env.REVIEW_DEFAULT_MODEL ?? 'anthropic/claude-sonnet-4-5-20250929',
|
|
17
|
-
skills: [],
|
|
18
|
-
},
|
|
22
|
+
agents: ['review/unified-reviewer'],
|
|
19
23
|
ignorePatterns: [
|
|
20
24
|
'*.test.ts',
|
|
21
25
|
'*.spec.ts',
|
|
@@ -27,12 +31,10 @@ const DEFAULT_CONFIG = {
|
|
|
27
31
|
],
|
|
28
32
|
describe: {
|
|
29
33
|
enabled: false,
|
|
30
|
-
postDescription: false,
|
|
31
34
|
},
|
|
32
35
|
cursorFixLinks: {
|
|
33
36
|
enabled: false,
|
|
34
37
|
},
|
|
35
|
-
postErrorComment: false,
|
|
36
38
|
},
|
|
37
39
|
contextCompression: {
|
|
38
40
|
enabled: true,
|
|
@@ -46,27 +48,126 @@ const DEFAULT_CONFIG = {
|
|
|
46
48
|
includeProjectContext: true,
|
|
47
49
|
},
|
|
48
50
|
};
|
|
51
|
+
function isRecord(value) {
|
|
52
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
53
|
+
}
|
|
54
|
+
function isWorkflowFileName(fileName) {
|
|
55
|
+
return fileName.endsWith('.yaml') || fileName.endsWith('.yml');
|
|
56
|
+
}
|
|
57
|
+
function validateWorkflowDefinition(workflowName, workflow, sourcePath) {
|
|
58
|
+
if (!isRecord(workflow) || !isRecord(workflow.nodes)) {
|
|
59
|
+
throw new Error(`Workflow "${workflowName}" in ${sourcePath} must define a nodes object.`);
|
|
60
|
+
}
|
|
61
|
+
return workflow;
|
|
62
|
+
}
|
|
63
|
+
function loadWorkflowFile(filePath) {
|
|
64
|
+
const parsed = yaml.parse(readFileSync(filePath, 'utf-8')) ?? {};
|
|
65
|
+
if (!isRecord(parsed)) {
|
|
66
|
+
throw new Error(`Workflow file ${filePath} must contain a YAML object.`);
|
|
67
|
+
}
|
|
68
|
+
if (parsed.workflows !== undefined) {
|
|
69
|
+
throw new Error(`Workflow file ${filePath} must define one workflow directly.`);
|
|
70
|
+
}
|
|
71
|
+
const workflowName = parsed.name === undefined ? basename(filePath, extname(filePath)) : parsed.name;
|
|
72
|
+
if (typeof workflowName !== 'string' || !workflowName.trim()) {
|
|
73
|
+
throw new Error(`Workflow file ${filePath} must use a non-empty string name.`);
|
|
74
|
+
}
|
|
75
|
+
const workflow = { ...parsed };
|
|
76
|
+
delete workflow.name;
|
|
77
|
+
return {
|
|
78
|
+
[workflowName.trim()]: validateWorkflowDefinition(workflowName.trim(), workflow, filePath),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function loadWorkflowFilesFromDirectory(directoryPath, source) {
|
|
82
|
+
if (!existsSync(directoryPath)) {
|
|
83
|
+
return { workflows: {}, sources: {} };
|
|
84
|
+
}
|
|
85
|
+
if (!statSync(directoryPath).isDirectory()) {
|
|
86
|
+
throw new Error(`Workflow path ${directoryPath} exists but is not a directory.`);
|
|
87
|
+
}
|
|
88
|
+
const workflows = {};
|
|
89
|
+
const sources = {};
|
|
90
|
+
for (const fileName of readdirSync(directoryPath).filter(isWorkflowFileName).sort()) {
|
|
91
|
+
const fileWorkflows = loadWorkflowFile(join(directoryPath, fileName));
|
|
92
|
+
for (const workflowName of Object.keys(fileWorkflows)) {
|
|
93
|
+
sources[workflowName] = source;
|
|
94
|
+
}
|
|
95
|
+
Object.assign(workflows, fileWorkflows);
|
|
96
|
+
}
|
|
97
|
+
return { workflows, sources };
|
|
98
|
+
}
|
|
99
|
+
function loadBuiltInWorkflowFiles() {
|
|
100
|
+
const result = {
|
|
101
|
+
workflows: {},
|
|
102
|
+
sources: {},
|
|
103
|
+
};
|
|
104
|
+
for (const directory of getBuiltInWorkflowPaths()) {
|
|
105
|
+
const loaded = loadWorkflowFilesFromDirectory(directory, 'packaged');
|
|
106
|
+
Object.assign(result.workflows, loaded.workflows);
|
|
107
|
+
Object.assign(result.sources, loaded.sources);
|
|
108
|
+
}
|
|
109
|
+
return result;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Load map of workflow names to their source origin (packaged or project).
|
|
113
|
+
*/
|
|
114
|
+
export function loadWorkflowSources(projectPath) {
|
|
115
|
+
const basePath = projectPath ?? process.cwd();
|
|
116
|
+
const builtIn = loadBuiltInWorkflowFiles();
|
|
117
|
+
const project = loadWorkflowFilesFromDirectory(resolve(basePath, '.drs/workflows'), 'project');
|
|
118
|
+
// Project workflows take precedence, so they override packaged sources.
|
|
119
|
+
return { ...builtIn.sources, ...project.sources };
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Load map of workflow names to their source origin, including whether
|
|
123
|
+
* a project workflow is overriding an existing packaged workflow.
|
|
124
|
+
*/
|
|
125
|
+
export function loadWorkflowSourceInfo(projectPath) {
|
|
126
|
+
const basePath = projectPath ?? process.cwd();
|
|
127
|
+
const builtIn = loadBuiltInWorkflowFiles();
|
|
128
|
+
const project = loadWorkflowFilesFromDirectory(resolve(basePath, '.drs/workflows'), 'project');
|
|
129
|
+
const info = {};
|
|
130
|
+
for (const name of Object.keys(builtIn.sources)) {
|
|
131
|
+
info[name] = { source: 'packaged', overridesPackaged: false };
|
|
132
|
+
}
|
|
133
|
+
for (const name of Object.keys(project.sources)) {
|
|
134
|
+
info[name] = { source: 'project', overridesPackaged: name in builtIn.sources };
|
|
135
|
+
}
|
|
136
|
+
return info;
|
|
137
|
+
}
|
|
49
138
|
/**
|
|
50
139
|
* Load configuration from various sources with precedence:
|
|
51
|
-
* 1.
|
|
52
|
-
* 2.
|
|
53
|
-
* 3. .drs/
|
|
54
|
-
* 4. .
|
|
55
|
-
* 5.
|
|
140
|
+
* 1. Default values
|
|
141
|
+
* 2. Built-in workflow files
|
|
142
|
+
* 3. .drs/workflows/*.yaml
|
|
143
|
+
* 4. .drs/drs.config.yaml
|
|
144
|
+
* 5. .gitlab-review.yml
|
|
145
|
+
* 6. Environment variables
|
|
146
|
+
* 7. CLI arguments (passed as overrides)
|
|
56
147
|
*/
|
|
57
148
|
export function loadConfig(projectPath, overrides) {
|
|
58
149
|
const basePath = projectPath ?? process.cwd();
|
|
59
|
-
|
|
150
|
+
const builtIn = loadBuiltInWorkflowFiles();
|
|
151
|
+
let config = mergeConfig({ ...DEFAULT_CONFIG }, { workflows: builtIn.workflows });
|
|
152
|
+
const projectWorkflowPath = resolve(basePath, '.drs/workflows');
|
|
153
|
+
const project = loadWorkflowFilesFromDirectory(projectWorkflowPath, 'project');
|
|
154
|
+
config = mergeConfig(config, { workflows: project.workflows });
|
|
60
155
|
// Try loading from .drs/drs.config.yaml
|
|
61
156
|
const drsConfigPath = resolve(basePath, '.drs/drs.config.yaml');
|
|
62
157
|
if (existsSync(drsConfigPath)) {
|
|
63
|
-
const fileConfig = yaml.parse(readFileSync(drsConfigPath, 'utf-8'));
|
|
158
|
+
const fileConfig = yaml.parse(readFileSync(drsConfigPath, 'utf-8')) ?? {};
|
|
159
|
+
rejectLegacyAgentConfigKeys(fileConfig, drsConfigPath);
|
|
160
|
+
rejectRemovedReviewPostingConfigKeys(fileConfig, drsConfigPath);
|
|
161
|
+
rejectInlineWorkflowConfig(fileConfig, drsConfigPath);
|
|
64
162
|
config = mergeConfig(config, fileConfig);
|
|
65
163
|
}
|
|
66
164
|
// Try loading from .gitlab-review.yml
|
|
67
165
|
const gitlabReviewPath = resolve(basePath, '.gitlab-review.yml');
|
|
68
166
|
if (existsSync(gitlabReviewPath)) {
|
|
69
|
-
const fileConfig = yaml.parse(readFileSync(gitlabReviewPath, 'utf-8'));
|
|
167
|
+
const fileConfig = yaml.parse(readFileSync(gitlabReviewPath, 'utf-8')) ?? {};
|
|
168
|
+
rejectLegacyAgentConfigKeys(fileConfig, gitlabReviewPath);
|
|
169
|
+
rejectRemovedReviewPostingConfigKeys(fileConfig, gitlabReviewPath);
|
|
170
|
+
rejectInlineWorkflowConfig(fileConfig, gitlabReviewPath);
|
|
70
171
|
config = mergeConfig(config, fileConfig);
|
|
71
172
|
}
|
|
72
173
|
// Apply environment variable overrides
|
|
@@ -83,14 +184,14 @@ export function loadConfig(projectPath, overrides) {
|
|
|
83
184
|
// Environment variable is always simple string format (comma-separated)
|
|
84
185
|
config.review.agents = process.env.REVIEW_AGENTS.split(',').map((a) => a.trim());
|
|
85
186
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
config.
|
|
89
|
-
model:
|
|
187
|
+
const defaultModelEnv = getDefaultModelEnv();
|
|
188
|
+
if (defaultModelEnv) {
|
|
189
|
+
config.agents.default = mergeSection(config.agents.default, {
|
|
190
|
+
model: defaultModelEnv,
|
|
90
191
|
});
|
|
91
192
|
}
|
|
92
193
|
if (process.env.REVIEW_MODE) {
|
|
93
|
-
console.warn('⚠ REVIEW_MODE is deprecated. Configure review.agents explicitly (include unified-reviewer when needed).');
|
|
194
|
+
console.warn('⚠ REVIEW_MODE is deprecated. Configure review.agents explicitly (include review/unified-reviewer when needed).');
|
|
94
195
|
config.review.mode = process.env.REVIEW_MODE;
|
|
95
196
|
}
|
|
96
197
|
if (process.env.REVIEW_UNIFIED_MODEL) {
|
|
@@ -107,7 +208,7 @@ export function loadConfig(projectPath, overrides) {
|
|
|
107
208
|
};
|
|
108
209
|
}
|
|
109
210
|
if (process.env.REVIEW_THINKING_LEVEL) {
|
|
110
|
-
config.
|
|
211
|
+
config.agents.default = mergeSection(config.agents.default, {
|
|
111
212
|
thinkingLevel: process.env.REVIEW_THINKING_LEVEL,
|
|
112
213
|
});
|
|
113
214
|
}
|
|
@@ -117,12 +218,9 @@ export function loadConfig(projectPath, overrides) {
|
|
|
117
218
|
if (process.env.REVIEW_SKIP_BRANCH_CHECK === 'true') {
|
|
118
219
|
config.review.skipBranchCheck = true;
|
|
119
220
|
}
|
|
120
|
-
if (process.env.REVIEW_POST_ERROR_COMMENT === 'true') {
|
|
121
|
-
config.review.postErrorComment = true;
|
|
122
|
-
}
|
|
123
221
|
// Validate required fields
|
|
124
222
|
if (!getDefaultModel(config)) {
|
|
125
|
-
throw new Error('Default model is required. Set
|
|
223
|
+
throw new Error('Default model is required. Set agents.default.model in .drs/drs.config.yaml or DRS_DEFAULT_MODEL environment variable.\n' +
|
|
126
224
|
'Run "drs init" to configure your project.');
|
|
127
225
|
}
|
|
128
226
|
// Apply CLI overrides
|
|
@@ -130,7 +228,7 @@ export function loadConfig(projectPath, overrides) {
|
|
|
130
228
|
config = mergeConfig(config, overrides);
|
|
131
229
|
}
|
|
132
230
|
if (config.review.mode) {
|
|
133
|
-
console.warn('⚠ review.mode is deprecated. Configure review.agents explicitly (include unified-reviewer when needed).');
|
|
231
|
+
console.warn('⚠ review.mode is deprecated. Configure review.agents explicitly (include review/unified-reviewer when needed).');
|
|
134
232
|
const validModes = ['multi-agent', 'unified', 'hybrid'];
|
|
135
233
|
if (!validModes.includes(config.review.mode)) {
|
|
136
234
|
throw new Error(`Invalid review mode "${config.review.mode}". Valid options: ${validModes.join(', ')}`);
|
|
@@ -141,6 +239,46 @@ export function loadConfig(projectPath, overrides) {
|
|
|
141
239
|
}
|
|
142
240
|
return normalizeRuntimeConfig(config);
|
|
143
241
|
}
|
|
242
|
+
function rejectLegacyAgentConfigKeys(fileConfig, sourcePath) {
|
|
243
|
+
const reviewConfig = fileConfig.review;
|
|
244
|
+
if (!reviewConfig || typeof reviewConfig !== 'object') {
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
const migrations = [];
|
|
248
|
+
if ('default' in reviewConfig)
|
|
249
|
+
migrations.push('review.default -> agents.default');
|
|
250
|
+
if ('defaultModel' in reviewConfig)
|
|
251
|
+
migrations.push('review.defaultModel -> agents.default.model');
|
|
252
|
+
if ('paths' in reviewConfig)
|
|
253
|
+
migrations.push('review.paths -> agents.paths');
|
|
254
|
+
if (migrations.length > 0) {
|
|
255
|
+
throw new Error(`Config file ${sourcePath} uses legacy DRS 3.x agent config keys: ${migrations.join(', ')}. ` +
|
|
256
|
+
'DRS 4.0 requires top-level agent configuration. Move model/skill defaults to agents.default and custom paths to agents.paths.');
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
function rejectInlineWorkflowConfig(fileConfig, sourcePath) {
|
|
260
|
+
if (!isRecord(fileConfig) || fileConfig.workflows === undefined) {
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
throw new Error(`Config file ${sourcePath} cannot define top-level workflows.`);
|
|
264
|
+
}
|
|
265
|
+
function rejectRemovedReviewPostingConfigKeys(fileConfig, sourcePath) {
|
|
266
|
+
if (!isRecord(fileConfig) || !isRecord(fileConfig.review)) {
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
const removedKeys = [];
|
|
270
|
+
if (Object.prototype.hasOwnProperty.call(fileConfig.review, 'postErrorComment')) {
|
|
271
|
+
removedKeys.push('review.postErrorComment');
|
|
272
|
+
}
|
|
273
|
+
if (isRecord(fileConfig.review.describe) &&
|
|
274
|
+
Object.prototype.hasOwnProperty.call(fileConfig.review.describe, 'postDescription')) {
|
|
275
|
+
removedKeys.push('review.describe.postDescription');
|
|
276
|
+
}
|
|
277
|
+
if (removedKeys.length > 0) {
|
|
278
|
+
throw new Error(`Config file ${sourcePath} uses removed DRS 4.0 review posting keys: ${removedKeys.join(', ')}. ` +
|
|
279
|
+
'Run posting explicitly with workflows, or use github-pr-describe-post/gitlab-mr-describe-post when updating PR/MR descriptions.');
|
|
280
|
+
}
|
|
281
|
+
}
|
|
144
282
|
/**
|
|
145
283
|
* Deep merge two config objects, skipping undefined values
|
|
146
284
|
*/
|
|
@@ -148,6 +286,9 @@ function mergeConfig(base, override) {
|
|
|
148
286
|
return {
|
|
149
287
|
pi: mergeSection(base.pi, override.pi),
|
|
150
288
|
opencode: mergeSection(base.opencode, override.opencode),
|
|
289
|
+
agents: mergeSection(base.agents, override.agents),
|
|
290
|
+
workflows: mergeSection(base.workflows, override.workflows),
|
|
291
|
+
workflow: mergeSection(base.workflow, override.workflow),
|
|
151
292
|
gitlab: mergeSection(base.gitlab, override.gitlab),
|
|
152
293
|
github: mergeSection(base.github, override.github),
|
|
153
294
|
review: mergeSection(base.review, override.review),
|
|
@@ -168,8 +309,27 @@ function normalizeRuntimeConfig(config) {
|
|
|
168
309
|
...(legacyRuntime.provider ?? {}),
|
|
169
310
|
...(piRuntime.provider ?? {}),
|
|
170
311
|
};
|
|
312
|
+
const mergedRuntimeTimeouts = {
|
|
313
|
+
...(legacyRuntime.runtime ?? {}),
|
|
314
|
+
...(piRuntime.runtime ?? {}),
|
|
315
|
+
};
|
|
316
|
+
const legacyProviderRetry = legacyRuntime.retry
|
|
317
|
+
?.provider;
|
|
318
|
+
const piProviderRetry = piRuntime.retry?.provider;
|
|
319
|
+
const mergedProviderRetry = {
|
|
320
|
+
...(legacyProviderRetry ?? {}),
|
|
321
|
+
...(piProviderRetry ?? {}),
|
|
322
|
+
};
|
|
171
323
|
const normalizedRuntime = {
|
|
172
324
|
provider: Object.keys(mergedProvider).length > 0 ? mergedProvider : undefined,
|
|
325
|
+
runtime: Object.keys(mergedRuntimeTimeouts).length > 0
|
|
326
|
+
? mergedRuntimeTimeouts
|
|
327
|
+
: undefined,
|
|
328
|
+
retry: Object.keys(mergedProviderRetry).length > 0
|
|
329
|
+
? {
|
|
330
|
+
provider: mergedProviderRetry,
|
|
331
|
+
}
|
|
332
|
+
: undefined,
|
|
173
333
|
};
|
|
174
334
|
return {
|
|
175
335
|
...config,
|
|
@@ -191,7 +351,6 @@ function mergeSection(base, override) {
|
|
|
191
351
|
for (const key in override) {
|
|
192
352
|
const value = override[key];
|
|
193
353
|
if (value !== undefined) {
|
|
194
|
-
// TypeScript knows that value is T[Extract<keyof T, string>] which is assignable to T[keyof T]
|
|
195
354
|
result[key] = value;
|
|
196
355
|
}
|
|
197
356
|
}
|
|
@@ -208,11 +367,11 @@ export function validateConfig(config, platform) {
|
|
|
208
367
|
if (platform === 'github' && !config.github.token) {
|
|
209
368
|
throw new Error('GitHub token is required. Set GITHUB_TOKEN environment variable or configure in config file');
|
|
210
369
|
}
|
|
211
|
-
if (
|
|
370
|
+
if (getReviewAgentIds(config).length === 0) {
|
|
212
371
|
throw new Error('At least one review agent must be configured');
|
|
213
372
|
}
|
|
214
373
|
if (!getDefaultModel(config)) {
|
|
215
|
-
throw new Error('Default model is required. Run "drs init" to configure or set
|
|
374
|
+
throw new Error('Default model is required. Run "drs init" to configure agents.default.model or set DRS_DEFAULT_MODEL environment variable.');
|
|
216
375
|
}
|
|
217
376
|
}
|
|
218
377
|
/**
|
|
@@ -255,69 +414,144 @@ export function normalizeAgentConfig(agents) {
|
|
|
255
414
|
return agent;
|
|
256
415
|
});
|
|
257
416
|
}
|
|
417
|
+
function dedupeStrings(values) {
|
|
418
|
+
return Array.from(new Set(values.map((value) => value.trim()).filter((value) => value.length > 0)));
|
|
419
|
+
}
|
|
420
|
+
function getNamespaceDefaults(config, namespace) {
|
|
421
|
+
return config.agents.namespaces?.[namespace] ?? {};
|
|
422
|
+
}
|
|
423
|
+
function getAgentOverride(config, agentId) {
|
|
424
|
+
return config.agents.overrides?.[agentId] ?? {};
|
|
425
|
+
}
|
|
426
|
+
function getDefaultModelEnv() {
|
|
427
|
+
return process.env.DRS_DEFAULT_MODEL ?? process.env.REVIEW_DEFAULT_MODEL ?? undefined;
|
|
428
|
+
}
|
|
429
|
+
function getAgentModelEnv(agentId) {
|
|
430
|
+
const suffix = agentId.toUpperCase().replace(/[^A-Z0-9]/g, '_');
|
|
431
|
+
return process.env[`DRS_AGENT_${suffix}_MODEL`] ?? process.env[`REVIEW_AGENT_${suffix}_MODEL`];
|
|
432
|
+
}
|
|
433
|
+
function mergeToolSettings(...settings) {
|
|
434
|
+
const merged = {};
|
|
435
|
+
for (const setting of settings) {
|
|
436
|
+
if (!setting) {
|
|
437
|
+
continue;
|
|
438
|
+
}
|
|
439
|
+
for (const [toolName, enabled] of Object.entries(setting)) {
|
|
440
|
+
if (typeof enabled === 'boolean') {
|
|
441
|
+
merged[toolName] = enabled;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
return Object.keys(merged).length > 0 ? merged : undefined;
|
|
446
|
+
}
|
|
447
|
+
function mergeRunSettings(...settings) {
|
|
448
|
+
const merged = {};
|
|
449
|
+
for (const setting of settings) {
|
|
450
|
+
if (!setting) {
|
|
451
|
+
continue;
|
|
452
|
+
}
|
|
453
|
+
if (setting.prompt !== undefined)
|
|
454
|
+
merged.prompt = setting.prompt;
|
|
455
|
+
if (setting.promptFile !== undefined)
|
|
456
|
+
merged.promptFile = setting.promptFile;
|
|
457
|
+
if (setting.output !== undefined)
|
|
458
|
+
merged.output = setting.output;
|
|
459
|
+
if (setting.json !== undefined)
|
|
460
|
+
merged.json = setting.json;
|
|
461
|
+
}
|
|
462
|
+
return merged;
|
|
463
|
+
}
|
|
258
464
|
export function getDefaultModel(config) {
|
|
259
|
-
return
|
|
260
|
-
config.review.defaultModel ??
|
|
261
|
-
process.env.REVIEW_DEFAULT_MODEL ??
|
|
262
|
-
undefined);
|
|
465
|
+
return config.agents.default?.model ?? getDefaultModelEnv();
|
|
263
466
|
}
|
|
264
467
|
export function getDefaultThinkingLevel(config) {
|
|
265
|
-
return config.
|
|
468
|
+
return config.agents.default?.thinkingLevel;
|
|
469
|
+
}
|
|
470
|
+
export function resolveAgentThinkingLevel(config, agentId) {
|
|
471
|
+
const { namespace } = requireAgentId(agentId);
|
|
472
|
+
return (getAgentOverride(config, agentId).thinkingLevel ??
|
|
473
|
+
getNamespaceDefaults(config, namespace).thinkingLevel ??
|
|
474
|
+
getDefaultThinkingLevel(config));
|
|
266
475
|
}
|
|
267
476
|
export function getDefaultSkills(config) {
|
|
268
|
-
|
|
269
|
-
return [];
|
|
270
|
-
}
|
|
271
|
-
return config.review.default.skills.map(String).filter((skill) => skill.length > 0);
|
|
477
|
+
return dedupeStrings((config.agents.default?.skills ?? []).map(String));
|
|
272
478
|
}
|
|
273
|
-
function
|
|
274
|
-
const
|
|
275
|
-
const
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
479
|
+
export function resolveAgentSkills(config, agentId, definitionSkills = [], additionalSkills = [], precomputedReviewAgentConfig) {
|
|
480
|
+
const { namespace } = requireAgentId(agentId);
|
|
481
|
+
const namespaceDefaults = getNamespaceDefaults(config, namespace);
|
|
482
|
+
const agentOverride = getAgentOverride(config, agentId);
|
|
483
|
+
const reviewAgentConfig = precomputedReviewAgentConfig === undefined
|
|
484
|
+
? normalizeAgentConfig(config.review.agents).find((agent) => agent.name === agentId)
|
|
485
|
+
: precomputedReviewAgentConfig;
|
|
486
|
+
return dedupeStrings([
|
|
487
|
+
...(config.agents.default?.skills ?? []),
|
|
488
|
+
...(namespaceDefaults.skills ?? []),
|
|
489
|
+
...definitionSkills,
|
|
490
|
+
...(agentOverride.skills ?? []),
|
|
491
|
+
...(reviewAgentConfig?.skills ?? []),
|
|
492
|
+
...additionalSkills,
|
|
493
|
+
]);
|
|
494
|
+
}
|
|
495
|
+
export function resolveAgentModel(config, agentId, explicitModel) {
|
|
496
|
+
const { namespace } = requireAgentId(agentId);
|
|
497
|
+
const envModel = getAgentModelEnv(agentId);
|
|
498
|
+
return (explicitModel ??
|
|
499
|
+
envModel ??
|
|
500
|
+
getAgentOverride(config, agentId).model ??
|
|
501
|
+
getNamespaceDefaults(config, namespace).model ??
|
|
502
|
+
getDefaultModel(config));
|
|
503
|
+
}
|
|
504
|
+
export function resolveRuntimeAgentModel(config, agentId, definitionModel) {
|
|
505
|
+
const { namespace } = requireAgentId(agentId);
|
|
506
|
+
return (getAgentModelEnv(agentId) ??
|
|
507
|
+
getAgentOverride(config, agentId).model ??
|
|
508
|
+
definitionModel ??
|
|
509
|
+
getNamespaceDefaults(config, namespace).model ??
|
|
510
|
+
getDefaultModel(config));
|
|
511
|
+
}
|
|
512
|
+
export function resolveAgentTools(config, agentId, definitionTools) {
|
|
513
|
+
const { namespace } = requireAgentId(agentId);
|
|
514
|
+
return mergeToolSettings(config.agents.default?.tools, getNamespaceDefaults(config, namespace).tools, definitionTools, getAgentOverride(config, agentId).tools);
|
|
515
|
+
}
|
|
516
|
+
export function resolveAgentRunConfig(config, agentId) {
|
|
517
|
+
const { namespace } = requireAgentId(agentId);
|
|
518
|
+
return mergeRunSettings(config.agents.default?.run, getNamespaceDefaults(config, namespace).run, getAgentOverride(config, agentId).run);
|
|
283
519
|
}
|
|
284
520
|
/**
|
|
285
|
-
* Extract effective agent
|
|
286
|
-
*
|
|
287
|
-
* Primary model: review.agents controls execution order and composition.
|
|
288
|
-
* Legacy compatibility:
|
|
289
|
-
* - mode=unified forces unified-reviewer when not explicitly configured.
|
|
290
|
-
* - mode=hybrid prepends unified-reviewer when not explicitly configured.
|
|
521
|
+
* Extract effective review agent ids from configuration.
|
|
291
522
|
*/
|
|
292
|
-
export function
|
|
293
|
-
|
|
294
|
-
|
|
523
|
+
export function getReviewAgentIds(config) {
|
|
524
|
+
return getReviewAgentIdsFromNormalized(normalizeAgentConfig(config.review.agents));
|
|
525
|
+
}
|
|
526
|
+
function getReviewAgentIdsFromNormalized(normalizedAgents) {
|
|
527
|
+
const configuredAgentIds = normalizedAgents.map((agent) => agent.name);
|
|
528
|
+
const deduped = dedupeStrings(configuredAgentIds);
|
|
529
|
+
for (const agentId of deduped) {
|
|
530
|
+
const { namespace } = requireAgentId(agentId);
|
|
531
|
+
if (namespace !== 'review') {
|
|
532
|
+
throw new Error(`Invalid review agent "${agentId}". Review agents must be in the "review" namespace.`);
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
return deduped;
|
|
295
536
|
}
|
|
296
537
|
/**
|
|
297
538
|
* Build model overrides from config and environment variables
|
|
298
539
|
* Precedence:
|
|
299
540
|
* 1. Per-agent model in config
|
|
300
|
-
* 2. Environment variable
|
|
301
|
-
* 3.
|
|
302
|
-
* 4.
|
|
303
|
-
*
|
|
541
|
+
* 2. Environment variable DRS_AGENT_<NAMESPACE>_<NAME>_MODEL
|
|
542
|
+
* 3. agents.overrides.<agent>.model
|
|
543
|
+
* 4. agents.namespaces.<namespace>.model
|
|
544
|
+
* 5. agents.default.model (falls back to DRS_DEFAULT_MODEL)
|
|
304
545
|
*/
|
|
305
546
|
export function getModelOverrides(config) {
|
|
306
547
|
const overrides = {};
|
|
307
548
|
const normalizedAgents = normalizeAgentConfig(config.review.agents);
|
|
308
549
|
const agentConfigByName = new Map(normalizedAgents.map((agent) => [agent.name, agent]));
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
const configuredAgent = agentConfigByName.get(agentName);
|
|
313
|
-
// Check per-agent environment variable (e.g., REVIEW_AGENT_SECURITY_MODEL)
|
|
314
|
-
const envVarName = `REVIEW_AGENT_${agentName.toUpperCase().replace(/[^A-Z0-9]/g, '_')}_MODEL`;
|
|
315
|
-
const envModel = process.env[envVarName];
|
|
316
|
-
// Precedence: agent.model > env var > defaultModel
|
|
317
|
-
const model = configuredAgent?.model ?? envModel ?? defaultModel;
|
|
550
|
+
for (const agentId of getReviewAgentIdsFromNormalized(normalizedAgents)) {
|
|
551
|
+
const configuredAgent = agentConfigByName.get(agentId);
|
|
552
|
+
const model = resolveAgentModel(config, agentId, configuredAgent?.model);
|
|
318
553
|
if (model) {
|
|
319
|
-
|
|
320
|
-
overrides[`review/${agentName}`] = model;
|
|
554
|
+
overrides[agentId] = model;
|
|
321
555
|
}
|
|
322
556
|
}
|
|
323
557
|
return overrides;
|
|
@@ -327,14 +561,13 @@ export function getModelOverrides(config) {
|
|
|
327
561
|
* Precedence:
|
|
328
562
|
* 1. review.unified.model in config
|
|
329
563
|
* 2. Environment variable REVIEW_UNIFIED_MODEL
|
|
330
|
-
* 3. review.defaultModel in config (fallback)
|
|
331
|
-
* 4. Environment variable REVIEW_DEFAULT_MODEL (fallback)
|
|
332
564
|
*/
|
|
333
565
|
export function getUnifiedModelOverride(config) {
|
|
334
566
|
const overrides = {};
|
|
335
|
-
const
|
|
567
|
+
const agentId = 'review/unified-reviewer';
|
|
568
|
+
const unifiedModel = config.review.unified?.model ?? process.env.REVIEW_UNIFIED_MODEL;
|
|
336
569
|
if (unifiedModel) {
|
|
337
|
-
overrides[
|
|
570
|
+
overrides[agentId] = unifiedModel;
|
|
338
571
|
}
|
|
339
572
|
return overrides;
|
|
340
573
|
}
|
|
@@ -343,15 +576,21 @@ export function getUnifiedModelOverride(config) {
|
|
|
343
576
|
* Precedence:
|
|
344
577
|
* 1. describe.model in config
|
|
345
578
|
* 2. Environment variable DESCRIBE_MODEL
|
|
346
|
-
* 3.
|
|
347
|
-
* 4.
|
|
579
|
+
* 3. agents.overrides["describe/pr-describer"].model
|
|
580
|
+
* 4. agents.namespaces.describe.model
|
|
581
|
+
* 5. agents.default.model (falls back to DRS_DEFAULT_MODEL)
|
|
348
582
|
*/
|
|
349
583
|
export function getDescriberModelOverride(config) {
|
|
350
584
|
const overrides = {};
|
|
351
|
-
|
|
352
|
-
const describerModel = config.describe?.model ?? process.env.DESCRIBE_MODEL
|
|
585
|
+
const agentId = 'describe/pr-describer';
|
|
586
|
+
const describerModel = config.describe?.model ?? process.env.DESCRIBE_MODEL;
|
|
353
587
|
if (describerModel) {
|
|
354
|
-
overrides[
|
|
588
|
+
overrides[agentId] = describerModel;
|
|
589
|
+
return overrides;
|
|
590
|
+
}
|
|
591
|
+
const genericModel = resolveAgentModel(config, agentId);
|
|
592
|
+
if (genericModel) {
|
|
593
|
+
overrides[agentId] = genericModel;
|
|
355
594
|
}
|
|
356
595
|
return overrides;
|
|
357
596
|
}
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|