@aid-framework/cli 0.1.59 → 0.1.60
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/.tsbuildinfo +1 -1
- package/dist/commands/cost.d.ts +29 -0
- package/dist/commands/cost.d.ts.map +1 -0
- package/dist/commands/cost.js +205 -0
- package/dist/commands/cost.js.map +1 -0
- package/dist/diagnostics.d.ts +6 -0
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +9 -0
- package/dist/diagnostics.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +14 -0
- package/dist/main.js.map +1 -1
- package/dist/trace.d.ts +89 -0
- package/dist/trace.d.ts.map +1 -0
- package/dist/trace.js +212 -0
- package/dist/trace.js.map +1 -0
- package/package.json +6 -6
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `aid cost` — a cost and latency report read from the local trace sink.
|
|
3
|
+
*
|
|
4
|
+
* The numbers already exist. `runtimes/{python,typescript}` write one JSONL span per line
|
|
5
|
+
* whenever `AID_TRACE_DIR` is set, and those spans carry the GenAI token attributes and
|
|
6
|
+
* the priced `aid.cost.usd` the gateway computed. This command adds no pricing rule and
|
|
7
|
+
* no estimate: it reads what the runtime recorded and aggregates it. The build-time
|
|
8
|
+
* estimate is the IR's cost gate, and a second pricing implementation here would be a
|
|
9
|
+
* second answer to "what does this cost".
|
|
10
|
+
*
|
|
11
|
+
* Exit codes follow the CLI's taxonomy rather than "did the bill look big":
|
|
12
|
+
*
|
|
13
|
+
* - `2` when there is nowhere to read from (no directory, or one that does not exist), or
|
|
14
|
+
* when `--since` is not a date. The invocation or the environment is wrong, so no
|
|
15
|
+
* judgement about the project has been made.
|
|
16
|
+
* - `1` only when a trace file exists and could not be read. The report still prints what
|
|
17
|
+
* was readable, because a partial report is more useful than none.
|
|
18
|
+
* - `0` otherwise, including for an empty directory: a report of zero spans is true, and
|
|
19
|
+
* the warning on stderr says why it is zero.
|
|
20
|
+
*/
|
|
21
|
+
import type { CliContext } from '../context.js';
|
|
22
|
+
import type { CommandOutcome } from '../output.js';
|
|
23
|
+
export interface CostOptions {
|
|
24
|
+
/** The directory to read; defaults to `$AID_TRACE_DIR`. */
|
|
25
|
+
readonly dir: string | undefined;
|
|
26
|
+
readonly since: string | undefined;
|
|
27
|
+
}
|
|
28
|
+
export declare function cost(context: CliContext, options: CostOptions): CommandOutcome;
|
|
29
|
+
//# sourceMappingURL=cost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/commands/cost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAIhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAQnD,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAyDD,wBAAgB,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,GAAG,cAAc,CA4I9E"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `aid cost` — a cost and latency report read from the local trace sink.
|
|
3
|
+
*
|
|
4
|
+
* The numbers already exist. `runtimes/{python,typescript}` write one JSONL span per line
|
|
5
|
+
* whenever `AID_TRACE_DIR` is set, and those spans carry the GenAI token attributes and
|
|
6
|
+
* the priced `aid.cost.usd` the gateway computed. This command adds no pricing rule and
|
|
7
|
+
* no estimate: it reads what the runtime recorded and aggregates it. The build-time
|
|
8
|
+
* estimate is the IR's cost gate, and a second pricing implementation here would be a
|
|
9
|
+
* second answer to "what does this cost".
|
|
10
|
+
*
|
|
11
|
+
* Exit codes follow the CLI's taxonomy rather than "did the bill look big":
|
|
12
|
+
*
|
|
13
|
+
* - `2` when there is nowhere to read from (no directory, or one that does not exist), or
|
|
14
|
+
* when `--since` is not a date. The invocation or the environment is wrong, so no
|
|
15
|
+
* judgement about the project has been made.
|
|
16
|
+
* - `1` only when a trace file exists and could not be read. The report still prints what
|
|
17
|
+
* was readable, because a partial report is more useful than none.
|
|
18
|
+
* - `0` otherwise, including for an empty directory: a report of zero spans is true, and
|
|
19
|
+
* the warning on stderr says why it is zero.
|
|
20
|
+
*/
|
|
21
|
+
import { readdirSync, readFileSync, statSync } from 'node:fs';
|
|
22
|
+
import { isAbsolute, join, relative, resolve, sep } from 'node:path';
|
|
23
|
+
import { CLI_DIAGNOSTIC_CODES, cliError, cliWarning } from '../diagnostics.js';
|
|
24
|
+
import { EXIT_FAILURE, EXIT_OK, EXIT_USAGE } from '../exit.js';
|
|
25
|
+
import { outcome } from '../output.js';
|
|
26
|
+
import { parseSince, parseTraceLines, summariseSpans } from '../trace.js';
|
|
27
|
+
/** The variable the runtimes read. Named here, not imported, because it is a runtime knob. */
|
|
28
|
+
const TRACE_DIR_ENV = 'AID_TRACE_DIR';
|
|
29
|
+
function displayPath(cwd, absolute) {
|
|
30
|
+
const path = relative(cwd, absolute);
|
|
31
|
+
if (path === '')
|
|
32
|
+
return '.';
|
|
33
|
+
if (path.startsWith('..') || isAbsolute(path))
|
|
34
|
+
return absolute;
|
|
35
|
+
return path.split(sep).join('/');
|
|
36
|
+
}
|
|
37
|
+
function group(value) {
|
|
38
|
+
return String(Math.trunc(value)).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
|
39
|
+
}
|
|
40
|
+
function usd(value) {
|
|
41
|
+
return `$${value.toFixed(6)}`;
|
|
42
|
+
}
|
|
43
|
+
function modelLines(models) {
|
|
44
|
+
if (models.length === 0)
|
|
45
|
+
return [];
|
|
46
|
+
const width = Math.max(...models.map((model) => model.model.length));
|
|
47
|
+
const lines = ['by model:'];
|
|
48
|
+
for (const model of models) {
|
|
49
|
+
const unpriced = model.unpricedCalls === 0 ? '' : ` (${model.unpricedCalls} unpriced)`;
|
|
50
|
+
lines.push([
|
|
51
|
+
` ${model.model.padEnd(width)}`,
|
|
52
|
+
`${String(model.calls).padStart(4)} calls`,
|
|
53
|
+
`${group(model.inputTokens).padStart(9)} in`,
|
|
54
|
+
`${group(model.outputTokens).padStart(9)} out`,
|
|
55
|
+
usd(model.costUsd).padStart(14),
|
|
56
|
+
unpriced,
|
|
57
|
+
].join(' '));
|
|
58
|
+
}
|
|
59
|
+
return lines;
|
|
60
|
+
}
|
|
61
|
+
function reportLines(summary, dir, since) {
|
|
62
|
+
const scope = since === undefined ? '' : ` since ${since}`;
|
|
63
|
+
const lines = [
|
|
64
|
+
`dir: ${dir}`,
|
|
65
|
+
`spans: ${group(summary.spans)} in ${group(summary.traces)} trace(s)${scope}`,
|
|
66
|
+
summary.unpricedSpans === 0
|
|
67
|
+
? `cost: ${usd(summary.costUsd)}`
|
|
68
|
+
: `cost: ${usd(summary.costUsd)} (${summary.unpricedSpans} unpriced span(s) not included)`,
|
|
69
|
+
`tokens: ${group(summary.inputTokens)} input, ${group(summary.outputTokens)} output`,
|
|
70
|
+
];
|
|
71
|
+
if (summary.latency !== undefined) {
|
|
72
|
+
lines.push(`latency: p50 ${group(summary.latency.p50)}ms, p95 ${group(summary.latency.p95)}ms over ${group(summary.latency.samples)} model call(s)`);
|
|
73
|
+
}
|
|
74
|
+
if (summary.errors > 0)
|
|
75
|
+
lines.push(`errors: ${group(summary.errors)} span(s)`);
|
|
76
|
+
lines.push(...modelLines(summary.models));
|
|
77
|
+
return lines;
|
|
78
|
+
}
|
|
79
|
+
export function cost(context, options) {
|
|
80
|
+
const command = 'cost';
|
|
81
|
+
const configured = options.dir ?? context.env[TRACE_DIR_ENV]?.trim();
|
|
82
|
+
if (configured === undefined || configured === '') {
|
|
83
|
+
return outcome({
|
|
84
|
+
command,
|
|
85
|
+
exitCode: EXIT_USAGE,
|
|
86
|
+
diagnostics: [
|
|
87
|
+
cliError({
|
|
88
|
+
code: CLI_DIAGNOSTIC_CODES.traceDirMissing,
|
|
89
|
+
message: `no trace directory: \`aid cost\` needs one to read.`,
|
|
90
|
+
hint: `Pass it as \`aid ${command} <dir>\`, or set ${TRACE_DIR_ENV} to the directory the runtime writes to.`,
|
|
91
|
+
}),
|
|
92
|
+
],
|
|
93
|
+
text: `aid: no trace directory. Pass one, or set ${TRACE_DIR_ENV}.\n`,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
let since;
|
|
97
|
+
if (options.since !== undefined) {
|
|
98
|
+
since = parseSince(options.since);
|
|
99
|
+
if (since === undefined) {
|
|
100
|
+
return outcome({
|
|
101
|
+
command,
|
|
102
|
+
exitCode: EXIT_USAGE,
|
|
103
|
+
diagnostics: [
|
|
104
|
+
cliError({
|
|
105
|
+
code: CLI_DIAGNOSTIC_CODES.traceSinceInvalid,
|
|
106
|
+
message: `--since "${options.since}" is not a date.`,
|
|
107
|
+
hint: 'Use YYYY-MM-DD (UTC midnight) or an ISO 8601 instant with an offset, such as 2026-10-01T12:00:00Z.',
|
|
108
|
+
}),
|
|
109
|
+
],
|
|
110
|
+
text: `aid: --since "${options.since}" is not a date.\n`,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
const absolute = resolve(context.cwd, configured);
|
|
115
|
+
const shown = displayPath(context.cwd, absolute);
|
|
116
|
+
const diagnostics = [];
|
|
117
|
+
let isDirectory = false;
|
|
118
|
+
try {
|
|
119
|
+
isDirectory = statSync(absolute).isDirectory();
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
isDirectory = false;
|
|
123
|
+
}
|
|
124
|
+
if (!isDirectory) {
|
|
125
|
+
return outcome({
|
|
126
|
+
command,
|
|
127
|
+
exitCode: EXIT_USAGE,
|
|
128
|
+
diagnostics: [
|
|
129
|
+
cliError({
|
|
130
|
+
code: CLI_DIAGNOSTIC_CODES.traceDirNotFound,
|
|
131
|
+
message: `"${shown}" is not a directory.`,
|
|
132
|
+
hint: `Point \`aid ${command}\` at the directory ${TRACE_DIR_ENV} names, or unset it to be told which is missing.`,
|
|
133
|
+
}),
|
|
134
|
+
],
|
|
135
|
+
text: `aid: "${shown}" is not a directory.\n`,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
const names = readdirSync(absolute, { withFileTypes: true })
|
|
139
|
+
.filter((entry) => entry.isFile() && entry.name.endsWith('.jsonl'))
|
|
140
|
+
.map((entry) => entry.name)
|
|
141
|
+
.sort();
|
|
142
|
+
let skipped = 0;
|
|
143
|
+
const all = [];
|
|
144
|
+
let unreadable = 0;
|
|
145
|
+
for (const name of names) {
|
|
146
|
+
let text;
|
|
147
|
+
try {
|
|
148
|
+
text = readFileSync(join(absolute, name), 'utf8');
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
// Counted, not thrown: one unreadable file should not hide the spans in the rest.
|
|
152
|
+
unreadable += 1;
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
const parsed = parseTraceLines(text);
|
|
156
|
+
all.push(...parsed.spans);
|
|
157
|
+
skipped += parsed.skipped;
|
|
158
|
+
}
|
|
159
|
+
if (unreadable > 0) {
|
|
160
|
+
diagnostics.push(cliError({
|
|
161
|
+
code: CLI_DIAGNOSTIC_CODES.traceUnreadable,
|
|
162
|
+
message: `could not read ${unreadable} trace file(s) in "${shown}": the report covers only the files that were readable.`,
|
|
163
|
+
hint: 'Check the file permissions, or move the unreadable file out of the directory.',
|
|
164
|
+
}));
|
|
165
|
+
}
|
|
166
|
+
if (skipped > 0) {
|
|
167
|
+
diagnostics.push(cliWarning({
|
|
168
|
+
code: CLI_DIAGNOSTIC_CODES.traceMalformed,
|
|
169
|
+
message: `skipped ${skipped} line(s) in "${shown}" that are not complete span records.`,
|
|
170
|
+
hint: 'A trace file is appended to while it is read, so a truncated last line is normal; a large count is not.',
|
|
171
|
+
}));
|
|
172
|
+
}
|
|
173
|
+
if (names.length === 0) {
|
|
174
|
+
diagnostics.push(cliWarning({
|
|
175
|
+
code: CLI_DIAGNOSTIC_CODES.traceEmpty,
|
|
176
|
+
message: `no trace files in "${shown}".`,
|
|
177
|
+
hint: `The runtime writes one when ${TRACE_DIR_ENV} is set and a model call runs; check that this is the directory it names.`,
|
|
178
|
+
}));
|
|
179
|
+
}
|
|
180
|
+
const summary = summariseSpans(all, since === undefined ? {} : { since });
|
|
181
|
+
const exitCode = unreadable > 0 ? EXIT_FAILURE : EXIT_OK;
|
|
182
|
+
return outcome({
|
|
183
|
+
command,
|
|
184
|
+
exitCode,
|
|
185
|
+
fields: {
|
|
186
|
+
dir: shown,
|
|
187
|
+
...(since === undefined ? {} : { since }),
|
|
188
|
+
files: names.length,
|
|
189
|
+
spans: summary.spans,
|
|
190
|
+
traces: summary.traces,
|
|
191
|
+
errors: summary.errors,
|
|
192
|
+
inputTokens: summary.inputTokens,
|
|
193
|
+
outputTokens: summary.outputTokens,
|
|
194
|
+
costUsd: summary.costUsd,
|
|
195
|
+
unpricedSpans: summary.unpricedSpans,
|
|
196
|
+
...(summary.latency === undefined
|
|
197
|
+
? {}
|
|
198
|
+
: { latencyMs: { p50: summary.latency.p50, p95: summary.latency.p95 } }),
|
|
199
|
+
models: summary.models,
|
|
200
|
+
},
|
|
201
|
+
diagnostics,
|
|
202
|
+
text: reportLines(summary, shown, since).join('\n'),
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=cost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/commands/cost.ts"],"names":[],"mappings":"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"}
|
package/dist/diagnostics.d.ts
CHANGED
|
@@ -48,6 +48,12 @@ export declare const CLI_DIAGNOSTIC_CODES: {
|
|
|
48
48
|
readonly infraDriftDetected: 'cli/infra-drift-detected';
|
|
49
49
|
readonly infraConfirmProdRequired: 'cli/infra-confirm-prod-required';
|
|
50
50
|
readonly ejectUnmanagedPath: 'cli/eject-unmanaged-path';
|
|
51
|
+
readonly traceDirMissing: 'cli/trace-dir-missing';
|
|
52
|
+
readonly traceDirNotFound: 'cli/trace-dir-not-found';
|
|
53
|
+
readonly traceSinceInvalid: 'cli/trace-since-invalid';
|
|
54
|
+
readonly traceUnreadable: 'cli/trace-unreadable';
|
|
55
|
+
readonly traceMalformed: 'cli/trace-malformed';
|
|
56
|
+
readonly traceEmpty: 'cli/trace-empty';
|
|
51
57
|
};
|
|
52
58
|
export type CliDiagnosticCode = (typeof CLI_DIAGNOSTIC_CODES)[keyof typeof CLI_DIAGNOSTIC_CODES];
|
|
53
59
|
export interface CliDiagnosticInit {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,gEAAgE;AAChE,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAE/C,eAAO,MAAM,oBAAoB;aAC/B,cAAc,EAAE,qBAAqB;aACrC,aAAa,EAAE,oBAAoB;aACnC,mBAAmB,EAAE,2BAA2B;aAChD,aAAa,EAAE,oBAAoB;aACnC,aAAa,EAAE,qBAAqB;aACpC,kBAAkB,EAAE,0BAA0B;aAC9C,iBAAiB,EAAE,wBAAwB;aAC3C,iBAAiB,EAAE,wBAAwB;aAC3C,iBAAiB,EAAE,yBAAyB;aAC5C,oBAAoB,EAAE,4BAA4B;aAClD,iBAAiB,EAAE,wBAAwB;aAC3C,YAAY,EAAE,mBAAmB;aACjC,YAAY,EAAE,mBAAmB;aAGjC,eAAe,EAAE,sBAAsB;aACvC,kBAAkB,EAAE,yBAAyB;aAC7C,eAAe,EAAE,sBAAsB;aACvC,YAAY,EAAE,mBAAmB;aACjC,eAAe,EAAE,sBAAsB;aACvC,aAAa,EAAE,oBAAoB;aAGnC,uBAAuB,EAAE,+BAA+B;aACxD,sBAAsB,EAAE,8BAA8B;aACtD,eAAe,EAAE,uBAAuB;aACxC,sBAAsB,EAAE,8BAA8B;aACtD,iBAAiB,EAAE,yBAAyB;aAC5C,mBAAmB,EAAE,4BAA4B;aACjD,gBAAgB,EAAE,wBAAwB;aAC1C,eAAe,EAAE,uBAAuB;aACxC,eAAe,EAAE,uBAAuB;aACxC,cAAc,EAAE,sBAAsB;aACtC,kBAAkB,EAAE,0BAA0B;aAC9C,wBAAwB,EAAE,iCAAiC;aAI3D,kBAAkB,EAAE,0BAA0B;
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,gEAAgE;AAChE,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAE/C,eAAO,MAAM,oBAAoB;aAC/B,cAAc,EAAE,qBAAqB;aACrC,aAAa,EAAE,oBAAoB;aACnC,mBAAmB,EAAE,2BAA2B;aAChD,aAAa,EAAE,oBAAoB;aACnC,aAAa,EAAE,qBAAqB;aACpC,kBAAkB,EAAE,0BAA0B;aAC9C,iBAAiB,EAAE,wBAAwB;aAC3C,iBAAiB,EAAE,wBAAwB;aAC3C,iBAAiB,EAAE,yBAAyB;aAC5C,oBAAoB,EAAE,4BAA4B;aAClD,iBAAiB,EAAE,wBAAwB;aAC3C,YAAY,EAAE,mBAAmB;aACjC,YAAY,EAAE,mBAAmB;aAGjC,eAAe,EAAE,sBAAsB;aACvC,kBAAkB,EAAE,yBAAyB;aAC7C,eAAe,EAAE,sBAAsB;aACvC,YAAY,EAAE,mBAAmB;aACjC,eAAe,EAAE,sBAAsB;aACvC,aAAa,EAAE,oBAAoB;aAGnC,uBAAuB,EAAE,+BAA+B;aACxD,sBAAsB,EAAE,8BAA8B;aACtD,eAAe,EAAE,uBAAuB;aACxC,sBAAsB,EAAE,8BAA8B;aACtD,iBAAiB,EAAE,yBAAyB;aAC5C,mBAAmB,EAAE,4BAA4B;aACjD,gBAAgB,EAAE,wBAAwB;aAC1C,eAAe,EAAE,uBAAuB;aACxC,eAAe,EAAE,uBAAuB;aACxC,cAAc,EAAE,sBAAsB;aACtC,kBAAkB,EAAE,0BAA0B;aAC9C,wBAAwB,EAAE,iCAAiC;aAI3D,kBAAkB,EAAE,0BAA0B;aAI9C,eAAe,EAAE,uBAAuB;aACxC,gBAAgB,EAAE,yBAAyB;aAC3C,iBAAiB,EAAE,yBAAyB;aAC5C,eAAe,EAAE,sBAAsB;aACvC,cAAc,EAAE,qBAAqB;aACrC,UAAU,EAAE,iBAAiB;CACrB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEjG,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAO/D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAOjE"}
|
package/dist/diagnostics.js
CHANGED
|
@@ -53,6 +53,15 @@ export const CLI_DIAGNOSTIC_CODES = {
|
|
|
53
53
|
// with a `generator/` code, so a reader can tell "you named the wrong tree" from
|
|
54
54
|
// "this file cannot be ejected".
|
|
55
55
|
ejectUnmanagedPath: 'cli/eject-unmanaged-path',
|
|
56
|
+
// `aid cost` reads the runtime's local trace sink. The first two mean there is
|
|
57
|
+
// nothing to read (exit 2); the last three describe a report that is incomplete or
|
|
58
|
+
// empty, which is a fact about the traces rather than about the invocation.
|
|
59
|
+
traceDirMissing: 'cli/trace-dir-missing',
|
|
60
|
+
traceDirNotFound: 'cli/trace-dir-not-found',
|
|
61
|
+
traceSinceInvalid: 'cli/trace-since-invalid',
|
|
62
|
+
traceUnreadable: 'cli/trace-unreadable',
|
|
63
|
+
traceMalformed: 'cli/trace-malformed',
|
|
64
|
+
traceEmpty: 'cli/trace-empty',
|
|
56
65
|
};
|
|
57
66
|
export function cliError(init) {
|
|
58
67
|
return errorDiagnostic({
|
package/dist/diagnostics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKzE,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc,EAAE,qBAAqB;IACrC,aAAa,EAAE,oBAAoB;IACnC,mBAAmB,EAAE,2BAA2B;IAChD,aAAa,EAAE,oBAAoB;IACnC,aAAa,EAAE,qBAAqB;IACpC,kBAAkB,EAAE,0BAA0B;IAC9C,iBAAiB,EAAE,wBAAwB;IAC3C,iBAAiB,EAAE,wBAAwB;IAC3C,iBAAiB,EAAE,yBAAyB;IAC5C,oBAAoB,EAAE,4BAA4B;IAClD,iBAAiB,EAAE,wBAAwB;IAC3C,YAAY,EAAE,mBAAmB;IACjC,YAAY,EAAE,mBAAmB;IACjC,kFAAkF;IAClF,8EAA8E;IAC9E,eAAe,EAAE,sBAAsB;IACvC,kBAAkB,EAAE,yBAAyB;IAC7C,eAAe,EAAE,sBAAsB;IACvC,YAAY,EAAE,mBAAmB;IACjC,eAAe,EAAE,sBAAsB;IACvC,aAAa,EAAE,oBAAoB;IACnC,sFAAsF;IACtF,wFAAwF;IACxF,uBAAuB,EAAE,+BAA+B;IACxD,sBAAsB,EAAE,8BAA8B;IACtD,eAAe,EAAE,uBAAuB;IACxC,sBAAsB,EAAE,8BAA8B;IACtD,iBAAiB,EAAE,yBAAyB;IAC5C,mBAAmB,EAAE,4BAA4B;IACjD,gBAAgB,EAAE,wBAAwB;IAC1C,eAAe,EAAE,uBAAuB;IACxC,eAAe,EAAE,uBAAuB;IACxC,cAAc,EAAE,sBAAsB;IACtC,kBAAkB,EAAE,0BAA0B;IAC9C,wBAAwB,EAAE,iCAAiC;IAC3D,qFAAqF;IACrF,iFAAiF;IACjF,iCAAiC;IACjC,kBAAkB,EAAE,0BAA0B;
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKzE,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc,EAAE,qBAAqB;IACrC,aAAa,EAAE,oBAAoB;IACnC,mBAAmB,EAAE,2BAA2B;IAChD,aAAa,EAAE,oBAAoB;IACnC,aAAa,EAAE,qBAAqB;IACpC,kBAAkB,EAAE,0BAA0B;IAC9C,iBAAiB,EAAE,wBAAwB;IAC3C,iBAAiB,EAAE,wBAAwB;IAC3C,iBAAiB,EAAE,yBAAyB;IAC5C,oBAAoB,EAAE,4BAA4B;IAClD,iBAAiB,EAAE,wBAAwB;IAC3C,YAAY,EAAE,mBAAmB;IACjC,YAAY,EAAE,mBAAmB;IACjC,kFAAkF;IAClF,8EAA8E;IAC9E,eAAe,EAAE,sBAAsB;IACvC,kBAAkB,EAAE,yBAAyB;IAC7C,eAAe,EAAE,sBAAsB;IACvC,YAAY,EAAE,mBAAmB;IACjC,eAAe,EAAE,sBAAsB;IACvC,aAAa,EAAE,oBAAoB;IACnC,sFAAsF;IACtF,wFAAwF;IACxF,uBAAuB,EAAE,+BAA+B;IACxD,sBAAsB,EAAE,8BAA8B;IACtD,eAAe,EAAE,uBAAuB;IACxC,sBAAsB,EAAE,8BAA8B;IACtD,iBAAiB,EAAE,yBAAyB;IAC5C,mBAAmB,EAAE,4BAA4B;IACjD,gBAAgB,EAAE,wBAAwB;IAC1C,eAAe,EAAE,uBAAuB;IACxC,eAAe,EAAE,uBAAuB;IACxC,cAAc,EAAE,sBAAsB;IACtC,kBAAkB,EAAE,0BAA0B;IAC9C,wBAAwB,EAAE,iCAAiC;IAC3D,qFAAqF;IACrF,iFAAiF;IACjF,iCAAiC;IACjC,kBAAkB,EAAE,0BAA0B;IAC9C,+EAA+E;IAC/E,mFAAmF;IACnF,4EAA4E;IAC5E,eAAe,EAAE,uBAAuB;IACxC,gBAAgB,EAAE,yBAAyB;IAC3C,iBAAiB,EAAE,yBAAyB;IAC5C,eAAe,EAAE,sBAAsB;IACvC,cAAc,EAAE,qBAAqB;IACrC,UAAU,EAAE,iBAAiB;CACrB,CAAC;AAWX,MAAM,UAAU,QAAQ,CAAC,IAAuB;IAC9C,OAAO,eAAe,CAAC;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QACrB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;KACxD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAuB;IAChD,OAAO,iBAAiB,CAAC;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QACrB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;KACxD,CAAC,CAAC;AACL,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `@aid-framework/cli` - the `aid` command: init, validate, gen, ingest, eval and doctor.
|
|
2
|
+
* `@aid-framework/cli` - the `aid` command: init, validate, gen, ingest, eval, cost and doctor.
|
|
3
3
|
*
|
|
4
4
|
* The CLI is glue. Every judgement it reports -- whether a spec parses, what the IR is,
|
|
5
5
|
* what a target can emit, which generated file was hand-edited, whether an eval regressed
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
*/
|
|
13
13
|
export type { FlagSpec, ParsedArguments, ParseOutcome } from './args.js';
|
|
14
14
|
export { booleanFlag, JSON_FLAG, parseArguments, valueFlag } from './args.js';
|
|
15
|
+
export type { CostOptions } from './commands/cost.js';
|
|
16
|
+
export { cost } from './commands/cost.js';
|
|
15
17
|
export type { DoctorOptions } from './commands/doctor.js';
|
|
16
18
|
export { doctor } from './commands/doctor.js';
|
|
17
19
|
export type { EvalOptions } from './commands/eval.js';
|
|
@@ -45,6 +47,8 @@ export { compile, lowerSpec, provenanceFor, readManifest, readSpec } from './pip
|
|
|
45
47
|
export { discoverInterpreter, INTERPRETERS, interpreterCommand, invoke } from './python.js';
|
|
46
48
|
export type { Target } from './targets.js';
|
|
47
49
|
export { DEFAULT_SPEC_PATH, DEFAULT_TARGET, resolveTarget, TARGETS, targetCapabilities, targetNames, unknownTargetDiagnostic, } from './targets.js';
|
|
50
|
+
export type { CostSummary, Latency, ModelSpend, ParsedTrace, TraceSpan } from './trace.js';
|
|
51
|
+
export { parseSince, parseTraceLines, summariseSpans } from './trace.js';
|
|
48
52
|
export type { CommandSpec } from './usage.js';
|
|
49
53
|
export { commandUsage, globalUsage } from './usage.js';
|
|
50
54
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `@aid-framework/cli` - the `aid` command: init, validate, gen, ingest, eval and doctor.
|
|
2
|
+
* `@aid-framework/cli` - the `aid` command: init, validate, gen, ingest, eval, cost and doctor.
|
|
3
3
|
*
|
|
4
4
|
* The CLI is glue. Every judgement it reports -- whether a spec parses, what the IR is,
|
|
5
5
|
* what a target can emit, which generated file was hand-edited, whether an eval regressed
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* The layering is `spec <- ir <- generator-sdk <- generators <- cli`.
|
|
12
12
|
*/
|
|
13
13
|
export { booleanFlag, JSON_FLAG, parseArguments, valueFlag } from './args.js';
|
|
14
|
+
export { cost } from './commands/cost.js';
|
|
14
15
|
export { doctor } from './commands/doctor.js';
|
|
15
16
|
export { evaluate } from './commands/eval.js';
|
|
16
17
|
export { generate } from './commands/gen.js';
|
|
@@ -29,5 +30,6 @@ export { absolutePath, parentPath } from './paths.js';
|
|
|
29
30
|
export { compile, lowerSpec, provenanceFor, readManifest, readSpec } from './pipeline.js';
|
|
30
31
|
export { discoverInterpreter, INTERPRETERS, interpreterCommand, invoke } from './python.js';
|
|
31
32
|
export { DEFAULT_SPEC_PATH, DEFAULT_TARGET, resolveTarget, TARGETS, targetCapabilities, targetNames, unknownTargetDiagnostic, } from './targets.js';
|
|
33
|
+
export { parseSince, parseTraceLines, summariseSpans } from './trace.js';
|
|
32
34
|
export { commandUsage, globalUsage } from './usage.js';
|
|
33
35
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE9E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9F,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAWtD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE5F,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE9E,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9F,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAWtD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE5F,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAWjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,UAAU,OAAQ,SAAQ,WAAW;IACnC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,KAAK,cAAc,CAAC;IAC7E,kEAAkE;IAClE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAQD,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,EAmKtC,CAAC;AA0BF,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,CA6C1E"}
|
package/dist/main.js
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* below is a two-line adapter and not a flag handler.
|
|
13
13
|
*/
|
|
14
14
|
import { booleanFlag, JSON_FLAG, parseArguments, valueFlag } from './args.js';
|
|
15
|
+
import { cost } from './commands/cost.js';
|
|
15
16
|
import { doctor } from './commands/doctor.js';
|
|
16
17
|
import { eject } from './commands/eject.js';
|
|
17
18
|
import { evaluate } from './commands/eval.js';
|
|
@@ -107,6 +108,19 @@ export const COMMANDS = [
|
|
|
107
108
|
baseline: args.booleans.has('baseline'),
|
|
108
109
|
}),
|
|
109
110
|
},
|
|
111
|
+
{
|
|
112
|
+
name: 'cost',
|
|
113
|
+
summary: 'report cost and latency from the local trace sink',
|
|
114
|
+
usage: 'cost [dir] [--since <date>]',
|
|
115
|
+
flags: [
|
|
116
|
+
valueFlag('since', 'date', 'only count spans that started at or after this date (YYYY-MM-DD or an ISO 8601 instant)'),
|
|
117
|
+
JSON_FLAG,
|
|
118
|
+
],
|
|
119
|
+
run: (context, args) => cost(context, {
|
|
120
|
+
dir: args.positionals[0],
|
|
121
|
+
since: args.values.get('since'),
|
|
122
|
+
}),
|
|
123
|
+
},
|
|
110
124
|
{
|
|
111
125
|
name: 'doctor',
|
|
112
126
|
summary: 'diagnose the tree against the spec: drift, versions, missing files',
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/dist/trace.d.ts
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reading the local trace sink back into numbers.
|
|
3
|
+
*
|
|
4
|
+
* The format is the one `runtimes/{python,typescript}/src/.../local_trace` writes: one
|
|
5
|
+
* JSON object per line, one line per span. This module is the third consumer of that
|
|
6
|
+
* contract and the only one written in TypeScript that does not live in the runtime, so
|
|
7
|
+
* it repeats the field names in one place rather than importing a runtime that drags a
|
|
8
|
+
* provider SDK into the CLI.
|
|
9
|
+
*
|
|
10
|
+
* Two rules keep the report honest:
|
|
11
|
+
*
|
|
12
|
+
* - A span that cannot be parsed is **counted and skipped**, never guessed at. A crash
|
|
13
|
+
* truncated the last line of a file is normal; a line that is not a span at all is not,
|
|
14
|
+
* and the caller reports the count either way.
|
|
15
|
+
* - A span with tokens but no `aid.cost.usd` is **unpriced**, not free. Summing it as
|
|
16
|
+
* zero would make a missing cost look like a cheap run, which is the same failure the
|
|
17
|
+
* IR's cost gate refuses.
|
|
18
|
+
*/
|
|
19
|
+
/** One span, as the sink wrote it. Only the fields this report reads are typed. */
|
|
20
|
+
export interface TraceSpan {
|
|
21
|
+
readonly trace_id: string;
|
|
22
|
+
readonly span_id: string;
|
|
23
|
+
readonly parent_span_id?: string | null;
|
|
24
|
+
readonly name: string;
|
|
25
|
+
readonly kind?: string;
|
|
26
|
+
readonly started_at: string;
|
|
27
|
+
readonly duration_ms?: number;
|
|
28
|
+
readonly attributes?: Readonly<Record<string, unknown>>;
|
|
29
|
+
readonly status?: {
|
|
30
|
+
readonly code?: string;
|
|
31
|
+
} | null;
|
|
32
|
+
}
|
|
33
|
+
export interface ParsedTrace {
|
|
34
|
+
readonly spans: readonly TraceSpan[];
|
|
35
|
+
/** Lines that were not a span. Counted, never silently dropped. */
|
|
36
|
+
readonly skipped: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Parse one JSONL file. A blank line is not a failure -- the sink never writes one, but
|
|
40
|
+
* a file being appended to while it is read can end in a partial line, and that is the
|
|
41
|
+
* one case a reader has to tolerate.
|
|
42
|
+
*/
|
|
43
|
+
export declare function parseTraceLines(text: string): ParsedTrace;
|
|
44
|
+
/**
|
|
45
|
+
* Normalise `--since` to the ISO instant the sink writes, or `undefined` when the value
|
|
46
|
+
* is not a date. A plain `YYYY-MM-DD` is UTC midnight; anything else must be ISO 8601
|
|
47
|
+
* with an explicit offset, because a bare local time would mean a different instant on
|
|
48
|
+
* every machine reading the same repository.
|
|
49
|
+
*/
|
|
50
|
+
export declare function parseSince(value: string): string | undefined;
|
|
51
|
+
/** One model's share of the report. */
|
|
52
|
+
export interface ModelSpend {
|
|
53
|
+
readonly model: string;
|
|
54
|
+
/** Spans attributed to this model that carried usage or cost. */
|
|
55
|
+
readonly calls: number;
|
|
56
|
+
readonly inputTokens: number;
|
|
57
|
+
readonly outputTokens: number;
|
|
58
|
+
readonly costUsd: number;
|
|
59
|
+
/** Calls with usage but no recorded cost. */
|
|
60
|
+
readonly unpricedCalls: number;
|
|
61
|
+
}
|
|
62
|
+
export interface Latency {
|
|
63
|
+
/** Nearest-rank percentiles over model-call spans, in milliseconds. */
|
|
64
|
+
readonly p50: number;
|
|
65
|
+
readonly p95: number;
|
|
66
|
+
readonly samples: number;
|
|
67
|
+
}
|
|
68
|
+
export interface CostSummary {
|
|
69
|
+
readonly spans: number;
|
|
70
|
+
readonly traces: number;
|
|
71
|
+
readonly errors: number;
|
|
72
|
+
readonly inputTokens: number;
|
|
73
|
+
readonly outputTokens: number;
|
|
74
|
+
readonly costUsd: number;
|
|
75
|
+
/** Spans that carried usage but no recorded cost; they are absent from `costUsd`. */
|
|
76
|
+
readonly unpricedSpans: number;
|
|
77
|
+
readonly latency?: Latency;
|
|
78
|
+
readonly models: readonly ModelSpend[];
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Aggregate spans into one report.
|
|
82
|
+
*
|
|
83
|
+
* `since` filters on `started_at` by string comparison, which is exact because both
|
|
84
|
+
* sides are the UTC ISO form the sink writes.
|
|
85
|
+
*/
|
|
86
|
+
export declare function summariseSpans(spans: readonly TraceSpan[], options?: {
|
|
87
|
+
readonly since?: string;
|
|
88
|
+
}): CostSummary;
|
|
89
|
+
//# sourceMappingURL=trace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,mFAAmF;AACnF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AA6CD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAgBzD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiB5D;AAED,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,OAAO;IACtB,uEAAuE;IACvE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qFAAqF;IACrF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;CACxC;AAUD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,OAAO,GAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GACxC,WAAW,CAmGb"}
|