@aid-framework/cli 0.1.58 → 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.
@@ -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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"}
@@ -26,6 +26,8 @@ export interface GenerateOptions {
26
26
  readonly target: string | undefined;
27
27
  readonly dryRun: boolean;
28
28
  readonly force: boolean;
29
+ /** Fail when the tree does not match the spec; writes nothing. */
30
+ readonly check: boolean;
29
31
  }
30
32
  /** A spec that compiled and a plan that was reconciled, or the reason it was not. */
31
33
  export interface GenerateSuccess {
@@ -35,6 +37,7 @@ export interface GenerateSuccess {
35
37
  readonly warnings: readonly CliDiagnostic[];
36
38
  readonly dryRun: boolean;
37
39
  readonly force: boolean;
40
+ readonly check: boolean;
38
41
  readonly manifestWritten: boolean;
39
42
  }
40
43
  /** The public entry point, and the one `aid init --gen` folds into its own report. */
@@ -1 +1 @@
1
- {"version":3,"file":"gen.d.ts","sourceRoot":"","sources":["../../src/commands/gen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAYvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAwED,sFAAsF;AACtF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc,CAEtF"}
1
+ {"version":3,"file":"gen.d.ts","sourceRoot":"","sources":["../../src/commands/gen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAYvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AA0ED,sFAAsF;AACtF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc,CAEtF"}
@@ -53,7 +53,7 @@ function render(context, options) {
53
53
  return outcome({ command, exitCode: EXIT_FAILURE, fields, diagnostics: manifest.diagnostics });
54
54
  }
55
55
  const reconciliation = { sink, manifest: manifest.manifest, force: options.force };
56
- if (options.dryRun) {
56
+ if (options.dryRun || options.check) {
57
57
  // A dry run takes the branch in which no write call exists at all, rather than the
58
58
  // branch that writes and is then trusted not to. `planRegeneration` is the SDK's
59
59
  // planner without its writer, so "writes nothing" is a property of the code path
@@ -63,8 +63,9 @@ function render(context, options) {
63
63
  specPath,
64
64
  report: planRegeneration(compiled.plan, reconciliation),
65
65
  warnings: compiled.diagnostics,
66
- dryRun: true,
66
+ dryRun: options.dryRun,
67
67
  force: options.force,
68
+ check: options.check,
68
69
  manifestWritten: false,
69
70
  });
70
71
  }
@@ -80,6 +81,7 @@ function render(context, options) {
80
81
  warnings: compiled.diagnostics,
81
82
  dryRun: false,
82
83
  force: options.force,
84
+ check: false,
83
85
  manifestWritten: true,
84
86
  });
85
87
  }
@@ -88,7 +90,7 @@ export function generate(context, options) {
88
90
  return render(context, options);
89
91
  }
90
92
  function summarize(success) {
91
- const { report, target, specPath, warnings, dryRun, force, manifestWritten } = success;
93
+ const { report, target, specPath, warnings, dryRun, force, check, manifestWritten } = success;
92
94
  const diagnostics = sortDiagnostics([...warnings, ...report.diagnostics]);
93
95
  // Two ways to fail, and neither is redundant. `hasErrors` is the SDK's verdict on the
94
96
  // run; `hasDrift` is checked alongside it rather than instead of it because drift is
@@ -96,18 +98,33 @@ function summarize(success) {
96
98
  // a gate -- and drift is the one failure that silently destroys a developer's edits.
97
99
  // `--force` is the caller answering it, so a run that discarded the edits did what it
98
100
  // was told and exits 0; only an unforced run leaves drift outstanding.
99
- const failed = hasErrors(diagnostics) || (!force && hasDrift(report));
101
+ //
102
+ // `--check` is the CI form of the determinism promise: a tree that merely *would* change
103
+ // is a failure, because the committed tree is supposed to be the compiled spec. A dry
104
+ // run alone cannot express that -- it prints the same plan and exits 0 for a missing file.
105
+ const pending = [...report.created, ...report.updated, ...report.stale];
106
+ const failed = check
107
+ ? hasErrors(diagnostics) || pending.length > 0 || report.drifted.length > 0
108
+ : hasErrors(diagnostics) || (!force && hasDrift(report));
100
109
  const text = [
101
- `${target.name}: ${dryRun ? 'dry run, ' : ''}${formatRegenerationSummary(report)}`,
110
+ `${target.name}: ${check ? 'check, ' : dryRun ? 'dry run, ' : ''}${formatRegenerationSummary(report)}`,
102
111
  ];
112
+ if (check && pending.length > 0) {
113
+ text.push('the tree does not match the spec; run `aid gen` and commit the result:');
114
+ for (const path of pending)
115
+ text.push(` ${path}`);
116
+ }
103
117
  text.push(...lines('created:', report.created));
104
118
  text.push(...lines('updated:', report.updated));
105
119
  if (report.drifted.length > 0) {
106
- text.push(dryRun ? 'would refuse to overwrite:' : 'refused to overwrite, the new content is beside it:');
120
+ text.push(dryRun || check
121
+ ? 'would refuse to overwrite:'
122
+ : 'refused to overwrite, the new content is beside it:');
107
123
  for (const drift of report.drifted) {
108
124
  text.push(` ${drift.path} -> ${rejectionPath(drift.path)}`);
109
125
  }
110
126
  }
127
+ text.push(...lines('scaffold kept (yours):', report.scaffoldKept));
111
128
  text.push(...lines('no longer generated:', report.stale));
112
129
  text.push(...lines('ejected, skipped:', report.ejected));
113
130
  return outcome({
@@ -119,12 +136,14 @@ function summarize(success) {
119
136
  target: target.name,
120
137
  spec: specPath,
121
138
  dryRun,
139
+ check,
122
140
  manifest: { path: target.manifestPath, written: manifestWritten },
123
141
  changes: {
124
142
  created: report.created,
125
143
  updated: report.updated,
126
144
  unchanged: report.unchanged,
127
145
  kept: report.kept,
146
+ scaffold: report.scaffoldKept,
128
147
  // Paths, like every sibling here: the report answers "which files", and the
129
148
  // rejected content is on disk at the deterministic `rejectionPath` the human
130
149
  // summary prints. Mixing record objects into one entry and strings into the rest
@@ -1 +1 @@
1
- {"version":3,"file":"gen.js","sourceRoot":"","sources":["../../src/commands/gen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gen.js","sourceRoot":"","sources":["../../src/commands/gen.ts"],"names":[],"mappings":"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"}
@@ -185,7 +185,7 @@ export function init(context, options) {
185
185
  // The generation runs against the scaffolded project root, not the caller's working
186
186
  // directory: `aid init sub/project --gen` must generate into `sub/project`.
187
187
  const generation = options.gen
188
- ? generate({ ...context, cwd: root }, { spec: specPath, target: target.name, dryRun: false, force: false })
188
+ ? generate({ ...context, cwd: root }, { spec: specPath, target: target.name, dryRun: false, force: false, check: false })
189
189
  : undefined;
190
190
  const text = [
191
191
  ...written.map((path) => `created ${path}`),
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -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;CACtC,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"}
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"}
@@ -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({
@@ -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;CACtC,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"}
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
@@ -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"}
@@ -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;AAUjD,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,EA+ItC,CAAC;AA0BF,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,CA6C1E"}
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';
@@ -55,10 +56,11 @@ export const COMMANDS = [
55
56
  {
56
57
  name: 'gen',
57
58
  summary: 'compile the spec and reconcile the tree with it',
58
- usage: 'gen [spec] [--target <name>] [--dry-run] [--force]',
59
+ usage: 'gen [spec] [--target <name>] [--dry-run] [--check] [--force]',
59
60
  flags: [
60
61
  TARGET_FLAG,
61
62
  booleanFlag('dry-run', 'report what would change, and write nothing'),
63
+ booleanFlag('check', 'fail when the committed tree does not match the spec; writes nothing'),
62
64
  booleanFlag('force', 'overwrite generated files that were edited by hand'),
63
65
  JSON_FLAG,
64
66
  ],
@@ -67,6 +69,7 @@ export const COMMANDS = [
67
69
  target: args.values.get('target'),
68
70
  dryRun: args.booleans.has('dry-run'),
69
71
  force: args.booleans.has('force'),
72
+ check: args.booleans.has('check'),
70
73
  }),
71
74
  },
72
75
  {
@@ -105,6 +108,19 @@ export const COMMANDS = [
105
108
  baseline: args.booleans.has('baseline'),
106
109
  }),
107
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
+ },
108
124
  {
109
125
  name: 'doctor',
110
126
  summary: 'diagnose the tree against the spec: drift, versions, missing files',