@newrelic/preflight 1.4.46 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dashboard/index.d.ts +1 -1
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/live-event-bus.d.ts +32 -0
- package/dist/dashboard/live-event-bus.d.ts.map +1 -1
- package/dist/dashboard/live-event-bus.js.map +1 -1
- package/dist/dashboard/routes/api-handler.d.ts +46 -0
- package/dist/dashboard/routes/api-handler.d.ts.map +1 -1
- package/dist/dashboard/routes/api-handler.js +188 -5
- package/dist/dashboard/routes/api-handler.js.map +1 -1
- package/dist/dashboard/subagent-timeline-store.d.ts +156 -0
- package/dist/dashboard/subagent-timeline-store.d.ts.map +1 -0
- package/dist/dashboard/subagent-timeline-store.js +674 -0
- package/dist/dashboard/subagent-timeline-store.js.map +1 -0
- package/dist/dashboard/workflow-store.d.ts +85 -0
- package/dist/dashboard/workflow-store.d.ts.map +1 -0
- package/dist/dashboard/workflow-store.js +330 -0
- package/dist/dashboard/workflow-store.js.map +1 -0
- package/dist/hooks/event-processor.d.ts +86 -1
- package/dist/hooks/event-processor.d.ts.map +1 -1
- package/dist/hooks/event-processor.js +182 -0
- package/dist/hooks/event-processor.js.map +1 -1
- package/dist/hooks/subagent-watcher.d.ts +182 -0
- package/dist/hooks/subagent-watcher.d.ts.map +1 -0
- package/dist/hooks/subagent-watcher.js +765 -0
- package/dist/hooks/subagent-watcher.js.map +1 -0
- package/dist/hooks/workflow-script-parser.d.ts +44 -0
- package/dist/hooks/workflow-script-parser.d.ts.map +1 -0
- package/dist/hooks/workflow-script-parser.js +255 -0
- package/dist/hooks/workflow-script-parser.js.map +1 -0
- package/dist/hooks/workflow-watcher.d.ts +65 -0
- package/dist/hooks/workflow-watcher.d.ts.map +1 -0
- package/dist/hooks/workflow-watcher.js +402 -0
- package/dist/hooks/workflow-watcher.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +315 -11
- package/dist/index.js.map +1 -1
- package/dist/metrics/cost-tracker.d.ts +113 -17
- package/dist/metrics/cost-tracker.d.ts.map +1 -1
- package/dist/metrics/cost-tracker.js +151 -8
- package/dist/metrics/cost-tracker.js.map +1 -1
- package/dist/metrics/workflow-run-tracker.d.ts +140 -0
- package/dist/metrics/workflow-run-tracker.d.ts.map +1 -0
- package/dist/metrics/workflow-run-tracker.js +306 -0
- package/dist/metrics/workflow-run-tracker.js.map +1 -0
- package/dist/storage/session-store.d.ts +8 -0
- package/dist/storage/session-store.d.ts.map +1 -1
- package/dist/storage/session-store.js +1 -1
- package/dist/storage/session-store.js.map +1 -1
- package/dist/storage/types.d.ts +40 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/transport/nr-ingest.d.ts +153 -2
- package/dist/transport/nr-ingest.d.ts.map +1 -1
- package/dist/transport/nr-ingest.js +276 -1
- package/dist/transport/nr-ingest.js.map +1 -1
- package/dist/web/assets/index-B4DkT4Go.css +2 -0
- package/dist/web/assets/index-CWwZdwYX.js +64 -0
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/index-C5S1WHiP.js +0 -64
- package/dist/web/assets/index-DwBQxRYb.css +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-timeline-store.js","sourceRoot":"","sources":["../../src/dashboard/subagent-timeline-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WorkflowStore — read-only filesystem reader for the dashboard's
|
|
3
|
+
* `/api/workflows` endpoints.
|
|
4
|
+
*
|
|
5
|
+
* Walks `~/.claude/projects/<slug>/<sessionId>/workflows/wf_*.json` and turns
|
|
6
|
+
* each rollup into a `ScriptWorkflowRunRow` matching the wire shape on
|
|
7
|
+
* `AiWorkflowRun` (run_source='script'). The watcher running in
|
|
8
|
+
* `--stdio` mode emits the same data to NR; this reader is the local-side
|
|
9
|
+
* mirror so the dashboard works offline.
|
|
10
|
+
*
|
|
11
|
+
* Cheap by construction: stat-then-read with a 24h cutoff and an in-memory
|
|
12
|
+
* mtime cache. Doesn't load script files (script parsing happens in the
|
|
13
|
+
* watcher and is shipped as part of the NR event; the dashboard reads the
|
|
14
|
+
* declared topology back via NR / live SSE).
|
|
15
|
+
*/
|
|
16
|
+
import { type DeclaredTopology } from '../hooks/workflow-script-parser.js';
|
|
17
|
+
export interface WorkflowRunRow {
|
|
18
|
+
readonly workflow_run_id: string;
|
|
19
|
+
readonly parent_session_id: string;
|
|
20
|
+
readonly task_id: string | null;
|
|
21
|
+
readonly workflow_name: string;
|
|
22
|
+
readonly status: string;
|
|
23
|
+
readonly incomplete: boolean;
|
|
24
|
+
readonly error_reason: string | null;
|
|
25
|
+
readonly default_model: string;
|
|
26
|
+
readonly started_at: number;
|
|
27
|
+
readonly duration_ms: number;
|
|
28
|
+
readonly agent_count: number;
|
|
29
|
+
readonly total_tokens: number;
|
|
30
|
+
readonly total_usd: number | null;
|
|
31
|
+
readonly declared_phases: number | null;
|
|
32
|
+
readonly observed_phases: number;
|
|
33
|
+
readonly declared_parallel_widths: Array<number | 'dynamic'>;
|
|
34
|
+
/**
|
|
35
|
+
* `null` — WorkflowStore has no access to the subagent token sum (that
|
|
36
|
+
* requires the live SubagentWatcher's in-memory state, only available
|
|
37
|
+
* from the --stdio process), so it can't compute this delta at all. This
|
|
38
|
+
* distinguishes "not computed" from a genuine 0% delta.
|
|
39
|
+
*/
|
|
40
|
+
readonly token_reconciliation_delta: number | null;
|
|
41
|
+
readonly run_source: 'script' | 'agent_tool';
|
|
42
|
+
readonly script_path: string | null;
|
|
43
|
+
readonly workflow_json_path: string;
|
|
44
|
+
readonly agents?: WorkflowAgentRow[];
|
|
45
|
+
readonly topology?: DeclaredTopology | null;
|
|
46
|
+
}
|
|
47
|
+
export interface WorkflowAgentRow {
|
|
48
|
+
readonly agent_id: string;
|
|
49
|
+
readonly label: string;
|
|
50
|
+
readonly phase_index: number;
|
|
51
|
+
readonly phase_title: string;
|
|
52
|
+
readonly model: string;
|
|
53
|
+
readonly state: string;
|
|
54
|
+
readonly attempt: number;
|
|
55
|
+
readonly duration_ms: number | null;
|
|
56
|
+
readonly tokens: number;
|
|
57
|
+
readonly tool_calls: number;
|
|
58
|
+
readonly started_at: number | null;
|
|
59
|
+
}
|
|
60
|
+
export interface WorkflowStoreOptions {
|
|
61
|
+
readonly projectsDir?: string;
|
|
62
|
+
readonly windowHours?: number;
|
|
63
|
+
/** Hook so the dashboard can inflate cost from the live cost tracker. */
|
|
64
|
+
readonly getCostForRun?: (runId: string) => number;
|
|
65
|
+
}
|
|
66
|
+
export declare class WorkflowStore {
|
|
67
|
+
private readonly projectsDir;
|
|
68
|
+
private readonly windowHours;
|
|
69
|
+
private readonly getCostForRun;
|
|
70
|
+
private readonly cache;
|
|
71
|
+
constructor(options?: WorkflowStoreOptions);
|
|
72
|
+
/**
|
|
73
|
+
* List runs that overlap the given window (defaults to 30 days). Optional
|
|
74
|
+
* filtering by status / run_source for the workflow listing UI.
|
|
75
|
+
*/
|
|
76
|
+
listRuns(opts?: {
|
|
77
|
+
since?: number;
|
|
78
|
+
runSource?: string;
|
|
79
|
+
status?: string;
|
|
80
|
+
}): WorkflowRunRow[];
|
|
81
|
+
/** Detail view — returns a single run plus its per-agent breakdown. */
|
|
82
|
+
getRun(runId: string): WorkflowRunRow | null;
|
|
83
|
+
private readRow;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=workflow-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-store.d.ts","sourceRoot":"","sources":["../../src/dashboard/workflow-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WorkflowStore — read-only filesystem reader for the dashboard's
|
|
3
|
+
* `/api/workflows` endpoints.
|
|
4
|
+
*
|
|
5
|
+
* Walks `~/.claude/projects/<slug>/<sessionId>/workflows/wf_*.json` and turns
|
|
6
|
+
* each rollup into a `ScriptWorkflowRunRow` matching the wire shape on
|
|
7
|
+
* `AiWorkflowRun` (run_source='script'). The watcher running in
|
|
8
|
+
* `--stdio` mode emits the same data to NR; this reader is the local-side
|
|
9
|
+
* mirror so the dashboard works offline.
|
|
10
|
+
*
|
|
11
|
+
* Cheap by construction: stat-then-read with a 24h cutoff and an in-memory
|
|
12
|
+
* mtime cache. Doesn't load script files (script parsing happens in the
|
|
13
|
+
* watcher and is shipped as part of the NR event; the dashboard reads the
|
|
14
|
+
* declared topology back via NR / live SSE).
|
|
15
|
+
*/
|
|
16
|
+
import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs';
|
|
17
|
+
import { homedir } from 'node:os';
|
|
18
|
+
import { dirname, isAbsolute, join, relative, resolve } from 'node:path';
|
|
19
|
+
import { createLogger } from '../shared/index.js';
|
|
20
|
+
import { redactSensitive } from '../config.js';
|
|
21
|
+
import { parseWorkflowScript } from '../hooks/workflow-script-parser.js';
|
|
22
|
+
const logger = createLogger('workflow-store');
|
|
23
|
+
const SESSION_ID_RE = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;
|
|
24
|
+
const PROJECTS_DIR_NAME = '.claude/projects';
|
|
25
|
+
// Mirrors SubagentTimelineStore's MAX_AGENTS_PER_SESSION bound — without
|
|
26
|
+
// this, GET /api/workflows?since=0 walks and returns every wf_*.json ever
|
|
27
|
+
// written across all projects/sessions with no upper bound.
|
|
28
|
+
const MAX_RUNS = 500;
|
|
29
|
+
export class WorkflowStore {
|
|
30
|
+
projectsDir;
|
|
31
|
+
windowHours;
|
|
32
|
+
getCostForRun;
|
|
33
|
+
cache = new Map();
|
|
34
|
+
constructor(options = {}) {
|
|
35
|
+
this.projectsDir = options.projectsDir ?? join(homedir(), PROJECTS_DIR_NAME);
|
|
36
|
+
this.windowHours = options.windowHours ?? 24 * 30; // 30 days for dashboard listing
|
|
37
|
+
this.getCostForRun = options.getCostForRun;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* List runs that overlap the given window (defaults to 30 days). Optional
|
|
41
|
+
* filtering by status / run_source for the workflow listing UI.
|
|
42
|
+
*/
|
|
43
|
+
listRuns(opts) {
|
|
44
|
+
const cutoffMs = opts?.since !== undefined ? opts.since : Date.now() - this.windowHours * 60 * 60 * 1000;
|
|
45
|
+
const out = [];
|
|
46
|
+
if (!existsSync(this.projectsDir))
|
|
47
|
+
return out;
|
|
48
|
+
let projectEntries;
|
|
49
|
+
try {
|
|
50
|
+
projectEntries = readdirSync(this.projectsDir);
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
logger.warn('Failed to enumerate projects dir', { error: String(err) });
|
|
54
|
+
return out;
|
|
55
|
+
}
|
|
56
|
+
for (const project of projectEntries) {
|
|
57
|
+
const projectPath = join(this.projectsDir, project);
|
|
58
|
+
let stat;
|
|
59
|
+
try {
|
|
60
|
+
stat = statSync(projectPath);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
if (!stat.isDirectory())
|
|
66
|
+
continue;
|
|
67
|
+
let sessionEntries;
|
|
68
|
+
try {
|
|
69
|
+
sessionEntries = readdirSync(projectPath);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
for (const sessionId of sessionEntries) {
|
|
75
|
+
if (!SESSION_ID_RE.test(sessionId))
|
|
76
|
+
continue;
|
|
77
|
+
const wfDir = join(projectPath, sessionId, 'workflows');
|
|
78
|
+
if (!existsSync(wfDir))
|
|
79
|
+
continue;
|
|
80
|
+
let wfEntries;
|
|
81
|
+
try {
|
|
82
|
+
wfEntries = readdirSync(wfDir);
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
for (const name of wfEntries) {
|
|
88
|
+
if (!name.startsWith('wf_') || !name.endsWith('.json'))
|
|
89
|
+
continue;
|
|
90
|
+
const path = join(wfDir, name);
|
|
91
|
+
let fst;
|
|
92
|
+
try {
|
|
93
|
+
fst = statSync(path);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
if (fst.mtimeMs < cutoffMs)
|
|
99
|
+
continue;
|
|
100
|
+
const row = this.readRow(path, sessionId, fst.mtimeMs);
|
|
101
|
+
if (!row)
|
|
102
|
+
continue;
|
|
103
|
+
if (opts?.runSource && opts.runSource !== 'all' && row.run_source !== opts.runSource) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
if (opts?.status && opts.status !== 'all') {
|
|
107
|
+
if (opts.status === 'complete' && row.incomplete)
|
|
108
|
+
continue;
|
|
109
|
+
if (opts.status === 'incomplete' && !row.incomplete)
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
// Skip the heavy `agents` payload from list views — only the detail
|
|
113
|
+
// view returns it.
|
|
114
|
+
out.push({ ...row, agents: undefined });
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
out.sort((a, b) => b.started_at - a.started_at);
|
|
119
|
+
return out.length > MAX_RUNS ? out.slice(0, MAX_RUNS) : out;
|
|
120
|
+
}
|
|
121
|
+
/** Detail view — returns a single run plus its per-agent breakdown. */
|
|
122
|
+
getRun(runId) {
|
|
123
|
+
if (!/^[a-zA-Z0-9_-]{1,64}$/.test(runId))
|
|
124
|
+
return null;
|
|
125
|
+
if (!existsSync(this.projectsDir))
|
|
126
|
+
return null;
|
|
127
|
+
let projectEntries;
|
|
128
|
+
try {
|
|
129
|
+
projectEntries = readdirSync(this.projectsDir);
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
for (const project of projectEntries) {
|
|
135
|
+
const projectPath = join(this.projectsDir, project);
|
|
136
|
+
try {
|
|
137
|
+
if (!statSync(projectPath).isDirectory())
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
let sessionEntries;
|
|
144
|
+
try {
|
|
145
|
+
sessionEntries = readdirSync(projectPath);
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
for (const sessionId of sessionEntries) {
|
|
151
|
+
if (!SESSION_ID_RE.test(sessionId))
|
|
152
|
+
continue;
|
|
153
|
+
const path = join(projectPath, sessionId, 'workflows', `${runId}.json`);
|
|
154
|
+
if (!existsSync(path))
|
|
155
|
+
continue;
|
|
156
|
+
let fst;
|
|
157
|
+
try {
|
|
158
|
+
fst = statSync(path);
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
return this.readRow(path, sessionId, fst.mtimeMs);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
// -------------------------------------------------------------------------
|
|
169
|
+
// Internals
|
|
170
|
+
// -------------------------------------------------------------------------
|
|
171
|
+
readRow(path, parentSessionId, mtimeMs) {
|
|
172
|
+
const cached = this.cache.get(path);
|
|
173
|
+
if (cached && cached.mtimeMs === mtimeMs)
|
|
174
|
+
return cached.row;
|
|
175
|
+
let raw;
|
|
176
|
+
try {
|
|
177
|
+
raw = readFileSync(path, 'utf-8');
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
182
|
+
let parsed;
|
|
183
|
+
try {
|
|
184
|
+
parsed = JSON.parse(raw);
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
const runId = typeof parsed.runId === 'string' ? parsed.runId : '';
|
|
190
|
+
if (!runId)
|
|
191
|
+
return null;
|
|
192
|
+
const startTime = typeof parsed.startTime === 'number' ? parsed.startTime : 0;
|
|
193
|
+
const durationMs = typeof parsed.durationMs === 'number' ? parsed.durationMs : 0;
|
|
194
|
+
const status = typeof parsed.status === 'string' ? parsed.status : 'unknown';
|
|
195
|
+
const wfName = typeof parsed.workflowName === 'string' ? parsed.workflowName : 'unknown';
|
|
196
|
+
const defaultModel = typeof parsed.defaultModel === 'string' ? parsed.defaultModel : 'unknown';
|
|
197
|
+
const agentCount = typeof parsed.agentCount === 'number' ? parsed.agentCount : 0;
|
|
198
|
+
const totalTokens = typeof parsed.totalTokens === 'number' && parsed.totalTokens >= 0 ? parsed.totalTokens : 0;
|
|
199
|
+
const taskId = parsed.taskId === null || typeof parsed.taskId === 'string' ? parsed.taskId : null;
|
|
200
|
+
const incomplete = status !== 'completed';
|
|
201
|
+
// Run-level failure reason: only the orchestrator's own top-level
|
|
202
|
+
// `error` diagnostic, reduced to its first message line and redacted. We
|
|
203
|
+
// never surface per-agent errors, prompts, results, or full stack traces.
|
|
204
|
+
const rawError = typeof parsed.error === 'string' ? parsed.error : '';
|
|
205
|
+
let errorReason = null;
|
|
206
|
+
if (incomplete && rawError) {
|
|
207
|
+
let firstLine = rawError.split('\n')[0] ?? '';
|
|
208
|
+
// Defensive: if a stack frame leaked onto the first line, cut it.
|
|
209
|
+
const frameIdx = firstLine.indexOf(' at ');
|
|
210
|
+
if (frameIdx !== -1)
|
|
211
|
+
firstLine = firstLine.slice(0, frameIdx);
|
|
212
|
+
firstLine = firstLine.trim();
|
|
213
|
+
if (firstLine) {
|
|
214
|
+
errorReason = redactSensitive(firstLine).slice(0, 200);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
const wp = Array.isArray(parsed.workflowProgress) ? parsed.workflowProgress : [];
|
|
218
|
+
const seenPhaseTitles = new Set();
|
|
219
|
+
const agents = [];
|
|
220
|
+
for (const entry of wp) {
|
|
221
|
+
if (!entry || typeof entry !== 'object')
|
|
222
|
+
continue;
|
|
223
|
+
const e = entry;
|
|
224
|
+
if (e.type !== 'workflow_agent')
|
|
225
|
+
continue;
|
|
226
|
+
const title = typeof e.phaseTitle === 'string' ? e.phaseTitle : '';
|
|
227
|
+
if (title)
|
|
228
|
+
seenPhaseTitles.add(title);
|
|
229
|
+
agents.push({
|
|
230
|
+
agent_id: typeof e.agentId === 'string' ? e.agentId : '',
|
|
231
|
+
label: typeof e.label === 'string' ? e.label : '',
|
|
232
|
+
phase_index: typeof e.phaseIndex === 'number' ? e.phaseIndex : -1,
|
|
233
|
+
phase_title: title,
|
|
234
|
+
model: typeof e.model === 'string' ? e.model : '',
|
|
235
|
+
state: typeof e.state === 'string' ? e.state : 'unknown',
|
|
236
|
+
attempt: typeof e.attempt === 'number' ? e.attempt : 1,
|
|
237
|
+
duration_ms: typeof e.durationMs === 'number' ? e.durationMs : null,
|
|
238
|
+
tokens: typeof e.tokens === 'number' ? e.tokens : 0,
|
|
239
|
+
tool_calls: typeof e.toolCalls === 'number' ? e.toolCalls : 0,
|
|
240
|
+
started_at: typeof e.startedAt === 'number' ? e.startedAt : null,
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
const observedPhases = seenPhaseTitles.size;
|
|
244
|
+
// Topology from script (best-effort)
|
|
245
|
+
let scriptPath = typeof parsed.scriptPath === 'string' ? parsed.scriptPath : null;
|
|
246
|
+
if (!scriptPath) {
|
|
247
|
+
const wfDir = dirname(path);
|
|
248
|
+
const scriptsDir = join(wfDir, 'scripts');
|
|
249
|
+
if (existsSync(scriptsDir)) {
|
|
250
|
+
try {
|
|
251
|
+
for (const name of readdirSync(scriptsDir)) {
|
|
252
|
+
if (name.endsWith(`-${runId}.js`)) {
|
|
253
|
+
scriptPath = join(scriptsDir, name);
|
|
254
|
+
break;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
catch {
|
|
259
|
+
/* skip */
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
// Security: `parsed.scriptPath` is read verbatim from an untrusted on-disk
|
|
264
|
+
// wf_*.json. Before reading it, require the resolved path to stay under
|
|
265
|
+
// `projectsDir` (no traversal to /etc/passwd, ~/.ssh, or a sibling
|
|
266
|
+
// agent-*.meta.json prompt), and cap the read size. Mirrors the guard in
|
|
267
|
+
// WorkflowWatcher.processFile().
|
|
268
|
+
//
|
|
269
|
+
// path.relative() + this escape check is the containment pattern CodeQL
|
|
270
|
+
// recognises as a path-injection sanitizer (see static-handler.ts's
|
|
271
|
+
// identical comment). It must stay inlined here, not delegated to a
|
|
272
|
+
// helper function — extracting it breaks CodeQL's recognition of the
|
|
273
|
+
// sanitizer even for a trivial wrapper, and a startsWith(root + '/')
|
|
274
|
+
// check (the previous approach) never covers Windows since resolve()
|
|
275
|
+
// there yields backslash-separated paths.
|
|
276
|
+
const SCRIPT_MAX_BYTES = 262_144; // 256 KiB
|
|
277
|
+
let topology = null;
|
|
278
|
+
if (scriptPath && existsSync(scriptPath)) {
|
|
279
|
+
const root = resolve(this.projectsDir);
|
|
280
|
+
const resolved = resolve(scriptPath);
|
|
281
|
+
const rel = relative(root, resolved);
|
|
282
|
+
const contained = rel === '' || (!rel.startsWith('..') && !isAbsolute(rel));
|
|
283
|
+
const scriptOk = contained &&
|
|
284
|
+
(() => {
|
|
285
|
+
try {
|
|
286
|
+
return statSync(resolved).size <= SCRIPT_MAX_BYTES;
|
|
287
|
+
}
|
|
288
|
+
catch {
|
|
289
|
+
return false;
|
|
290
|
+
}
|
|
291
|
+
})();
|
|
292
|
+
if (scriptOk) {
|
|
293
|
+
const result = parseWorkflowScript(resolved);
|
|
294
|
+
if (result.status === 'ok')
|
|
295
|
+
topology = result.topology;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
const usd = this.getCostForRun?.(runId) ?? 0;
|
|
299
|
+
const totalUsd = usd > 0 ? usd : null;
|
|
300
|
+
const row = {
|
|
301
|
+
workflow_run_id: runId,
|
|
302
|
+
parent_session_id: parentSessionId,
|
|
303
|
+
task_id: taskId ?? null,
|
|
304
|
+
workflow_name: topology?.workflowName ?? wfName,
|
|
305
|
+
status,
|
|
306
|
+
incomplete,
|
|
307
|
+
error_reason: errorReason,
|
|
308
|
+
default_model: defaultModel,
|
|
309
|
+
started_at: startTime,
|
|
310
|
+
duration_ms: durationMs,
|
|
311
|
+
agent_count: agentCount,
|
|
312
|
+
total_tokens: totalTokens,
|
|
313
|
+
total_usd: totalUsd,
|
|
314
|
+
declared_phases: topology?.declaredPhases ?? null,
|
|
315
|
+
observed_phases: observedPhases,
|
|
316
|
+
declared_parallel_widths: topology?.declaredParallelWidths
|
|
317
|
+
? Array.from(topology.declaredParallelWidths)
|
|
318
|
+
: [],
|
|
319
|
+
token_reconciliation_delta: null,
|
|
320
|
+
run_source: 'script',
|
|
321
|
+
script_path: scriptPath,
|
|
322
|
+
workflow_json_path: path,
|
|
323
|
+
agents,
|
|
324
|
+
topology,
|
|
325
|
+
};
|
|
326
|
+
this.cache.set(path, { mtimeMs, row });
|
|
327
|
+
return row;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
//# sourceMappingURL=workflow-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-store.js","sourceRoot":"","sources":["../../src/dashboard/workflow-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import type { PlatformAdapter } from '../platforms/types.js';
|
|
13
13
|
import type { LocalStore } from '../storage/local-store.js';
|
|
14
|
-
import type { HookEvent, ToolCallRecord, TokenEvent } from '../storage/types.js';
|
|
14
|
+
import type { HookEvent, ToolCallRecord, TokenEvent, SubagentTokenEvent, WorkflowRunEvent } from '../storage/types.js';
|
|
15
15
|
export interface HookEventProcessorOptions {
|
|
16
16
|
store: LocalStore;
|
|
17
17
|
pollIntervalMs?: number;
|
|
@@ -28,6 +28,20 @@ export interface HookEventProcessorOptions {
|
|
|
28
28
|
drainAllSessions?: boolean;
|
|
29
29
|
onRecord: (record: ToolCallRecord) => void;
|
|
30
30
|
onTokenEvent?: (event: TokenEvent) => void;
|
|
31
|
+
/**
|
|
32
|
+
* Fires for every paired ToolCallRecord whose `toolName === 'Agent'` —
|
|
33
|
+
* feeds WorkflowRunTracker without altering the existing onRecord pipeline.
|
|
34
|
+
* Invoked AFTER onRecord; errors are logged and swallowed.
|
|
35
|
+
*/
|
|
36
|
+
onWorkflowAgent?: (record: ToolCallRecord) => void;
|
|
37
|
+
/** Fires for every `mode: 'subagent_token'` line; errors swallowed. */
|
|
38
|
+
onSubagentTurn?: (turn: SubagentTurnEvent) => void;
|
|
39
|
+
/** Fires for every `mode: 'observability_health'` line; errors swallowed. */
|
|
40
|
+
onObservabilityHealth?: (event: ObservabilityHealthFrame) => void;
|
|
41
|
+
/** Fires for every `mode: 'subagent_token'` line as the typed wire shape. */
|
|
42
|
+
onSubagentToken?: (event: SubagentTokenEvent) => void;
|
|
43
|
+
/** Fires for every `mode: 'workflow_run'` line; errors swallowed. */
|
|
44
|
+
onWorkflowRun?: (event: WorkflowRunEvent) => void;
|
|
31
45
|
/**
|
|
32
46
|
* Adapter used to map each platform's raw tool names (e.g. Kiro's `fs_read`)
|
|
33
47
|
* to Preflight's canonical vocabulary (`Read`) before pairing/emitting.
|
|
@@ -37,6 +51,49 @@ export interface HookEventProcessorOptions {
|
|
|
37
51
|
*/
|
|
38
52
|
platformAdapter?: PlatformAdapter;
|
|
39
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Flattened processor-internal shape extracted from a `mode: 'subagent_token'`
|
|
56
|
+
* buffer entry, with all-numeric defaults applied. This is DISTINCT from the
|
|
57
|
+
* storage `SubagentTokenEvent` wire shape (imported above): token counts are
|
|
58
|
+
* hoisted to top-level fields here (rather than nested under `usage`), and it
|
|
59
|
+
* carries extra processor-derived fields (`turnUuid`, `stopReason`,
|
|
60
|
+
* `schemaFingerprint`). Not a duplicate of `SubagentTokenEvent`.
|
|
61
|
+
*/
|
|
62
|
+
export interface SubagentTurnEvent {
|
|
63
|
+
readonly timestampMs: number;
|
|
64
|
+
readonly parentSessionId: string;
|
|
65
|
+
readonly agentId: string;
|
|
66
|
+
readonly workflowRunId: string | null;
|
|
67
|
+
readonly messageId: string;
|
|
68
|
+
readonly turnUuid: string;
|
|
69
|
+
readonly model: string;
|
|
70
|
+
readonly inputTokens: number;
|
|
71
|
+
readonly outputTokens: number;
|
|
72
|
+
readonly cacheReadTokens: number;
|
|
73
|
+
readonly cacheCreationTokens: number;
|
|
74
|
+
readonly reasoningTokens: number;
|
|
75
|
+
readonly stopReason: string | null;
|
|
76
|
+
readonly schemaFingerprint: string;
|
|
77
|
+
}
|
|
78
|
+
/** Wire-shape data extracted from a `mode: 'observability_health'` entry. */
|
|
79
|
+
export interface ObservabilityHealthFrame {
|
|
80
|
+
readonly timestamp: number;
|
|
81
|
+
readonly watcher: 'workflow' | 'subagent';
|
|
82
|
+
readonly filesWatched: number;
|
|
83
|
+
readonly linesRead: number;
|
|
84
|
+
readonly bytesRead: number;
|
|
85
|
+
readonly parseErrors: number;
|
|
86
|
+
readonly schemaDrifts: number;
|
|
87
|
+
readonly lastError: {
|
|
88
|
+
code: string;
|
|
89
|
+
class: string;
|
|
90
|
+
} | null;
|
|
91
|
+
readonly event?: string;
|
|
92
|
+
readonly dimension?: string;
|
|
93
|
+
readonly fingerprint?: string;
|
|
94
|
+
readonly workflowRunId?: string;
|
|
95
|
+
readonly costSelfCheckDeltaPct?: number;
|
|
96
|
+
}
|
|
40
97
|
export declare class HookEventProcessor {
|
|
41
98
|
private store;
|
|
42
99
|
private readonly pollIntervalMs;
|
|
@@ -44,7 +101,32 @@ export declare class HookEventProcessor {
|
|
|
44
101
|
private drainAllSessions;
|
|
45
102
|
private readonly onRecord;
|
|
46
103
|
private readonly onTokenEvent;
|
|
104
|
+
private readonly onWorkflowAgent;
|
|
105
|
+
private readonly onSubagentTurn;
|
|
106
|
+
private readonly onObservabilityHealth;
|
|
107
|
+
private readonly onSubagentToken;
|
|
108
|
+
private readonly onWorkflowRun;
|
|
47
109
|
private readonly platformAdapter;
|
|
110
|
+
/**
|
|
111
|
+
* Dedup ring of `(agentId, messageId)` for recent subagent turns. Cursor
|
|
112
|
+
* recovery may re-read a line after a crash mid-write; double-counting would
|
|
113
|
+
* be silent, so we drop on the seen-set (capped at 4096 to bound memory).
|
|
114
|
+
*/
|
|
115
|
+
private readonly subagentDedup;
|
|
116
|
+
private readonly subagentDedupOrder;
|
|
117
|
+
/**
|
|
118
|
+
* Dedup ring of `(workflowRunId, timestamp)` for recent workflow_run
|
|
119
|
+
* events, mirroring subagentDedup above. This path only matters for
|
|
120
|
+
* `--local` mode's buffer.jsonl route — `--stdio` mode's WorkflowWatcher
|
|
121
|
+
* calls ingestScriptWorkflowRun() directly in-process, bypassing the
|
|
122
|
+
* buffer/crash-recovery path entirely. The `.drain` file crash-recovery
|
|
123
|
+
* path can re-deliver the same buffered line after a crash mid-write;
|
|
124
|
+
* without this, that redelivery emits a duplicate AiWorkflowRun event
|
|
125
|
+
* (doubling cost/token metrics for that run) since a new poll cycle's
|
|
126
|
+
* legitimate re-emission for the SAME run uses a different timestamp.
|
|
127
|
+
*/
|
|
128
|
+
private readonly workflowRunDedup;
|
|
129
|
+
private readonly workflowRunDedupOrder;
|
|
48
130
|
private readonly pending;
|
|
49
131
|
private readonly maxPendingEvents;
|
|
50
132
|
private intervalId;
|
|
@@ -83,6 +165,9 @@ export declare class HookEventProcessor {
|
|
|
83
165
|
private flushPending;
|
|
84
166
|
private pairingKey;
|
|
85
167
|
private findOldestPendingKey;
|
|
168
|
+
private handleSubagentTokenEvent;
|
|
169
|
+
private handleWorkflowRunEvent;
|
|
170
|
+
private handleObservabilityHealthEvent;
|
|
86
171
|
private emitRecord;
|
|
87
172
|
}
|
|
88
173
|
//# sourceMappingURL=event-processor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-processor.d.ts","sourceRoot":"","sources":["../../src/hooks/event-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"event-processor.d.ts","sourceRoot":"","sources":["../../src/hooks/event-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAiB7B,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,UAAU,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IACnD,uEAAuE;IACvE,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACnD,6EAA6E;IAC7E,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAClE,6EAA6E;IAC7E,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACtD,qEAAqE;IACrE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,6EAA6E;AAC7E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC;AAUD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,gBAAgB,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4C;IAC5E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAqD;IAC3F,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+C;IAC/E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6C;IAC3E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgB;IACnD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAgB;IAEtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAa;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAa;gBAE9B,OAAO,EAAE,yBAAyB;IAuB9C;;;;OAIG;IACH,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,KAAK,IAAI,IAAI;IAsBb,IAAI,IAAI,IAAI;IA+BZ;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,GAAG,IAAI;IAOnE;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI;IA6BxC,qDAAqD;IACrD,IAAI,YAAY,IAAI,MAAM,CAEzB;IAMD,OAAO,CAAC,IAAI;IAcZ,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,cAAc;IAuCtB,OAAO,CAAC,eAAe;IA6DvB,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,YAAY;IAgCpB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,wBAAwB;IAqEhC,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,8BAA8B;IAkCtC,OAAO,CAAC,UAAU;CAsBnB"}
|