Skip to content

Commit 815c028

Browse files
V48 (implementation-only): Drop deposit agent roster synonym aliases
Register exactly one key per deposit SDIVF agent (parity roster): Discovery comprehend-codebase / search-depository / inherent-regurgitation only; Setup clone without the asset-pack-clone dual key; Validation only ready-to-finish. Remove tools map and tests that pinned synonym aliases.
1 parent 427e82c commit 815c028

6 files changed

Lines changed: 41 additions & 69 deletions

File tree

packages/asset-packs-pipelines/domain/src/__tests__/deposit-setup-discovery-agents.test.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -332,13 +332,11 @@ describe('discovery conditional runtime registry roster', () => {
332332
};
333333
}
334334

335-
it('deposit mode registers the three Discovery agents (native keys + stable aliases), not the read roster', () => {
335+
it('deposit mode registers exactly three Discovery agents (no synonym aliases), not the read roster', () => {
336336
const registry = recordingRegistry();
337337
registerDiscoveryAgents(registry, 'deposit');
338338
expect([...registry.registrations.keys()].sort()).toEqual([
339-
'discovery:codebase-comprehension',
340339
'discovery:comprehend-codebase',
341-
'discovery:depository-search',
342340
'discovery:inherent-regurgitation',
343341
'discovery:search-depository',
344342
]);

packages/asset-packs-pipelines/domain/src/__tests__/validation-agents.test.ts

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ jest.mock('@bitcode/generic-llms', () => require('./support/generic-llms-mock').
66

77
import { Execution } from '@bitcode/execution-generics';
88
import { AssetPackValidationReadyToFinishAgent } from '../agents/validation-agents';
9-
import runDepositValidationAgent from '../agents/validation/deposit-validation-agent';
109
import { registerValidationAgentsForType } from '../phases/validation';
1110
import { setBoundaryLLMOutput, resetBoundaryLLMOutput } from './support/generic-llms-mock';
1211

@@ -85,30 +84,26 @@ describe('registerValidationAgentsForType (mode-conditional Validation registry)
8584
};
8685
}
8786

88-
it('deposit mode registers the deposit-quality validator plus the envelope-unwrapping ReadyToFinish gate', async () => {
87+
it('deposit mode registers exactly one ready-to-finish Validation agent (no quality alias)', async () => {
8988
const { registrations, registry } = captureRegistry();
9089

9190
registerValidationAgentsForType('read-satisfaction-asset-pack', registry, 'deposit');
9291

9392
expect([...registrations.keys()].sort()).toEqual([
94-
'validation:asset-pack-ready-to-finish-agent',
95-
'validation:deposit-quality',
93+
'validation:ready-to-finish-asset-packs-synthesis-deposit-pipeline',
9694
]);
9795

98-
// The gate is the wrapper that unwraps the PTRR envelope (validation-agents.ts),
99-
// NOT the orphaned readyToFinishWithShortCircuit module that reads typed fields
100-
// straight off the envelope.
101-
expect(registrations.get('validation:asset-pack-ready-to-finish-agent')).toBe(
102-
AssetPackValidationReadyToFinishAgent,
96+
const loader = registrations.get(
97+
'validation:ready-to-finish-asset-packs-synthesis-deposit-pipeline',
10398
);
104-
105-
// The deposit-quality key lazily resolves to the deposit validation runner.
106-
const loader = registrations.get('validation:deposit-quality');
10799
const resolved = await loader();
108-
expect(resolved).toBe(runDepositValidationAgent);
100+
const readyToFinish = (
101+
await import('../agents/validation/deposit-ready-to-finish-agent')
102+
).default;
103+
expect(resolved).toBe(readyToFinish);
109104
});
110105

111-
it('read mode (no deposit) registers the canonical validator roster and no deposit-quality agent', () => {
106+
it('read mode (no deposit) registers the canonical validator roster and no deposit Validation keys', () => {
112107
const { registrations, registry } = captureRegistry();
113108

114109
registerValidationAgentsForType('read-satisfaction-asset-pack', registry);
@@ -120,6 +115,9 @@ describe('registerValidationAgentsForType (mode-conditional Validation registry)
120115
'validation:validate-last-iterations-validation-phase',
121116
]);
122117
expect(registrations.has('validation:deposit-quality')).toBe(false);
118+
expect(
119+
registrations.has('validation:ready-to-finish-asset-packs-synthesis-deposit-pipeline'),
120+
).toBe(false);
123121
expect(registrations.get('validation:asset-pack-ready-to-finish-agent')).toBe(
124122
AssetPackValidationReadyToFinishAgent,
125123
);

packages/asset-packs-pipelines/domain/src/phases/deposit-phases.ts

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,12 @@ type ImplementationOutput = AssetPackOutput;
1818
type ValidationOutput = AssetPackOutput;
1919

2020
function registerDepositSetupAgents(agentRegistry: any): void {
21+
// One roster key per Setup agent (matches depositSetupPhase executors).
2122
agentRegistry.registerAgent(
2223
'setup:clone-vcs-repository',
2324
() =>
2425
import('../agents/setup/asset-pack-clone-vcs-repository-agent').then((m) => m.default),
2526
);
26-
agentRegistry.registerAgent(
27-
'setup:asset-pack-clone-vcs-repository-agent',
28-
() =>
29-
import('../agents/setup/asset-pack-clone-vcs-repository-agent').then((m) => m.default),
30-
);
3127
agentRegistry.registerAgent(
3228
'setup:initialize-lsp',
3329
() => import('../agents/setup/asset-pack-initialize-lsp-agent').then((m) => m.default),
@@ -114,22 +110,12 @@ export const depositValidationPhase: PhaseDelegator<
114110
ValidationOutput
115111
> = (async (input: any, execution: any) => {
116112
try {
113+
// One Validation key only — no deposit-quality / read ready-to-finish aliases.
117114
(execution as any).agents?.registerAgent?.(
118115
'validation:ready-to-finish-asset-packs-synthesis-deposit-pipeline',
119116
() =>
120117
import('../agents/validation/deposit-ready-to-finish-agent').then((m) => m.default),
121118
);
122-
// Compat alias for older roster tests
123-
(execution as any).agents?.registerAgent?.(
124-
'validation:deposit-quality',
125-
() =>
126-
import('../agents/validation/deposit-ready-to-finish-agent').then((m) => m.default),
127-
);
128-
(execution as any).agents?.registerAgent?.(
129-
'validation:asset-pack-ready-to-finish-agent',
130-
() =>
131-
import('../agents/validation/deposit-ready-to-finish-agent').then((m) => m.default),
132-
);
133119
} catch {}
134120
return await createAgentExecutor(
135121
'validation:ready-to-finish-asset-packs-synthesis-deposit-pipeline',

packages/asset-packs-pipelines/domain/src/phases/discovery.ts

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,17 @@ export function registerDiscoveryAgents(
4646
mode?: SynthesizeAssetPacksMode,
4747
): void {
4848
if (mode === 'deposit') {
49-
// Deposit-native keys + stable aliases (no lens vocabulary).
50-
const codebase = () =>
51-
import('../agents/discovery/deposit-codebase-comprehension-agent').then((m) => m.default);
52-
const depository = () =>
53-
import('../agents/discovery/deposit-depository-search-agent').then((m) => m.default);
54-
const regurgitation = () =>
55-
import('../agents/discovery/deposit-inherent-regurgitation-agent').then((m) => m.default);
56-
agentRegistry.registerAgent('discovery:codebase-comprehension', codebase);
57-
agentRegistry.registerAgent('discovery:comprehend-codebase', codebase);
58-
agentRegistry.registerAgent('discovery:depository-search', depository);
59-
agentRegistry.registerAgent('discovery:search-depository', depository);
60-
agentRegistry.registerAgent('discovery:inherent-regurgitation', regurgitation);
49+
// Exactly three deposit Discovery keys (parity matrix / depositDiscoveryPhase).
50+
// No synonym aliases — one roster key per agent.
51+
agentRegistry.registerAgent('discovery:comprehend-codebase', () =>
52+
import('../agents/discovery/deposit-codebase-comprehension-agent').then((m) => m.default),
53+
);
54+
agentRegistry.registerAgent('discovery:search-depository', () =>
55+
import('../agents/discovery/deposit-depository-search-agent').then((m) => m.default),
56+
);
57+
agentRegistry.registerAgent('discovery:inherent-regurgitation', () =>
58+
import('../agents/discovery/deposit-inherent-regurgitation-agent').then((m) => m.default),
59+
);
6160
return;
6261
}
6362
registerCanonicalDiscoveryAgents(agentRegistry);

packages/asset-packs-pipelines/domain/src/phases/validation.ts

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
import { createPhaseRunner, PhaseConfig } from '@bitcode/pipelines-generics';
2-
import {
3-
registerValidationAgentsForType as registerAgents,
4-
AssetPackValidationReadyToFinishAgent,
5-
} from '../agents/validation-agents';
2+
import { registerValidationAgentsForType as registerAgents } from '../agents/validation-agents';
63
import { AssetPackWrittenAssetType } from '../types/AssetPackWrittenAssetType';
74
import type { SynthesizeAssetPacksMode } from '../synthesize-asset-packs';
85

96
/**
10-
* Validation phase configuration placeholder.
11-
* The actual execution composition for validation lives in phases/index.ts
12-
* where three validators run in parallel followed by the AssetPack
13-
* ReadyToFinish agent that gates the canonical Finish phase.
7+
* Validation phase configuration placeholder (read-path phase runner).
8+
* Deposit Validation is registered/executed only via deposit-phases
9+
* (`validation:ready-to-finish-asset-packs-synthesis-deposit-pipeline`).
1410
*/
1511
const validationPhaseConfig: PhaseConfig = {
1612
phaseName: 'validation',
@@ -33,14 +29,12 @@ export function registerValidationAgentsForType(
3329
mode?: SynthesizeAssetPacksMode,
3430
): void {
3531
if (mode === 'deposit') {
36-
// Deposit lens: a single quality validator over the synthesized AssetPacks,
37-
// then the canonical ReadyToFinish gate (it reads validation/implementation:issues).
38-
agentRegistry.registerAgent('validation:deposit-quality', () =>
39-
import('../agents/validation/deposit-validation-agent').then(m => m.default),
40-
);
32+
// Deposit Validation is a single ready-to-finish gate (A/B/C). Prefer the
33+
// deposit-phases roster key; this path stays for mode-conditional callers.
4134
agentRegistry.registerAgent(
42-
'validation:asset-pack-ready-to-finish-agent',
43-
AssetPackValidationReadyToFinishAgent,
35+
'validation:ready-to-finish-asset-packs-synthesis-deposit-pipeline',
36+
() =>
37+
import('../agents/validation/deposit-ready-to-finish-agent').then((m) => m.default),
4438
);
4539
return;
4640
}

packages/asset-packs-pipelines/domain/src/tools/index.ts

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ export function getAssetPackPipelineToolsForAgent(agentName: string): Tool[] {
172172
'asset-pack-plan-implementation-agent': [lexicalDepositorySearchTool],
173173
'asset-pack-digest-codebase-agent': [],
174174
'asset-pack-research-web-agent': [],
175+
// Deposit Discovery roster keys (one entry each; factory names only if tools resolve by agent class).
175176
'DepositCodebaseComprehensionAgent': optionalTools(
176177
lspSemanticAnalysisEngine,
177178
lspCodeIntelligenceEngine,
@@ -182,20 +183,16 @@ export function getAssetPackPipelineToolsForAgent(agentName: string): Tool[] {
182183
lspCodeIntelligenceEngine,
183184
lspWorkspaceNavigationEngine,
184185
),
185-
'discovery:codebase-comprehension': optionalTools(
186-
lspSemanticAnalysisEngine,
187-
lspCodeIntelligenceEngine,
188-
lspWorkspaceNavigationEngine,
189-
),
190186
'DepositDepositorySearchAgent': [depositDepositoryAssetPackSearchTool, lexicalDepositorySearchTool],
191187
'discovery:search-depository': [depositDepositoryAssetPackSearchTool, lexicalDepositorySearchTool],
192-
'discovery:depository-search': [depositDepositoryAssetPackSearchTool, lexicalDepositorySearchTool],
188+
'discovery:inherent-regurgitation': [],
189+
'DepositInherentRegurgitationAgent': [],
193190

194-
// Implementation Phase
191+
// Implementation Phase (roster key + factory name when tools bind by either)
195192
'ReadFitsFindingSynthesisAssetPackSynthesisAgent': [],
196193
'implementation:ReadFitsFindingSynthesisAssetPackSynthesisAgent': [],
197194
'implementation:deposit-asset-pack-synthesis': [],
198-
'deposit-asset-pack-synthesis': [],
195+
'DepositAssetPackSynthesisAgent': [],
199196

200197
// Validation Phase
201198
'asset-pack-validate-last-iterations-validation-phase-agent': optionalTools(lspSemanticAnalysisEngine),
@@ -204,7 +201,7 @@ export function getAssetPackPipelineToolsForAgent(agentName: string): Tool[] {
204201
'asset-pack-validation-ready-to-finish-agent': [],
205202
'asset-pack-ready-to-finish-agent': [],
206203
'validation:ready-to-finish-asset-packs-synthesis-deposit-pipeline': [],
207-
'validation:deposit-quality': [],
204+
'validation:asset-pack-ready-to-finish-agent': [],
208205

209206
// Internal Read-measurement computer-use option
210207
'read-measurement:computer-use-evidence-agent': getComputerUseReadMeasurementTools(),

0 commit comments

Comments
 (0)