@zhixuan92/multi-model-agent-core 3.6.7 → 3.8.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/README.md +4 -0
- package/dist/config/read-only-review-flag.d.ts +8 -0
- package/dist/config/read-only-review-flag.d.ts.map +1 -0
- package/dist/config/read-only-review-flag.js +13 -0
- package/dist/config/read-only-review-flag.js.map +1 -0
- package/dist/delegate-with-escalation.d.ts +7 -1
- package/dist/delegate-with-escalation.d.ts.map +1 -1
- package/dist/delegate-with-escalation.js +22 -4
- package/dist/delegate-with-escalation.js.map +1 -1
- package/dist/diagnostics/http-server-log.d.ts +63 -0
- package/dist/diagnostics/http-server-log.d.ts.map +1 -0
- package/dist/diagnostics/http-server-log.js +188 -0
- package/dist/diagnostics/http-server-log.js.map +1 -0
- package/dist/diagnostics/jsonl-writer.d.ts +24 -0
- package/dist/diagnostics/jsonl-writer.d.ts.map +1 -0
- package/dist/diagnostics/jsonl-writer.js +57 -0
- package/dist/diagnostics/jsonl-writer.js.map +1 -0
- package/dist/diagnostics/types.d.ts +54 -0
- package/dist/diagnostics/types.d.ts.map +1 -0
- package/dist/diagnostics/types.js +2 -0
- package/dist/diagnostics/types.js.map +1 -0
- package/dist/executors/_shared/findings-schema.d.ts +40 -0
- package/dist/executors/_shared/findings-schema.d.ts.map +1 -0
- package/dist/executors/_shared/findings-schema.js +23 -0
- package/dist/executors/_shared/findings-schema.js.map +1 -0
- package/dist/executors/_shared/review-verdict-mapping.d.ts +16 -0
- package/dist/executors/_shared/review-verdict-mapping.d.ts.map +1 -0
- package/dist/executors/_shared/review-verdict-mapping.js +24 -0
- package/dist/executors/_shared/review-verdict-mapping.js.map +1 -0
- package/dist/executors/audit.d.ts.map +1 -1
- package/dist/executors/audit.js +21 -5
- package/dist/executors/audit.js.map +1 -1
- package/dist/executors/debug.d.ts.map +1 -1
- package/dist/executors/debug.js +11 -2
- package/dist/executors/debug.js.map +1 -1
- package/dist/executors/execution-context.d.ts.map +1 -1
- package/dist/executors/execution-context.js +1 -0
- package/dist/executors/execution-context.js.map +1 -1
- package/dist/executors/investigate.d.ts.map +1 -1
- package/dist/executors/investigate.js +22 -17
- package/dist/executors/investigate.js.map +1 -1
- package/dist/executors/review.d.ts.map +1 -1
- package/dist/executors/review.js +48 -48
- package/dist/executors/review.js.map +1 -1
- package/dist/executors/types.d.ts +11 -4
- package/dist/executors/types.d.ts.map +1 -1
- package/dist/executors/verify.d.ts.map +1 -1
- package/dist/executors/verify.js +43 -8
- package/dist/executors/verify.js.map +1 -1
- package/dist/heartbeat.d.ts.map +1 -1
- package/dist/heartbeat.js +5 -0
- package/dist/heartbeat.js.map +1 -1
- package/dist/index.d.ts +11 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/intake/compilers/audit.d.ts.map +1 -1
- package/dist/intake/compilers/audit.js +2 -0
- package/dist/intake/compilers/audit.js.map +1 -1
- package/dist/intake/compilers/debug.d.ts.map +1 -1
- package/dist/intake/compilers/debug.js +1 -0
- package/dist/intake/compilers/debug.js.map +1 -1
- package/dist/intake/compilers/investigate.d.ts.map +1 -1
- package/dist/intake/compilers/investigate.js +3 -4
- package/dist/intake/compilers/investigate.js.map +1 -1
- package/dist/intake/compilers/review.d.ts.map +1 -1
- package/dist/intake/compilers/review.js +2 -0
- package/dist/intake/compilers/review.js.map +1 -1
- package/dist/intake/resolve.d.ts.map +1 -1
- package/dist/intake/resolve.js +11 -10
- package/dist/intake/resolve.js.map +1 -1
- package/dist/intake/types.d.ts +2 -1
- package/dist/intake/types.d.ts.map +1 -1
- package/dist/observability/buckets.d.ts +3 -0
- package/dist/observability/buckets.d.ts.map +1 -0
- package/dist/observability/buckets.js +21 -0
- package/dist/observability/buckets.js.map +1 -0
- package/dist/observability/bus.d.ts +11 -0
- package/dist/observability/bus.d.ts.map +1 -0
- package/dist/observability/bus.js +17 -0
- package/dist/observability/bus.js.map +1 -0
- package/dist/observability/events.d.ts +932 -0
- package/dist/observability/events.d.ts.map +1 -0
- package/dist/observability/events.js +313 -0
- package/dist/observability/events.js.map +1 -0
- package/dist/observability/local-log-sink.d.ts +10 -0
- package/dist/observability/local-log-sink.d.ts.map +1 -0
- package/dist/observability/local-log-sink.js +11 -0
- package/dist/observability/local-log-sink.js.map +1 -0
- package/dist/observability/telemetry-sink.d.ts +12 -0
- package/dist/observability/telemetry-sink.d.ts.map +1 -0
- package/dist/observability/telemetry-sink.js +24 -0
- package/dist/observability/telemetry-sink.js.map +1 -0
- package/dist/review/quality-only-prompts.d.ts +20 -0
- package/dist/review/quality-only-prompts.d.ts.map +1 -0
- package/dist/review/quality-only-prompts.js +108 -0
- package/dist/review/quality-only-prompts.js.map +1 -0
- package/dist/review/quality-reviewer.d.ts +4 -1
- package/dist/review/quality-reviewer.d.ts.map +1 -1
- package/dist/review/quality-reviewer.js +6 -4
- package/dist/review/quality-reviewer.js.map +1 -1
- package/dist/run-tasks/index.d.ts +11 -3
- package/dist/run-tasks/index.d.ts.map +1 -1
- package/dist/run-tasks/index.js +1 -1
- package/dist/run-tasks/index.js.map +1 -1
- package/dist/run-tasks/reviewed-lifecycle.d.ts +5 -2
- package/dist/run-tasks/reviewed-lifecycle.d.ts.map +1 -1
- package/dist/run-tasks/reviewed-lifecycle.js +211 -130
- package/dist/run-tasks/reviewed-lifecycle.js.map +1 -1
- package/dist/runners/types.d.ts +6 -1
- package/dist/runners/types.d.ts.map +1 -1
- package/dist/telemetry/bucketing.d.ts +2 -0
- package/dist/telemetry/bucketing.d.ts.map +1 -1
- package/dist/telemetry/bucketing.js +9 -0
- package/dist/telemetry/bucketing.js.map +1 -1
- package/dist/telemetry/event-builder.d.ts.map +1 -1
- package/dist/telemetry/event-builder.js +19 -1
- package/dist/telemetry/event-builder.js.map +1 -1
- package/dist/telemetry/types.d.ts +131 -5
- package/dist/telemetry/types.d.ts.map +1 -1
- package/dist/telemetry/types.js +13 -1
- package/dist/telemetry/types.js.map +1 -1
- package/dist/tool-schemas/audit.d.ts +17 -0
- package/dist/tool-schemas/audit.d.ts.map +1 -1
- package/dist/tool-schemas/debug.d.ts +17 -0
- package/dist/tool-schemas/debug.d.ts.map +1 -1
- package/dist/tool-schemas/delegate.d.ts +17 -0
- package/dist/tool-schemas/delegate.d.ts.map +1 -1
- package/dist/tool-schemas/execute-plan.d.ts +17 -0
- package/dist/tool-schemas/execute-plan.d.ts.map +1 -1
- package/dist/tool-schemas/investigate.d.ts +17 -4
- package/dist/tool-schemas/investigate.d.ts.map +1 -1
- package/dist/tool-schemas/investigate.js +0 -1
- package/dist/tool-schemas/investigate.js.map +1 -1
- package/dist/tool-schemas/retry.d.ts +17 -0
- package/dist/tool-schemas/retry.d.ts.map +1 -1
- package/dist/tool-schemas/review.d.ts +17 -0
- package/dist/tool-schemas/review.d.ts.map +1 -1
- package/dist/tool-schemas/shared-output.d.ts +17 -0
- package/dist/tool-schemas/shared-output.d.ts.map +1 -1
- package/dist/tool-schemas/shared-output.js +6 -0
- package/dist/tool-schemas/shared-output.js.map +1 -1
- package/dist/tool-schemas/verify.d.ts +17 -0
- package/dist/tool-schemas/verify.d.ts.map +1 -1
- package/dist/types.d.ts +5 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +25 -5
- package/dist/diagnostics/disconnect-log.d.ts +0 -143
- package/dist/diagnostics/disconnect-log.d.ts.map +0 -1
- package/dist/diagnostics/disconnect-log.js +0 -374
- package/dist/diagnostics/disconnect-log.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/observability/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+DxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;kBAIlB,CAAC;AAEZ,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;kBASlB,CAAC;AAEZ,eAAO,MAAM,cAAc;;;;;;;;;;;;;kBAUhB,CAAC;AAEZ,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAUf,CAAC;AAEZ,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;kBAO1B,CAAC;AAEZ,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;kBAOjB,CAAC;AAEZ,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;kBAO5B,CAAC;AAEZ,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;kBAKrB,CAAC;AAEZ,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;kBAQjB,CAAC;AAEZ,eAAO,MAAM,kBAAkB;;;;;;;;;;;;kBAIpB,CAAC;AAEZ,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;kBAS5B,CAAC;AAEZ,eAAO,MAAM,yBAAyB;;;;;;;;kBAK3B,CAAC;AAEZ,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;kBAO7B,CAAC;AAEZ,eAAO,MAAM,eAAe;;;;;;;kBAIjB,CAAC;AAEZ,eAAO,MAAM,mBAAmB;;;;;;;kBAKrB,CAAC;AAEZ,eAAO,MAAM,gBAAgB;;;;;;;;kBAMlB,CAAC;AAEZ,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;iBAYpB,CAAC;AAMjB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;kBAKlB,CAAC;AAEZ,eAAO,MAAM,cAAc;;;;;;;;;;;;kBAKhB,CAAC;AAEZ,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;kBASnB,CAAC;AAEZ,eAAO,MAAM,aAAa;;;;;;;kBAIf,CAAC;AAEZ,eAAO,MAAM,iBAAiB;;;;;;;kBAInB,CAAC;AAWZ,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0BpB,CAAC;AAEjB,eAAO,MAAM,wBAAwB;;;;;;;;;iBAKrB,CAAC;AAEjB,eAAO,MAAM,wBAAwB;;;;;;;;;;iBAMrB,CAAC;AAEjB,eAAO,MAAM,wBAAwB;;;;;iBAKrB,CAAC;AAMjB,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA8BhB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;AAE9C,gFAAgF;AAChF,eAAO,MAAM,iBAAiB,mFAKnB,CAAC"}
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// Base schemas
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
/** Shared base for task-level events (has taskIndex). */
|
|
6
|
+
const TaskBase = z.object({
|
|
7
|
+
ts: z.string().datetime({ offset: true }),
|
|
8
|
+
batchId: z.string().uuid(),
|
|
9
|
+
taskIndex: z.number().int().min(0),
|
|
10
|
+
});
|
|
11
|
+
/** Shared base for batch-level events (no taskIndex). */
|
|
12
|
+
const BatchBase = z.object({
|
|
13
|
+
ts: z.string().datetime({ offset: true }),
|
|
14
|
+
batchId: z.string().uuid(),
|
|
15
|
+
});
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Reusable enum / literal helpers
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
const RouteEnum = z.enum([
|
|
20
|
+
'delegate', 'audit', 'review', 'verify', 'debug', 'execute-plan', 'retry',
|
|
21
|
+
]);
|
|
22
|
+
const TierEnum = z.enum(['standard', 'complex']);
|
|
23
|
+
const DiagLoopEnum = z.enum(['spec', 'quality', 'diff']);
|
|
24
|
+
const DiagRoleEnum = z.enum([
|
|
25
|
+
'implementer', 'specReviewer', 'qualityReviewer', 'diffReviewer',
|
|
26
|
+
]);
|
|
27
|
+
const DiagReasonEnum = z.enum(['transport_failure', 'not_configured']);
|
|
28
|
+
const ProviderTypeEnum = z.enum(['claude', 'openai-compatible', 'codex']);
|
|
29
|
+
const RunStatusEnum = z.enum([
|
|
30
|
+
'ok', 'incomplete', 'timeout', 'api_aborted', 'api_error',
|
|
31
|
+
'network_error', 'error', 'brief_too_vague', 'cost_exceeded', 'unavailable',
|
|
32
|
+
]);
|
|
33
|
+
const ReviewVerdictEnum = z.enum([
|
|
34
|
+
'approved', 'concerns', 'changes_required', 'error', 'skipped', 'not_applicable',
|
|
35
|
+
]);
|
|
36
|
+
const VerifyOutcomeEnum = z.enum(['passed', 'failed', 'skipped', 'not_applicable']);
|
|
37
|
+
const VerifySkipReasonEnum = z.enum([
|
|
38
|
+
'no_command', 'dirty_worktree', 'not_applicable', 'other',
|
|
39
|
+
]);
|
|
40
|
+
const WorkerStatusEnum = z.enum([
|
|
41
|
+
'done', 'done_with_concerns', 'needs_context', 'blocked',
|
|
42
|
+
'review_loop_aborted', 'failed',
|
|
43
|
+
]);
|
|
44
|
+
// ---------------------------------------------------------------------------
|
|
45
|
+
// Lifecycle events (14)
|
|
46
|
+
// ---------------------------------------------------------------------------
|
|
47
|
+
export const TaskStartedEvent = TaskBase.extend({
|
|
48
|
+
event: z.literal('task_started'),
|
|
49
|
+
route: RouteEnum,
|
|
50
|
+
cwd: z.string(),
|
|
51
|
+
}).strict();
|
|
52
|
+
export const StageChangeEvent = TaskBase.extend({
|
|
53
|
+
event: z.literal('stage_change'),
|
|
54
|
+
from: z.string(),
|
|
55
|
+
to: z.string(),
|
|
56
|
+
attempt: z.number().int().min(0).optional(),
|
|
57
|
+
attemptCap: z.number().int().min(0).optional(),
|
|
58
|
+
implTier: TierEnum.optional(),
|
|
59
|
+
reviewerTier: TierEnum.optional(),
|
|
60
|
+
escalated: z.boolean().optional(),
|
|
61
|
+
}).strict();
|
|
62
|
+
export const HeartbeatEvent = TaskBase.extend({
|
|
63
|
+
event: z.literal('heartbeat'),
|
|
64
|
+
elapsed: z.string(),
|
|
65
|
+
stage: z.string(),
|
|
66
|
+
tools: z.number().int().min(0),
|
|
67
|
+
read: z.number().int().min(0),
|
|
68
|
+
wrote: z.number().int().min(0),
|
|
69
|
+
text: z.number().int().min(0),
|
|
70
|
+
cost: z.number().min(0).nullable(),
|
|
71
|
+
idleMs: z.number().int().min(0),
|
|
72
|
+
}).strict();
|
|
73
|
+
export const FallbackEvent = TaskBase.extend({
|
|
74
|
+
event: z.literal('fallback'),
|
|
75
|
+
loop: DiagLoopEnum,
|
|
76
|
+
attempt: z.number().int().min(0),
|
|
77
|
+
role: DiagRoleEnum,
|
|
78
|
+
assignedTier: TierEnum,
|
|
79
|
+
usedTier: TierEnum,
|
|
80
|
+
reason: DiagReasonEnum,
|
|
81
|
+
triggeringStatus: RunStatusEnum.optional(),
|
|
82
|
+
violatesSeparation: z.boolean(),
|
|
83
|
+
}).strict();
|
|
84
|
+
export const FallbackUnavailableEvent = TaskBase.extend({
|
|
85
|
+
event: z.literal('fallback_unavailable'),
|
|
86
|
+
loop: DiagLoopEnum,
|
|
87
|
+
attempt: z.number().int().min(0),
|
|
88
|
+
role: DiagRoleEnum,
|
|
89
|
+
assignedTier: TierEnum,
|
|
90
|
+
reason: DiagReasonEnum,
|
|
91
|
+
}).strict();
|
|
92
|
+
export const EscalationEvent = TaskBase.extend({
|
|
93
|
+
event: z.literal('escalation'),
|
|
94
|
+
loop: DiagLoopEnum,
|
|
95
|
+
attempt: z.number().int().min(0),
|
|
96
|
+
baseTier: TierEnum,
|
|
97
|
+
implTier: TierEnum,
|
|
98
|
+
reviewerTier: TierEnum,
|
|
99
|
+
}).strict();
|
|
100
|
+
export const EscalationUnavailableEvent = TaskBase.extend({
|
|
101
|
+
event: z.literal('escalation_unavailable'),
|
|
102
|
+
loop: DiagLoopEnum,
|
|
103
|
+
attempt: z.number().int().min(0),
|
|
104
|
+
role: DiagRoleEnum,
|
|
105
|
+
wantedTier: TierEnum,
|
|
106
|
+
reason: DiagReasonEnum,
|
|
107
|
+
}).strict();
|
|
108
|
+
export const ReviewDecisionEvent = TaskBase.extend({
|
|
109
|
+
event: z.literal('review_decision'),
|
|
110
|
+
stage: DiagLoopEnum,
|
|
111
|
+
verdict: ReviewVerdictEnum,
|
|
112
|
+
round: z.number().int().min(0),
|
|
113
|
+
}).strict();
|
|
114
|
+
export const VerifyStepEvent = TaskBase.extend({
|
|
115
|
+
event: z.literal('verify_step'),
|
|
116
|
+
command: z.string(),
|
|
117
|
+
status: z.enum(['passed', 'failed', 'error']),
|
|
118
|
+
exitCode: z.number().int().optional(),
|
|
119
|
+
signal: z.string().optional(),
|
|
120
|
+
durationMs: z.number().int().min(0),
|
|
121
|
+
errorMessage: z.string().optional(),
|
|
122
|
+
}).strict();
|
|
123
|
+
export const VerifySkippedEvent = TaskBase.extend({
|
|
124
|
+
event: z.literal('verify_skipped'),
|
|
125
|
+
reason: VerifySkipReasonEnum,
|
|
126
|
+
stage: z.string(),
|
|
127
|
+
}).strict();
|
|
128
|
+
export const ReadOnlyReviewQualityEvent = TaskBase.extend({
|
|
129
|
+
event: z.literal('read_only_review.quality'),
|
|
130
|
+
route: z.string(),
|
|
131
|
+
verdict: ReviewVerdictEnum,
|
|
132
|
+
iterationIndex: z.number().int().min(1),
|
|
133
|
+
findingsReviewed: z.number().int().min(0),
|
|
134
|
+
findingsFlagged: z.number().int().min(0),
|
|
135
|
+
durationMs: z.number().int().min(0),
|
|
136
|
+
costUSD: z.number().min(0).nullable(),
|
|
137
|
+
}).strict();
|
|
138
|
+
export const ReadOnlyReviewReworkEvent = TaskBase.extend({
|
|
139
|
+
event: z.literal('read_only_review.rework'),
|
|
140
|
+
route: z.string(),
|
|
141
|
+
iterationIndex: z.number().int().min(1),
|
|
142
|
+
triggeringIssues: z.number().int().min(0),
|
|
143
|
+
}).strict();
|
|
144
|
+
export const ReadOnlyReviewTerminalEvent = TaskBase.extend({
|
|
145
|
+
event: z.literal('read_only_review.terminal'),
|
|
146
|
+
route: z.string(),
|
|
147
|
+
roundsUsed: z.number().int().min(0),
|
|
148
|
+
finalQualityVerdict: ReviewVerdictEnum,
|
|
149
|
+
costUSD: z.number().min(0).nullable(),
|
|
150
|
+
durationMs: z.number().int().min(0),
|
|
151
|
+
}).strict();
|
|
152
|
+
export const StallAbortEvent = TaskBase.extend({
|
|
153
|
+
event: z.literal('stall_abort'),
|
|
154
|
+
idleMs: z.number().int().min(0),
|
|
155
|
+
thresholdMs: z.number().int().min(0),
|
|
156
|
+
}).strict();
|
|
157
|
+
export const BatchCompletedEvent = BatchBase.extend({
|
|
158
|
+
event: z.literal('batch_completed'),
|
|
159
|
+
tool: z.string(),
|
|
160
|
+
durationMs: z.number().int().min(0),
|
|
161
|
+
taskCount: z.number().int().min(0),
|
|
162
|
+
}).strict();
|
|
163
|
+
export const BatchFailedEvent = BatchBase.extend({
|
|
164
|
+
event: z.literal('batch_failed'),
|
|
165
|
+
tool: z.string(),
|
|
166
|
+
durationMs: z.number().int().min(0),
|
|
167
|
+
errorCode: z.string(),
|
|
168
|
+
errorMessage: z.string(),
|
|
169
|
+
}).strict();
|
|
170
|
+
export const TaskCompletedLocalEvent = TaskBase.extend({
|
|
171
|
+
event: z.literal('task_completed'),
|
|
172
|
+
status: z.string(),
|
|
173
|
+
workerStatus: z.string().nullable(),
|
|
174
|
+
turns: z.number().int().min(0),
|
|
175
|
+
durationMs: z.number().int().min(0).nullable(),
|
|
176
|
+
filesRead: z.number().int().min(0),
|
|
177
|
+
filesWritten: z.number().int().min(0),
|
|
178
|
+
toolCalls: z.number().int().min(0),
|
|
179
|
+
inputTokens: z.number().int().min(0),
|
|
180
|
+
outputTokens: z.number().int().min(0),
|
|
181
|
+
costUSD: z.number().min(0).nullable(),
|
|
182
|
+
}).passthrough();
|
|
183
|
+
// ---------------------------------------------------------------------------
|
|
184
|
+
// Runner-internal events (5)
|
|
185
|
+
// ---------------------------------------------------------------------------
|
|
186
|
+
export const WorkerStartEvent = TaskBase.extend({
|
|
187
|
+
event: z.literal('worker_start'),
|
|
188
|
+
model: z.string(),
|
|
189
|
+
providerType: ProviderTypeEnum,
|
|
190
|
+
tier: TierEnum,
|
|
191
|
+
}).strict();
|
|
192
|
+
export const TurnStartEvent = TaskBase.extend({
|
|
193
|
+
event: z.literal('turn_start'),
|
|
194
|
+
turnIndex: z.number().int().min(0),
|
|
195
|
+
providerType: ProviderTypeEnum,
|
|
196
|
+
model: z.string(),
|
|
197
|
+
}).strict();
|
|
198
|
+
export const TurnCompleteEvent = TaskBase.extend({
|
|
199
|
+
event: z.literal('turn_complete'),
|
|
200
|
+
turnIndex: z.number().int().min(0),
|
|
201
|
+
inputTokens: z.number().int().min(0),
|
|
202
|
+
outputTokens: z.number().int().min(0),
|
|
203
|
+
costUSD: z.number().min(0),
|
|
204
|
+
durationMs: z.number().int().min(0),
|
|
205
|
+
providerType: ProviderTypeEnum,
|
|
206
|
+
model: z.string(),
|
|
207
|
+
}).strict();
|
|
208
|
+
export const ToolCallEvent = TaskBase.extend({
|
|
209
|
+
event: z.literal('tool_call'),
|
|
210
|
+
tool: z.string(),
|
|
211
|
+
turnIndex: z.number().int().min(0),
|
|
212
|
+
}).strict();
|
|
213
|
+
export const TextEmissionEvent = TaskBase.extend({
|
|
214
|
+
event: z.literal('text_emission'),
|
|
215
|
+
chars: z.number().int().min(0),
|
|
216
|
+
turnIndex: z.number().int().min(0),
|
|
217
|
+
}).strict();
|
|
218
|
+
// ---------------------------------------------------------------------------
|
|
219
|
+
// Cloud-bound events (4)
|
|
220
|
+
//
|
|
221
|
+
// Mirror the existing telemetry/types.ts schemas but use `event` as the
|
|
222
|
+
// discriminator so they fit into the discriminated union. The TelemetrySink
|
|
223
|
+
// filters these by event name; fields match the v1 upload shapes.
|
|
224
|
+
// Task 6 extends task.completed with 11 new v2 fields.
|
|
225
|
+
// ---------------------------------------------------------------------------
|
|
226
|
+
export const TaskCompletedCloudEvent = z.object({
|
|
227
|
+
event: z.literal('task.completed'),
|
|
228
|
+
ts: z.string().datetime({ offset: true }),
|
|
229
|
+
// v1 core fields (mirror telemetry/types.ts TaskCompletedEvent)
|
|
230
|
+
route: RouteEnum,
|
|
231
|
+
agentType: TierEnum,
|
|
232
|
+
capabilities: z.array(z.enum(['web_search', 'web_fetch', 'other'])).max(3),
|
|
233
|
+
toolMode: z.enum(['none', 'readonly', 'no-shell', 'full']),
|
|
234
|
+
triggeredFromSkill: z.string(),
|
|
235
|
+
client: z.string(),
|
|
236
|
+
fileCountBucket: z.enum(['0', '1-5', '6-20', '21-50', '51+']),
|
|
237
|
+
durationBucket: z.enum(['<10s', '10s-1m', '1m-5m', '5m-30m', '30m+']),
|
|
238
|
+
costBucket: z.enum(['$0', '<$0.01', '$0.01-$0.10', '$0.10-$1', '$1+']),
|
|
239
|
+
savedCostBucket: z.enum(['$0', '<$0.10', '$0.10-$1', '$1+', 'unknown']),
|
|
240
|
+
implementerModelFamily: z.string(),
|
|
241
|
+
implementerModel: z.string(),
|
|
242
|
+
terminalStatus: z.enum([
|
|
243
|
+
'ok', 'incomplete', 'timeout', 'error', 'cost_exceeded',
|
|
244
|
+
'brief_too_vague', 'unavailable',
|
|
245
|
+
]),
|
|
246
|
+
workerStatus: WorkerStatusEnum,
|
|
247
|
+
errorCode: z.string().nullable(),
|
|
248
|
+
escalated: z.boolean(),
|
|
249
|
+
fallbackTriggered: z.boolean(),
|
|
250
|
+
topToolNames: z.array(z.string()).max(20),
|
|
251
|
+
stages: z.record(z.string(), z.unknown()),
|
|
252
|
+
}).passthrough();
|
|
253
|
+
export const SessionStartedCloudEvent = z.object({
|
|
254
|
+
event: z.literal('session.started'),
|
|
255
|
+
ts: z.string().datetime({ offset: true }),
|
|
256
|
+
configFlavor: z.record(z.string(), z.unknown()),
|
|
257
|
+
providersConfigured: z.array(z.enum(['claude', 'openai-compatible', 'codex'])).max(3),
|
|
258
|
+
}).passthrough();
|
|
259
|
+
export const InstallChangedCloudEvent = z.object({
|
|
260
|
+
event: z.literal('install.changed'),
|
|
261
|
+
ts: z.string().datetime({ offset: true }),
|
|
262
|
+
fromVersion: z.string().nullable(),
|
|
263
|
+
toVersion: z.string(),
|
|
264
|
+
trigger: z.enum(['fresh_install', 'upgrade', 'downgrade']),
|
|
265
|
+
}).passthrough();
|
|
266
|
+
export const SkillInstalledCloudEvent = z.object({
|
|
267
|
+
event: z.literal('skill.installed'),
|
|
268
|
+
ts: z.string().datetime({ offset: true }),
|
|
269
|
+
skill: z.string(),
|
|
270
|
+
client: z.string(),
|
|
271
|
+
}).passthrough();
|
|
272
|
+
// ---------------------------------------------------------------------------
|
|
273
|
+
// Discriminated union
|
|
274
|
+
// ---------------------------------------------------------------------------
|
|
275
|
+
export const Event = z.discriminatedUnion('event', [
|
|
276
|
+
// Lifecycle
|
|
277
|
+
TaskStartedEvent,
|
|
278
|
+
StageChangeEvent,
|
|
279
|
+
HeartbeatEvent,
|
|
280
|
+
FallbackEvent,
|
|
281
|
+
FallbackUnavailableEvent,
|
|
282
|
+
EscalationEvent,
|
|
283
|
+
EscalationUnavailableEvent,
|
|
284
|
+
ReviewDecisionEvent,
|
|
285
|
+
VerifyStepEvent,
|
|
286
|
+
VerifySkippedEvent,
|
|
287
|
+
ReadOnlyReviewQualityEvent,
|
|
288
|
+
ReadOnlyReviewReworkEvent,
|
|
289
|
+
ReadOnlyReviewTerminalEvent,
|
|
290
|
+
StallAbortEvent,
|
|
291
|
+
BatchCompletedEvent,
|
|
292
|
+
BatchFailedEvent,
|
|
293
|
+
TaskCompletedLocalEvent,
|
|
294
|
+
// Runner internals
|
|
295
|
+
WorkerStartEvent,
|
|
296
|
+
TurnStartEvent,
|
|
297
|
+
TurnCompleteEvent,
|
|
298
|
+
ToolCallEvent,
|
|
299
|
+
TextEmissionEvent,
|
|
300
|
+
// Cloud-bound
|
|
301
|
+
TaskCompletedCloudEvent,
|
|
302
|
+
SessionStartedCloudEvent,
|
|
303
|
+
InstallChangedCloudEvent,
|
|
304
|
+
SkillInstalledCloudEvent,
|
|
305
|
+
]);
|
|
306
|
+
/** Cloud-bound event discriminator values — used by TelemetrySink to filter. */
|
|
307
|
+
export const CLOUD_EVENT_NAMES = new Set([
|
|
308
|
+
'task.completed',
|
|
309
|
+
'session.started',
|
|
310
|
+
'install.changed',
|
|
311
|
+
'skill.installed',
|
|
312
|
+
]);
|
|
313
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/observability/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { EventSink } from './bus.js';
|
|
2
|
+
import type { EventType } from './events.js';
|
|
3
|
+
import type { JsonlWriter } from '../diagnostics/jsonl-writer.js';
|
|
4
|
+
export declare class LocalLogSink implements EventSink {
|
|
5
|
+
private readonly writer;
|
|
6
|
+
readonly name = "local-log";
|
|
7
|
+
constructor(writer: JsonlWriter);
|
|
8
|
+
emit(event: EventType): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=local-log-sink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-log-sink.d.ts","sourceRoot":"","sources":["../../src/observability/local-log-sink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE,qBAAa,YAAa,YAAW,SAAS;IAGhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,QAAQ,CAAC,IAAI,eAAe;gBAEC,MAAM,EAAE,WAAW;IAEhD,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;CAG7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-log-sink.js","sourceRoot":"","sources":["../../src/observability/local-log-sink.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,YAAY;IAGM;IAFpB,IAAI,GAAG,WAAW,CAAC;IAE5B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,IAAI,CAAC,KAAgB;QACnB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAgC,CAAC,CAAC;IAC1D,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { EventSink } from './bus.js';
|
|
2
|
+
import type { EventType } from './events.js';
|
|
3
|
+
export interface Recorder {
|
|
4
|
+
enqueue(event: Record<string, unknown>): void;
|
|
5
|
+
}
|
|
6
|
+
export declare class TelemetrySink implements EventSink {
|
|
7
|
+
private readonly recorder;
|
|
8
|
+
readonly name = "telemetry";
|
|
9
|
+
constructor(recorder: Recorder | null);
|
|
10
|
+
emit(event: EventType): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=telemetry-sink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-sink.d.ts","sourceRoot":"","sources":["../../src/observability/telemetry-sink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC/C;AAMD,qBAAa,aAAc,YAAW,SAAS;IAGjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,QAAQ,CAAC,IAAI,eAAe;gBAEC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAEtD,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;CAS7B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CLOUD_EVENT_NAMES } from './events.js';
|
|
2
|
+
function isCloudEvent(e) {
|
|
3
|
+
return CLOUD_EVENT_NAMES.has(e.event);
|
|
4
|
+
}
|
|
5
|
+
export class TelemetrySink {
|
|
6
|
+
recorder;
|
|
7
|
+
name = 'telemetry';
|
|
8
|
+
constructor(recorder) {
|
|
9
|
+
this.recorder = recorder;
|
|
10
|
+
}
|
|
11
|
+
emit(event) {
|
|
12
|
+
if (!this.recorder)
|
|
13
|
+
return;
|
|
14
|
+
if (!isCloudEvent(event))
|
|
15
|
+
return;
|
|
16
|
+
try {
|
|
17
|
+
this.recorder.enqueue(event);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
// recorder enforces buffer cap; never throws to caller
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=telemetry-sink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-sink.js","sourceRoot":"","sources":["../../src/observability/telemetry-sink.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAQhD,SAAS,YAAY,CAAC,CAAY;IAChC,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAuB,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,OAAO,aAAa;IAGK;IAFpB,IAAI,GAAG,WAAW,CAAC;IAE5B,YAA6B,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAG,CAAC;IAE1D,IAAI,CAAC,KAAgB;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO;QACjC,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;QACzD,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quality-only review prompts for the 5 read-only mma-* routes.
|
|
3
|
+
*
|
|
4
|
+
* Each prompt asks the reviewer:
|
|
5
|
+
* (a) Schema check: confirm worker emitted a well-formed findings[] array.
|
|
6
|
+
* (b) Per-finding judgment: is the finding the kind requested AND grounded?
|
|
7
|
+
*
|
|
8
|
+
* If schema check fails, return changes_required immediately and skip per-finding review.
|
|
9
|
+
*/
|
|
10
|
+
interface PromptContext {
|
|
11
|
+
workerOutput: string;
|
|
12
|
+
brief: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function buildAuditQualityPrompt(ctx: PromptContext): string;
|
|
15
|
+
export declare function buildReviewQualityPrompt(ctx: PromptContext): string;
|
|
16
|
+
export declare function buildVerifyQualityPrompt(ctx: PromptContext): string;
|
|
17
|
+
export declare function buildInvestigateQualityPrompt(ctx: PromptContext): string;
|
|
18
|
+
export declare function buildDebugQualityPrompt(ctx: PromptContext): string;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=quality-only-prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-only-prompts.d.ts","sourceRoot":"","sources":["../../src/review/quality-only-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,UAAU,aAAa;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAYD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAiBlE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAiBnE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAiBnE;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAiBxE;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAiBlE"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quality-only review prompts for the 5 read-only mma-* routes.
|
|
3
|
+
*
|
|
4
|
+
* Each prompt asks the reviewer:
|
|
5
|
+
* (a) Schema check: confirm worker emitted a well-formed findings[] array.
|
|
6
|
+
* (b) Per-finding judgment: is the finding the kind requested AND grounded?
|
|
7
|
+
*
|
|
8
|
+
* If schema check fails, return changes_required immediately and skip per-finding review.
|
|
9
|
+
*/
|
|
10
|
+
const SCHEMA_PREAMBLE = `
|
|
11
|
+
First, confirm the worker's output includes a well-formed \`findings[]\` array (a JSON array, possibly empty if the worker found nothing, but present as a parseable structure). If the array is missing, malformed, or returned as prose only, return \`changes_required\` with the reason "missing or malformed findings array" and do NOT proceed to per-finding review.
|
|
12
|
+
`.trim();
|
|
13
|
+
const COMMON_TAIL = `
|
|
14
|
+
When re-reading files, treat \`findings[].line\` as 1-indexed (matches editor convention). For multi-line findings, \`line\` points to the start of the cited region; use \`sourceQuote\` (when present) for the full text.
|
|
15
|
+
|
|
16
|
+
Output a single verdict: \`approved\` (if every finding is on-brief and grounded) or \`changes_required\` (with per-finding feedback identifying which findings failed which check).
|
|
17
|
+
`.trim();
|
|
18
|
+
export function buildAuditQualityPrompt(ctx) {
|
|
19
|
+
return `${SCHEMA_PREAMBLE}
|
|
20
|
+
|
|
21
|
+
The user requested an audit. The brief was:
|
|
22
|
+
|
|
23
|
+
${ctx.brief}
|
|
24
|
+
|
|
25
|
+
The worker produced a \`findings[]\` array. For each finding:
|
|
26
|
+
(a) Is it of the requested audit type? (e.g., security audit -> security finding, not style nit)
|
|
27
|
+
(b) Re-read the cited file at \`findings[].file\` (the audit target document) at the given \`findings[].line\`. Is the worker's claim true about that text?
|
|
28
|
+
|
|
29
|
+
Flag findings that are off-type, vague, unsupported, or misread the source.
|
|
30
|
+
|
|
31
|
+
${COMMON_TAIL}
|
|
32
|
+
|
|
33
|
+
Worker output:
|
|
34
|
+
${ctx.workerOutput}`;
|
|
35
|
+
}
|
|
36
|
+
export function buildReviewQualityPrompt(ctx) {
|
|
37
|
+
return `${SCHEMA_PREAMBLE}
|
|
38
|
+
|
|
39
|
+
The user requested a code review. The brief was:
|
|
40
|
+
|
|
41
|
+
${ctx.brief}
|
|
42
|
+
|
|
43
|
+
The worker produced a \`findings[]\` array. For each finding:
|
|
44
|
+
(a) Is it within the requested focus area? (e.g., security review -> security finding, not formatting nit)
|
|
45
|
+
(b) Re-read the cited file/line. Does the worker's claim correctly describe the code's behavior?
|
|
46
|
+
|
|
47
|
+
Flag findings that misread the code or stretch beyond what the cited lines support.
|
|
48
|
+
|
|
49
|
+
${COMMON_TAIL}
|
|
50
|
+
|
|
51
|
+
Worker output:
|
|
52
|
+
${ctx.workerOutput}`;
|
|
53
|
+
}
|
|
54
|
+
export function buildVerifyQualityPrompt(ctx) {
|
|
55
|
+
return `${SCHEMA_PREAMBLE}
|
|
56
|
+
|
|
57
|
+
The user provided a checklist of acceptance criteria. The brief was:
|
|
58
|
+
|
|
59
|
+
${ctx.brief}
|
|
60
|
+
|
|
61
|
+
The worker produced a \`findings[]\` array, where each finding maps to one checklist item the worker judged as either met (no finding emitted, or a 'low'-severity confirmation) or unmet (a 'high'/'medium'-severity finding describing what's missing). For each finding:
|
|
62
|
+
(a) Does the finding correspond to a real checklist item from the brief?
|
|
63
|
+
(b) Re-read the cited evidence in \`findings[].file\` and \`findings[].sourceQuote\` (when present). Does the cited evidence actually demonstrate the worker's claim about that checklist item?
|
|
64
|
+
|
|
65
|
+
Also: confirm every checklist item from the brief is accounted for — if any checklist item has no corresponding entry in \`findings[]\` (and no implicit "met" claim), flag it.
|
|
66
|
+
|
|
67
|
+
${COMMON_TAIL}
|
|
68
|
+
|
|
69
|
+
Worker output:
|
|
70
|
+
${ctx.workerOutput}`;
|
|
71
|
+
}
|
|
72
|
+
export function buildInvestigateQualityPrompt(ctx) {
|
|
73
|
+
return `${SCHEMA_PREAMBLE}
|
|
74
|
+
|
|
75
|
+
The user asked a question. The brief was:
|
|
76
|
+
|
|
77
|
+
${ctx.brief}
|
|
78
|
+
|
|
79
|
+
The worker produced a synthesis with \`findings[]\` (each finding may have \`file\`, \`line\`, or both null for project-level claims). For each finding:
|
|
80
|
+
(a) Is the finding relevant to the question?
|
|
81
|
+
(b) When \`findings[].file\` is non-null, confirm the file exists. When \`findings[].line\` is also non-null, treat it as 1-indexed and re-read that location. Does the cited content support the finding's \`claim\`?
|
|
82
|
+
|
|
83
|
+
Flag findings whose citations are fabricated, misquoted, or stretched beyond what the source supports. Also flag claims that aren't backed by any cited evidence.
|
|
84
|
+
|
|
85
|
+
${COMMON_TAIL}
|
|
86
|
+
|
|
87
|
+
Worker output:
|
|
88
|
+
${ctx.workerOutput}`;
|
|
89
|
+
}
|
|
90
|
+
export function buildDebugQualityPrompt(ctx) {
|
|
91
|
+
return `${SCHEMA_PREAMBLE}
|
|
92
|
+
|
|
93
|
+
The user reported a failure. The brief was:
|
|
94
|
+
|
|
95
|
+
${ctx.brief}
|
|
96
|
+
|
|
97
|
+
The worker produced a hypothesis and findings about cited evidence (reproducer, error pattern, code paths). For each cited piece of evidence:
|
|
98
|
+
(a) Is it relevant to the reported failure?
|
|
99
|
+
(b) Does the hypothesis logically follow from the evidence, or does it exceed what the trace actually shows?
|
|
100
|
+
|
|
101
|
+
Flag claims that aren't supported by the cited evidence.
|
|
102
|
+
|
|
103
|
+
${COMMON_TAIL}
|
|
104
|
+
|
|
105
|
+
Worker output:
|
|
106
|
+
${ctx.workerOutput}`;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=quality-only-prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-only-prompts.js","sourceRoot":"","sources":["../../src/review/quality-only-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,MAAM,eAAe,GAAG;;CAEvB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,WAAW,GAAG;;;;CAInB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,UAAU,uBAAuB,CAAC,GAAkB;IACxD,OAAO,GAAG,eAAe;;;;EAIzB,GAAG,CAAC,KAAK;;;;;;;;EAQT,WAAW;;;EAGX,GAAG,CAAC,YAAY,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAkB;IACzD,OAAO,GAAG,eAAe;;;;EAIzB,GAAG,CAAC,KAAK;;;;;;;;EAQT,WAAW;;;EAGX,GAAG,CAAC,YAAY,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAkB;IACzD,OAAO,GAAG,eAAe;;;;EAIzB,GAAG,CAAC,KAAK;;;;;;;;EAQT,WAAW;;;EAGX,GAAG,CAAC,YAAY,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,GAAkB;IAC9D,OAAO,GAAG,eAAe;;;;EAIzB,GAAG,CAAC,KAAK;;;;;;;;EAQT,WAAW;;;EAGX,GAAG,CAAC,YAAY,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAkB;IACxD,OAAO,GAAG,eAAe;;;;EAIzB,GAAG,CAAC,KAAK;;;;;;;;EAQT,WAAW;;;EAGX,GAAG,CAAC,YAAY,EAAE,CAAC;AACrB,CAAC"}
|
|
@@ -19,5 +19,8 @@ export declare function runQualityReview(reviewerProvider: Provider, packet: {
|
|
|
19
19
|
prompt: string;
|
|
20
20
|
scope: string[];
|
|
21
21
|
doneCondition: string;
|
|
22
|
-
}, implReport: ParsedStructuredReport, fileContents: Record<string, string>, toolCallLog: string[], filesWritten: string[], evidenceBlock?: string
|
|
22
|
+
}, implReport: ParsedStructuredReport, fileContents: Record<string, string>, toolCallLog: string[], filesWritten: string[], evidenceBlock?: string, qualityReviewPromptBuilder?: (ctx: {
|
|
23
|
+
workerOutput: string;
|
|
24
|
+
brief: string;
|
|
25
|
+
}) => string, workerOutput?: string): Promise<LegacyQualityReviewResult>;
|
|
23
26
|
//# sourceMappingURL=quality-reviewer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-reviewer.d.ts","sourceRoot":"","sources":["../../src/review/quality-reviewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAEhF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,UAAU,GAAG,kBAAkB,GAAG,OAAO,GAAG,WAAW,GAAG,eAAe,GAAG,SAAS,CAAC;IAC9F,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAC/E,MAAM,MAAM,yBAAyB,GAAG,sBAAsB,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElK,wBAAsB,gBAAgB,CACpC,gBAAgB,EAAE,QAAQ,EAC1B,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EAClE,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,MAAM,EAAE,EACtB,aAAa,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"quality-reviewer.d.ts","sourceRoot":"","sources":["../../src/review/quality-reviewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAEhF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,UAAU,GAAG,kBAAkB,GAAG,OAAO,GAAG,WAAW,GAAG,eAAe,GAAG,SAAS,CAAC;IAC9F,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAC/E,MAAM,MAAM,yBAAyB,GAAG,sBAAsB,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElK,wBAAsB,gBAAgB,CACpC,gBAAgB,EAAE,QAAQ,EAC1B,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EAClE,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,MAAM,EAAE,EACtB,aAAa,CAAC,EAAE,MAAM,EACtB,0BAA0B,CAAC,EAAE,CAAC,GAAG,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,EACrF,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,yBAAyB,CAAC,CAqEpC"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { delegateWithEscalation } from '../delegate-with-escalation.js';
|
|
2
2
|
import { buildQualityReviewPrompt } from './reviewer-prompt.js';
|
|
3
3
|
import { parseStructuredReport } from '../reporting/structured-report.js';
|
|
4
|
-
export async function runQualityReview(reviewerProvider, packet, implReport, fileContents, toolCallLog, filesWritten, evidenceBlock) {
|
|
5
|
-
if (filesWritten.length === 0) {
|
|
4
|
+
export async function runQualityReview(reviewerProvider, packet, implReport, fileContents, toolCallLog, filesWritten, evidenceBlock, qualityReviewPromptBuilder, workerOutput) {
|
|
5
|
+
if (filesWritten.length === 0 && !qualityReviewPromptBuilder) {
|
|
6
6
|
return { status: 'skipped', findings: [], errorReason: 'no files written by implementer' };
|
|
7
7
|
}
|
|
8
|
-
const
|
|
9
|
-
|
|
8
|
+
const corePrompt = qualityReviewPromptBuilder && workerOutput !== undefined
|
|
9
|
+
? qualityReviewPromptBuilder({ workerOutput, brief: packet.prompt })
|
|
10
|
+
: buildQualityReviewPrompt(packet, implReport, fileContents, toolCallLog);
|
|
11
|
+
const prompt = (evidenceBlock ? `${evidenceBlock}\n\n` : '') + corePrompt;
|
|
10
12
|
const reviewerSlot = reviewerProvider.name === 'standard' ? 'standard' : 'complex';
|
|
11
13
|
let result;
|
|
12
14
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-reviewer.js","sourceRoot":"","sources":["../../src/review/quality-reviewer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAc1E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,gBAA0B,EAC1B,MAAkE,EAClE,UAAkC,EAClC,YAAoC,EACpC,WAAqB,EACrB,YAAsB,EACtB,aAAsB;
|
|
1
|
+
{"version":3,"file":"quality-reviewer.js","sourceRoot":"","sources":["../../src/review/quality-reviewer.ts"],"names":[],"mappings":"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"}
|