@avi770/testteam 2.0.0 → 3.0.0

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/README.md +20 -2
  3. package/agents/15-regression-sentinel.ts +3 -2
  4. package/agents/base-agent.ts +8 -0
  5. package/agents/registry.ts +72 -70
  6. package/core/cli.ts +128 -6
  7. package/core/orchestrator.ts +72 -1
  8. package/dist/agents/15-regression-sentinel.d.ts +2 -1
  9. package/dist/agents/15-regression-sentinel.d.ts.map +1 -1
  10. package/dist/agents/15-regression-sentinel.js +2 -2
  11. package/dist/agents/15-regression-sentinel.js.map +1 -1
  12. package/dist/agents/base-agent.d.ts +3 -1
  13. package/dist/agents/base-agent.d.ts.map +1 -1
  14. package/dist/agents/base-agent.js +7 -1
  15. package/dist/agents/base-agent.js.map +1 -1
  16. package/dist/agents/registry.d.ts +2 -1
  17. package/dist/agents/registry.d.ts.map +1 -1
  18. package/dist/agents/registry.js +71 -71
  19. package/dist/agents/registry.js.map +1 -1
  20. package/dist/clients/agent-mvp.d.ts +66 -0
  21. package/dist/clients/agent-mvp.d.ts.map +1 -0
  22. package/dist/clients/agent-mvp.js +91 -0
  23. package/dist/clients/agent-mvp.js.map +1 -0
  24. package/dist/clients/total-recall.d.ts +37 -0
  25. package/dist/clients/total-recall.d.ts.map +1 -0
  26. package/dist/clients/total-recall.js +224 -0
  27. package/dist/clients/total-recall.js.map +1 -0
  28. package/dist/core/cli.d.ts +3 -0
  29. package/dist/core/cli.d.ts.map +1 -1
  30. package/dist/core/cli.js +122 -6
  31. package/dist/core/cli.js.map +1 -1
  32. package/dist/core/orchestrator.d.ts +10 -1
  33. package/dist/core/orchestrator.d.ts.map +1 -1
  34. package/dist/core/orchestrator.js +60 -1
  35. package/dist/core/orchestrator.js.map +1 -1
  36. package/package.json +2 -2
@@ -0,0 +1,224 @@
1
+ /**
2
+ * Total Recall REST API Client
3
+ *
4
+ * Wraps Total Recall's memory API (localhost:3777) for the TestTeam agent system.
5
+ * All methods are graceful — if Total Recall is not running, they return
6
+ * empty/null without throwing.
7
+ */
8
+ export class TotalRecallClient {
9
+ baseUrl;
10
+ projectId;
11
+ sessionId = null;
12
+ constructor(baseUrl = 'http://localhost:3777', projectId = 'testteam') {
13
+ this.baseUrl = baseUrl;
14
+ this.projectId = projectId;
15
+ }
16
+ /** Check whether the Total Recall API is reachable. */
17
+ async isAvailable() {
18
+ try {
19
+ const res = await fetch(`${this.baseUrl}/health`);
20
+ return res.ok;
21
+ }
22
+ catch {
23
+ return false;
24
+ }
25
+ }
26
+ /** Start a new session and store the session_id. Returns the session_id. */
27
+ async startSession() {
28
+ try {
29
+ const res = await fetch(`${this.baseUrl}/session/start`, {
30
+ method: 'POST',
31
+ headers: { 'Content-Type': 'application/json' },
32
+ body: JSON.stringify({ project_id: this.projectId }),
33
+ });
34
+ const json = (await res.json());
35
+ this.sessionId = json.data.session_id;
36
+ return this.sessionId;
37
+ }
38
+ catch {
39
+ return '';
40
+ }
41
+ }
42
+ /** Close the current session. */
43
+ async endSession() {
44
+ if (!this.sessionId)
45
+ return;
46
+ try {
47
+ await fetch(`${this.baseUrl}/session/close`, {
48
+ method: 'POST',
49
+ headers: { 'Content-Type': 'application/json' },
50
+ body: JSON.stringify({ session_id: this.sessionId }),
51
+ });
52
+ }
53
+ catch {
54
+ // Swallow — Total Recall may have shut down
55
+ }
56
+ finally {
57
+ this.sessionId = null;
58
+ }
59
+ }
60
+ /** Store a single finding as a 'fact' in Total Recall. */
61
+ async storeFinding(agentId, agentName, finding) {
62
+ try {
63
+ await fetch(`${this.baseUrl}/remember`, {
64
+ method: 'POST',
65
+ headers: { 'Content-Type': 'application/json' },
66
+ body: JSON.stringify({
67
+ category: 'fact',
68
+ content: finding.description,
69
+ project_id: this.projectId,
70
+ source: 'testteam',
71
+ tags: [agentName, finding.severity, finding.type],
72
+ confidence: finding.severity === 'critical' ? 1.0 : 0.9,
73
+ meta: {
74
+ agentId,
75
+ agentName,
76
+ findingId: finding.id,
77
+ severity: finding.severity,
78
+ module: finding.module,
79
+ type: finding.type,
80
+ file: finding.file,
81
+ line: finding.line,
82
+ },
83
+ }),
84
+ });
85
+ }
86
+ catch {
87
+ // Graceful — no-op if TR is down
88
+ }
89
+ }
90
+ /** Store multiple findings in a single batch request (max 50 per API call). */
91
+ async storeFindings(agentId, agentName, findings) {
92
+ if (findings.length === 0)
93
+ return;
94
+ try {
95
+ const items = findings.slice(0, 50).map((finding) => ({
96
+ category: 'fact',
97
+ content: finding.description,
98
+ project_id: this.projectId,
99
+ source: 'testteam',
100
+ tags: [agentName, finding.severity, finding.type],
101
+ confidence: finding.severity === 'critical' ? 1.0 : 0.9,
102
+ meta: {
103
+ agentId,
104
+ agentName,
105
+ findingId: finding.id,
106
+ severity: finding.severity,
107
+ module: finding.module,
108
+ type: finding.type,
109
+ file: finding.file,
110
+ line: finding.line,
111
+ },
112
+ }));
113
+ await fetch(`${this.baseUrl}/batch-remember`, {
114
+ method: 'POST',
115
+ headers: { 'Content-Type': 'application/json' },
116
+ body: JSON.stringify({ items }),
117
+ });
118
+ }
119
+ catch {
120
+ // Graceful — no-op if TR is down
121
+ }
122
+ }
123
+ /** Store a correction (e.g. a false-positive that was later dismissed). */
124
+ async storeCorrection(agentId, originalFinding, correction) {
125
+ try {
126
+ await fetch(`${this.baseUrl}/remember`, {
127
+ method: 'POST',
128
+ headers: { 'Content-Type': 'application/json' },
129
+ body: JSON.stringify({
130
+ category: 'correction',
131
+ content: correction,
132
+ project_id: this.projectId,
133
+ source: 'testteam',
134
+ tags: ['correction', `agent-${agentId}`],
135
+ confidence: 1.0,
136
+ meta: {
137
+ agentId,
138
+ originalFinding,
139
+ },
140
+ }),
141
+ });
142
+ }
143
+ catch {
144
+ // Graceful
145
+ }
146
+ }
147
+ /** Recall stored findings matching a query. */
148
+ async recallFindings(query, limit = 20) {
149
+ try {
150
+ const res = await fetch(`${this.baseUrl}/recall`, {
151
+ method: 'POST',
152
+ headers: { 'Content-Type': 'application/json' },
153
+ body: JSON.stringify({
154
+ query,
155
+ project_id: this.projectId,
156
+ limit,
157
+ }),
158
+ });
159
+ const json = (await res.json());
160
+ return json.data ?? [];
161
+ }
162
+ catch {
163
+ return [];
164
+ }
165
+ }
166
+ /** Recall all stored corrections. */
167
+ async recallCorrections() {
168
+ try {
169
+ const res = await fetch(`${this.baseUrl}/recall`, {
170
+ method: 'POST',
171
+ headers: { 'Content-Type': 'application/json' },
172
+ body: JSON.stringify({
173
+ query: 'correction',
174
+ project_id: this.projectId,
175
+ limit: 100,
176
+ }),
177
+ });
178
+ const json = (await res.json());
179
+ return json.data ?? [];
180
+ }
181
+ catch {
182
+ return [];
183
+ }
184
+ }
185
+ /** Load smart context for a message (combines corrections, rules, keyword matches). */
186
+ async loadContext(message) {
187
+ try {
188
+ const res = await fetch(`${this.baseUrl}/context`, {
189
+ method: 'POST',
190
+ headers: { 'Content-Type': 'application/json' },
191
+ body: JSON.stringify({
192
+ message,
193
+ project_id: this.projectId,
194
+ ...(this.sessionId ? { session_id: this.sessionId } : {}),
195
+ }),
196
+ });
197
+ const json = (await res.json());
198
+ return json.data ?? null;
199
+ }
200
+ catch {
201
+ return null;
202
+ }
203
+ }
204
+ /** Semantic search via TF-IDF. */
205
+ async searchSemantic(query, limit = 20) {
206
+ try {
207
+ const res = await fetch(`${this.baseUrl}/search`, {
208
+ method: 'POST',
209
+ headers: { 'Content-Type': 'application/json' },
210
+ body: JSON.stringify({ query, limit }),
211
+ });
212
+ const json = (await res.json());
213
+ return json.data ?? [];
214
+ }
215
+ catch {
216
+ return [];
217
+ }
218
+ }
219
+ /** Get the current session ID (if a session has been started). */
220
+ getSessionId() {
221
+ return this.sessionId;
222
+ }
223
+ }
224
+ //# sourceMappingURL=total-recall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"total-recall.js","sourceRoot":"","sources":["../../clients/total-recall.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,9 @@ interface ParsedArgs {
4
4
  dryRun: boolean;
5
5
  agent: number | null;
6
6
  configPath: string;
7
+ recallQuery: string | null;
8
+ reputation: boolean;
9
+ coaching: string | null;
7
10
  }
8
11
  export declare function parseArgs(argv: string[]): ParsedArgs;
9
12
  export declare function main(argv?: string[]): Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../core/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAgC,MAAM,SAAS,CAAC;AAYnE,UAAU,UAAU;IAClB,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAgBD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA8CpD;AAcD,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgIzE"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../core/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAgC,MAAM,SAAS,CAAC;AAcnE,UAAU,UAAU;IAClB,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAmBD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAoEpD;AAuBD,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmNzE"}
package/dist/core/cli.js CHANGED
@@ -3,6 +3,8 @@ import { Orchestrator } from './orchestrator';
3
3
  import { registerAllAgents } from '../agents/registry';
4
4
  import { runInitWizard } from './init';
5
5
  import { determineExitCode, writeCISummary, detectCIEnvironment } from './ci-output';
6
+ import { TotalRecallClient } from '../clients/total-recall';
7
+ import { AgentMvpClient } from '../clients/agent-mvp';
6
8
  import * as path from 'path';
7
9
  const PHASES = ['alpha', 'beta', 'uat', 'release'];
8
10
  function printUsage() {
@@ -15,6 +17,9 @@ Options:
15
17
  --dry-run Show dispatch plan without executing
16
18
  --agent <id> Run a single agent by ID
17
19
  --config <path> Path to config file (default: testteam.config.ts)
20
+ --recall <query> Query Total Recall memory and print results
21
+ --reputation Query agent reputations and print a table
22
+ --coaching <agentId> Query coaching flags for an agent
18
23
  --help Show this help message
19
24
  `.trim());
20
25
  }
@@ -24,6 +29,9 @@ export function parseArgs(argv) {
24
29
  let dryRun = false;
25
30
  let agent = null;
26
31
  let configPath = 'testteam.config.ts';
32
+ let recallQuery = null;
33
+ let reputation = false;
34
+ let coaching = null;
27
35
  for (let i = 0; i < args.length; i++) {
28
36
  const arg = args[i];
29
37
  switch (arg) {
@@ -53,6 +61,25 @@ export function parseArgs(argv) {
53
61
  throw new Error('--config requires a path argument');
54
62
  }
55
63
  break;
64
+ case '--recall': {
65
+ const value = args[++i];
66
+ if (!value) {
67
+ throw new Error('--recall requires a query argument');
68
+ }
69
+ recallQuery = value;
70
+ break;
71
+ }
72
+ case '--reputation':
73
+ reputation = true;
74
+ break;
75
+ case '--coaching': {
76
+ const value = args[++i];
77
+ if (!value) {
78
+ throw new Error('--coaching requires an agent ID argument');
79
+ }
80
+ coaching = value;
81
+ break;
82
+ }
56
83
  case '--help':
57
84
  printUsage();
58
85
  process.exit(0);
@@ -61,7 +88,16 @@ export function parseArgs(argv) {
61
88
  throw new Error(`Unknown argument: ${arg}`);
62
89
  }
63
90
  }
64
- return { phase, dryRun, agent, configPath };
91
+ return { phase, dryRun, agent, configPath, recallQuery, reputation, coaching };
92
+ }
93
+ async function checkMahAvailability(baseUrl = 'http://localhost:3300') {
94
+ try {
95
+ const res = await fetch(`${baseUrl}/health`);
96
+ return res.ok;
97
+ }
98
+ catch {
99
+ return false;
100
+ }
65
101
  }
66
102
  async function loadConfig(configPath) {
67
103
  const absolutePath = path.resolve(configPath);
@@ -93,12 +129,61 @@ export async function main(argv = process.argv) {
93
129
  printUsage();
94
130
  return 1;
95
131
  }
96
- const { phase, dryRun, configPath } = parsed;
132
+ const { phase, dryRun, configPath, recallQuery, reputation, coaching } = parsed;
133
+ // Handle --recall: query Total Recall and exit
134
+ if (recallQuery) {
135
+ const tr = new TotalRecallClient();
136
+ const available = await tr.isAvailable();
137
+ if (!available) {
138
+ console.error('Total Recall is not running at http://localhost:3777');
139
+ return 1;
140
+ }
141
+ const results = await tr.recallFindings(recallQuery);
142
+ console.log(JSON.stringify(results, null, 2));
143
+ return 0;
144
+ }
145
+ // Handle --coaching: query Agent-MVP coaching flags for a specific agent and exit
146
+ if (coaching) {
147
+ const mvp = new AgentMvpClient();
148
+ const mvpAvailable = await mvp.isAvailable();
149
+ if (!mvpAvailable) {
150
+ console.error('Agent-MVP is not running at http://localhost:3200');
151
+ return 1;
152
+ }
153
+ const flags = await mvp.getCoachingFlags(coaching);
154
+ if (flags.length > 0) {
155
+ console.log(JSON.stringify(flags, null, 2));
156
+ }
157
+ else {
158
+ console.log(`No coaching flags for agent "${coaching}".`);
159
+ }
160
+ return 0;
161
+ }
162
+ // Handle --reputation: query Agent-MVP for all agent reputations and exit
163
+ if (reputation) {
164
+ const mvp = new AgentMvpClient();
165
+ const mvpAvailable = await mvp.isAvailable();
166
+ if (!mvpAvailable) {
167
+ console.error('Agent-MVP is not running at http://localhost:3200');
168
+ return 1;
169
+ }
170
+ const leaderboard = await mvp.getReputation('leaderboard');
171
+ if (leaderboard) {
172
+ console.log(JSON.stringify(leaderboard, null, 2));
173
+ }
174
+ else {
175
+ console.log('No reputation data available.');
176
+ }
177
+ return 0;
178
+ }
97
179
  if (!dryRun && !phase) {
98
180
  console.error('--phase is required unless using --dry-run');
99
181
  printUsage();
100
182
  return 1;
101
183
  }
184
+ // Startup banner
185
+ console.log('TestTeam v3.0.0 — Learning Agents');
186
+ console.log('─'.repeat(40));
102
187
  // Load and validate config
103
188
  let rawConfig;
104
189
  try {
@@ -109,6 +194,33 @@ export async function main(argv = process.argv) {
109
194
  return 1;
110
195
  }
111
196
  const config = validateConfig(rawConfig);
197
+ // Initialize Total Recall (optional — continues normally if unavailable)
198
+ const totalRecall = new TotalRecallClient();
199
+ const trAvailable = await totalRecall.isAvailable();
200
+ if (trAvailable) {
201
+ await totalRecall.startSession();
202
+ console.log('[Total Recall] Connected — findings will be stored in memory');
203
+ }
204
+ else {
205
+ console.log('[Total Recall] Not available at http://localhost:3777 — running without memory');
206
+ }
207
+ // Initialize Agent-MVP client (optional ��� continues normally if unavailable)
208
+ const agentMvp = new AgentMvpClient();
209
+ const mvpAvailable = await agentMvp.isAvailable();
210
+ if (mvpAvailable) {
211
+ console.log('[Agent-MVP] Connected — agent scores will be reported');
212
+ }
213
+ else {
214
+ console.log('[Agent-MVP] Not available at http://localhost:3200 — running without scoring');
215
+ }
216
+ // Check MAH availability (optional — informational only)
217
+ const mahAvailable = await checkMahAvailability();
218
+ if (mahAvailable) {
219
+ console.log('[MAH] Connected — multi-agent hub active');
220
+ }
221
+ else {
222
+ console.log('[MAH] Not available at http://localhost:3300 — running without hub');
223
+ }
112
224
  // Shared run directory so all phases write results to the same location.
113
225
  // This ensures the Reporter (Agent 10, release phase) can read results
114
226
  // from prior phases (alpha, beta, uat).
@@ -118,8 +230,8 @@ export async function main(argv = process.argv) {
118
230
  ? [...PHASES]
119
231
  : [phase];
120
232
  for (const p of targetPhases) {
121
- const phaseOrchestrator = new Orchestrator(config, sharedRunDir);
122
- registerAllAgents(phaseOrchestrator, config, p, sharedRunDir);
233
+ const phaseOrchestrator = new Orchestrator(config, sharedRunDir, mvpAvailable ? agentMvp : undefined);
234
+ registerAllAgents(phaseOrchestrator, config, p, sharedRunDir, trAvailable ? totalRecall : undefined);
123
235
  const plan = phaseOrchestrator.dryRun(p);
124
236
  console.log(`\nPhase: ${p}`);
125
237
  for (const entry of plan) {
@@ -139,8 +251,8 @@ export async function main(argv = process.argv) {
139
251
  for (const p of targetPhases) {
140
252
  console.log(`\nRunning phase: ${p}`);
141
253
  try {
142
- const phaseOrchestrator = new Orchestrator(config, sharedRunDir);
143
- registerAllAgents(phaseOrchestrator, config, p, sharedRunDir);
254
+ const phaseOrchestrator = new Orchestrator(config, sharedRunDir, mvpAvailable ? agentMvp : undefined);
255
+ registerAllAgents(phaseOrchestrator, config, p, sharedRunDir, trAvailable ? totalRecall : undefined);
144
256
  const result = await phaseOrchestrator.runPhase(p);
145
257
  if (result.skippedAgents.length > 0) {
146
258
  console.log(` Skipped agents: ${result.skippedAgents.join(', ')}`);
@@ -164,6 +276,10 @@ export async function main(argv = process.argv) {
164
276
  hadError = true;
165
277
  }
166
278
  }
279
+ // Close Total Recall session
280
+ if (trAvailable) {
281
+ await totalRecall.endSession().catch(() => { });
282
+ }
167
283
  // Determine structured exit code:
168
284
  // - 0: All gates passed, no advisory failures
169
285
  // - 1: Blocking agent failures (or runtime errors)
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../core/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../core/cli.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { BaseAgent } from '../agents/base-agent';
4
4
  import type { HealthCheck } from './health-check';
5
5
  import { CostTracker } from './cost-tracker';
6
6
  import type { LicenseTier } from './license';
7
+ import type { AgentMvpClient } from '../clients/agent-mvp';
7
8
  export interface DispatchPlanEntry {
8
9
  agentId: number;
9
10
  status: 'scheduled' | 'disabled' | 'unregistered';
@@ -19,12 +20,13 @@ export declare class Orchestrator {
19
20
  private readonly agents;
20
21
  private readonly healthChecks;
21
22
  private runDir;
23
+ private readonly agentMvpClient;
22
24
  /**
23
25
  * License tier resolver — injectable for testing.
24
26
  * Defaults to `getLicenseTier()` from the license module.
25
27
  */
26
28
  _getLicenseTier: () => LicenseTier;
27
- constructor(config: ValidatedConfig, runDir?: string);
29
+ constructor(config: ValidatedConfig, runDir?: string, agentMvpClient?: AgentMvpClient);
28
30
  /** Register an agent instance for a given agent ID. */
29
31
  registerAgent(agentId: number, agent: BaseAgent): void;
30
32
  /** Register health checks to run before agent dispatch. */
@@ -42,6 +44,13 @@ export declare class Orchestrator {
42
44
  * Iterates up to MAX_FIX_LOOP_ITERATIONS times to prevent infinite heal/fix loops.
43
45
  */
44
46
  private runFixLoop;
47
+ /**
48
+ * After a phase completes, send scoring events to Agent-MVP for each agent
49
+ * that produced results. Passed agents receive +1.0, failed agents receive -0.5.
50
+ */
51
+ private scoreAgentsInMvp;
52
+ /** Determine the worst (most severe) finding severity from a list. */
53
+ private pickWorstSeverity;
45
54
  /** Get the run directory path. */
46
55
  getRunDir(): string;
47
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../core/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAW,MAAM,SAAS,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AA0B7C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,cAAc,CAAC;CACnD;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,eAAe,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAiBD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,MAAM,CAAS;IAEvB;;;OAGG;IACH,eAAe,EAAE,MAAM,WAAW,CAA0B;gBAEhD,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,MAAM;IAKpD,uDAAuD;IACvD,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI;IAItD,2DAA2D;IAC3D,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI;IAIjD,uEAAuE;IACvE,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,iBAAiB,EAAE;IAazC,qFAAqF;IAC/E,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC;IAsLrD;;;;;;;OAOG;YACW,UAAU;IAwDxB,kCAAkC;IAClC,SAAS,IAAI,MAAM;CAGpB"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../core/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAW,MAAM,SAAS,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAG7C,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,sBAAsB,CAAC;AAwB5E,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,cAAc,CAAC;CACnD;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,eAAe,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAiBD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IAEvD;;;OAGG;IACH,eAAe,EAAE,MAAM,WAAW,CAA0B;gBAEhD,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc;IAMrF,uDAAuD;IACvD,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI;IAItD,2DAA2D;IAC3D,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI;IAIjD,uEAAuE;IACvE,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,iBAAiB,EAAE;IAazC,qFAAqF;IAC/E,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC;IAyLrD;;;;;;;OAOG;YACW,UAAU;IAwDxB;;;OAGG;YACW,gBAAgB;IAmC9B,sEAAsE;IACtE,OAAO,CAAC,iBAAiB;IAyBzB,kCAAkC;IAClC,SAAS,IAAI,MAAM;CAGpB"}
@@ -43,14 +43,16 @@ export class Orchestrator {
43
43
  agents = new Map();
44
44
  healthChecks = [];
45
45
  runDir;
46
+ agentMvpClient;
46
47
  /**
47
48
  * License tier resolver — injectable for testing.
48
49
  * Defaults to `getLicenseTier()` from the license module.
49
50
  */
50
51
  _getLicenseTier = () => getLicenseTier();
51
- constructor(config, runDir) {
52
+ constructor(config, runDir, agentMvpClient) {
52
53
  this.config = config;
53
54
  this.runDir = runDir ?? path.join(process.cwd(), '.run', `run-${Date.now()}`);
55
+ this.agentMvpClient = agentMvpClient ?? null;
54
56
  }
55
57
  /** Register an agent instance for a given agent ID. */
56
58
  registerAgent(agentId, agent) {
@@ -228,6 +230,8 @@ export class Orchestrator {
228
230
  // Step 6: Evaluate the phase gate
229
231
  const scheduledForPhase = new Set(PHASE_DISPATCH[phase]);
230
232
  const gate = evaluateGate(phase, this.config.agentClassification, agentResults, this.config.disabledAgentSet, scheduledForPhase);
233
+ // Step 7: Score agents in Agent-MVP (if connected)
234
+ await this.scoreAgentsInMvp(phase, agentResults);
231
235
  return { gate, agentResults, skippedAgents, costTracker };
232
236
  }
233
237
  /**
@@ -285,6 +289,61 @@ export class Orchestrator {
285
289
  return;
286
290
  }
287
291
  }
292
+ /**
293
+ * After a phase completes, send scoring events to Agent-MVP for each agent
294
+ * that produced results. Passed agents receive +1.0, failed agents receive -0.5.
295
+ */
296
+ async scoreAgentsInMvp(phase, agentResults) {
297
+ if (!this.agentMvpClient)
298
+ return;
299
+ const events = [];
300
+ for (const [agentId, result] of Object.entries(agentResults)) {
301
+ if (result.status === 'skipped')
302
+ continue;
303
+ const isPassed = result.status === 'passed';
304
+ const findingsCount = result.findings.length;
305
+ const worstSeverity = this.pickWorstSeverity(result.findings);
306
+ events.push({
307
+ agent_id: `agent-${agentId}`,
308
+ task_type: result.agentName,
309
+ outcome: isPassed ? 'success' : 'failure',
310
+ score_delta: isPassed ? 1.0 : -0.5,
311
+ phase,
312
+ findings_count: findingsCount > 0 ? findingsCount : undefined,
313
+ finding_severity: worstSeverity ?? undefined,
314
+ });
315
+ }
316
+ if (events.length > 0) {
317
+ try {
318
+ await this.agentMvpClient.scoreAgents(events);
319
+ }
320
+ catch {
321
+ // Graceful -- Agent-MVP scoring is non-critical
322
+ }
323
+ }
324
+ }
325
+ /** Determine the worst (most severe) finding severity from a list. */
326
+ pickWorstSeverity(findings) {
327
+ if (findings.length === 0)
328
+ return null;
329
+ const rank = {
330
+ critical: 5,
331
+ high: 4,
332
+ medium: 3,
333
+ low: 2,
334
+ info: 1,
335
+ };
336
+ let worst = null;
337
+ let worstRank = 0;
338
+ for (const finding of findings) {
339
+ const currentRank = rank[finding.severity] ?? 0;
340
+ if (currentRank > worstRank) {
341
+ worstRank = currentRank;
342
+ worst = finding.severity;
343
+ }
344
+ }
345
+ return worst;
346
+ }
288
347
  /** Get the run directory path. */
289
348
  getRunDir() {
290
349
  return this.runDir;