aipanel-cli 0.1.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/LICENSE +21 -0
- package/README.md +166 -0
- package/dist/bin/aipanel.d.ts +2 -0
- package/dist/bin/aipanel.js +5 -0
- package/dist/bin/aipanel.js.map +1 -0
- package/dist/src/app/AipanelApp.d.ts +17 -0
- package/dist/src/app/AipanelApp.js +53 -0
- package/dist/src/app/AipanelApp.js.map +1 -0
- package/dist/src/app/CommandRouter.d.ts +9 -0
- package/dist/src/app/CommandRouter.js +154 -0
- package/dist/src/app/CommandRouter.js.map +1 -0
- package/dist/src/app/ProfileLoader.d.ts +10 -0
- package/dist/src/app/ProfileLoader.js +51 -0
- package/dist/src/app/ProfileLoader.js.map +1 -0
- package/dist/src/app/WorkflowSelector.d.ts +4 -0
- package/dist/src/app/WorkflowSelector.js +6 -0
- package/dist/src/app/WorkflowSelector.js.map +1 -0
- package/dist/src/app/index.d.ts +4 -0
- package/dist/src/app/index.js +5 -0
- package/dist/src/app/index.js.map +1 -0
- package/dist/src/app/types.d.ts +36 -0
- package/dist/src/app/types.js +2 -0
- package/dist/src/app/types.js.map +1 -0
- package/dist/src/artifact/ArtifactRepository.d.ts +33 -0
- package/dist/src/artifact/ArtifactRepository.js +91 -0
- package/dist/src/artifact/ArtifactRepository.js.map +1 -0
- package/dist/src/artifact/index.d.ts +1 -0
- package/dist/src/artifact/index.js +2 -0
- package/dist/src/artifact/index.js.map +1 -0
- package/dist/src/cli/aipanel.d.ts +2 -0
- package/dist/src/cli/aipanel.js +32 -0
- package/dist/src/cli/aipanel.js.map +1 -0
- package/dist/src/compare/ComparisonEngine.d.ts +5 -0
- package/dist/src/compare/ComparisonEngine.js +19 -0
- package/dist/src/compare/ComparisonEngine.js.map +1 -0
- package/dist/src/compare/ResponseNormalizer.d.ts +36 -0
- package/dist/src/compare/ResponseNormalizer.js +43 -0
- package/dist/src/compare/ResponseNormalizer.js.map +1 -0
- package/dist/src/compare/index.d.ts +3 -0
- package/dist/src/compare/index.js +3 -0
- package/dist/src/compare/index.js.map +1 -0
- package/dist/src/context/ContextCollector.d.ts +43 -0
- package/dist/src/context/ContextCollector.js +81 -0
- package/dist/src/context/ContextCollector.js.map +1 -0
- package/dist/src/context/index.d.ts +2 -0
- package/dist/src/context/index.js +2 -0
- package/dist/src/context/index.js.map +1 -0
- package/dist/src/domain/artifact.d.ts +36 -0
- package/dist/src/domain/artifact.js +62 -0
- package/dist/src/domain/artifact.js.map +1 -0
- package/dist/src/domain/base.d.ts +10 -0
- package/dist/src/domain/base.js +23 -0
- package/dist/src/domain/base.js.map +1 -0
- package/dist/src/domain/index.d.ts +5 -0
- package/dist/src/domain/index.js +6 -0
- package/dist/src/domain/index.js.map +1 -0
- package/dist/src/domain/run.d.ts +260 -0
- package/dist/src/domain/run.js +456 -0
- package/dist/src/domain/run.js.map +1 -0
- package/dist/src/domain/session.d.ts +72 -0
- package/dist/src/domain/session.js +131 -0
- package/dist/src/domain/session.js.map +1 -0
- package/dist/src/domain/value-objects.d.ts +120 -0
- package/dist/src/domain/value-objects.js +191 -0
- package/dist/src/domain/value-objects.js.map +1 -0
- package/dist/src/orchestrator/PlanBuilder.d.ts +6 -0
- package/dist/src/orchestrator/PlanBuilder.js +59 -0
- package/dist/src/orchestrator/PlanBuilder.js.map +1 -0
- package/dist/src/orchestrator/ResultMerger.d.ts +10 -0
- package/dist/src/orchestrator/ResultMerger.js +19 -0
- package/dist/src/orchestrator/ResultMerger.js.map +1 -0
- package/dist/src/orchestrator/TaskExecutor.d.ts +20 -0
- package/dist/src/orchestrator/TaskExecutor.js +81 -0
- package/dist/src/orchestrator/TaskExecutor.js.map +1 -0
- package/dist/src/orchestrator/TaskScheduler.d.ts +4 -0
- package/dist/src/orchestrator/TaskScheduler.js +19 -0
- package/dist/src/orchestrator/TaskScheduler.js.map +1 -0
- package/dist/src/orchestrator/ValidationRunner.d.ts +4 -0
- package/dist/src/orchestrator/ValidationRunner.js +22 -0
- package/dist/src/orchestrator/ValidationRunner.js.map +1 -0
- package/dist/src/orchestrator/index.d.ts +5 -0
- package/dist/src/orchestrator/index.js +6 -0
- package/dist/src/orchestrator/index.js.map +1 -0
- package/dist/src/output/ResultRenderer.d.ts +13 -0
- package/dist/src/output/ResultRenderer.js +49 -0
- package/dist/src/output/ResultRenderer.js.map +1 -0
- package/dist/src/output/index.d.ts +1 -0
- package/dist/src/output/index.js +2 -0
- package/dist/src/output/index.js.map +1 -0
- package/dist/src/providers/ClaudeCodeAdapter.d.ts +5 -0
- package/dist/src/providers/ClaudeCodeAdapter.js +95 -0
- package/dist/src/providers/ClaudeCodeAdapter.js.map +1 -0
- package/dist/src/providers/ProviderAdapter.d.ts +35 -0
- package/dist/src/providers/ProviderAdapter.js +2 -0
- package/dist/src/providers/ProviderAdapter.js.map +1 -0
- package/dist/src/providers/ProviderRegistry.d.ts +12 -0
- package/dist/src/providers/ProviderRegistry.js +23 -0
- package/dist/src/providers/ProviderRegistry.js.map +1 -0
- package/dist/src/providers/index.d.ts +3 -0
- package/dist/src/providers/index.js +4 -0
- package/dist/src/providers/index.js.map +1 -0
- package/dist/src/run/RunCoordinator.d.ts +33 -0
- package/dist/src/run/RunCoordinator.js +101 -0
- package/dist/src/run/RunCoordinator.js.map +1 -0
- package/dist/src/run/RunRepository.d.ts +14 -0
- package/dist/src/run/RunRepository.js +55 -0
- package/dist/src/run/RunRepository.js.map +1 -0
- package/dist/src/run/index.d.ts +2 -0
- package/dist/src/run/index.js +3 -0
- package/dist/src/run/index.js.map +1 -0
- package/dist/src/session/SessionManager.d.ts +26 -0
- package/dist/src/session/SessionManager.js +60 -0
- package/dist/src/session/SessionManager.js.map +1 -0
- package/dist/src/session/SessionRepository.d.ts +14 -0
- package/dist/src/session/SessionRepository.js +55 -0
- package/dist/src/session/SessionRepository.js.map +1 -0
- package/dist/src/session/index.d.ts +2 -0
- package/dist/src/session/index.js +3 -0
- package/dist/src/session/index.js.map +1 -0
- package/dist/src/shared/clock.d.ts +4 -0
- package/dist/src/shared/clock.js +9 -0
- package/dist/src/shared/clock.js.map +1 -0
- package/dist/src/shared/contracts.d.ts +254 -0
- package/dist/src/shared/contracts.js +2 -0
- package/dist/src/shared/contracts.js.map +1 -0
- package/dist/src/shared/errors.d.ts +9 -0
- package/dist/src/shared/errors.js +11 -0
- package/dist/src/shared/errors.js.map +1 -0
- package/dist/src/shared/file-system.d.ts +8 -0
- package/dist/src/shared/file-system.js +36 -0
- package/dist/src/shared/file-system.js.map +1 -0
- package/dist/src/shared/ids.d.ts +1 -0
- package/dist/src/shared/ids.js +6 -0
- package/dist/src/shared/ids.js.map +1 -0
- package/dist/src/usecases/CompareUseCase.d.ts +6 -0
- package/dist/src/usecases/CompareUseCase.js +9 -0
- package/dist/src/usecases/CompareUseCase.js.map +1 -0
- package/dist/src/usecases/ConsultUseCase.d.ts +48 -0
- package/dist/src/usecases/ConsultUseCase.js +187 -0
- package/dist/src/usecases/ConsultUseCase.js.map +1 -0
- package/dist/src/usecases/DebugUseCase.d.ts +48 -0
- package/dist/src/usecases/DebugUseCase.js +191 -0
- package/dist/src/usecases/DebugUseCase.js.map +1 -0
- package/dist/src/usecases/FollowupUseCase.d.ts +6 -0
- package/dist/src/usecases/FollowupUseCase.js +14 -0
- package/dist/src/usecases/FollowupUseCase.js.map +1 -0
- package/dist/src/usecases/ListProvidersUseCase.d.ts +9 -0
- package/dist/src/usecases/ListProvidersUseCase.js +13 -0
- package/dist/src/usecases/ListProvidersUseCase.js.map +1 -0
- package/dist/src/usecases/helpers.d.ts +9 -0
- package/dist/src/usecases/helpers.js +31 -0
- package/dist/src/usecases/helpers.js.map +1 -0
- package/dist/src/usecases/index.d.ts +5 -0
- package/dist/src/usecases/index.js +6 -0
- package/dist/src/usecases/index.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { SCHEMA_VERSION, compactObject, defaultClock, defaultIdGenerator, ensureArray, optionalProp, } from "./base.js";
|
|
2
|
+
import { ProviderRef } from "./value-objects.js";
|
|
3
|
+
export class SessionTurn {
|
|
4
|
+
turnId;
|
|
5
|
+
sessionId;
|
|
6
|
+
role;
|
|
7
|
+
content;
|
|
8
|
+
artifactIds;
|
|
9
|
+
createdAt;
|
|
10
|
+
constructor(props) {
|
|
11
|
+
this.turnId = props.turnId;
|
|
12
|
+
this.sessionId = props.sessionId;
|
|
13
|
+
this.role = props.role;
|
|
14
|
+
this.content = props.content;
|
|
15
|
+
this.artifactIds = ensureArray(props.artifactIds);
|
|
16
|
+
this.createdAt = props.createdAt;
|
|
17
|
+
}
|
|
18
|
+
static create(params) {
|
|
19
|
+
const clock = params.clock ?? defaultClock;
|
|
20
|
+
const idGenerator = params.idGenerator ?? defaultIdGenerator;
|
|
21
|
+
return new SessionTurn({
|
|
22
|
+
turnId: params.turnId ?? idGenerator('turn'),
|
|
23
|
+
sessionId: params.sessionId,
|
|
24
|
+
role: params.role,
|
|
25
|
+
content: params.content,
|
|
26
|
+
createdAt: params.createdAt ?? clock(),
|
|
27
|
+
...optionalProp('artifactIds', params.artifactIds),
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
static fromJSON(input) {
|
|
31
|
+
return new SessionTurn(input);
|
|
32
|
+
}
|
|
33
|
+
toJSON() {
|
|
34
|
+
return compactObject({
|
|
35
|
+
turnId: this.turnId,
|
|
36
|
+
sessionId: this.sessionId,
|
|
37
|
+
role: this.role,
|
|
38
|
+
content: this.content,
|
|
39
|
+
artifactIds: this.artifactIds,
|
|
40
|
+
createdAt: this.createdAt,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export class Session {
|
|
45
|
+
schemaVersion;
|
|
46
|
+
sessionId;
|
|
47
|
+
title;
|
|
48
|
+
status;
|
|
49
|
+
createdAt;
|
|
50
|
+
updatedAt;
|
|
51
|
+
providerRefs;
|
|
52
|
+
turns;
|
|
53
|
+
constructor(props) {
|
|
54
|
+
this.schemaVersion = props.schemaVersion ?? SCHEMA_VERSION;
|
|
55
|
+
this.sessionId = props.sessionId;
|
|
56
|
+
this.title = props.title;
|
|
57
|
+
this.status = props.status;
|
|
58
|
+
this.createdAt = props.createdAt;
|
|
59
|
+
this.updatedAt = props.updatedAt;
|
|
60
|
+
this.providerRefs = ensureArray(props.providerRefs).map((item) => ProviderRef.from(item));
|
|
61
|
+
this.turns = ensureArray(props.turns).map((item) => SessionTurn.fromJSON(item));
|
|
62
|
+
}
|
|
63
|
+
static create(params = {}) {
|
|
64
|
+
const clock = params.clock ?? defaultClock;
|
|
65
|
+
const idGenerator = params.idGenerator ?? defaultIdGenerator;
|
|
66
|
+
const createdAt = params.createdAt ?? clock();
|
|
67
|
+
const updatedAt = params.updatedAt ?? createdAt;
|
|
68
|
+
return new Session({
|
|
69
|
+
sessionId: params.sessionId ?? idGenerator('session'),
|
|
70
|
+
title: params.title ?? 'Untitled Session',
|
|
71
|
+
status: params.status ?? 'active',
|
|
72
|
+
createdAt,
|
|
73
|
+
updatedAt,
|
|
74
|
+
providerRefs: ensureArray(params.providerRefs).map((item) => ProviderRef.from(item).toJSON()),
|
|
75
|
+
turns: ensureArray(params.turns).map((item) => item instanceof SessionTurn ? item.toJSON() : SessionTurn.fromJSON(item).toJSON()),
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
static fromJSON(input) {
|
|
79
|
+
return new Session(input);
|
|
80
|
+
}
|
|
81
|
+
appendTurn(turn, updatedAt = defaultClock()) {
|
|
82
|
+
if (turn.sessionId !== this.sessionId) {
|
|
83
|
+
throw new Error(`Session turn ${turn.turnId} does not belong to session ${this.sessionId}`);
|
|
84
|
+
}
|
|
85
|
+
this.turns.push(turn);
|
|
86
|
+
this.updatedAt = updatedAt;
|
|
87
|
+
}
|
|
88
|
+
createTurn(params) {
|
|
89
|
+
const turn = SessionTurn.create({
|
|
90
|
+
sessionId: this.sessionId,
|
|
91
|
+
role: params.role,
|
|
92
|
+
content: params.content,
|
|
93
|
+
...(params.artifactIds ? { artifactIds: params.artifactIds } : {}),
|
|
94
|
+
...(params.turnId ? { turnId: params.turnId } : {}),
|
|
95
|
+
...(params.createdAt ? { createdAt: params.createdAt } : {}),
|
|
96
|
+
...(params.clock ? { clock: params.clock } : {}),
|
|
97
|
+
...(params.idGenerator ? { idGenerator: params.idGenerator } : {}),
|
|
98
|
+
});
|
|
99
|
+
this.appendTurn(turn, turn.createdAt);
|
|
100
|
+
return turn;
|
|
101
|
+
}
|
|
102
|
+
upsertProviderRef(providerRef, updatedAt = defaultClock()) {
|
|
103
|
+
const resolved = ProviderRef.from(providerRef);
|
|
104
|
+
const index = this.providerRefs.findIndex((item) => item.provider === resolved.provider);
|
|
105
|
+
if (index >= 0) {
|
|
106
|
+
this.providerRefs[index] = resolved;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.providerRefs.push(resolved);
|
|
110
|
+
}
|
|
111
|
+
this.updatedAt = updatedAt;
|
|
112
|
+
}
|
|
113
|
+
buildTranscript() {
|
|
114
|
+
return this.turns
|
|
115
|
+
.map((turn) => `${turn.role.toUpperCase()}: ${turn.content}`)
|
|
116
|
+
.join('\n\n');
|
|
117
|
+
}
|
|
118
|
+
toJSON() {
|
|
119
|
+
return compactObject({
|
|
120
|
+
schemaVersion: this.schemaVersion,
|
|
121
|
+
sessionId: this.sessionId,
|
|
122
|
+
title: this.title,
|
|
123
|
+
status: this.status,
|
|
124
|
+
createdAt: this.createdAt,
|
|
125
|
+
updatedAt: this.updatedAt,
|
|
126
|
+
providerRefs: this.providerRefs.map((item) => item.toJSON()),
|
|
127
|
+
turns: this.turns.map((item) => item.toJSON()),
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/domain/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { type IsoDateString } from "./base.js";
|
|
2
|
+
export interface ProviderRefProps {
|
|
3
|
+
provider: string;
|
|
4
|
+
providerSessionId: string;
|
|
5
|
+
workingDirectory?: string | null;
|
|
6
|
+
lastUsedAt?: IsoDateString | null;
|
|
7
|
+
}
|
|
8
|
+
export declare class ProviderRef {
|
|
9
|
+
readonly provider: string;
|
|
10
|
+
readonly providerSessionId: string;
|
|
11
|
+
readonly workingDirectory: string | null;
|
|
12
|
+
readonly lastUsedAt: IsoDateString | null;
|
|
13
|
+
constructor(props: ProviderRefProps);
|
|
14
|
+
static from(input: ProviderRef | ProviderRefProps): ProviderRef;
|
|
15
|
+
toJSON(): ProviderRefProps;
|
|
16
|
+
}
|
|
17
|
+
export interface UsageProps {
|
|
18
|
+
inputTokens?: number | null;
|
|
19
|
+
outputTokens?: number | null;
|
|
20
|
+
costUsd?: number | null;
|
|
21
|
+
latencyMs?: number | null;
|
|
22
|
+
}
|
|
23
|
+
export declare class Usage {
|
|
24
|
+
readonly inputTokens: number | null;
|
|
25
|
+
readonly outputTokens: number | null;
|
|
26
|
+
readonly costUsd: number | null;
|
|
27
|
+
readonly latencyMs: number | null;
|
|
28
|
+
constructor(props?: UsageProps);
|
|
29
|
+
static from(input: Usage | UsageProps | null | undefined): Usage | null;
|
|
30
|
+
toJSON(): UsageProps;
|
|
31
|
+
}
|
|
32
|
+
export interface CitationProps {
|
|
33
|
+
kind: string;
|
|
34
|
+
label?: string | null;
|
|
35
|
+
pathOrUrl?: string | null;
|
|
36
|
+
line?: number | null;
|
|
37
|
+
}
|
|
38
|
+
export declare class Citation {
|
|
39
|
+
readonly kind: string;
|
|
40
|
+
readonly label: string | null;
|
|
41
|
+
readonly pathOrUrl: string | null;
|
|
42
|
+
readonly line: number | null;
|
|
43
|
+
constructor(props: CitationProps);
|
|
44
|
+
static from(input: Citation | CitationProps): Citation;
|
|
45
|
+
toJSON(): CitationProps;
|
|
46
|
+
}
|
|
47
|
+
export interface TaskDependencyProps {
|
|
48
|
+
taskId: string;
|
|
49
|
+
dependencyTaskId: string;
|
|
50
|
+
}
|
|
51
|
+
export declare class TaskDependency {
|
|
52
|
+
readonly taskId: string;
|
|
53
|
+
readonly dependencyTaskId: string;
|
|
54
|
+
constructor(props: TaskDependencyProps);
|
|
55
|
+
static from(input: TaskDependency | TaskDependencyProps): TaskDependency;
|
|
56
|
+
toJSON(): TaskDependencyProps;
|
|
57
|
+
}
|
|
58
|
+
export interface FileRefProps {
|
|
59
|
+
path: string;
|
|
60
|
+
purpose?: string | null;
|
|
61
|
+
checksum?: string | null;
|
|
62
|
+
}
|
|
63
|
+
export declare class FileRef {
|
|
64
|
+
readonly path: string;
|
|
65
|
+
readonly purpose: string | null;
|
|
66
|
+
readonly checksum: string | null;
|
|
67
|
+
constructor(props: FileRefProps);
|
|
68
|
+
static from(input: FileRef | FileRefProps): FileRef;
|
|
69
|
+
toJSON(): FileRefProps;
|
|
70
|
+
}
|
|
71
|
+
export interface DiffRefProps {
|
|
72
|
+
path: string;
|
|
73
|
+
range?: string | null;
|
|
74
|
+
summary?: string | null;
|
|
75
|
+
}
|
|
76
|
+
export declare class DiffRef {
|
|
77
|
+
readonly path: string;
|
|
78
|
+
readonly range: string | null;
|
|
79
|
+
readonly summary: string | null;
|
|
80
|
+
constructor(props: DiffRefProps);
|
|
81
|
+
static from(input: DiffRef | DiffRefProps): DiffRef;
|
|
82
|
+
toJSON(): DiffRefProps;
|
|
83
|
+
}
|
|
84
|
+
export interface LogRefProps {
|
|
85
|
+
path: string;
|
|
86
|
+
source?: string | null;
|
|
87
|
+
capturedAt?: IsoDateString | null;
|
|
88
|
+
}
|
|
89
|
+
export declare class LogRef {
|
|
90
|
+
readonly path: string;
|
|
91
|
+
readonly source: string | null;
|
|
92
|
+
readonly capturedAt: IsoDateString | null;
|
|
93
|
+
constructor(props: LogRefProps);
|
|
94
|
+
static from(input: LogRef | LogRefProps): LogRef;
|
|
95
|
+
toJSON(): LogRefProps;
|
|
96
|
+
}
|
|
97
|
+
export interface ConfidenceScoreProps {
|
|
98
|
+
level: string;
|
|
99
|
+
reason?: string | null;
|
|
100
|
+
}
|
|
101
|
+
export declare class ConfidenceScore {
|
|
102
|
+
readonly level: string;
|
|
103
|
+
readonly reason: string | null;
|
|
104
|
+
constructor(props: ConfidenceScoreProps);
|
|
105
|
+
static from(input: ConfidenceScore | ConfidenceScoreProps | null | undefined): ConfidenceScore | null;
|
|
106
|
+
toJSON(): ConfidenceScoreProps;
|
|
107
|
+
}
|
|
108
|
+
export interface ExternalRefProps {
|
|
109
|
+
system: string;
|
|
110
|
+
id: string;
|
|
111
|
+
scope?: string | null;
|
|
112
|
+
}
|
|
113
|
+
export declare class ExternalRef {
|
|
114
|
+
readonly system: string;
|
|
115
|
+
readonly id: string;
|
|
116
|
+
readonly scope: string | null;
|
|
117
|
+
constructor(props: ExternalRefProps);
|
|
118
|
+
static from(input: ExternalRef | ExternalRefProps): ExternalRef;
|
|
119
|
+
toJSON(): ExternalRefProps;
|
|
120
|
+
}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { compactObject } from "./base.js";
|
|
2
|
+
export class ProviderRef {
|
|
3
|
+
provider;
|
|
4
|
+
providerSessionId;
|
|
5
|
+
workingDirectory;
|
|
6
|
+
lastUsedAt;
|
|
7
|
+
constructor(props) {
|
|
8
|
+
this.provider = props.provider;
|
|
9
|
+
this.providerSessionId = props.providerSessionId;
|
|
10
|
+
this.workingDirectory = props.workingDirectory ?? null;
|
|
11
|
+
this.lastUsedAt = props.lastUsedAt ?? null;
|
|
12
|
+
}
|
|
13
|
+
static from(input) {
|
|
14
|
+
return input instanceof ProviderRef ? input : new ProviderRef(input);
|
|
15
|
+
}
|
|
16
|
+
toJSON() {
|
|
17
|
+
return compactObject({
|
|
18
|
+
provider: this.provider,
|
|
19
|
+
providerSessionId: this.providerSessionId,
|
|
20
|
+
workingDirectory: this.workingDirectory,
|
|
21
|
+
lastUsedAt: this.lastUsedAt,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export class Usage {
|
|
26
|
+
inputTokens;
|
|
27
|
+
outputTokens;
|
|
28
|
+
costUsd;
|
|
29
|
+
latencyMs;
|
|
30
|
+
constructor(props = {}) {
|
|
31
|
+
this.inputTokens = props.inputTokens ?? null;
|
|
32
|
+
this.outputTokens = props.outputTokens ?? null;
|
|
33
|
+
this.costUsd = props.costUsd ?? null;
|
|
34
|
+
this.latencyMs = props.latencyMs ?? null;
|
|
35
|
+
}
|
|
36
|
+
static from(input) {
|
|
37
|
+
if (!input) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
return input instanceof Usage ? input : new Usage(input);
|
|
41
|
+
}
|
|
42
|
+
toJSON() {
|
|
43
|
+
return compactObject({
|
|
44
|
+
inputTokens: this.inputTokens,
|
|
45
|
+
outputTokens: this.outputTokens,
|
|
46
|
+
costUsd: this.costUsd,
|
|
47
|
+
latencyMs: this.latencyMs,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export class Citation {
|
|
52
|
+
kind;
|
|
53
|
+
label;
|
|
54
|
+
pathOrUrl;
|
|
55
|
+
line;
|
|
56
|
+
constructor(props) {
|
|
57
|
+
this.kind = props.kind;
|
|
58
|
+
this.label = props.label ?? null;
|
|
59
|
+
this.pathOrUrl = props.pathOrUrl ?? null;
|
|
60
|
+
this.line = props.line ?? null;
|
|
61
|
+
}
|
|
62
|
+
static from(input) {
|
|
63
|
+
return input instanceof Citation ? input : new Citation(input);
|
|
64
|
+
}
|
|
65
|
+
toJSON() {
|
|
66
|
+
return compactObject({
|
|
67
|
+
kind: this.kind,
|
|
68
|
+
label: this.label,
|
|
69
|
+
pathOrUrl: this.pathOrUrl,
|
|
70
|
+
line: this.line,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export class TaskDependency {
|
|
75
|
+
taskId;
|
|
76
|
+
dependencyTaskId;
|
|
77
|
+
constructor(props) {
|
|
78
|
+
this.taskId = props.taskId;
|
|
79
|
+
this.dependencyTaskId = props.dependencyTaskId;
|
|
80
|
+
}
|
|
81
|
+
static from(input) {
|
|
82
|
+
return input instanceof TaskDependency ? input : new TaskDependency(input);
|
|
83
|
+
}
|
|
84
|
+
toJSON() {
|
|
85
|
+
return {
|
|
86
|
+
taskId: this.taskId,
|
|
87
|
+
dependencyTaskId: this.dependencyTaskId,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export class FileRef {
|
|
92
|
+
path;
|
|
93
|
+
purpose;
|
|
94
|
+
checksum;
|
|
95
|
+
constructor(props) {
|
|
96
|
+
this.path = props.path;
|
|
97
|
+
this.purpose = props.purpose ?? null;
|
|
98
|
+
this.checksum = props.checksum ?? null;
|
|
99
|
+
}
|
|
100
|
+
static from(input) {
|
|
101
|
+
return input instanceof FileRef ? input : new FileRef(input);
|
|
102
|
+
}
|
|
103
|
+
toJSON() {
|
|
104
|
+
return compactObject({
|
|
105
|
+
path: this.path,
|
|
106
|
+
purpose: this.purpose,
|
|
107
|
+
checksum: this.checksum,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
export class DiffRef {
|
|
112
|
+
path;
|
|
113
|
+
range;
|
|
114
|
+
summary;
|
|
115
|
+
constructor(props) {
|
|
116
|
+
this.path = props.path;
|
|
117
|
+
this.range = props.range ?? null;
|
|
118
|
+
this.summary = props.summary ?? null;
|
|
119
|
+
}
|
|
120
|
+
static from(input) {
|
|
121
|
+
return input instanceof DiffRef ? input : new DiffRef(input);
|
|
122
|
+
}
|
|
123
|
+
toJSON() {
|
|
124
|
+
return compactObject({
|
|
125
|
+
path: this.path,
|
|
126
|
+
range: this.range,
|
|
127
|
+
summary: this.summary,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export class LogRef {
|
|
132
|
+
path;
|
|
133
|
+
source;
|
|
134
|
+
capturedAt;
|
|
135
|
+
constructor(props) {
|
|
136
|
+
this.path = props.path;
|
|
137
|
+
this.source = props.source ?? null;
|
|
138
|
+
this.capturedAt = props.capturedAt ?? null;
|
|
139
|
+
}
|
|
140
|
+
static from(input) {
|
|
141
|
+
return input instanceof LogRef ? input : new LogRef(input);
|
|
142
|
+
}
|
|
143
|
+
toJSON() {
|
|
144
|
+
return compactObject({
|
|
145
|
+
path: this.path,
|
|
146
|
+
source: this.source,
|
|
147
|
+
capturedAt: this.capturedAt,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
export class ConfidenceScore {
|
|
152
|
+
level;
|
|
153
|
+
reason;
|
|
154
|
+
constructor(props) {
|
|
155
|
+
this.level = props.level;
|
|
156
|
+
this.reason = props.reason ?? null;
|
|
157
|
+
}
|
|
158
|
+
static from(input) {
|
|
159
|
+
if (!input) {
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
return input instanceof ConfidenceScore ? input : new ConfidenceScore(input);
|
|
163
|
+
}
|
|
164
|
+
toJSON() {
|
|
165
|
+
return compactObject({
|
|
166
|
+
level: this.level,
|
|
167
|
+
reason: this.reason,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
export class ExternalRef {
|
|
172
|
+
system;
|
|
173
|
+
id;
|
|
174
|
+
scope;
|
|
175
|
+
constructor(props) {
|
|
176
|
+
this.system = props.system;
|
|
177
|
+
this.id = props.id;
|
|
178
|
+
this.scope = props.scope ?? null;
|
|
179
|
+
}
|
|
180
|
+
static from(input) {
|
|
181
|
+
return input instanceof ExternalRef ? input : new ExternalRef(input);
|
|
182
|
+
}
|
|
183
|
+
toJSON() {
|
|
184
|
+
return compactObject({
|
|
185
|
+
system: this.system,
|
|
186
|
+
id: this.id,
|
|
187
|
+
scope: this.scope,
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=value-objects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-objects.js","sourceRoot":"","sources":["../../../src/domain/value-objects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ContextBundleData, PlanTaskSpec } from "../shared/contracts.js";
|
|
2
|
+
export declare class PlanBuilder {
|
|
3
|
+
#private;
|
|
4
|
+
buildDirectPlan(question: string, contextBundle: ContextBundleData, provider: string): PlanTaskSpec[];
|
|
5
|
+
buildDebugPlan(question: string, contextBundle: ContextBundleData, provider: string): PlanTaskSpec[];
|
|
6
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export class PlanBuilder {
|
|
2
|
+
buildDirectPlan(question, contextBundle, provider) {
|
|
3
|
+
return [
|
|
4
|
+
{
|
|
5
|
+
taskKind: "consultation",
|
|
6
|
+
role: "provider-reviewer",
|
|
7
|
+
provider,
|
|
8
|
+
prompt: this.#buildPrompt("Consultation", question, contextBundle),
|
|
9
|
+
},
|
|
10
|
+
];
|
|
11
|
+
}
|
|
12
|
+
buildDebugPlan(question, contextBundle, provider) {
|
|
13
|
+
return [
|
|
14
|
+
{
|
|
15
|
+
taskKind: "root-cause-analysis",
|
|
16
|
+
role: "planner",
|
|
17
|
+
provider,
|
|
18
|
+
prompt: this.#buildPrompt("Root Cause Analysis", `Find the most likely root causes for the following problem.\n\n${question}`, contextBundle),
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
taskKind: "risk-review",
|
|
22
|
+
role: "provider-reviewer",
|
|
23
|
+
provider,
|
|
24
|
+
prompt: this.#buildPrompt("Risk Review", `Review the implementation and identify likely regressions, edge cases, and hidden risks.\n\n${question}`, contextBundle),
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
taskKind: "fix-proposal",
|
|
28
|
+
role: "provider-reviewer",
|
|
29
|
+
provider,
|
|
30
|
+
prompt: this.#buildPrompt("Fix Proposal", `Propose a pragmatic fix plan with the smallest safe change set.\n\n${question}`, contextBundle),
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
}
|
|
34
|
+
#buildPrompt(label, question, contextBundle) {
|
|
35
|
+
const sections = [
|
|
36
|
+
`Task: ${label}`,
|
|
37
|
+
`Question:\n${question.trim()}`,
|
|
38
|
+
`Context Summary:\n${contextBundle.summary}`,
|
|
39
|
+
];
|
|
40
|
+
if ((contextBundle.files?.length ?? 0) > 0) {
|
|
41
|
+
sections.push(contextBundle.files
|
|
42
|
+
.map((file) => `File: ${file.path}\n${file.content ?? ""}`.trim())
|
|
43
|
+
.join("\n\n"));
|
|
44
|
+
}
|
|
45
|
+
if ((contextBundle.diffs?.length ?? 0) > 0) {
|
|
46
|
+
sections.push(contextBundle.diffs
|
|
47
|
+
.map((diff) => `Diff: ${diff.path}\n${diff.content ?? ""}`.trim())
|
|
48
|
+
.join("\n\n"));
|
|
49
|
+
}
|
|
50
|
+
if ((contextBundle.logs?.length ?? 0) > 0) {
|
|
51
|
+
sections.push(contextBundle.logs
|
|
52
|
+
.map((log) => `Log: ${log.path}\n${log.content ?? ""}`.trim())
|
|
53
|
+
.join("\n\n"));
|
|
54
|
+
}
|
|
55
|
+
sections.push("Return a concise answer with findings, reasoning, and a short actionable recommendation.");
|
|
56
|
+
return sections.join("\n\n");
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=PlanBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanBuilder.js","sourceRoot":"","sources":["../../../src/orchestrator/PlanBuilder.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IACtB,eAAe,CAAC,QAAgB,EAAE,aAAgC,EAAE,QAAgB;QAClF,OAAO;YACL;gBACE,QAAQ,EAAE,cAAc;gBACxB,IAAI,EAAE,mBAAmB;gBACzB,QAAQ;gBACR,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,EAAE,aAAa,CAAC;aACnE;SACF,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,QAAgB,EAAE,aAAgC,EAAE,QAAgB;QACjF,OAAO;YACL;gBACE,QAAQ,EAAE,qBAAqB;gBAC/B,IAAI,EAAE,SAAS;gBACf,QAAQ;gBACR,MAAM,EAAE,IAAI,CAAC,YAAY,CACvB,qBAAqB,EACrB,kEAAkE,QAAQ,EAAE,EAC5E,aAAa,CACd;aACF;YACD;gBACE,QAAQ,EAAE,aAAa;gBACvB,IAAI,EAAE,mBAAmB;gBACzB,QAAQ;gBACR,MAAM,EAAE,IAAI,CAAC,YAAY,CACvB,aAAa,EACb,+FAA+F,QAAQ,EAAE,EACzG,aAAa,CACd;aACF;YACD;gBACE,QAAQ,EAAE,cAAc;gBACxB,IAAI,EAAE,mBAAmB;gBACzB,QAAQ;gBACR,MAAM,EAAE,IAAI,CAAC,YAAY,CACvB,cAAc,EACd,sEAAsE,QAAQ,EAAE,EAChF,aAAa,CACd;aACF;SACF,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,KAAa,EAAE,QAAgB,EAAE,aAAgC;QAC5E,MAAM,QAAQ,GAAG;YACf,SAAS,KAAK,EAAE;YAChB,cAAc,QAAQ,CAAC,IAAI,EAAE,EAAE;YAC/B,qBAAqB,aAAa,CAAC,OAAO,EAAE;SAC7C,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3C,QAAQ,CAAC,IAAI,CACX,aAAa,CAAC,KAAK;iBAChB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;iBACjE,IAAI,CAAC,MAAM,CAAC,CAChB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3C,QAAQ,CAAC,IAAI,CACX,aAAa,CAAC,KAAK;iBAChB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;iBACjE,IAAI,CAAC,MAAM,CAAC,CAChB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,QAAQ,CAAC,IAAI,CACX,aAAa,CAAC,IAAI;iBACf,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;iBAC7D,IAAI,CAAC,MAAM,CAAC,CAChB,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,IAAI,CACX,0FAA0F,CAC3F,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ComparisonReportData, NormalizedResponseData, RunData } from "../shared/contracts.js";
|
|
2
|
+
import type { ComparisonEngine } from "../compare/ComparisonEngine.js";
|
|
3
|
+
export declare class ResultMerger {
|
|
4
|
+
#private;
|
|
5
|
+
constructor(comparisonEngine: ComparisonEngine);
|
|
6
|
+
merge(topic: string, run: RunData, normalizedResponses: NormalizedResponseData[]): {
|
|
7
|
+
finalSummary: string;
|
|
8
|
+
comparisonReport: ComparisonReportData;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export class ResultMerger {
|
|
2
|
+
#comparisonEngine;
|
|
3
|
+
constructor(comparisonEngine) {
|
|
4
|
+
this.#comparisonEngine = comparisonEngine;
|
|
5
|
+
}
|
|
6
|
+
merge(topic, run, normalizedResponses) {
|
|
7
|
+
const comparisonReport = this.#comparisonEngine.compare(topic, normalizedResponses);
|
|
8
|
+
comparisonReport.runId = run.runId;
|
|
9
|
+
const parts = normalizedResponses.map((response) => {
|
|
10
|
+
const findings = response.findings.slice(0, 3).join("; ");
|
|
11
|
+
return `[${response.provider}/${response.taskId}] ${response.summary}${findings ? ` Findings: ${findings}` : ""}`;
|
|
12
|
+
});
|
|
13
|
+
return {
|
|
14
|
+
finalSummary: parts.join("\n"),
|
|
15
|
+
comparisonReport,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=ResultMerger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResultMerger.js","sourceRoot":"","sources":["../../../src/orchestrator/ResultMerger.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,YAAY;IACd,iBAAiB,CAAmB;IAE7C,YAAY,gBAAkC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,GAAY,EAAE,mBAA6C;QAI9E,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACpF,gBAAgB,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QAEnC,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,OAAO,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACpH,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,gBAAgB;SACjB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ArtifactRepositoryPort, NormalizedResponseData, PlanTaskSpec, ProviderRegistryPort, RunCoordinatorPort, RunData, SessionData } from "../shared/contracts.js";
|
|
2
|
+
import type { ResponseNormalizer } from "../compare/ResponseNormalizer.js";
|
|
3
|
+
export interface TaskExecutorDependencies {
|
|
4
|
+
providerRegistry: ProviderRegistryPort;
|
|
5
|
+
artifactRepository: ArtifactRepositoryPort;
|
|
6
|
+
responseNormalizer: ResponseNormalizer;
|
|
7
|
+
runCoordinator: RunCoordinatorPort;
|
|
8
|
+
}
|
|
9
|
+
export declare class TaskExecutor {
|
|
10
|
+
#private;
|
|
11
|
+
constructor(dependencies: TaskExecutorDependencies);
|
|
12
|
+
executePlan(input: {
|
|
13
|
+
session: SessionData;
|
|
14
|
+
run: RunData;
|
|
15
|
+
taskSpecs: PlanTaskSpec[];
|
|
16
|
+
}): Promise<{
|
|
17
|
+
run: RunData;
|
|
18
|
+
normalizedResponses: NormalizedResponseData[];
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
export class TaskExecutor {
|
|
2
|
+
#providerRegistry;
|
|
3
|
+
#artifactRepository;
|
|
4
|
+
#responseNormalizer;
|
|
5
|
+
#runCoordinator;
|
|
6
|
+
constructor(dependencies) {
|
|
7
|
+
this.#providerRegistry = dependencies.providerRegistry;
|
|
8
|
+
this.#artifactRepository = dependencies.artifactRepository;
|
|
9
|
+
this.#responseNormalizer = dependencies.responseNormalizer;
|
|
10
|
+
this.#runCoordinator = dependencies.runCoordinator;
|
|
11
|
+
}
|
|
12
|
+
async executePlan(input) {
|
|
13
|
+
const normalizedResponses = [];
|
|
14
|
+
let currentRun = input.run;
|
|
15
|
+
for (const spec of input.taskSpecs) {
|
|
16
|
+
const task = await this.#runCoordinator.appendTask({
|
|
17
|
+
runId: currentRun.runId,
|
|
18
|
+
taskKind: spec.taskKind,
|
|
19
|
+
role: spec.role,
|
|
20
|
+
provider: spec.provider ?? null,
|
|
21
|
+
dependsOn: spec.dependsOn ?? [],
|
|
22
|
+
prompt: spec.prompt,
|
|
23
|
+
});
|
|
24
|
+
const { updatedRun, normalizedResponse } = await this.#executeTask({
|
|
25
|
+
session: input.session,
|
|
26
|
+
run: currentRun,
|
|
27
|
+
task,
|
|
28
|
+
prompt: spec.prompt,
|
|
29
|
+
});
|
|
30
|
+
currentRun = updatedRun;
|
|
31
|
+
normalizedResponses.push(normalizedResponse);
|
|
32
|
+
}
|
|
33
|
+
return { run: currentRun, normalizedResponses };
|
|
34
|
+
}
|
|
35
|
+
async #executeTask(input) {
|
|
36
|
+
const provider = input.task.provider ?? "claude-code";
|
|
37
|
+
const adapter = this.#providerRegistry.get(provider);
|
|
38
|
+
const providerRef = input.session.providerRefs.find((ref) => ref.provider === provider) ?? null;
|
|
39
|
+
const providerResponse = await adapter.call({
|
|
40
|
+
provider,
|
|
41
|
+
prompt: input.prompt,
|
|
42
|
+
sessionHint: providerRef,
|
|
43
|
+
mode: input.run.mode,
|
|
44
|
+
});
|
|
45
|
+
const rawTextArtifact = await this.#artifactRepository.saveArtifact({
|
|
46
|
+
kind: "provider-raw-text",
|
|
47
|
+
runId: input.run.runId,
|
|
48
|
+
sessionId: input.session.sessionId,
|
|
49
|
+
taskId: input.task.taskId,
|
|
50
|
+
extension: "txt",
|
|
51
|
+
content: providerResponse.rawText ?? "",
|
|
52
|
+
});
|
|
53
|
+
const rawJsonArtifact = await this.#artifactRepository.saveArtifact({
|
|
54
|
+
kind: "provider-raw-json",
|
|
55
|
+
runId: input.run.runId,
|
|
56
|
+
sessionId: input.session.sessionId,
|
|
57
|
+
taskId: input.task.taskId,
|
|
58
|
+
extension: "json",
|
|
59
|
+
content: JSON.stringify(providerResponse.rawJson ?? {}, null, 2),
|
|
60
|
+
});
|
|
61
|
+
providerResponse.rawTextRef = rawTextArtifact.path;
|
|
62
|
+
providerResponse.rawJsonRef = rawJsonArtifact.path;
|
|
63
|
+
const normalizedResponse = this.#responseNormalizer.normalize({
|
|
64
|
+
taskId: input.task.taskId,
|
|
65
|
+
providerResponse,
|
|
66
|
+
});
|
|
67
|
+
const updatedRun = await this.#runCoordinator.appendTaskResult({
|
|
68
|
+
runId: input.run.runId,
|
|
69
|
+
taskId: input.task.taskId,
|
|
70
|
+
summary: normalizedResponse.summary,
|
|
71
|
+
findings: normalizedResponse.findings,
|
|
72
|
+
citations: normalizedResponse.citations,
|
|
73
|
+
confidence: normalizedResponse.confidence,
|
|
74
|
+
sourceArtifactIds: [rawTextArtifact.artifactId, rawJsonArtifact.artifactId],
|
|
75
|
+
providerResponse,
|
|
76
|
+
normalizedResponse,
|
|
77
|
+
});
|
|
78
|
+
return { updatedRun, normalizedResponse };
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=TaskExecutor.js.map
|