@zhixuan92/multi-model-agent-core 0.4.0 → 1.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.
- package/dist/config/load.js +9 -9
- package/dist/config/load.js.map +1 -1
- package/dist/config/schema.d.ts +168 -275
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +30 -39
- package/dist/config/schema.js.map +1 -1
- package/dist/cost/cost-meter.d.ts +13 -0
- package/dist/cost/cost-meter.d.ts.map +1 -0
- package/dist/cost/cost-meter.js +20 -0
- package/dist/cost/cost-meter.js.map +1 -0
- package/dist/delegate-with-escalation.d.ts +1 -28
- package/dist/delegate-with-escalation.d.ts.map +1 -1
- package/dist/delegate-with-escalation.js +9 -89
- package/dist/delegate-with-escalation.js.map +1 -1
- package/dist/error-codes.d.ts +4 -0
- package/dist/error-codes.d.ts.map +1 -0
- package/dist/error-codes.js +16 -0
- package/dist/error-codes.js.map +1 -0
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -5
- package/dist/index.js.map +1 -1
- package/dist/model-profiles.json +10 -5
- package/dist/provider.d.ts +2 -2
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +10 -13
- package/dist/provider.js.map +1 -1
- package/dist/readiness/normalization-budget.d.ts +2 -0
- package/dist/readiness/normalization-budget.d.ts.map +1 -0
- package/dist/readiness/normalization-budget.js +9 -0
- package/dist/readiness/normalization-budget.js.map +1 -0
- package/dist/readiness/normalize-brief.d.ts +17 -0
- package/dist/readiness/normalize-brief.d.ts.map +1 -0
- package/dist/readiness/normalize-brief.js +124 -0
- package/dist/readiness/normalize-brief.js.map +1 -0
- package/dist/readiness/readiness.d.ts +16 -0
- package/dist/readiness/readiness.d.ts.map +1 -0
- package/dist/readiness/readiness.js +160 -0
- package/dist/readiness/readiness.js.map +1 -0
- package/dist/reporting/structured-report.d.ts +18 -0
- package/dist/reporting/structured-report.d.ts.map +1 -0
- package/dist/reporting/structured-report.js +100 -0
- package/dist/reporting/structured-report.js.map +1 -0
- package/dist/review/aggregate-result.d.ts +3 -0
- package/dist/review/aggregate-result.d.ts.map +1 -0
- package/dist/review/aggregate-result.js +31 -0
- package/dist/review/aggregate-result.js.map +1 -0
- package/dist/review/quality-reviewer.d.ts +13 -0
- package/dist/review/quality-reviewer.d.ts.map +1 -0
- package/dist/review/quality-reviewer.js +39 -0
- package/dist/review/quality-reviewer.js.map +1 -0
- package/dist/review/reviewer-prompt.d.ts +10 -0
- package/dist/review/reviewer-prompt.d.ts.map +1 -0
- package/dist/review/reviewer-prompt.js +58 -0
- package/dist/review/reviewer-prompt.js.map +1 -0
- package/dist/review/spec-reviewer.d.ts +13 -0
- package/dist/review/spec-reviewer.d.ts.map +1 -0
- package/dist/review/spec-reviewer.js +37 -0
- package/dist/review/spec-reviewer.js.map +1 -0
- package/dist/routing/model-profiles.d.ts +5 -0
- package/dist/routing/model-profiles.d.ts.map +1 -1
- package/dist/routing/model-profiles.js +5 -0
- package/dist/routing/model-profiles.js.map +1 -1
- package/dist/routing/resolve-agent.d.ts +8 -0
- package/dist/routing/resolve-agent.d.ts.map +1 -0
- package/dist/routing/resolve-agent.js +45 -0
- package/dist/routing/resolve-agent.js.map +1 -0
- package/dist/run-tasks.d.ts +0 -23
- package/dist/run-tasks.d.ts.map +1 -1
- package/dist/run-tasks.js +241 -72
- package/dist/run-tasks.js.map +1 -1
- package/dist/runners/claude-runner.d.ts.map +1 -1
- package/dist/runners/claude-runner.js +67 -24
- package/dist/runners/claude-runner.js.map +1 -1
- package/dist/runners/codex-runner.d.ts.map +1 -1
- package/dist/runners/codex-runner.js +68 -21
- package/dist/runners/codex-runner.js.map +1 -1
- package/dist/runners/openai-runner.d.ts.map +1 -1
- package/dist/runners/openai-runner.js +139 -20
- package/dist/runners/openai-runner.js.map +1 -1
- package/dist/runners/prevention.d.ts +2 -0
- package/dist/runners/prevention.d.ts.map +1 -1
- package/dist/runners/prevention.js +12 -0
- package/dist/runners/prevention.js.map +1 -1
- package/dist/runners/supervision.d.ts +1 -5
- package/dist/runners/supervision.d.ts.map +1 -1
- package/dist/runners/supervision.js +0 -68
- package/dist/runners/supervision.js.map +1 -1
- package/dist/tools/call-cache.d.ts +16 -0
- package/dist/tools/call-cache.d.ts.map +1 -0
- package/dist/tools/call-cache.js +28 -0
- package/dist/tools/call-cache.js.map +1 -0
- package/dist/types.d.ts +78 -30
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +48 -16
- package/dist/routing/capabilities.d.ts +0 -3
- package/dist/routing/capabilities.d.ts.map +0 -1
- package/dist/routing/capabilities.js +0 -26
- package/dist/routing/capabilities.js.map +0 -1
- package/dist/routing/get-provider-eligibility.d.ts +0 -8
- package/dist/routing/get-provider-eligibility.d.ts.map +0 -1
- package/dist/routing/get-provider-eligibility.js +0 -53
- package/dist/routing/get-provider-eligibility.js.map +0 -1
- package/dist/routing/resolve-task-capabilities.d.ts +0 -7
- package/dist/routing/resolve-task-capabilities.d.ts.map +0 -1
- package/dist/routing/resolve-task-capabilities.js +0 -19
- package/dist/routing/resolve-task-capabilities.js.map +0 -1
- package/dist/routing/select-provider-for-task.d.ts +0 -18
- package/dist/routing/select-provider-for-task.d.ts.map +0 -1
- package/dist/routing/select-provider-for-task.js +0 -50
- package/dist/routing/select-provider-for-task.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewer-prompt.js","sourceRoot":"","sources":["../../src/review/reviewer-prompt.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,qBAAqB,CACnC,MAA2B,EAC3B,UAAkC,EAClC,YAAoC,EACpC,WAAqB;IAErB,OAAO;QACL,+FAA+F;QAC/F,EAAE;QACF,sCAAsC;QACtC,MAAM,CAAC,gBAAgB;QACvB,UAAU,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACnC,mBAAmB,MAAM,CAAC,aAAa,EAAE;QACzC,EAAE;QACF,kCAAkC;QAClC,YAAY,UAAU,CAAC,OAAO,IAAI,KAAK,EAAE;QACzC,kBAAkB,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC5F,oBAAoB,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAClG,eAAe,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;QACpE,eAAe,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;QAC3D,EAAE;QACF,yBAAyB;QACzB,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CACtD,OAAO,IAAI,aAAa,OAAO,UAAU,CAAC;QAC5C,EAAE;QACF,kBAAkB;QAClB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QACtB,EAAE;QACF,cAAc;QACd,kGAAkG;QAClG,0DAA0D;QAC1D,uDAAuD;QACvD,oGAAoG;KACrG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAA2B,EAC3B,UAAkC,EAClC,YAAoC,EACpC,WAAqB;IAErB,OAAO;QACL,qGAAqG;QACrG,EAAE;QACF,qBAAqB;QACrB,MAAM,CAAC,gBAAgB;QACvB,EAAE;QACF,kCAAkC;QAClC,YAAY,UAAU,CAAC,OAAO,IAAI,KAAK,EAAE;QACzC,kBAAkB,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC5F,EAAE;QACF,yBAAyB;QACzB,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CACtD,OAAO,IAAI,aAAa,OAAO,UAAU,CAAC;QAC5C,EAAE;QACF,kBAAkB;QAClB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QACtB,EAAE;QACF,cAAc;QACd,qFAAqF;QACrF,wDAAwD;QACxD,uBAAuB;QACvB,0BAA0B;QAC1B,sBAAsB;QACtB,4BAA4B;QAC5B,2BAA2B;QAC3B,8DAA8D;KAC/D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Provider } from '../types.js';
|
|
2
|
+
import type { ParsedStructuredReport } from '../reporting/structured-report.js';
|
|
3
|
+
export interface SpecReviewResult {
|
|
4
|
+
status: 'approved' | 'changes_required' | 'not_run';
|
|
5
|
+
report?: ParsedStructuredReport;
|
|
6
|
+
findings: string[];
|
|
7
|
+
}
|
|
8
|
+
export declare function runSpecReview(reviewerProvider: Provider, packet: {
|
|
9
|
+
normalizedPrompt: string;
|
|
10
|
+
scope: string[];
|
|
11
|
+
doneCondition: string;
|
|
12
|
+
}, implReport: ParsedStructuredReport, fileContents: Record<string, string>, toolCallLog: string[]): Promise<SpecReviewResult>;
|
|
13
|
+
//# sourceMappingURL=spec-reviewer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-reviewer.d.ts","sourceRoot":"","sources":["../../src/review/spec-reviewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAGhF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,CAAC;IACpD,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAsB,aAAa,CACjC,gBAAgB,EAAE,QAAQ,EAC1B,MAAM,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EAC5E,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,gBAAgB,CAAC,CA0C3B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { delegateWithEscalation } from '../delegate-with-escalation.js';
|
|
2
|
+
import { buildSpecReviewPrompt } from './reviewer-prompt.js';
|
|
3
|
+
import { parseStructuredReport } from '../reporting/structured-report.js';
|
|
4
|
+
export async function runSpecReview(reviewerProvider, packet, implReport, fileContents, toolCallLog) {
|
|
5
|
+
const prompt = buildSpecReviewPrompt(packet, implReport, fileContents, toolCallLog);
|
|
6
|
+
let result;
|
|
7
|
+
try {
|
|
8
|
+
const reviewerSlot = reviewerProvider.name === 'standard' ? 'standard' : 'complex';
|
|
9
|
+
result = await delegateWithEscalation({
|
|
10
|
+
prompt,
|
|
11
|
+
agentType: reviewerSlot,
|
|
12
|
+
briefQualityPolicy: 'off',
|
|
13
|
+
maxTurns: 20,
|
|
14
|
+
timeoutMs: 120_000,
|
|
15
|
+
}, [reviewerProvider], { explicitlyPinned: true });
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return { status: 'not_run', findings: [] };
|
|
19
|
+
}
|
|
20
|
+
if (result.status !== 'ok') {
|
|
21
|
+
return { status: 'not_run', findings: [] };
|
|
22
|
+
}
|
|
23
|
+
const report = parseStructuredReport(result.output);
|
|
24
|
+
if (!report.summary) {
|
|
25
|
+
return { status: 'not_run', findings: [] };
|
|
26
|
+
}
|
|
27
|
+
const summaryLower = report.summary.toLowerCase();
|
|
28
|
+
if (summaryLower.includes('changes_required')) {
|
|
29
|
+
return {
|
|
30
|
+
status: 'changes_required',
|
|
31
|
+
report,
|
|
32
|
+
findings: [...(report.deviationsFromBrief ?? []), ...(report.unresolved ?? [])],
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
return { status: 'approved', report, findings: [] };
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=spec-reviewer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-reviewer.js","sourceRoot":"","sources":["../../src/review/spec-reviewer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAQ1E,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,gBAA0B,EAC1B,MAA4E,EAC5E,UAAkC,EAClC,YAAoC,EACpC,WAAqB;IAErB,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAEpF,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,YAAY,GAChB,gBAAgB,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,MAAM,GAAG,MAAM,sBAAsB,CACnC;YACE,MAAM;YACN,SAAS,EAAE,YAAY;YACvB,kBAAkB,EAAE,KAAK;YACzB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,OAAO;SACnB,EACD,CAAC,gBAAgB,CAAC,EAClB,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAC3B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAElD,IAAI,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC9C,OAAO;YACL,MAAM,EAAE,kBAAkB;YAC1B,MAAM;YACN,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;SAChF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACtD,CAAC"}
|
|
@@ -22,8 +22,13 @@ export declare const modelProfileSchema: z.ZodObject<{
|
|
|
22
22
|
rateSource: z.ZodOptional<z.ZodString>;
|
|
23
23
|
rateLookupDate: z.ZodOptional<z.ZodString>;
|
|
24
24
|
inputTokenSoftLimit: z.ZodNumber;
|
|
25
|
+
capabilities: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
26
|
+
web_search: "web_search";
|
|
27
|
+
web_fetch: "web_fetch";
|
|
28
|
+
}>>>;
|
|
25
29
|
}, z.core.$strip>;
|
|
26
30
|
export type ModelProfile = z.infer<typeof modelProfileSchema>;
|
|
27
31
|
export declare function findModelProfile(modelId: string): ModelProfile;
|
|
32
|
+
export declare function findModelCapabilities(modelId: string): ('web_search' | 'web_fetch')[];
|
|
28
33
|
export declare function getEffectiveCostTier(config: ProviderConfig): CostTier;
|
|
29
34
|
//# sourceMappingURL=model-profiles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-profiles.d.ts","sourceRoot":"","sources":["../../src/routing/model-profiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"model-profiles.d.ts","sourceRoot":"","sources":["../../src/routing/model-profiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAM5D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgB7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAqB9D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAQ9D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,EAAE,CAErF;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CAErE"}
|
|
@@ -17,6 +17,7 @@ export const modelProfileSchema = z.object({
|
|
|
17
17
|
/** Per-model-family default for the watchdog input-token soft limit.
|
|
18
18
|
* See spec A.1.4. */
|
|
19
19
|
inputTokenSoftLimit: z.number().int().positive(),
|
|
20
|
+
capabilities: z.array(z.enum(['web_search', 'web_fetch'])).default([]),
|
|
20
21
|
});
|
|
21
22
|
const DEFAULT_PROFILE = {
|
|
22
23
|
prefix: '',
|
|
@@ -25,6 +26,7 @@ const DEFAULT_PROFILE = {
|
|
|
25
26
|
bestFor: 'general tasks (unprofiled model — defaults applied)',
|
|
26
27
|
supportsEffort: false,
|
|
27
28
|
inputTokenSoftLimit: 100_000,
|
|
29
|
+
capabilities: [],
|
|
28
30
|
};
|
|
29
31
|
// Validate and sort once at module load — longest prefix wins
|
|
30
32
|
const PROFILE_ENTRIES = (() => {
|
|
@@ -43,6 +45,9 @@ export function findModelProfile(modelId) {
|
|
|
43
45
|
}
|
|
44
46
|
return { ...DEFAULT_PROFILE };
|
|
45
47
|
}
|
|
48
|
+
export function findModelCapabilities(modelId) {
|
|
49
|
+
return findModelProfile(modelId).capabilities ?? [];
|
|
50
|
+
}
|
|
46
51
|
export function getEffectiveCostTier(config) {
|
|
47
52
|
return config.costTier ?? findModelProfile(config.model).defaultCost;
|
|
48
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-profiles.js","sourceRoot":"","sources":["../../src/routing/model-profiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,WAAW,MAAM,wBAAwB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEvE,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;AAChE,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,cAAc;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAC9D,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAC/D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IAClE;0BACsB;IACtB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"model-profiles.js","sourceRoot":"","sources":["../../src/routing/model-profiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AgentType, AgentCapability, MultiModelConfig, Provider } from '../types.js';
|
|
2
|
+
export interface ResolvedAgent {
|
|
3
|
+
slot: AgentType;
|
|
4
|
+
provider: Provider;
|
|
5
|
+
capabilityOverride: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function resolveAgent(agentType: AgentType, requiredCapabilities: AgentCapability[], config: MultiModelConfig): ResolvedAgent;
|
|
8
|
+
//# sourceMappingURL=resolve-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-agent.d.ts","sourceRoot":"","sources":["../../src/routing/resolve-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAe,gBAAgB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAoBD,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,EACpB,oBAAoB,EAAE,eAAe,EAAE,EACvC,MAAM,EAAE,gBAAgB,GACvB,aAAa,CAmCf"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { findModelCapabilities } from './model-profiles.js';
|
|
2
|
+
import { createProvider } from '../provider.js';
|
|
3
|
+
function resolveCapabilities(agent) {
|
|
4
|
+
return agent.capabilities ?? findModelCapabilities(agent.model) ?? [];
|
|
5
|
+
}
|
|
6
|
+
function hasAllCapabilities(agent, required) {
|
|
7
|
+
if (required.length === 0)
|
|
8
|
+
return true;
|
|
9
|
+
const available = resolveCapabilities(agent) ?? [];
|
|
10
|
+
return required.every((cap) => available.includes(cap));
|
|
11
|
+
}
|
|
12
|
+
const OTHER_SLOT = {
|
|
13
|
+
standard: 'complex',
|
|
14
|
+
complex: 'standard',
|
|
15
|
+
};
|
|
16
|
+
export function resolveAgent(agentType, requiredCapabilities, config) {
|
|
17
|
+
const agents = config.agents;
|
|
18
|
+
if (!agents) {
|
|
19
|
+
throw new Error('capability_missing: config must have agents defined');
|
|
20
|
+
}
|
|
21
|
+
const declared = agents[agentType];
|
|
22
|
+
if (!declared) {
|
|
23
|
+
throw new Error(`capability_missing: agent "${agentType}" not found in config`);
|
|
24
|
+
}
|
|
25
|
+
if (hasAllCapabilities(declared, requiredCapabilities)) {
|
|
26
|
+
return {
|
|
27
|
+
slot: agentType,
|
|
28
|
+
provider: createProvider(agentType, config),
|
|
29
|
+
capabilityOverride: false,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const otherSlot = OTHER_SLOT[agentType];
|
|
33
|
+
const other = agents[otherSlot];
|
|
34
|
+
if (other && hasAllCapabilities(other, requiredCapabilities)) {
|
|
35
|
+
return {
|
|
36
|
+
slot: otherSlot,
|
|
37
|
+
provider: createProvider(otherSlot, config),
|
|
38
|
+
capabilityOverride: true,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const missing = requiredCapabilities.filter((cap) => !resolveCapabilities(declared).includes(cap) &&
|
|
42
|
+
(other ? resolveCapabilities(other).includes(cap) : true));
|
|
43
|
+
throw new Error(`capability_missing: neither standard nor complex agent has: ${missing.join(', ')}`);
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=resolve-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-agent.js","sourceRoot":"","sources":["../../src/routing/resolve-agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQhD,SAAS,mBAAmB,CAAC,KAAkB;IAC7C,OAAO,KAAK,CAAC,YAAY,IAAI,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACxE,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAkB,EAClB,QAA2B;IAE3B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACnD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,GAAiC;IAC/C,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,UAAU;CACpB,CAAC;AAEF,MAAM,UAAU,YAAY,CAC1B,SAAoB,EACpB,oBAAuC,EACvC,MAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,uBAAuB,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,kBAAkB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,EAAE,CAAC;QACvD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC;YAC3C,kBAAkB,EAAE,KAAK;SAC1B,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,IAAI,KAAK,IAAI,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAC7D,OAAO;YACL,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC;YAC3C,kBAAkB,EAAE,IAAI;SACzB,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,EAAE,CACN,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC5C,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAC5D,CAAC;IACF,MAAM,IAAI,KAAK,CACb,+DAA+D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpF,CAAC;AACJ,CAAC"}
|
package/dist/run-tasks.d.ts
CHANGED
|
@@ -1,31 +1,8 @@
|
|
|
1
1
|
import type { RunResult, TaskSpec, MultiModelConfig, ProgressEvent, RunTasksRuntime } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Per-task progress sink. `runTasks` invokes this for every
|
|
4
|
-
* `ProgressEvent` emitted while working on task at `taskIndex`. The caller
|
|
5
|
-
* (today: the MCP cli bridge) is responsible for disambiguating which task
|
|
6
|
-
* emitted which event — this is the cheapest contract: the orchestrator
|
|
7
|
-
* already knows each task's position in the input array, so the caller
|
|
8
|
-
* doesn't have to wrap N closures.
|
|
9
|
-
*/
|
|
10
2
|
export type RunTasksProgressCallback = (taskIndex: number, event: ProgressEvent) => void;
|
|
11
3
|
export interface RunTasksOptions {
|
|
12
|
-
/** Optional progress sink. See `RunTasksProgressCallback`. When omitted,
|
|
13
|
-
* no progress events are produced — backward-compatible with callers
|
|
14
|
-
* that predate Task 8. */
|
|
15
4
|
onProgress?: RunTasksProgressCallback;
|
|
16
|
-
/** Runtime dependencies the orchestrator needs at dispatch time. Today
|
|
17
|
-
* this is just the context-block store used to expand
|
|
18
|
-
* `TaskSpec.contextBlockIds`. Kept as a nested field so existing callers
|
|
19
|
-
* that only pass `onProgress` don't break. */
|
|
20
5
|
runtime?: RunTasksRuntime;
|
|
21
6
|
}
|
|
22
|
-
/**
|
|
23
|
-
* Run tasks concurrently. Each RunResult corresponds to the matching TaskSpec
|
|
24
|
-
* at the same index. One task failing does not affect others.
|
|
25
|
-
*
|
|
26
|
-
* When `options.onProgress` is supplied, it is called with `(taskIndex, event)`
|
|
27
|
-
* for every progress event emitted by that task's provider run or the
|
|
28
|
-
* escalation orchestrator. See `ProgressEvent` for variants.
|
|
29
|
-
*/
|
|
30
7
|
export declare function runTasks(tasks: TaskSpec[], config: MultiModelConfig, options?: RunTasksOptions): Promise<RunResult[]>;
|
|
31
8
|
//# sourceMappingURL=run-tasks.d.ts.map
|
package/dist/run-tasks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-tasks.d.ts","sourceRoot":"","sources":["../src/run-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,eAAe,
|
|
1
|
+
{"version":3,"file":"run-tasks.d.ts","sourceRoot":"","sources":["../src/run-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,eAAe,EAIhB,MAAM,YAAY,CAAC;AAepB,MAAM,MAAM,wBAAwB,GAAG,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,aAAa,KACjB,IAAI,CAAC;AAEV,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAmRD,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,SAAS,EAAE,CAAC,CAyGtB"}
|
package/dist/run-tasks.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { createProvider } from './provider.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { buildEscalationChain, delegateWithEscalation } from './delegate-with-escalation.js';
|
|
2
|
+
import { resolveAgent } from './routing/resolve-agent.js';
|
|
3
|
+
import { delegateWithEscalation } from './delegate-with-escalation.js';
|
|
5
4
|
import { expandContextBlocks } from './context/expand-context-blocks.js';
|
|
5
|
+
import { evaluateReadiness } from './readiness/readiness.js';
|
|
6
|
+
import { normalizeBrief } from './readiness/normalize-brief.js';
|
|
7
|
+
import { runSpecReview } from './review/spec-reviewer.js';
|
|
8
|
+
import { runQualityReview } from './review/quality-reviewer.js';
|
|
9
|
+
import { aggregateResult } from './review/aggregate-result.js';
|
|
10
|
+
import { parseStructuredReport } from './reporting/structured-report.js';
|
|
11
|
+
import fs from 'fs/promises';
|
|
6
12
|
function errorResult(error) {
|
|
7
13
|
return {
|
|
8
14
|
output: `Sub-agent error: ${error}`,
|
|
@@ -12,51 +18,183 @@ function errorResult(error) {
|
|
|
12
18
|
filesRead: [],
|
|
13
19
|
filesWritten: [],
|
|
14
20
|
toolCalls: [],
|
|
15
|
-
// Orchestrator-level error wrapper (e.g. "no eligible provider",
|
|
16
|
-
// contextBlockIds expansion failure) — pure diagnostic, no salvage.
|
|
17
21
|
outputIsDiagnostic: true,
|
|
18
22
|
escalationLog: [],
|
|
19
23
|
error,
|
|
20
24
|
};
|
|
21
25
|
}
|
|
22
|
-
async function executeTask(resolved,
|
|
26
|
+
async function executeTask(resolved, onProgress) {
|
|
23
27
|
try {
|
|
24
|
-
|
|
25
|
-
// Explicit pin: chain of length 1, no escalation.
|
|
26
|
-
return await delegateWithEscalation(resolved.task, [resolved.provider], { explicitlyPinned: true, onProgress });
|
|
27
|
-
}
|
|
28
|
-
// Auto-routed: walk all eligible providers cheapest-first.
|
|
29
|
-
const chain = buildEscalationChain(resolved.task, config);
|
|
30
|
-
if (chain.length === 0) {
|
|
31
|
-
// Defensive: selectProviderForTask succeeded earlier so eligibility
|
|
32
|
-
// existed at resolution time. If the chain is somehow empty now we
|
|
33
|
-
// surface a structured error rather than throwing.
|
|
34
|
-
return errorResult('No eligible provider found for task at dispatch time.');
|
|
35
|
-
}
|
|
36
|
-
return await delegateWithEscalation(resolved.task, chain, { onProgress });
|
|
28
|
+
return await delegateWithEscalation(resolved.task, [resolved.resolved.provider], { explicitlyPinned: true, onProgress });
|
|
37
29
|
}
|
|
38
30
|
catch (err) {
|
|
39
31
|
return errorResult(err instanceof Error ? err.message : String(err));
|
|
40
32
|
}
|
|
41
33
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
34
|
+
function extractWorkerStatus(report) {
|
|
35
|
+
if (!report || !report.summary)
|
|
36
|
+
return 'done';
|
|
37
|
+
const s = report.summary.toLowerCase();
|
|
38
|
+
if (s.includes('needs_context'))
|
|
39
|
+
return 'needs_context';
|
|
40
|
+
if (s.includes('blocked'))
|
|
41
|
+
return 'blocked';
|
|
42
|
+
if (s.includes('done_with_concerns') || s.includes('concerns'))
|
|
43
|
+
return 'done_with_concerns';
|
|
44
|
+
return 'done';
|
|
45
|
+
}
|
|
46
|
+
async function readImplementerFileContents(filesWritten, cwd) {
|
|
47
|
+
const contents = {};
|
|
48
|
+
const basePath = cwd ?? process.cwd();
|
|
49
|
+
for (const filePath of filesWritten) {
|
|
50
|
+
try {
|
|
51
|
+
const resolved = filePath.startsWith('/') ? filePath : `${basePath}/${filePath}`;
|
|
52
|
+
const content = await fs.readFile(resolved, 'utf-8');
|
|
53
|
+
contents[filePath] = content.length > 50_000
|
|
54
|
+
? content.slice(0, 50_000) + '\n[truncated at 50KB]'
|
|
55
|
+
: content;
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
contents[filePath] = '[file not readable]';
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return contents;
|
|
62
|
+
}
|
|
63
|
+
function buildFallbackImplReport(result) {
|
|
64
|
+
const parsed = parseStructuredReport(result.output);
|
|
65
|
+
if (parsed.summary) {
|
|
66
|
+
return parsed;
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
summary: result.output.substring(0, 200),
|
|
70
|
+
filesChanged: result.filesWritten.map(f => ({ path: f, summary: 'updated' })),
|
|
71
|
+
normalizationDecisions: [],
|
|
72
|
+
validationsRun: [],
|
|
73
|
+
deviationsFromBrief: [],
|
|
74
|
+
unresolved: [],
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
async function executeReviewedLifecycle(task, resolved, config, normResult, onProgress) {
|
|
78
|
+
const reviewPolicy = task.reviewPolicy ?? 'full';
|
|
79
|
+
const maxRounds = task.maxReviewRounds ?? 2;
|
|
80
|
+
const otherSlot = resolved.slot === 'standard' ? 'complex' : 'standard';
|
|
81
|
+
const implResult = await delegateWithEscalation(task, [resolved.provider], { explicitlyPinned: true, onProgress });
|
|
82
|
+
const implReport = implResult.status === 'ok' ? parseStructuredReport(implResult.output) : undefined;
|
|
83
|
+
const workerStatus = extractWorkerStatus(implReport);
|
|
84
|
+
if (workerStatus === 'needs_context' || workerStatus === 'blocked') {
|
|
85
|
+
return {
|
|
86
|
+
...implResult,
|
|
87
|
+
workerStatus,
|
|
88
|
+
specReviewStatus: 'not_run',
|
|
89
|
+
qualityReviewStatus: 'not_run',
|
|
90
|
+
agents: {
|
|
91
|
+
normalizer: normResult && !normResult.skipped ? resolved.slot : 'skipped',
|
|
92
|
+
implementer: resolved.slot,
|
|
93
|
+
specReviewer: 'not_run',
|
|
94
|
+
qualityReviewer: 'not_run',
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
if (reviewPolicy === 'off') {
|
|
99
|
+
return {
|
|
100
|
+
...implResult,
|
|
101
|
+
workerStatus,
|
|
102
|
+
specReviewStatus: 'not_run',
|
|
103
|
+
qualityReviewStatus: 'not_run',
|
|
104
|
+
agents: {
|
|
105
|
+
normalizer: normResult && !normResult.skipped ? resolved.slot : 'skipped',
|
|
106
|
+
implementer: resolved.slot,
|
|
107
|
+
specReviewer: 'not_run',
|
|
108
|
+
qualityReviewer: 'not_run',
|
|
109
|
+
},
|
|
110
|
+
implementationReport: implReport,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
let otherProvider;
|
|
114
|
+
try {
|
|
115
|
+
otherProvider = createProvider(otherSlot, config);
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
return {
|
|
119
|
+
...implResult,
|
|
120
|
+
workerStatus,
|
|
121
|
+
specReviewStatus: 'not_run',
|
|
122
|
+
qualityReviewStatus: 'not_run',
|
|
123
|
+
agents: {
|
|
124
|
+
normalizer: normResult && !normResult.skipped ? resolved.slot : 'skipped',
|
|
125
|
+
implementer: resolved.slot,
|
|
126
|
+
specReviewer: 'not_run',
|
|
127
|
+
qualityReviewer: 'not_run',
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
const packet = {
|
|
132
|
+
normalizedPrompt: normResult?.normalizedPrompt ?? task.prompt,
|
|
133
|
+
scope: normResult?.writeSet ?? [],
|
|
134
|
+
doneCondition: 'tsc passes',
|
|
135
|
+
};
|
|
136
|
+
let fileContents = await readImplementerFileContents(implResult.filesWritten, task.cwd);
|
|
137
|
+
const effectiveImplReport = implReport ?? buildFallbackImplReport(implResult);
|
|
138
|
+
let specResult = await runSpecReview(otherProvider, packet, effectiveImplReport, fileContents, implResult.toolCalls);
|
|
139
|
+
let finalImplResult = implResult;
|
|
140
|
+
let finalImplReport = effectiveImplReport;
|
|
141
|
+
let specStatus = specResult.status;
|
|
142
|
+
let specReport = specResult.report;
|
|
143
|
+
if (specStatus === 'changes_required' && maxRounds > 0) {
|
|
144
|
+
for (let round = 0; round < maxRounds; round++) {
|
|
145
|
+
const reworkPrompt = `${task.prompt}\n\n## Spec Review Feedback (round ${round + 1}):\n${specResult.findings.map(f => `- ${f}`).join('\n')}`;
|
|
146
|
+
const reworkResult = await delegateWithEscalation({ ...task, prompt: reworkPrompt }, [resolved.provider], { explicitlyPinned: true, onProgress });
|
|
147
|
+
finalImplResult = reworkResult;
|
|
148
|
+
const reworkReport = parseStructuredReport(reworkResult.output);
|
|
149
|
+
finalImplReport = reworkReport.summary ? reworkReport : buildFallbackImplReport(reworkResult);
|
|
150
|
+
const reworkContents = await readImplementerFileContents(reworkResult.filesWritten, task.cwd);
|
|
151
|
+
fileContents = reworkContents;
|
|
152
|
+
specResult = await runSpecReview(otherProvider, packet, finalImplReport, reworkContents, reworkResult.toolCalls);
|
|
153
|
+
specStatus = specResult.status;
|
|
154
|
+
specReport = specResult.report;
|
|
155
|
+
if (specStatus === 'approved')
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
let qualityResult = { status: 'not_run', report: undefined, findings: [] };
|
|
160
|
+
if (reviewPolicy === 'full') {
|
|
161
|
+
qualityResult = await runQualityReview(otherProvider, packet, specReport ?? finalImplReport, fileContents, finalImplResult.toolCalls, finalImplResult.filesWritten);
|
|
162
|
+
if (qualityResult.status === 'changes_required' && maxRounds > 0) {
|
|
163
|
+
for (let round = 0; round < maxRounds; round++) {
|
|
164
|
+
const reworkPrompt = `${task.prompt}\n\n## Quality Review Feedback (round ${round + 1}):\n${qualityResult.findings.map(f => `- ${f}`).join('\n')}`;
|
|
165
|
+
const reworkResult = await delegateWithEscalation({ ...task, prompt: reworkPrompt }, [resolved.provider], { explicitlyPinned: true, onProgress });
|
|
166
|
+
finalImplResult = reworkResult;
|
|
167
|
+
const reworkReport = parseStructuredReport(reworkResult.output);
|
|
168
|
+
finalImplReport = reworkReport.summary ? reworkReport : buildFallbackImplReport(reworkResult);
|
|
169
|
+
const reworkContents = await readImplementerFileContents(reworkResult.filesWritten, task.cwd);
|
|
170
|
+
qualityResult = await runQualityReview(otherProvider, packet, finalImplReport, reworkContents, reworkResult.toolCalls, reworkResult.filesWritten);
|
|
171
|
+
if (qualityResult.status === 'approved')
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
const finalReport = specReport ?? finalImplReport;
|
|
177
|
+
const aggregated = aggregateResult(finalReport, specReport, qualityResult.report, specStatus, qualityResult.status);
|
|
178
|
+
return {
|
|
179
|
+
...finalImplResult,
|
|
180
|
+
workerStatus,
|
|
181
|
+
specReviewStatus: specStatus,
|
|
182
|
+
qualityReviewStatus: qualityResult.status,
|
|
183
|
+
structuredReport: aggregated,
|
|
184
|
+
implementationReport: finalImplReport,
|
|
185
|
+
specReviewReport: specReport,
|
|
186
|
+
qualityReviewReport: qualityResult.report,
|
|
187
|
+
agents: {
|
|
188
|
+
normalizer: normResult && !normResult.skipped ? resolved.slot : 'skipped',
|
|
189
|
+
implementer: resolved.slot,
|
|
190
|
+
specReviewer: otherSlot,
|
|
191
|
+
qualityReviewer: reviewPolicy === 'full' ? otherSlot : 'not_run',
|
|
192
|
+
},
|
|
193
|
+
};
|
|
194
|
+
}
|
|
50
195
|
export async function runTasks(tasks, config, options = {}) {
|
|
51
196
|
if (tasks.length === 0)
|
|
52
197
|
return [];
|
|
53
|
-
// Expand context blocks up-front so the rest of the pipeline sees a
|
|
54
|
-
// self-contained prompt. `expandContextBlocks` is a no-op for tasks
|
|
55
|
-
// without `contextBlockIds` and for calls that omit `runtime`, so
|
|
56
|
-
// existing callers are unaffected. A missing block id throws
|
|
57
|
-
// `ContextBlockNotFoundError` synchronously — we convert it to an
|
|
58
|
-
// error-result for the specific task so the rest of the batch still
|
|
59
|
-
// runs.
|
|
60
198
|
const expandedTasks = tasks.map((task) => {
|
|
61
199
|
try {
|
|
62
200
|
return expandContextBlocks(task, options.runtime?.contextBlockStore);
|
|
@@ -65,59 +203,90 @@ export async function runTasks(tasks, config, options = {}) {
|
|
|
65
203
|
return { error: err instanceof Error ? err.message : String(err) };
|
|
66
204
|
}
|
|
67
205
|
});
|
|
68
|
-
const
|
|
69
|
-
if ('error' in entry)
|
|
70
|
-
return
|
|
71
|
-
}
|
|
206
|
+
const readinessResults = expandedTasks.map((entry) => {
|
|
207
|
+
if ('error' in entry)
|
|
208
|
+
return undefined;
|
|
72
209
|
const task = entry;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
if (!report.eligible) {
|
|
85
|
-
const reasons = report.reasons.map((r) => r.message).join('; ');
|
|
86
|
-
return {
|
|
87
|
-
task,
|
|
88
|
-
error: `Provider "${task.provider}" is ineligible: ${reasons}`,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
210
|
+
return evaluateReadiness(task, task.briefQualityPolicy ?? 'warn');
|
|
211
|
+
});
|
|
212
|
+
const refusedResults = expandedTasks.map((entry, idx) => {
|
|
213
|
+
if ('error' in entry)
|
|
214
|
+
return undefined;
|
|
215
|
+
const readiness = readinessResults[idx];
|
|
216
|
+
if (!readiness)
|
|
217
|
+
return undefined;
|
|
218
|
+
if (readiness.action === 'refuse') {
|
|
91
219
|
return {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
220
|
+
output: `Brief too vague: missing ${readiness.missingPillars.join(', ')}`,
|
|
221
|
+
status: 'brief_too_vague',
|
|
222
|
+
usage: { inputTokens: 0, outputTokens: 0, totalTokens: 0, costUSD: null },
|
|
223
|
+
turns: 0,
|
|
224
|
+
filesRead: [],
|
|
225
|
+
filesWritten: [],
|
|
226
|
+
toolCalls: [],
|
|
227
|
+
outputIsDiagnostic: true,
|
|
228
|
+
escalationLog: [],
|
|
229
|
+
errorCode: 'brief_too_vague',
|
|
230
|
+
briefQualityWarnings: readiness.briefQualityWarnings,
|
|
231
|
+
retryable: false,
|
|
95
232
|
};
|
|
96
233
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
234
|
+
return undefined;
|
|
235
|
+
});
|
|
236
|
+
const normalizationResults = await Promise.all(expandedTasks.map(async (entry, idx) => {
|
|
237
|
+
if ('error' in entry)
|
|
238
|
+
return undefined;
|
|
239
|
+
const readiness = readinessResults[idx];
|
|
240
|
+
if (!readiness || readiness.action !== 'normalize')
|
|
241
|
+
return undefined;
|
|
242
|
+
return await normalizeBrief(entry, config);
|
|
243
|
+
}));
|
|
244
|
+
const effectiveTasks = expandedTasks.map((entry, idx) => {
|
|
245
|
+
if ('error' in entry)
|
|
246
|
+
return entry;
|
|
247
|
+
const norm = normalizationResults[idx];
|
|
248
|
+
if (norm && !norm.skipped) {
|
|
249
|
+
return { ...entry, prompt: norm.normalizedPrompt };
|
|
250
|
+
}
|
|
251
|
+
return entry;
|
|
252
|
+
});
|
|
253
|
+
const resolved = effectiveTasks.map((entry, idx) => {
|
|
254
|
+
if ('error' in entry) {
|
|
255
|
+
return { task: tasks[idx], error: entry.error, errorCode: 'context_block_not_found' };
|
|
256
|
+
}
|
|
257
|
+
const task = entry;
|
|
258
|
+
const agentType = task.agentType ?? 'standard';
|
|
259
|
+
try {
|
|
260
|
+
const resolved_agent = resolveAgent(agentType, (task.requiredCapabilities ?? []), config);
|
|
261
|
+
return { task, resolved: resolved_agent };
|
|
262
|
+
}
|
|
263
|
+
catch (err) {
|
|
103
264
|
return {
|
|
104
265
|
task,
|
|
105
|
-
error:
|
|
266
|
+
error: err instanceof Error ? err.message : String(err),
|
|
267
|
+
errorCode: 'capability_missing',
|
|
106
268
|
};
|
|
107
269
|
}
|
|
108
|
-
return { task, pinned: false };
|
|
109
270
|
});
|
|
110
271
|
return Promise.all(resolved.map((r, index) => {
|
|
111
272
|
if ('error' in r) {
|
|
112
|
-
return Promise.resolve(errorResult(r.error));
|
|
273
|
+
return Promise.resolve({ ...errorResult(r.error), errorCode: r.errorCode });
|
|
113
274
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
275
|
+
const refused = refusedResults[index];
|
|
276
|
+
if (refused) {
|
|
277
|
+
return Promise.resolve(refused);
|
|
278
|
+
}
|
|
279
|
+
const normResult = normalizationResults[index];
|
|
117
280
|
const taskProgress = options.onProgress
|
|
118
281
|
? (event) => options.onProgress(index, event)
|
|
119
282
|
: undefined;
|
|
120
|
-
|
|
283
|
+
const readiness = readinessResults[index];
|
|
284
|
+
return executeReviewedLifecycle(r.task, r.resolved, config, normResult, taskProgress).then((result) => {
|
|
285
|
+
if (readiness && readiness.briefQualityWarnings.length > 0) {
|
|
286
|
+
return { ...result, briefQualityWarnings: readiness.briefQualityWarnings };
|
|
287
|
+
}
|
|
288
|
+
return result;
|
|
289
|
+
});
|
|
121
290
|
}));
|
|
122
291
|
}
|
|
123
292
|
//# sourceMappingURL=run-tasks.js.map
|
package/dist/run-tasks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-tasks.js","sourceRoot":"","sources":["../src/run-tasks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-tasks.js","sourceRoot":"","sources":["../src/run-tasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-runner.d.ts","sourceRoot":"","sources":["../../src/runners/claude-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,cAAc,EAEpB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-runner.d.ts","sourceRoot":"","sources":["../../src/runners/claude-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,cAAc,EAEpB,MAAM,aAAa,CAAC;AAwGrB,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GACxE,OAAO,CAAC,SAAS,CAAC,CA8nBpB"}
|