@zhixuan92/multi-model-agent-core 4.0.2 → 4.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -6
- package/dist/bounded-execution/activity-tracker-types.d.ts +2 -2
- package/dist/bounded-execution/activity-tracker-types.d.ts.map +1 -1
- package/dist/bounded-execution/activity-tracker.d.ts +3 -3
- package/dist/bounded-execution/activity-tracker.d.ts.map +1 -1
- package/dist/bounded-execution/activity-tracker.js +15 -15
- package/dist/bounded-execution/activity-tracker.js.map +1 -1
- package/dist/config/model-profile-registry.d.ts +0 -10
- package/dist/config/model-profile-registry.d.ts.map +1 -1
- package/dist/config/model-profile-registry.js +126 -8
- package/dist/config/model-profile-registry.js.map +1 -1
- package/dist/config/schema.d.ts +0 -1
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +3 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/escalation/delegate-with-escalation.d.ts +24 -0
- package/dist/escalation/delegate-with-escalation.d.ts.map +1 -1
- package/dist/escalation/delegate-with-escalation.js +5 -0
- package/dist/escalation/delegate-with-escalation.js.map +1 -1
- package/dist/escalation/fallback-types.d.ts +1 -1
- package/dist/escalation/fallback-types.d.ts.map +1 -1
- package/dist/escalation/fallback.js +2 -2
- package/dist/escalation/fallback.js.map +1 -1
- package/dist/events/cloud-events.d.ts +3 -4
- package/dist/events/cloud-events.d.ts.map +1 -1
- package/dist/events/cloud-events.js +0 -1
- package/dist/events/cloud-events.js.map +1 -1
- package/dist/events/event-builder.d.ts +4 -2
- package/dist/events/event-builder.d.ts.map +1 -1
- package/dist/events/event-builder.js +47 -45
- package/dist/events/event-builder.js.map +1 -1
- package/dist/events/observability-events.d.ts +7 -8
- package/dist/events/observability-events.d.ts.map +1 -1
- package/dist/events/running-headline-sink.d.ts +26 -0
- package/dist/events/running-headline-sink.d.ts.map +1 -0
- package/dist/events/running-headline-sink.js +116 -0
- package/dist/events/running-headline-sink.js.map +1 -0
- package/dist/events/telemetry-types.d.ts +20 -20
- package/dist/events/telemetry-types.js +8 -8
- package/dist/events/telemetry-types.js.map +1 -1
- package/dist/events/verbose-log-channel.d.ts +22 -2
- package/dist/events/verbose-log-channel.d.ts.map +1 -1
- package/dist/events/verbose-log-channel.js +46 -9
- package/dist/events/verbose-log-channel.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/intake/brief-compiler-slots/delegate.d.ts +1 -0
- package/dist/intake/brief-compiler-slots/delegate.d.ts.map +1 -1
- package/dist/intake/brief-compiler-slots/delegate.js +17 -2
- package/dist/intake/brief-compiler-slots/delegate.js.map +1 -1
- package/dist/lifecycle/diff-tracker.d.ts +72 -0
- package/dist/lifecycle/diff-tracker.d.ts.map +1 -0
- package/dist/lifecycle/diff-tracker.js +316 -0
- package/dist/lifecycle/diff-tracker.js.map +1 -0
- package/dist/lifecycle/executor-output-types.d.ts +2 -2
- package/dist/lifecycle/executor-output-types.d.ts.map +1 -1
- package/dist/lifecycle/handlers/baseline-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/baseline-handlers.js +48 -1
- package/dist/lifecycle/handlers/baseline-handlers.js.map +1 -1
- package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts +1 -1
- package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/prepare-execution-context-handler.js +23 -1
- package/dist/lifecycle/handlers/prepare-execution-context-handler.js.map +1 -1
- package/dist/lifecycle/handlers/quality-chain-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/quality-chain-handlers.js +177 -6
- package/dist/lifecycle/handlers/quality-chain-handlers.js.map +1 -1
- package/dist/lifecycle/handlers/review-diff-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/review-diff-handler.js +74 -13
- package/dist/lifecycle/handlers/review-diff-handler.js.map +1 -1
- package/dist/lifecycle/handlers/run-verify-command-handler.js +11 -2
- package/dist/lifecycle/handlers/run-verify-command-handler.js.map +1 -1
- package/dist/lifecycle/handlers/spec-chain-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/spec-chain-handlers.js +135 -6
- package/dist/lifecycle/handlers/spec-chain-handlers.js.map +1 -1
- package/dist/lifecycle/handlers/terminal-handlers.d.ts +8 -0
- package/dist/lifecycle/handlers/terminal-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/terminal-handlers.js +168 -11
- package/dist/lifecycle/handlers/terminal-handlers.js.map +1 -1
- package/dist/lifecycle/lifecycle-context.d.ts +0 -2
- package/dist/lifecycle/lifecycle-context.d.ts.map +1 -1
- package/dist/lifecycle/merge-stage-stats.d.ts +58 -0
- package/dist/lifecycle/merge-stage-stats.d.ts.map +1 -0
- package/dist/lifecycle/merge-stage-stats.js +120 -0
- package/dist/lifecycle/merge-stage-stats.js.map +1 -0
- package/dist/lifecycle/shared-compute.js +4 -4
- package/dist/lifecycle/shared-compute.js.map +1 -1
- package/dist/lifecycle/stage-plan-builder.d.ts.map +1 -1
- package/dist/lifecycle/stage-plan-builder.js +6 -0
- package/dist/lifecycle/stage-plan-builder.js.map +1 -1
- package/dist/lifecycle/stage-plan-types.d.ts +18 -0
- package/dist/lifecycle/stage-plan-types.d.ts.map +1 -1
- package/dist/lifecycle/stage-progression.d.ts +20 -0
- package/dist/lifecycle/stage-progression.d.ts.map +1 -0
- package/dist/lifecycle/stage-progression.js +165 -0
- package/dist/lifecycle/stage-progression.js.map +1 -0
- package/dist/lifecycle/task-executor.d.ts.map +1 -1
- package/dist/lifecycle/task-executor.js +55 -10
- package/dist/lifecycle/task-executor.js.map +1 -1
- package/dist/lifecycle/task-runner.d.ts +7 -3
- package/dist/lifecycle/task-runner.d.ts.map +1 -1
- package/dist/lifecycle/task-runner.js +43 -7
- package/dist/lifecycle/task-runner.js.map +1 -1
- package/dist/providers/anthropic-messages-adapter.d.ts.map +1 -1
- package/dist/providers/anthropic-messages-adapter.js +25 -1
- package/dist/providers/anthropic-messages-adapter.js.map +1 -1
- package/dist/providers/base/result-builders.d.ts +1 -1
- package/dist/providers/base/result-builders.d.ts.map +1 -1
- package/dist/providers/base/result-builders.js +4 -4
- package/dist/providers/base/result-builders.js.map +1 -1
- package/dist/providers/make-runner-shell.d.ts.map +1 -1
- package/dist/providers/make-runner-shell.js +6 -5
- package/dist/providers/make-runner-shell.js.map +1 -1
- package/dist/providers/openai-chat-adapter.d.ts +0 -2
- package/dist/providers/openai-chat-adapter.d.ts.map +1 -1
- package/dist/providers/openai-chat-adapter.js +2 -3
- package/dist/providers/openai-chat-adapter.js.map +1 -1
- package/dist/providers/openai-responses-adapter.d.ts +1 -2
- package/dist/providers/openai-responses-adapter.d.ts.map +1 -1
- package/dist/providers/openai-responses-adapter.js +67 -39
- package/dist/providers/openai-responses-adapter.js.map +1 -1
- package/dist/providers/provider-factory.d.ts.map +1 -1
- package/dist/providers/provider-factory.js +51 -9
- package/dist/providers/provider-factory.js.map +1 -1
- package/dist/providers/runner-adapter.d.ts +10 -0
- package/dist/providers/runner-adapter.d.ts.map +1 -1
- package/dist/providers/runner-shell-types.d.ts +33 -0
- package/dist/providers/runner-shell-types.d.ts.map +1 -1
- package/dist/providers/runner-shell.d.ts +10 -1
- package/dist/providers/runner-shell.d.ts.map +1 -1
- package/dist/providers/runner-shell.js +251 -18
- package/dist/providers/runner-shell.js.map +1 -1
- package/dist/providers/runner-types.d.ts +21 -2
- package/dist/providers/runner-types.d.ts.map +1 -1
- package/dist/providers/tool-name-sets.d.ts +29 -0
- package/dist/providers/tool-name-sets.d.ts.map +1 -0
- package/dist/providers/tool-name-sets.js +41 -0
- package/dist/providers/tool-name-sets.js.map +1 -0
- package/dist/reporting/headline-composer.d.ts +12 -0
- package/dist/reporting/headline-composer.d.ts.map +1 -1
- package/dist/reporting/headline-composer.js.map +1 -1
- package/dist/reporting/headline-templates/audit.d.ts.map +1 -1
- package/dist/reporting/headline-templates/audit.js +35 -6
- package/dist/reporting/headline-templates/audit.js.map +1 -1
- package/dist/reporting/headline-templates/debug.d.ts +22 -3
- package/dist/reporting/headline-templates/debug.d.ts.map +1 -1
- package/dist/reporting/headline-templates/debug.js +38 -8
- package/dist/reporting/headline-templates/debug.js.map +1 -1
- package/dist/reporting/headline-templates/delegate.d.ts.map +1 -1
- package/dist/reporting/headline-templates/delegate.js +36 -6
- package/dist/reporting/headline-templates/delegate.js.map +1 -1
- package/dist/reporting/headline-templates/execute-plan.d.ts.map +1 -1
- package/dist/reporting/headline-templates/execute-plan.js +18 -6
- package/dist/reporting/headline-templates/execute-plan.js.map +1 -1
- package/dist/reporting/headline-templates/review.d.ts.map +1 -1
- package/dist/reporting/headline-templates/review.js +32 -8
- package/dist/reporting/headline-templates/review.js.map +1 -1
- package/dist/reporting/headline-templates/verify.d.ts.map +1 -1
- package/dist/reporting/headline-templates/verify.js +23 -6
- package/dist/reporting/headline-templates/verify.js.map +1 -1
- package/dist/reporting/headline-text.d.ts +36 -0
- package/dist/reporting/headline-text.d.ts.map +1 -0
- package/dist/reporting/headline-text.js +73 -0
- package/dist/reporting/headline-text.js.map +1 -0
- package/dist/reporting/report-parser-slots/verify-report.d.ts +17 -0
- package/dist/reporting/report-parser-slots/verify-report.d.ts.map +1 -1
- package/dist/reporting/report-parser-slots/verify-report.js +45 -3
- package/dist/reporting/report-parser-slots/verify-report.js.map +1 -1
- package/dist/reporting/severity.d.ts +62 -0
- package/dist/reporting/severity.d.ts.map +1 -0
- package/dist/reporting/severity.js +93 -0
- package/dist/reporting/severity.js.map +1 -0
- package/dist/reporting/structured-report.d.ts +3 -3
- package/dist/research/explore-orchestrator.d.ts.map +1 -1
- package/dist/research/explore-orchestrator.js +4 -5
- package/dist/research/explore-orchestrator.js.map +1 -1
- package/dist/review/annotator-engine.d.ts +8 -0
- package/dist/review/annotator-engine.d.ts.map +1 -1
- package/dist/review/annotator-engine.js +7 -1
- package/dist/review/annotator-engine.js.map +1 -1
- package/dist/review/annotator-output-parser.d.ts.map +1 -1
- package/dist/review/annotator-output-parser.js +94 -14
- package/dist/review/annotator-output-parser.js.map +1 -1
- package/dist/review/annotator-prompt-builder.d.ts +20 -0
- package/dist/review/annotator-prompt-builder.d.ts.map +1 -1
- package/dist/review/annotator-prompt-builder.js +52 -1
- package/dist/review/annotator-prompt-builder.js.map +1 -1
- package/dist/review/review-types.d.ts +6 -2
- package/dist/review/review-types.d.ts.map +1 -1
- package/dist/review/reviewer-engine.d.ts +25 -0
- package/dist/review/reviewer-engine.d.ts.map +1 -1
- package/dist/review/reviewer-engine.js +18 -1
- package/dist/review/reviewer-engine.js.map +1 -1
- package/dist/review/reviewer-output-parser.d.ts.map +1 -1
- package/dist/review/reviewer-output-parser.js +190 -13
- package/dist/review/reviewer-output-parser.js.map +1 -1
- package/dist/review/reviewer-prompt-builder.d.ts +4 -12
- package/dist/review/reviewer-prompt-builder.d.ts.map +1 -1
- package/dist/review/reviewer-prompt-builder.js.map +1 -1
- package/dist/review/templates/diff-review.d.ts +8 -0
- package/dist/review/templates/diff-review.d.ts.map +1 -1
- package/dist/review/templates/diff-review.js +34 -2
- package/dist/review/templates/diff-review.js.map +1 -1
- package/dist/review/templates/finding-criteria.d.ts +39 -0
- package/dist/review/templates/finding-criteria.d.ts.map +1 -0
- package/dist/review/templates/finding-criteria.js +80 -0
- package/dist/review/templates/finding-criteria.js.map +1 -0
- package/dist/review/templates/quality-review-artifact.d.ts +13 -0
- package/dist/review/templates/quality-review-artifact.d.ts.map +1 -1
- package/dist/review/templates/quality-review-artifact.js +41 -3
- package/dist/review/templates/quality-review-artifact.js.map +1 -1
- package/dist/review/templates/shared.d.ts +22 -5
- package/dist/review/templates/shared.d.ts.map +1 -1
- package/dist/review/templates/spec-review.d.ts +15 -0
- package/dist/review/templates/spec-review.d.ts.map +1 -1
- package/dist/review/templates/spec-review.js +43 -3
- package/dist/review/templates/spec-review.js.map +1 -1
- package/dist/stores/batch-registry.d.ts +18 -0
- package/dist/stores/batch-registry.d.ts.map +1 -1
- package/dist/stores/batch-registry.js +10 -0
- package/dist/stores/batch-registry.js.map +1 -1
- package/dist/stores/context-block-tool.d.ts +14 -0
- package/dist/stores/context-block-tool.d.ts.map +1 -1
- package/dist/stores/context-block-tool.js.map +1 -1
- package/dist/stores/file-backed-context-block-store.d.ts +63 -0
- package/dist/stores/file-backed-context-block-store.d.ts.map +1 -0
- package/dist/stores/file-backed-context-block-store.js +293 -0
- package/dist/stores/file-backed-context-block-store.js.map +1 -0
- package/dist/stores/project-context-registry.d.ts +16 -3
- package/dist/stores/project-context-registry.d.ts.map +1 -1
- package/dist/stores/project-context-registry.js +9 -2
- package/dist/stores/project-context-registry.js.map +1 -1
- package/dist/tools/audit/schema.d.ts +2 -2
- package/dist/tools/audit/tool-config.d.ts.map +1 -1
- package/dist/tools/audit/tool-config.js +23 -6
- package/dist/tools/audit/tool-config.js.map +1 -1
- package/dist/tools/debug/tool-config.d.ts.map +1 -1
- package/dist/tools/debug/tool-config.js +17 -4
- package/dist/tools/debug/tool-config.js.map +1 -1
- package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
- package/dist/tools/execute-plan/tool-config.js +5 -1
- package/dist/tools/execute-plan/tool-config.js.map +1 -1
- package/dist/tools/investigate/tool-config.d.ts +13 -1
- package/dist/tools/investigate/tool-config.d.ts.map +1 -1
- package/dist/tools/investigate/tool-config.js +34 -4
- package/dist/tools/investigate/tool-config.js.map +1 -1
- package/dist/tools/retry/tool-config.d.ts.map +1 -1
- package/dist/tools/retry/tool-config.js +28 -5
- package/dist/tools/retry/tool-config.js.map +1 -1
- package/dist/tools/review/schema.d.ts +1 -1
- package/dist/tools/review/tool-config.d.ts.map +1 -1
- package/dist/tools/review/tool-config.js +19 -4
- package/dist/tools/review/tool-config.js.map +1 -1
- package/dist/tools/verify/tool-config.d.ts.map +1 -1
- package/dist/tools/verify/tool-config.js +17 -4
- package/dist/tools/verify/tool-config.js.map +1 -1
- package/dist/types/enums.d.ts +10 -10
- package/package.json +5 -1
- package/dist/intake/brief-compiler-slots/investigate.d.ts +0 -26
- package/dist/intake/brief-compiler-slots/investigate.d.ts.map +0 -1
- package/dist/intake/brief-compiler-slots/investigate.js +0 -42
- package/dist/intake/brief-compiler-slots/investigate.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-runner-shell.js","sourceRoot":"","sources":["../../src/providers/make-runner-shell.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,MAAM,UAAU,eAAe,CAAC,QAAkB;IAChD,wEAAwE;IACxE,2EAA2E;IAC3E,2DAA2D;IAC3D,MAAM,SAAS,GAAI,QAAyD,CAAC,aAAa,CAAC;IAC3F,IAAI,SAAS;QAAE,OAAO,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"make-runner-shell.js","sourceRoot":"","sources":["../../src/providers/make-runner-shell.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,10 @@ export declare class OpenAIChatAdapter implements RunnerAdapter {
|
|
|
3
3
|
readonly providerType: 'openai' | 'openai-compatible';
|
|
4
4
|
private client;
|
|
5
5
|
private model;
|
|
6
|
-
private maxOutputTokens;
|
|
7
6
|
constructor(opts: {
|
|
8
7
|
apiKey: string;
|
|
9
8
|
baseURL?: string;
|
|
10
9
|
model: string;
|
|
11
|
-
maxOutputTokens: number;
|
|
12
10
|
providerType?: 'openai' | 'openai-compatible';
|
|
13
11
|
});
|
|
14
12
|
turn(input: AdapterTurnInput): Promise<AdapterTurnResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-chat-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/openai-chat-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9F,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,YAAY,EAAE,QAAQ,GAAG,mBAAmB,CAAC;IACtD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;
|
|
1
|
+
{"version":3,"file":"openai-chat-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/openai-chat-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9F,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,YAAY,EAAE,QAAQ,GAAG,mBAAmB,CAAC;IACtD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,IAAI,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,QAAQ,GAAG,mBAAmB,CAAC;KAC/C;IAMK,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4D/D,OAAO,CAAC,eAAe;CAkBxB"}
|
|
@@ -3,14 +3,14 @@ export class OpenAIChatAdapter {
|
|
|
3
3
|
providerType;
|
|
4
4
|
client;
|
|
5
5
|
model;
|
|
6
|
-
maxOutputTokens;
|
|
7
6
|
constructor(opts) {
|
|
8
7
|
this.client = new OpenAI({ apiKey: opts.apiKey, baseURL: opts.baseURL });
|
|
9
8
|
this.providerType = opts.providerType ?? 'openai';
|
|
10
9
|
this.model = opts.model;
|
|
11
|
-
this.maxOutputTokens = opts.maxOutputTokens;
|
|
12
10
|
}
|
|
13
11
|
async turn(input) {
|
|
12
|
+
// No max_completion_tokens — let the model use its full output budget.
|
|
13
|
+
// Wall-clock + cost ceilings are the only worker bounds.
|
|
14
14
|
const response = await this.client.chat.completions.create({
|
|
15
15
|
model: this.model,
|
|
16
16
|
messages: [
|
|
@@ -22,7 +22,6 @@ export class OpenAIChatAdapter {
|
|
|
22
22
|
type: 'function',
|
|
23
23
|
function: { name: d.name, description: d.description, parameters: d.schema },
|
|
24
24
|
})),
|
|
25
|
-
max_completion_tokens: this.maxOutputTokens,
|
|
26
25
|
});
|
|
27
26
|
const reasoning = response.usage?.completion_tokens_details?.reasoning_tokens ?? 0;
|
|
28
27
|
const usage = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-chat-adapter.js","sourceRoot":"","sources":["../../src/providers/openai-chat-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,MAAM,OAAO,iBAAiB;IACnB,YAAY,CAAiC;IAC9C,MAAM,CAAS;IACf,KAAK,CAAS;
|
|
1
|
+
{"version":3,"file":"openai-chat-adapter.js","sourceRoot":"","sources":["../../src/providers/openai-chat-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,11 @@ export declare class OpenAIResponsesAdapter implements RunnerAdapter {
|
|
|
3
3
|
readonly providerType: "codex";
|
|
4
4
|
private client;
|
|
5
5
|
private model;
|
|
6
|
-
private maxOutputTokens;
|
|
7
6
|
constructor(opts: {
|
|
8
7
|
apiKey: string;
|
|
9
8
|
baseURL?: string;
|
|
10
9
|
model: string;
|
|
11
|
-
|
|
10
|
+
defaultHeaders?: Record<string, string>;
|
|
12
11
|
});
|
|
13
12
|
turn(input: AdapterTurnInput): Promise<AdapterTurnResult>;
|
|
14
13
|
private buildInputItems;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-responses-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/openai-responses-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9F,qBAAa,sBAAuB,YAAW,aAAa;IAC1D,QAAQ,CAAC,YAAY,EAAG,OAAO,CAAU;IACzC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;
|
|
1
|
+
{"version":3,"file":"openai-responses-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/openai-responses-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9F,qBAAa,sBAAuB,YAAW,aAAa;IAC1D,QAAQ,CAAC,YAAY,EAAG,OAAO,CAAU;IACzC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IASxG,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgG/D,OAAO,CAAC,eAAe;CA+BxB"}
|
|
@@ -3,18 +3,30 @@ export class OpenAIResponsesAdapter {
|
|
|
3
3
|
providerType = 'codex';
|
|
4
4
|
client;
|
|
5
5
|
model;
|
|
6
|
-
maxOutputTokens;
|
|
7
6
|
constructor(opts) {
|
|
8
|
-
this.client = new OpenAI({
|
|
7
|
+
this.client = new OpenAI({
|
|
8
|
+
apiKey: opts.apiKey,
|
|
9
|
+
baseURL: opts.baseURL,
|
|
10
|
+
...(opts.defaultHeaders && { defaultHeaders: opts.defaultHeaders }),
|
|
11
|
+
});
|
|
9
12
|
this.model = opts.model;
|
|
10
|
-
this.maxOutputTokens = opts.maxOutputTokens;
|
|
11
13
|
}
|
|
12
14
|
async turn(input) {
|
|
13
15
|
const inputItems = this.buildInputItems(input);
|
|
14
|
-
|
|
16
|
+
// Stream the response. Two reasons:
|
|
17
|
+
// 1. The chatgpt.com/backend-api/codex endpoint (used when codex
|
|
18
|
+
// OAuth is the auth path) only accepts streaming + store:false;
|
|
19
|
+
// a non-streaming responses.create returns 400-no-body there.
|
|
20
|
+
// 2. api.openai.com supports streaming the same shape, so streaming
|
|
21
|
+
// is the universal path.
|
|
22
|
+
// store:false tells the server not to persist response state — required
|
|
23
|
+
// by chatgpt backend, harmless for api.openai.com.
|
|
24
|
+
const stream = await this.client.responses.create({
|
|
15
25
|
model: this.model,
|
|
16
26
|
instructions: input.systemPrompt,
|
|
17
27
|
input: inputItems,
|
|
28
|
+
stream: true,
|
|
29
|
+
store: false,
|
|
18
30
|
tools: input.toolDefinitions.length > 0
|
|
19
31
|
? input.toolDefinitions.map(d => ({
|
|
20
32
|
type: 'function',
|
|
@@ -24,45 +36,61 @@ export class OpenAIResponsesAdapter {
|
|
|
24
36
|
strict: false,
|
|
25
37
|
}))
|
|
26
38
|
: undefined,
|
|
27
|
-
max_output_tokens: this.maxOutputTokens,
|
|
28
39
|
});
|
|
29
|
-
|
|
40
|
+
let assistantText = '';
|
|
41
|
+
const toolCalls = [];
|
|
42
|
+
let inputTokens = 0;
|
|
43
|
+
let outputTokens = 0;
|
|
44
|
+
let cachedReadTokens = 0;
|
|
45
|
+
let reasoningTokens = 0;
|
|
46
|
+
let status;
|
|
47
|
+
let sawCompleted = false;
|
|
48
|
+
for await (const event of stream) {
|
|
49
|
+
const et = event?.type;
|
|
50
|
+
if (!et)
|
|
51
|
+
continue;
|
|
52
|
+
if (et === 'response.output_text.delta') {
|
|
53
|
+
assistantText += event.delta ?? '';
|
|
54
|
+
}
|
|
55
|
+
else if (et === 'response.output_item.done') {
|
|
56
|
+
const item = event.item;
|
|
57
|
+
if (item?.type === 'function_call') {
|
|
58
|
+
let inputObj;
|
|
59
|
+
try {
|
|
60
|
+
inputObj = JSON.parse(item.arguments ?? '{}');
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
inputObj = {
|
|
64
|
+
__mma_invalid_arguments: item.arguments,
|
|
65
|
+
__mma_parse_error: e.message,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
toolCalls.push({ id: item.call_id, name: item.name, input: inputObj });
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else if (et === 'response.completed') {
|
|
72
|
+
sawCompleted = true;
|
|
73
|
+
const r = event.response;
|
|
74
|
+
if (r?.usage) {
|
|
75
|
+
const u = r.usage;
|
|
76
|
+
inputTokens = u.input_tokens ?? 0;
|
|
77
|
+
outputTokens = u.output_tokens ?? 0;
|
|
78
|
+
reasoningTokens = u.output_tokens_details?.reasoning_tokens ?? u.reasoning_tokens ?? 0;
|
|
79
|
+
cachedReadTokens = u.input_tokens_details?.cached_tokens ?? u.cached_input_tokens ?? 0;
|
|
80
|
+
}
|
|
81
|
+
if (r?.status)
|
|
82
|
+
status = r.status;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (!sawCompleted) {
|
|
86
|
+
throw new Error('Codex stream ended without a response.completed event');
|
|
87
|
+
}
|
|
30
88
|
const usage = {
|
|
31
|
-
inputTokens
|
|
32
|
-
outputTokens:
|
|
33
|
-
cachedReadTokens
|
|
89
|
+
inputTokens,
|
|
90
|
+
outputTokens: outputTokens + reasoningTokens,
|
|
91
|
+
cachedReadTokens,
|
|
34
92
|
cachedNonReadTokens: 0,
|
|
35
93
|
};
|
|
36
|
-
const outputItems = (response.output ?? []);
|
|
37
|
-
const assistantText = outputItems
|
|
38
|
-
.filter((it) => it.type === 'message')
|
|
39
|
-
.flatMap((it) => it.content ?? [])
|
|
40
|
-
.filter((c) => c.type === 'output_text')
|
|
41
|
-
.map((c) => c.text)
|
|
42
|
-
.join('');
|
|
43
|
-
const toolCalls = outputItems
|
|
44
|
-
.filter((it) => it.type === 'function_call')
|
|
45
|
-
.map((it) => {
|
|
46
|
-
let inputObj;
|
|
47
|
-
try {
|
|
48
|
-
inputObj = JSON.parse(it.arguments ?? '{}');
|
|
49
|
-
}
|
|
50
|
-
catch (e) {
|
|
51
|
-
inputObj = {
|
|
52
|
-
__mma_invalid_arguments: it.arguments,
|
|
53
|
-
__mma_parse_error: e.message,
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
return {
|
|
57
|
-
id: it.call_id,
|
|
58
|
-
name: it.name,
|
|
59
|
-
input: inputObj,
|
|
60
|
-
};
|
|
61
|
-
});
|
|
62
|
-
// Compute finishReason: the Responses API uses response.status.
|
|
63
|
-
// 'completed' means the model produced a final response (stop).
|
|
64
|
-
// If there are tool calls, the model is waiting for tool outputs.
|
|
65
|
-
const status = response.status;
|
|
66
94
|
let finishReason;
|
|
67
95
|
if (toolCalls.length > 0) {
|
|
68
96
|
finishReason = 'tool_use';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-responses-adapter.js","sourceRoot":"","sources":["../../src/providers/openai-responses-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,MAAM,OAAO,sBAAsB;IACxB,YAAY,GAAG,OAAgB,CAAC;IACjC,MAAM,CAAS;IACf,KAAK,CAAS;
|
|
1
|
+
{"version":3,"file":"openai-responses-adapter.js","sourceRoot":"","sources":["../../src/providers/openai-responses-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-factory.d.ts","sourceRoot":"","sources":["../../src/providers/provider-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAa,gBAAgB,EAAkB,MAAM,aAAa,CAAC;AAOpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-factory.d.ts","sourceRoot":"","sources":["../../src/providers/provider-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAa,gBAAgB,EAAkB,MAAM,aAAa,CAAC;AAOpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAYzD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAG7E;AAED,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,GAAG,IAAI,CAGxF;AAcD,wBAAgB,YAAY,CAAC,WAAW,EAAE;IACxC,IAAI,EAAE,mBAAmB,GAAG,QAAQ,GAAG,mBAAmB,GAAG,OAAO,CAAC;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,aAAa,CA4ChB;AAcD,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,GAAG,QAAQ,CAuFlF"}
|
|
@@ -3,6 +3,7 @@ import { AnthropicMessagesAdapter } from './anthropic-messages-adapter.js';
|
|
|
3
3
|
import { OpenAIChatAdapter } from './openai-chat-adapter.js';
|
|
4
4
|
import { OpenAIResponsesAdapter } from './openai-responses-adapter.js';
|
|
5
5
|
import { makeToolDefinitions } from './tool-definitions.js';
|
|
6
|
+
import { getCodexAuth } from '../identity/auth-token-store.js';
|
|
6
7
|
let coreTestProviderOverride = null;
|
|
7
8
|
let coreTestProviderOverrideMap = null;
|
|
8
9
|
function assertTestProviderEnabled() {
|
|
@@ -18,10 +19,20 @@ export function __setCoreTestProviderOverrideMap(map) {
|
|
|
18
19
|
assertTestProviderEnabled();
|
|
19
20
|
coreTestProviderOverrideMap = map;
|
|
20
21
|
}
|
|
22
|
+
// No output-token caps anywhere — the only worker bounds are the
|
|
23
|
+
// task-level wall-clock deadline and (when set) the per-task cost
|
|
24
|
+
// ceiling. OpenAI Chat + Responses adapters omit max_tokens entirely
|
|
25
|
+
// so the model uses its full output budget. Anthropic Messages
|
|
26
|
+
// **requires** max_tokens per API spec, so we pass a value high
|
|
27
|
+
// enough to never bite in practice (matches the largest documented
|
|
28
|
+
// ceiling across the Claude family). If a model accepts less, the
|
|
29
|
+
// API rejects loudly — easier to triage than a silent truncation,
|
|
30
|
+
// which is the failure mode 4.0.x hit at the 4096 default when
|
|
31
|
+
// deepseek-v4-pro burned its budget on a thinking block.
|
|
32
|
+
const ANTHROPIC_MAX_TOKENS_REQUIRED = 64000;
|
|
21
33
|
export function buildAdapter(agentConfig) {
|
|
22
34
|
const apiKey = agentConfig.apiKey
|
|
23
35
|
?? (agentConfig.apiKeyEnv ? process.env[agentConfig.apiKeyEnv] : undefined);
|
|
24
|
-
const maxOutputTokens = 4096;
|
|
25
36
|
switch (agentConfig.type) {
|
|
26
37
|
case 'claude':
|
|
27
38
|
case 'claude-compatible':
|
|
@@ -29,7 +40,7 @@ export function buildAdapter(agentConfig) {
|
|
|
29
40
|
apiKey: apiKey || 'not-needed',
|
|
30
41
|
baseURL: agentConfig.baseUrl,
|
|
31
42
|
model: agentConfig.model,
|
|
32
|
-
maxOutputTokens,
|
|
43
|
+
maxOutputTokens: ANTHROPIC_MAX_TOKENS_REQUIRED,
|
|
33
44
|
providerType: agentConfig.type,
|
|
34
45
|
});
|
|
35
46
|
case 'openai-compatible':
|
|
@@ -37,21 +48,41 @@ export function buildAdapter(agentConfig) {
|
|
|
37
48
|
apiKey: apiKey || 'not-needed',
|
|
38
49
|
baseURL: agentConfig.baseUrl,
|
|
39
50
|
model: agentConfig.model,
|
|
40
|
-
maxOutputTokens,
|
|
41
51
|
providerType: 'openai-compatible',
|
|
42
52
|
});
|
|
43
|
-
case 'codex':
|
|
53
|
+
case 'codex': {
|
|
54
|
+
// Prefer ChatGPT/Codex OAuth (~/.codex/auth.json) — this is how
|
|
55
|
+
// users who logged in via `codex` CLI authenticate. Without it, the
|
|
56
|
+
// request hits api.openai.com with a placeholder key and 401s. If
|
|
57
|
+
// OAuth is missing, fall back to whatever apiKey the user supplied
|
|
58
|
+
// (so the codex type can also be pointed at api.openai.com with a
|
|
59
|
+
// real key, or any other OpenAI-Responses-compatible endpoint).
|
|
60
|
+
const oauth = getCodexAuth();
|
|
61
|
+
if (oauth && !apiKey && !agentConfig.baseUrl) {
|
|
62
|
+
return new OpenAIResponsesAdapter({
|
|
63
|
+
apiKey: oauth.accessToken,
|
|
64
|
+
baseURL: 'https://chatgpt.com/backend-api/codex',
|
|
65
|
+
model: agentConfig.model,
|
|
66
|
+
defaultHeaders: { 'chatgpt-account-id': oauth.accountId },
|
|
67
|
+
});
|
|
68
|
+
}
|
|
44
69
|
return new OpenAIResponsesAdapter({
|
|
45
70
|
apiKey: apiKey || 'not-needed',
|
|
46
71
|
baseURL: agentConfig.baseUrl,
|
|
47
72
|
model: agentConfig.model,
|
|
48
|
-
maxOutputTokens,
|
|
49
73
|
});
|
|
74
|
+
}
|
|
50
75
|
}
|
|
51
76
|
}
|
|
52
77
|
const SYSTEM_PROMPT = [
|
|
53
78
|
'You are a software engineering agent with access to file-system and shell tools.',
|
|
54
79
|
'Work step-by-step. Read files before editing them.',
|
|
80
|
+
// Tool sweep #6: the spec / quality / diff reviewer stages now see the
|
|
81
|
+
// cumulative diff against the pre-task baseline. The implementer no
|
|
82
|
+
// longer needs to verify its own edits — the reviewers will check the
|
|
83
|
+
// actual change. Skipping post-edit re-reads typically saves 4-6
|
|
84
|
+
// minutes per task on slow models.
|
|
85
|
+
'Trust edit_file/write_file: if the tool returns without an error, the edit applied. Do NOT re-read a file just to verify your own successful edit.',
|
|
55
86
|
'When you have completed the task, produce a final answer summarizing what you did.',
|
|
56
87
|
].join('\n');
|
|
57
88
|
export function createProvider(slot, config) {
|
|
@@ -77,13 +108,20 @@ export function createProvider(slot, config) {
|
|
|
77
108
|
? `${SYSTEM_PROMPT}\n\n${options.instructionsSuffix}`
|
|
78
109
|
: SYSTEM_PROMPT;
|
|
79
110
|
const adapter = buildAdapter(agentConfig);
|
|
80
|
-
const shell = new RunnerShell(adapter);
|
|
111
|
+
const shell = new RunnerShell(adapter, providerConfig.model);
|
|
81
112
|
const result = await shell.run({
|
|
82
113
|
systemPrompt: effectiveSystemPrompt,
|
|
83
114
|
userMessage: prompt,
|
|
84
115
|
toolDefinitions,
|
|
85
116
|
maxTurns,
|
|
86
117
|
cwd,
|
|
118
|
+
...(options.abortSignal && { abortSignal: options.abortSignal }),
|
|
119
|
+
...(options.bus && { bus: options.bus }),
|
|
120
|
+
...(options.batchId !== undefined && { batchId: options.batchId }),
|
|
121
|
+
...(options.taskIndex !== undefined && { taskIndex: options.taskIndex }),
|
|
122
|
+
...(options.tier !== undefined && { tier: options.tier }),
|
|
123
|
+
...(options.stageLabel !== undefined && { stageLabel: options.stageLabel }),
|
|
124
|
+
model: providerConfig.model,
|
|
87
125
|
});
|
|
88
126
|
const toolCallSummaries = result.toolCalls.map(tc => {
|
|
89
127
|
const inputPreview = typeof tc.input === 'object' && tc.input !== null
|
|
@@ -95,15 +133,19 @@ export function createProvider(slot, config) {
|
|
|
95
133
|
output: result.finalAssistantText,
|
|
96
134
|
status: result.workerStatus === 'done' ? 'ok' : 'incomplete',
|
|
97
135
|
usage: result.usage,
|
|
98
|
-
turns: result.
|
|
99
|
-
|
|
100
|
-
|
|
136
|
+
turns: result.turns,
|
|
137
|
+
durationMs: result.durationMs,
|
|
138
|
+
filesRead: result.filesRead,
|
|
139
|
+
filesWritten: result.filesWritten,
|
|
101
140
|
toolCalls: toolCallSummaries,
|
|
102
141
|
outputIsDiagnostic: false,
|
|
103
142
|
escalationLog: [],
|
|
104
143
|
parsedFindings: null,
|
|
105
144
|
workerStatus: result.workerStatus,
|
|
106
145
|
errorCode: result.errorCode,
|
|
146
|
+
...(result.costUSD !== null && {
|
|
147
|
+
cost: { costUSD: result.costUSD, costDeltaVsMainUSD: null },
|
|
148
|
+
}),
|
|
107
149
|
};
|
|
108
150
|
}
|
|
109
151
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-factory.js","sourceRoot":"","sources":["../../src/providers/provider-factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-factory.js","sourceRoot":"","sources":["../../src/providers/provider-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,16 @@ export interface AdapterTurnResult {
|
|
|
26
26
|
usage: TokenUsage;
|
|
27
27
|
finishReason: 'stop' | 'tool_use' | 'max_tokens' | 'error';
|
|
28
28
|
errorCode?: string;
|
|
29
|
+
/** Provider-side response shape for verbose diagnostics. Adapters report
|
|
30
|
+
* the raw stop_reason and a count of each content block type so the
|
|
31
|
+
* runner-shell can emit a `runner_response_received` event when the
|
|
32
|
+
* bus is wired. Lets operators see e.g. `{ text: 0, thinking: 1 }`
|
|
33
|
+
* when a provider returns reasoning-only and no narrative — the
|
|
34
|
+
* signature failure mode that produced silent empty output in 4.0.x. */
|
|
35
|
+
responseShape?: {
|
|
36
|
+
stopReason?: string;
|
|
37
|
+
contentBlocks?: Record<string, number>;
|
|
38
|
+
};
|
|
29
39
|
}
|
|
30
40
|
export interface AdapterCapabilities {
|
|
31
41
|
cache_control: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/runner-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,YAAY,EAAE,mBAAmB,CAAC;IAClC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC9C,KAAK,EAAE,UAAU,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"runner-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/runner-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,YAAY,EAAE,mBAAmB,CAAC;IAClC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC9C,KAAK,EAAE,UAAU,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;6EAKyE;IACzE,aAAa,CAAC,EAAE;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACxC,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,YAAY,EAAE,QAAQ,GAAG,mBAAmB,GAAG,QAAQ,GAAG,mBAAmB,GAAG,OAAO,CAAC;IACjG,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC3D"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TokenUsage } from './runner-types.js';
|
|
2
|
+
import type { EventEmitter } from '../events/event-emitter.js';
|
|
2
3
|
export type WorkerStatus = 'done' | 'done_with_concerns' | 'needs_context' | 'blocked' | 'failed';
|
|
3
4
|
export interface RunInput {
|
|
4
5
|
systemPrompt: string;
|
|
@@ -9,6 +10,25 @@ export interface RunInput {
|
|
|
9
10
|
capabilities?: import('./runner-adapter.js').AdapterCapabilities;
|
|
10
11
|
abortSignal?: AbortSignal;
|
|
11
12
|
deadlineMs?: number;
|
|
13
|
+
/** Bus for per-turn / per-runner-call observability events. When present,
|
|
14
|
+
* shell + adapter emit `runner_turn_started` / `runner_response_received`
|
|
15
|
+
* / `runner_turn_completed` events so VerboseLogChannel surfaces them
|
|
16
|
+
* on stderr in real time during a long task run. */
|
|
17
|
+
bus?: EventEmitter;
|
|
18
|
+
/** Identifies the in-flight batch in emitted events. */
|
|
19
|
+
batchId?: string;
|
|
20
|
+
/** Identifies which task within a batch is running. Carried through to
|
|
21
|
+
* every emitted event so polling can show per-task progress when a
|
|
22
|
+
* batch has multiple parallel tasks. */
|
|
23
|
+
taskIndex?: number;
|
|
24
|
+
/** Tier label (`'standard'` | `'complex'`) included in emitted events. */
|
|
25
|
+
tier?: string;
|
|
26
|
+
/** Provider model id included in emitted events. */
|
|
27
|
+
model?: string;
|
|
28
|
+
/** Lifecycle stage label (e.g. 'Implementing', 'Spec review'). Surfaced
|
|
29
|
+
* on the running-headline polling response so the main agent's poll
|
|
30
|
+
* loop shows which lifecycle stage is currently active. */
|
|
31
|
+
stageLabel?: string;
|
|
12
32
|
}
|
|
13
33
|
export interface RunResult {
|
|
14
34
|
workerStatus: WorkerStatus;
|
|
@@ -16,6 +36,19 @@ export interface RunResult {
|
|
|
16
36
|
toolCalls: ToolCall[];
|
|
17
37
|
usage: TokenUsage;
|
|
18
38
|
errorCode?: ErrorCode;
|
|
39
|
+
/** Number of LLM turns executed (one per adapter.turn() call). Distinct
|
|
40
|
+
* from toolCalls.length — a turn can return multiple tool calls or none. */
|
|
41
|
+
turns: number;
|
|
42
|
+
/** Wall-clock for the entire shell.run() invocation. */
|
|
43
|
+
durationMs: number;
|
|
44
|
+
/** Files read during this run (paths from successful read_file/readFile tool calls). */
|
|
45
|
+
filesRead: string[];
|
|
46
|
+
/** Files written during this run (paths from successful write_file/writeFile/edit_file tool calls). */
|
|
47
|
+
filesWritten: string[];
|
|
48
|
+
/** USD cost computed from usage tokens and the model's rate card.
|
|
49
|
+
* null when the model isn't in the rate-card registry (treated as honest-null
|
|
50
|
+
* by the wire, not zero). */
|
|
51
|
+
costUSD: number | null;
|
|
19
52
|
}
|
|
20
53
|
export interface ToolDefinition {
|
|
21
54
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-shell-types.d.ts","sourceRoot":"","sources":["../../src/providers/runner-shell-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner-shell-types.d.ts","sourceRoot":"","sources":["../../src/providers/runner-shell-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,oBAAoB,GAAG,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElG,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,qBAAqB,EAAE,mBAAmB,CAAC;IACjE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;yDAGqD;IACrD,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;6CAEyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;gEAE4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;iFAC6E;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,wFAAwF;IACxF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,uGAAuG;IACvG,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;kCAE8B;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC"}
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import type { RunInput, RunResult } from './runner-shell-types.js';
|
|
2
2
|
import type { RunnerAdapter } from './runner-adapter.js';
|
|
3
|
+
export declare function shellCommandWritesFs(command: string): boolean;
|
|
3
4
|
export declare class RunnerShell {
|
|
4
5
|
private adapter;
|
|
5
|
-
|
|
6
|
+
/** Default model id used for cost computation when input.model is absent.
|
|
7
|
+
* Reviewer/annotator engines call shell.run() without setting input.model,
|
|
8
|
+
* so without this default every reviewer-side stage would record costUSD=null. */
|
|
9
|
+
private defaultModel?;
|
|
10
|
+
constructor(adapter: RunnerAdapter,
|
|
11
|
+
/** Default model id used for cost computation when input.model is absent.
|
|
12
|
+
* Reviewer/annotator engines call shell.run() without setting input.model,
|
|
13
|
+
* so without this default every reviewer-side stage would record costUSD=null. */
|
|
14
|
+
defaultModel?: string | undefined);
|
|
6
15
|
run(input: RunInput): Promise<RunResult>;
|
|
7
16
|
}
|
|
8
17
|
//# sourceMappingURL=runner-shell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-shell.d.ts","sourceRoot":"","sources":["../../src/providers/runner-shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAA8B,MAAM,yBAAyB,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAA6D,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner-shell.d.ts","sourceRoot":"","sources":["../../src/providers/runner-shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAA8B,MAAM,yBAAyB,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAA6D,MAAM,qBAAqB,CAAC;AAoEpH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAM7D;AAaD,qBAAa,WAAW;IAEpB,OAAO,CAAC,OAAO;IACf;;uFAEmF;IACnF,OAAO,CAAC,YAAY,CAAC;gBAJb,OAAO,EAAE,aAAa;IAC9B;;uFAEmF;IAC3E,YAAY,CAAC,EAAE,MAAM,YAAA;IAGzB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;CAqN/C"}
|