prism-pr 1.0.0-alpha.69 → 1.0.0-alpha.70
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/README.md +9 -1
- package/dist/ai/agents/shared/finding-schema.d.ts +3 -3
- package/dist/ai/agents/shared/finding-schema.js +3 -3
- package/dist/ai/agents/shared/prompt-builder.d.ts.map +1 -1
- package/dist/ai/agents/shared/prompt-builder.js +14 -4
- package/dist/ai/agents/shared/prompt-builder.js.map +1 -1
- package/dist/ai/orchestrator/orchestrator.d.ts +7 -0
- package/dist/ai/orchestrator/orchestrator.d.ts.map +1 -1
- package/dist/ai/orchestrator/orchestrator.js +139 -99
- package/dist/ai/orchestrator/orchestrator.js.map +1 -1
- package/dist/ai/orchestrator/slot-registry.d.ts +19 -0
- package/dist/ai/orchestrator/slot-registry.d.ts.map +1 -0
- package/dist/ai/orchestrator/slot-registry.js +44 -0
- package/dist/ai/orchestrator/slot-registry.js.map +1 -0
- package/dist/ai/providers/gemini-provider.d.ts +15 -0
- package/dist/ai/providers/gemini-provider.d.ts.map +1 -0
- package/dist/ai/providers/gemini-provider.js +116 -0
- package/dist/ai/providers/gemini-provider.js.map +1 -0
- package/dist/ai/providers/openai-provider.d.ts +15 -0
- package/dist/ai/providers/openai-provider.d.ts.map +1 -0
- package/dist/ai/providers/openai-provider.js +108 -0
- package/dist/ai/providers/openai-provider.js.map +1 -0
- package/dist/commands/review/start.js +3 -3
- package/dist/commands/review/start.js.map +1 -1
- package/dist/config/config-manager.d.ts +2 -0
- package/dist/config/config-manager.d.ts.map +1 -1
- package/dist/config/config-manager.js +91 -4
- package/dist/config/config-manager.js.map +1 -1
- package/dist/core/workflow-callbacks.d.ts +4 -4
- package/dist/core/workflow-callbacks.d.ts.map +1 -1
- package/dist/core/workflow-engine.d.ts.map +1 -1
- package/dist/core/workflow-engine.js +7 -5
- package/dist/core/workflow-engine.js.map +1 -1
- package/dist/tui/callbacks/tui-workflow-callbacks.d.ts +4 -4
- package/dist/tui/callbacks/tui-workflow-callbacks.d.ts.map +1 -1
- package/dist/tui/callbacks/tui-workflow-callbacks.js +25 -6
- package/dist/tui/callbacks/tui-workflow-callbacks.js.map +1 -1
- package/dist/tui/screen-router.d.ts.map +1 -1
- package/dist/tui/screen-router.js +6 -0
- package/dist/tui/screen-router.js.map +1 -1
- package/dist/tui/screens/home.js +1 -1
- package/dist/tui/screens/home.js.map +1 -1
- package/dist/tui/screens/review-running.d.ts +15 -0
- package/dist/tui/screens/review-running.d.ts.map +1 -1
- package/dist/tui/screens/review-running.js +53 -7
- package/dist/tui/screens/review-running.js.map +1 -1
- package/dist/tui/screens/settings-menu.d.ts +3 -0
- package/dist/tui/screens/settings-menu.d.ts.map +1 -0
- package/dist/tui/screens/settings-menu.js +35 -0
- package/dist/tui/screens/settings-menu.js.map +1 -0
- package/dist/tui/screens/settings-provider.d.ts +3 -0
- package/dist/tui/screens/settings-provider.d.ts.map +1 -0
- package/dist/tui/screens/settings-provider.js +105 -0
- package/dist/tui/screens/settings-provider.js.map +1 -0
- package/dist/tui/screens/settings.d.ts +1 -1
- package/dist/tui/screens/settings.d.ts.map +1 -1
- package/dist/tui/screens/settings.js +133 -20
- package/dist/tui/screens/settings.js.map +1 -1
- package/dist/tui/state/router-reducer.d.ts +1 -1
- package/dist/tui/state/router-reducer.d.ts.map +1 -1
- package/dist/tui/state/router-reducer.js.map +1 -1
- package/dist/tui/state/tui-reducer.d.ts +15 -0
- package/dist/tui/state/tui-reducer.d.ts.map +1 -1
- package/dist/tui/state/tui-reducer.js +27 -4
- package/dist/tui/state/tui-reducer.js.map +1 -1
- package/dist/tui/utils/agent-label.d.ts +3 -0
- package/dist/tui/utils/agent-label.d.ts.map +1 -0
- package/dist/tui/utils/agent-label.js +21 -0
- package/dist/tui/utils/agent-label.js.map +1 -0
- package/dist/types/config.d.ts +4 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/redact-secrets.d.ts +16 -0
- package/dist/utils/redact-secrets.d.ts.map +1 -0
- package/dist/utils/redact-secrets.js +33 -0
- package/dist/utils/redact-secrets.js.map +1 -0
- package/oclif.manifest.json +4 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,6 +16,8 @@ npm i -g prism-pr
|
|
|
16
16
|
- Bitbucket Cloud account with an Atlassian API token
|
|
17
17
|
- AI provider (one of):
|
|
18
18
|
- `ANTHROPIC_API_KEY` environment variable (preferred), or
|
|
19
|
+
- `OPENAI_API_KEY` environment variable, or
|
|
20
|
+
- `GEMINI_API_KEY` environment variable, or
|
|
19
21
|
- [Claude Code CLI](https://docs.anthropic.com/en/docs/claude-code) installed and authenticated
|
|
20
22
|
|
|
21
23
|
## Setup
|
|
@@ -151,7 +153,7 @@ prism guard check --pr 42 --suggest-rules
|
|
|
151
153
|
prism review start --workspace acme --repo app --pr 42 --suggest-rules
|
|
152
154
|
```
|
|
153
155
|
|
|
154
|
-
PRISM uses the same AI provider configured for reviews (auto-detects from `ANTHROPIC_API_KEY` or falls back to Claude Code CLI).
|
|
156
|
+
PRISM uses the same AI provider configured for reviews (auto-detects from `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, or `GEMINI_API_KEY`, then falls back to Claude Code CLI).
|
|
155
157
|
|
|
156
158
|
In the TUI, press `[g]` on any results screen (guard results or AI review findings) to generate rule suggestions on demand. Review, accept/reject, and apply to the manifest.
|
|
157
159
|
|
|
@@ -166,6 +168,10 @@ prism guard # guard-focused TUI
|
|
|
166
168
|
|
|
167
169
|
Launches a full Ink-based terminal UI with keyboard navigation.
|
|
168
170
|
|
|
171
|
+
In **Settings**, you now get a submenu:
|
|
172
|
+
- **Providers & API Keys**: provider selection (`auto`, `anthropic`, `openai`, `gemini`, `claude-code`) and optional Anthropic/OpenAI/Gemini key registration
|
|
173
|
+
- **Model Registry**: choose default model, set per-agent models, and add custom model IDs dynamically
|
|
174
|
+
|
|
169
175
|
### Guardian Angel section
|
|
170
176
|
|
|
171
177
|
- **Guard Check** — select workspace → repo → PR → run check
|
|
@@ -214,6 +220,8 @@ prism review start --workspace acme --repo app --pr 42 --verbose
|
|
|
214
220
|
|
|
215
221
|
# Pick a provider explicitly
|
|
216
222
|
prism review start --workspace acme --repo app --pr 42 --provider anthropic
|
|
223
|
+
prism review start --workspace acme --repo app --pr 42 --provider openai
|
|
224
|
+
prism review start --workspace acme --repo app --pr 42 --provider gemini
|
|
217
225
|
prism review start --workspace acme --repo app --pr 42 --provider claude-code
|
|
218
226
|
|
|
219
227
|
# Generate rule suggestions from findings
|
|
@@ -33,15 +33,15 @@ export declare const FINDING_TOOL_SCHEMA: {
|
|
|
33
33
|
};
|
|
34
34
|
readonly problem: {
|
|
35
35
|
readonly type: "string";
|
|
36
|
-
readonly maxLength:
|
|
36
|
+
readonly maxLength: 200;
|
|
37
37
|
};
|
|
38
38
|
readonly rationale: {
|
|
39
39
|
readonly type: "string";
|
|
40
|
-
readonly maxLength:
|
|
40
|
+
readonly maxLength: 200;
|
|
41
41
|
};
|
|
42
42
|
readonly suggestion: {
|
|
43
43
|
readonly type: "string";
|
|
44
|
-
readonly maxLength:
|
|
44
|
+
readonly maxLength: 200;
|
|
45
45
|
};
|
|
46
46
|
};
|
|
47
47
|
};
|
|
@@ -29,9 +29,9 @@ export const FINDING_TOOL_SCHEMA = {
|
|
|
29
29
|
severity: { enum: ['critical', 'high', 'medium', 'low', 'info'] },
|
|
30
30
|
category: { enum: FINDING_CATEGORIES },
|
|
31
31
|
title: { type: 'string', maxLength: 100 },
|
|
32
|
-
problem: { type: 'string', maxLength:
|
|
33
|
-
rationale: { type: 'string', maxLength:
|
|
34
|
-
suggestion: { type: 'string', maxLength:
|
|
32
|
+
problem: { type: 'string', maxLength: 200 },
|
|
33
|
+
rationale: { type: 'string', maxLength: 200 },
|
|
34
|
+
suggestion: { type: 'string', maxLength: 200 },
|
|
35
35
|
},
|
|
36
36
|
},
|
|
37
37
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../../../src/ai/agents/shared/prompt-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../../../src/ai/agents/shared/prompt-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AA2DxE,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,YAAY,EACtB,oBAAoB,CAAC,EAAE,MAAM,EAC7B,WAAW,CAAC,EAAE,UAAU,EAAE,GACzB,MAAM,CAgDR"}
|
|
@@ -18,11 +18,21 @@ You are reviewing a DIFF — NOT the full source file. Only changed lines and a
|
|
|
18
18
|
- If the diff shows a pattern that implies supporting code (e.g. \`takeUntil(this.destroy)\` implies \`ngOnDestroy\`, an import implies a declaration), ASSUME the supporting code exists in the invisible portion of the file unless there is direct evidence IN THE DIFF that it is missing (e.g. a new class that lacks the method).
|
|
19
19
|
- Only report issues about code you CAN see. Never speculate about code outside the diff.
|
|
20
20
|
- "I don't see X in the diff" is NOT the same as "X is missing from the file."`;
|
|
21
|
-
const LANGUAGE_INSTRUCTION = `##
|
|
21
|
+
const LANGUAGE_INSTRUCTION = `## Style (CRITICAL)
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
Write findings in Spanish, telegrama style — direct and concise. No rodeos, no hypothetical scenarios, no cascading alternatives.
|
|
24
|
+
|
|
25
|
+
**Per-field content:**
|
|
26
|
+
- \`problem\`: WHAT is wrong. One statement. No "with X users", no "podría causar", no inventadas.
|
|
27
|
+
- \`rationale\`: WHY it's wrong — technical root cause. No invented numbers ("50-200ms"), no hypothetical impact.
|
|
28
|
+
- \`suggestion\`: THE concrete fix. One action. No menu of options ("opción A o B o C"), no fallback chains.
|
|
29
|
+
|
|
30
|
+
**Hard length limits by severity:**
|
|
31
|
+
- \`critical\` / \`high\`: max 200 characters per field (1-2 short sentences)
|
|
32
|
+
- \`medium\` / \`low\` / \`info\`: max 100 characters per field (1 sentence)
|
|
33
|
+
|
|
34
|
+
Keep code identifiers (variables, functions, types, keywords) in their original language.
|
|
35
|
+
If you feel the need to explain more, stop — the developer will ask if they need detail.`;
|
|
26
36
|
/**
|
|
27
37
|
* Builds the severity focus instruction for agents.
|
|
28
38
|
* Lists only the severities at or above the threshold so the agent knows exactly what to report.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../../src/ai/agents/shared/prompt-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE;;;;;;;;;GASG;AACH,MAAM,0BAA0B,GAAG;;;;;;;;+EAQ4C,CAAC;AAEhF,MAAM,oBAAoB,GAAG
|
|
1
|
+
{"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../../src/ai/agents/shared/prompt-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,13 @@ export interface AgentProgressEvent {
|
|
|
53
53
|
fileIndex?: number;
|
|
54
54
|
totalFiles?: number;
|
|
55
55
|
skippedFilesCount?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Physical semaphore slot holding this work item, in [0, concurrency).
|
|
58
|
+
* Present on running/complete/failed/skipped events that correspond to a
|
|
59
|
+
* specific (agent, file) or batch work item. Absent on agent-level aggregate
|
|
60
|
+
* events (e.g., the final complete emitted after all files finish).
|
|
61
|
+
*/
|
|
62
|
+
slotIndex?: number;
|
|
56
63
|
}
|
|
57
64
|
export interface OrchestratorOptions {
|
|
58
65
|
repoConfig?: RepoConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/ai/orchestrator/orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/ai/orchestrator/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { RuleBasedStrategy } from './rule-based-strategy.js';
|
|
|
6
6
|
import { SkillRegistry } from '../skills/skill-registry.js';
|
|
7
7
|
import { resolveFrameworkRules } from '../agents/framework-rules/index.js';
|
|
8
8
|
import { Semaphore } from './semaphore.js';
|
|
9
|
+
import { SlotRegistry } from './slot-registry.js';
|
|
9
10
|
import { buildSingleFileContent } from '../agents/shared/content-builder.js';
|
|
10
11
|
import { computeFileHash } from '../../utils/hash.js';
|
|
11
12
|
// Severity sort order — lower index = higher priority
|
|
@@ -60,6 +61,7 @@ export class ReviewOrchestrator {
|
|
|
60
61
|
// Resolve concurrency: options.concurrency > repoConfig.concurrency > default 5
|
|
61
62
|
const concurrencyLimit = options?.concurrency ?? repoConfig?.concurrency ?? 5;
|
|
62
63
|
const semaphore = new Semaphore(concurrencyLimit);
|
|
64
|
+
const slotRegistry = new SlotRegistry(concurrencyLimit);
|
|
63
65
|
const maxTokens = repoConfig?.maxOutputTokens;
|
|
64
66
|
// Build the full file manifest for single-file context (all input files, not per-agent filtered)
|
|
65
67
|
const allFilesManifest = input.files.map((f) => ({
|
|
@@ -119,17 +121,33 @@ export class ReviewOrchestrator {
|
|
|
119
121
|
...(input.projectContext !== undefined ? { projectContext: input.projectContext } : {}),
|
|
120
122
|
context: agentContext,
|
|
121
123
|
};
|
|
122
|
-
safeEmit(onProgress, { agentId: spec.agentId, status: 'running', agentIndex, totalAgents });
|
|
123
124
|
const startMs = Date.now();
|
|
124
125
|
try {
|
|
125
|
-
const output = await semaphore.run(() =>
|
|
126
|
-
|
|
127
|
-
agentId: spec.agentId
|
|
128
|
-
status: '
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
126
|
+
const output = await semaphore.run(async () => {
|
|
127
|
+
// Slot assigned AFTER semaphore acquire so slotIndex reflects a real physical slot
|
|
128
|
+
const slotIndex = slotRegistry.acquire({ agentId: spec.agentId });
|
|
129
|
+
safeEmit(onProgress, { agentId: spec.agentId, status: 'running', agentIndex, totalAgents, slotIndex });
|
|
130
|
+
try {
|
|
131
|
+
const result = await agent.analyze(agentInput, agentProvider);
|
|
132
|
+
safeEmit(onProgress, {
|
|
133
|
+
agentId: spec.agentId,
|
|
134
|
+
status: 'complete',
|
|
135
|
+
agentIndex,
|
|
136
|
+
totalAgents,
|
|
137
|
+
findingsCount: result.findings.length,
|
|
138
|
+
durationMs: Date.now() - startMs,
|
|
139
|
+
slotIndex,
|
|
140
|
+
});
|
|
141
|
+
return result;
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
145
|
+
safeEmit(onProgress, { agentId: spec.agentId, status: 'failed', agentIndex, totalAgents, error: message, slotIndex });
|
|
146
|
+
throw err;
|
|
147
|
+
}
|
|
148
|
+
finally {
|
|
149
|
+
slotRegistry.release(slotIndex);
|
|
150
|
+
}
|
|
133
151
|
});
|
|
134
152
|
return {
|
|
135
153
|
agentId: spec.agentId,
|
|
@@ -142,7 +160,6 @@ export class ReviewOrchestrator {
|
|
|
142
160
|
catch (err) {
|
|
143
161
|
const message = err instanceof Error ? err.message : String(err);
|
|
144
162
|
this.logger.warn(`⚠ Agent ${spec.agentId} failed: ${message} — skipping`);
|
|
145
|
-
safeEmit(onProgress, { agentId: spec.agentId, status: 'failed', agentIndex, totalAgents, error: message });
|
|
146
163
|
return { agentId: spec.agentId, status: 'failed', error: message };
|
|
147
164
|
}
|
|
148
165
|
}
|
|
@@ -164,119 +181,142 @@ export class ReviewOrchestrator {
|
|
|
164
181
|
})());
|
|
165
182
|
const agentSetups = await Promise.all(agentPromises);
|
|
166
183
|
const batchResults = [];
|
|
167
|
-
const
|
|
184
|
+
const fileByFileSetups = [];
|
|
185
|
+
// First pass: partition batch/failed/not-found results from live file-by-file setups
|
|
168
186
|
for (const setup of agentSetups) {
|
|
169
|
-
// Batch-mode, not-found, and failed agents already have their result
|
|
170
187
|
if ('status' in setup) {
|
|
171
188
|
batchResults.push(setup);
|
|
172
189
|
continue;
|
|
173
190
|
}
|
|
174
|
-
|
|
175
|
-
const { agent, agentProvider, agentContext, agentFiles, agentIndex, totalFiles, effectiveContentMode, agentId } = setup;
|
|
191
|
+
const live = setup;
|
|
176
192
|
// Agent with 0 matching files → success with empty findings (not an error)
|
|
177
|
-
if (agentFiles.length === 0) {
|
|
178
|
-
safeEmit(onProgress, { agentId, status: 'complete', agentIndex, totalAgents, findingsCount: 0 });
|
|
179
|
-
batchResults.push({ agentId, status: 'success', findings: [], usage: { inputTokens: 0, outputTokens: 0 }, skippedCount: 0 });
|
|
193
|
+
if (live.agentFiles.length === 0) {
|
|
194
|
+
safeEmit(onProgress, { agentId: live.agentId, status: 'complete', agentIndex: live.agentIndex, totalAgents, findingsCount: 0 });
|
|
195
|
+
batchResults.push({ agentId: live.agentId, status: 'success', findings: [], usage: { inputTokens: 0, outputTokens: 0 }, skippedCount: 0 });
|
|
180
196
|
continue;
|
|
181
197
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
198
|
+
fileByFileSetups.push(live);
|
|
199
|
+
}
|
|
200
|
+
// Second pass: round-robin interleave (agent, file) pairs by file index.
|
|
201
|
+
// This prevents starvation: no agent consumes all semaphore slots before
|
|
202
|
+
// another agent's first file is enqueued.
|
|
203
|
+
const maxFiles = fileByFileSetups.length > 0
|
|
204
|
+
? Math.max(...fileByFileSetups.map((s) => s.agentFiles.length))
|
|
205
|
+
: 0;
|
|
206
|
+
const fileWorkItems = [];
|
|
207
|
+
for (let i = 0; i < maxFiles; i++) {
|
|
208
|
+
for (const setup of fileByFileSetups) {
|
|
209
|
+
if (i < setup.agentFiles.length) {
|
|
210
|
+
fileWorkItems.push({
|
|
211
|
+
agentId: setup.agentId,
|
|
212
|
+
agent: setup.agent,
|
|
213
|
+
agentProvider: setup.agentProvider,
|
|
214
|
+
agentContext: setup.agentContext,
|
|
215
|
+
file: setup.agentFiles[i],
|
|
216
|
+
agentIndex: setup.agentIndex,
|
|
217
|
+
fileIndex: i,
|
|
218
|
+
totalFiles: setup.totalFiles,
|
|
219
|
+
effectiveContentMode: setup.effectiveContentMode,
|
|
220
|
+
});
|
|
221
|
+
}
|
|
194
222
|
}
|
|
195
223
|
}
|
|
196
|
-
// Execute ALL file work items through the semaphore — maximum parallelism
|
|
224
|
+
// Execute ALL file work items through the semaphore — maximum parallelism.
|
|
225
|
+
// Each item is paired with a physical slotIndex via SlotRegistry so the TUI
|
|
226
|
+
// can visualize real concurrency occupancy.
|
|
197
227
|
const fileResults = await Promise.all(fileWorkItems.map((item) => semaphore.run(async () => {
|
|
198
|
-
const
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
if (
|
|
228
|
+
const slotIndex = slotRegistry.acquire({ agentId: item.agentId, filePath: item.file.newPath });
|
|
229
|
+
try {
|
|
230
|
+
const hash = computeFileHash(item.file);
|
|
231
|
+
// Cache skip logic
|
|
232
|
+
if (!forceReview && this.cacheRepo !== undefined) {
|
|
233
|
+
const cached = this.cacheRepo.lookup(prId, item.file.newPath, item.agentId);
|
|
234
|
+
if (cached !== undefined && cached.fileHash === hash && cached.outcome === 'clean') {
|
|
235
|
+
safeEmit(onProgress, {
|
|
236
|
+
agentId: item.agentId,
|
|
237
|
+
status: 'skipped',
|
|
238
|
+
agentIndex: item.agentIndex,
|
|
239
|
+
totalAgents,
|
|
240
|
+
filePath: item.file.newPath,
|
|
241
|
+
fileIndex: item.fileIndex,
|
|
242
|
+
totalFiles: item.totalFiles,
|
|
243
|
+
slotIndex,
|
|
244
|
+
});
|
|
245
|
+
return { agentId: item.agentId, status: 'skipped', findings: [], usage: { inputTokens: 0, outputTokens: 0 }, filePath: item.file.newPath };
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
safeEmit(onProgress, {
|
|
249
|
+
agentId: item.agentId,
|
|
250
|
+
status: 'running',
|
|
251
|
+
agentIndex: item.agentIndex,
|
|
252
|
+
totalAgents,
|
|
253
|
+
filePath: item.file.newPath,
|
|
254
|
+
fileIndex: item.fileIndex,
|
|
255
|
+
totalFiles: item.totalFiles,
|
|
256
|
+
slotIndex,
|
|
257
|
+
});
|
|
258
|
+
try {
|
|
259
|
+
const userContent = buildSingleFileContent(item.file, input.prMetadata, allFilesManifest, item.effectiveContentMode);
|
|
260
|
+
const singleFileInput = {
|
|
261
|
+
files: [item.file],
|
|
262
|
+
prMetadata: input.prMetadata,
|
|
263
|
+
...(input.projectContext !== undefined ? { projectContext: input.projectContext } : {}),
|
|
264
|
+
context: { ...item.agentContext },
|
|
265
|
+
};
|
|
266
|
+
const singleFileProvider = {
|
|
267
|
+
analyze: (params) => item.agentProvider.analyze({
|
|
268
|
+
...params,
|
|
269
|
+
userContent,
|
|
270
|
+
}),
|
|
271
|
+
estimateCost: (usage) => item.agentProvider.estimateCost(usage),
|
|
272
|
+
};
|
|
273
|
+
const output = await item.agent.analyze(singleFileInput, singleFileProvider);
|
|
274
|
+
// Cache the result
|
|
275
|
+
const outcome = output.findings.length > 0 ? 'findings' : 'clean';
|
|
276
|
+
if (this.cacheRepo !== undefined) {
|
|
277
|
+
this.cacheRepo.upsert({
|
|
278
|
+
prId,
|
|
279
|
+
filePath: item.file.newPath,
|
|
280
|
+
agentId: item.agentId,
|
|
281
|
+
fileHash: hash,
|
|
282
|
+
outcome,
|
|
283
|
+
findingsCount: output.findings.length,
|
|
284
|
+
sessionId,
|
|
285
|
+
reviewedAt: new Date().toISOString(),
|
|
286
|
+
});
|
|
287
|
+
}
|
|
203
288
|
safeEmit(onProgress, {
|
|
204
289
|
agentId: item.agentId,
|
|
205
|
-
status: '
|
|
290
|
+
status: 'complete',
|
|
206
291
|
agentIndex: item.agentIndex,
|
|
207
292
|
totalAgents,
|
|
208
293
|
filePath: item.file.newPath,
|
|
209
294
|
fileIndex: item.fileIndex,
|
|
210
295
|
totalFiles: item.totalFiles,
|
|
296
|
+
findingsCount: output.findings.length,
|
|
297
|
+
slotIndex,
|
|
211
298
|
});
|
|
212
|
-
return { agentId: item.agentId, status: '
|
|
299
|
+
return { agentId: item.agentId, status: 'success', findings: output.findings, usage: output.usage, filePath: item.file.newPath };
|
|
213
300
|
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
agentIndex: item.agentIndex,
|
|
219
|
-
totalAgents,
|
|
220
|
-
filePath: item.file.newPath,
|
|
221
|
-
fileIndex: item.fileIndex,
|
|
222
|
-
totalFiles: item.totalFiles,
|
|
223
|
-
});
|
|
224
|
-
try {
|
|
225
|
-
const userContent = buildSingleFileContent(item.file, input.prMetadata, allFilesManifest, item.effectiveContentMode);
|
|
226
|
-
const singleFileInput = {
|
|
227
|
-
files: [item.file],
|
|
228
|
-
prMetadata: input.prMetadata,
|
|
229
|
-
...(input.projectContext !== undefined ? { projectContext: input.projectContext } : {}),
|
|
230
|
-
context: { ...item.agentContext },
|
|
231
|
-
};
|
|
232
|
-
const singleFileProvider = {
|
|
233
|
-
analyze: (params) => item.agentProvider.analyze({
|
|
234
|
-
...params,
|
|
235
|
-
userContent,
|
|
236
|
-
}),
|
|
237
|
-
estimateCost: (usage) => item.agentProvider.estimateCost(usage),
|
|
238
|
-
};
|
|
239
|
-
const output = await item.agent.analyze(singleFileInput, singleFileProvider);
|
|
240
|
-
// Cache the result
|
|
241
|
-
const outcome = output.findings.length > 0 ? 'findings' : 'clean';
|
|
242
|
-
if (this.cacheRepo !== undefined) {
|
|
243
|
-
this.cacheRepo.upsert({
|
|
244
|
-
prId,
|
|
245
|
-
filePath: item.file.newPath,
|
|
301
|
+
catch (err) {
|
|
302
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
303
|
+
this.logger.warn(`⚠ Agent ${item.agentId} failed on ${item.file.newPath}: ${message} — skipping file`);
|
|
304
|
+
safeEmit(onProgress, {
|
|
246
305
|
agentId: item.agentId,
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
306
|
+
status: 'failed',
|
|
307
|
+
agentIndex: item.agentIndex,
|
|
308
|
+
totalAgents,
|
|
309
|
+
filePath: item.file.newPath,
|
|
310
|
+
fileIndex: item.fileIndex,
|
|
311
|
+
totalFiles: item.totalFiles,
|
|
312
|
+
error: message,
|
|
313
|
+
slotIndex,
|
|
252
314
|
});
|
|
315
|
+
return { agentId: item.agentId, status: 'failed', findings: [], usage: { inputTokens: 0, outputTokens: 0 }, filePath: item.file.newPath };
|
|
253
316
|
}
|
|
254
|
-
safeEmit(onProgress, {
|
|
255
|
-
agentId: item.agentId,
|
|
256
|
-
status: 'complete',
|
|
257
|
-
agentIndex: item.agentIndex,
|
|
258
|
-
totalAgents,
|
|
259
|
-
filePath: item.file.newPath,
|
|
260
|
-
fileIndex: item.fileIndex,
|
|
261
|
-
totalFiles: item.totalFiles,
|
|
262
|
-
findingsCount: output.findings.length,
|
|
263
|
-
});
|
|
264
|
-
return { agentId: item.agentId, status: 'success', findings: output.findings, usage: output.usage, filePath: item.file.newPath };
|
|
265
317
|
}
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
this.logger.warn(`⚠ Agent ${item.agentId} failed on ${item.file.newPath}: ${message} — skipping file`);
|
|
269
|
-
safeEmit(onProgress, {
|
|
270
|
-
agentId: item.agentId,
|
|
271
|
-
status: 'failed',
|
|
272
|
-
agentIndex: item.agentIndex,
|
|
273
|
-
totalAgents,
|
|
274
|
-
filePath: item.file.newPath,
|
|
275
|
-
fileIndex: item.fileIndex,
|
|
276
|
-
totalFiles: item.totalFiles,
|
|
277
|
-
error: message,
|
|
278
|
-
});
|
|
279
|
-
return { agentId: item.agentId, status: 'failed', findings: [], usage: { inputTokens: 0, outputTokens: 0 }, filePath: item.file.newPath };
|
|
318
|
+
finally {
|
|
319
|
+
slotRegistry.release(slotIndex);
|
|
280
320
|
}
|
|
281
321
|
})));
|
|
282
322
|
// ── Aggregate file results by agent ─────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/ai/orchestrator/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/ai/orchestrator/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tracks which work item occupies each physical semaphore slot.
|
|
3
|
+
* Pairs with the Semaphore to assign a stable slotIndex in [0, limit) to each
|
|
4
|
+
* active work item so the TUI can visualize real concurrency.
|
|
5
|
+
*
|
|
6
|
+
* Invariants:
|
|
7
|
+
* - Exactly one item per non-null slot
|
|
8
|
+
* - acquire throws when the registry is full (misuse — callers MUST gate via Semaphore)
|
|
9
|
+
* - release throws when target slot is already free or out of range
|
|
10
|
+
*/
|
|
11
|
+
export declare class SlotRegistry {
|
|
12
|
+
private readonly limit;
|
|
13
|
+
private readonly slots;
|
|
14
|
+
constructor(limit: number);
|
|
15
|
+
acquire(item: object): number;
|
|
16
|
+
release(idx: number): void;
|
|
17
|
+
getActiveCount(): number;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=slot-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slot-registry.d.ts","sourceRoot":"","sources":["../../../src/ai/orchestrator/slot-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,qBAAa,YAAY;IAGX,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;gBAEhB,KAAK,EAAE,MAAM;IAI1C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAU7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAU1B,cAAc,IAAI,MAAM;CAKzB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tracks which work item occupies each physical semaphore slot.
|
|
3
|
+
* Pairs with the Semaphore to assign a stable slotIndex in [0, limit) to each
|
|
4
|
+
* active work item so the TUI can visualize real concurrency.
|
|
5
|
+
*
|
|
6
|
+
* Invariants:
|
|
7
|
+
* - Exactly one item per non-null slot
|
|
8
|
+
* - acquire throws when the registry is full (misuse — callers MUST gate via Semaphore)
|
|
9
|
+
* - release throws when target slot is already free or out of range
|
|
10
|
+
*/
|
|
11
|
+
export class SlotRegistry {
|
|
12
|
+
limit;
|
|
13
|
+
slots;
|
|
14
|
+
constructor(limit) {
|
|
15
|
+
this.limit = limit;
|
|
16
|
+
this.slots = new Array(limit).fill(null);
|
|
17
|
+
}
|
|
18
|
+
acquire(item) {
|
|
19
|
+
for (let i = 0; i < this.limit; i++) {
|
|
20
|
+
if (this.slots[i] === null) {
|
|
21
|
+
this.slots[i] = item;
|
|
22
|
+
return i;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
throw new Error(`SlotRegistry: acquire called when all ${this.limit} slots occupied`);
|
|
26
|
+
}
|
|
27
|
+
release(idx) {
|
|
28
|
+
if (idx < 0 || idx >= this.limit) {
|
|
29
|
+
throw new Error(`SlotRegistry: release index ${idx} out of range [0, ${this.limit})`);
|
|
30
|
+
}
|
|
31
|
+
if (this.slots[idx] === null) {
|
|
32
|
+
throw new Error(`SlotRegistry: release called on free slot ${idx}`);
|
|
33
|
+
}
|
|
34
|
+
this.slots[idx] = null;
|
|
35
|
+
}
|
|
36
|
+
getActiveCount() {
|
|
37
|
+
let n = 0;
|
|
38
|
+
for (const s of this.slots)
|
|
39
|
+
if (s !== null)
|
|
40
|
+
n++;
|
|
41
|
+
return n;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=slot-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slot-registry.js","sourceRoot":"","sources":["../../../src/ai/orchestrator/slot-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,OAAO,YAAY;IAGM;IAFZ,KAAK,CAAuB;IAE7C,YAA6B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACrB,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,KAAK,iBAAiB,CAAC,CAAC;IACxF,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,qBAAqB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,6CAA6C,GAAG,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,IAAI;gBAAE,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,CAAC;IACX,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ModelProvider, AnalyzeParams, AnalyzeResult, TokenUsage, CostEstimate } from '../../types/index.js';
|
|
2
|
+
export declare class GeminiProvider implements ModelProvider {
|
|
3
|
+
private readonly apiKey;
|
|
4
|
+
private readonly model;
|
|
5
|
+
private readonly maxTokens;
|
|
6
|
+
constructor(params: {
|
|
7
|
+
apiKey: string;
|
|
8
|
+
model?: string;
|
|
9
|
+
maxTokens?: number;
|
|
10
|
+
});
|
|
11
|
+
analyze(params: AnalyzeParams): Promise<AnalyzeResult>;
|
|
12
|
+
estimateCost(usage: TokenUsage): CostEstimate;
|
|
13
|
+
private throwProviderError;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=gemini-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini-provider.d.ts","sourceRoot":"","sources":["../../../src/ai/providers/gemini-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAgClH,qBAAa,cAAe,YAAW,aAAa;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IASpE,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAoE5D,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY;YAY/B,kBAAkB;CAqBjC"}
|