@aid-framework/cli 0.1.66 → 0.1.68

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.
@@ -19,18 +19,26 @@
19
19
  * assignment says not to modify it. A missing runtime entry point is this layer's problem
20
20
  * to route around, not a reason to change a shipped one.
21
21
  *
22
+ * **A TypeScript target runs its source directly.** The emitted `.ts` module carries the
23
+ * same contract and the same entry guard, so `aid eval` runs the file with Node, whose
24
+ * type stripping loads it without a build. One thing does not survive that: the generator
25
+ * emits NodeNext `.js` specifiers because the compiled tree needs them, and Node will not
26
+ * rewrite `../deps.js` to `../deps.ts`. `ts-loader.ts` supplies exactly that rewrite, as
27
+ * the `--import` hook of the process, so no `dist/` has to exist first and a project that
28
+ * has one still runs it.
29
+ *
22
30
  * **`--baseline` delegates the sampling.** The gate is statistical (`maxRegression` against
23
31
  * a stored distribution), so a baseline from a single run is noise shaped like a fact. The
24
- * generated module's `run()` already samples the dataset `SAMPLES` times -- the N the spec
25
- * declares -- so recording a baseline calls that, then the runtime's own documented recipe
26
- * (`EvalBaseline.from_run(await run(), model=...).to_json()`, which is literally the string
27
- * in the generated `load_baseline`'s error message). Re-sampling here would invent a second
28
- * N and let the CLI and the module disagree about how many runs a baseline means.
32
+ * generated module's `run()` (or `sample()`) already samples the dataset `SAMPLES` times --
33
+ * the N the spec declares -- so recording a baseline calls that, then the runtime's own
34
+ * documented recipe (`EvalBaseline.fromRun` / `from_run`, which is literally the string in
35
+ * the generated `loadBaseline`'s error message). Re-sampling here would invent a second N
36
+ * and let the CLI and the module disagree about how many runs a baseline means.
29
37
  *
30
- * That recipe is the one place in the CLI that writes Python. It is a script piped to the
31
- * interpreter over stdin rather than an API call because the runtime has no such entry
32
- * point, and it is deliberately short: anything longer would be this layer reimplementing
33
- * the runtime's measurement.
38
+ * Each recipe is the only place in the CLI that writes its language. The Python one is a
39
+ * script piped to the interpreter over stdin, and the Node one a script passed to `-e`,
40
+ * because neither runtime has such an entry point; both are deliberately short, since
41
+ * anything longer would be this layer reimplementing the runtime's measurement.
34
42
  */
35
43
  import type { CliContext } from '../context.js';
36
44
  import type { CommandOutcome } from '../output.js';
@@ -1 +1 @@
1
- {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAIhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAOnD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AA6DD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,GAAG,cAAc,CA0LlF"}
1
+ {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAQH,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,eAAe,CAAC;AAK7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAoBnD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAsFD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,GAAG,cAAc,CA8LlF"}
@@ -19,28 +19,51 @@
19
19
  * assignment says not to modify it. A missing runtime entry point is this layer's problem
20
20
  * to route around, not a reason to change a shipped one.
21
21
  *
22
+ * **A TypeScript target runs its source directly.** The emitted `.ts` module carries the
23
+ * same contract and the same entry guard, so `aid eval` runs the file with Node, whose
24
+ * type stripping loads it without a build. One thing does not survive that: the generator
25
+ * emits NodeNext `.js` specifiers because the compiled tree needs them, and Node will not
26
+ * rewrite `../deps.js` to `../deps.ts`. `ts-loader.ts` supplies exactly that rewrite, as
27
+ * the `--import` hook of the process, so no `dist/` has to exist first and a project that
28
+ * has one still runs it.
29
+ *
22
30
  * **`--baseline` delegates the sampling.** The gate is statistical (`maxRegression` against
23
31
  * a stored distribution), so a baseline from a single run is noise shaped like a fact. The
24
- * generated module's `run()` already samples the dataset `SAMPLES` times -- the N the spec
25
- * declares -- so recording a baseline calls that, then the runtime's own documented recipe
26
- * (`EvalBaseline.from_run(await run(), model=...).to_json()`, which is literally the string
27
- * in the generated `load_baseline`'s error message). Re-sampling here would invent a second
28
- * N and let the CLI and the module disagree about how many runs a baseline means.
32
+ * generated module's `run()` (or `sample()`) already samples the dataset `SAMPLES` times --
33
+ * the N the spec declares -- so recording a baseline calls that, then the runtime's own
34
+ * documented recipe (`EvalBaseline.fromRun` / `from_run`, which is literally the string in
35
+ * the generated `loadBaseline`'s error message). Re-sampling here would invent a second N
36
+ * and let the CLI and the module disagree about how many runs a baseline means.
29
37
  *
30
- * That recipe is the one place in the CLI that writes Python. It is a script piped to the
31
- * interpreter over stdin rather than an API call because the runtime has no such entry
32
- * point, and it is deliberately short: anything longer would be this layer reimplementing
33
- * the runtime's measurement.
38
+ * Each recipe is the only place in the CLI that writes its language. The Python one is a
39
+ * script piped to the interpreter over stdin, and the Node one a script passed to `-e`,
40
+ * because neither runtime has such an entry point; both are deliberately short, since
41
+ * anything longer would be this layer reimplementing the runtime's measurement.
34
42
  */
35
43
  import { existsSync } from 'node:fs';
44
+ import { fileURLToPath } from 'node:url';
36
45
  import { sortDiagnostics } from '@aid-framework/spec';
37
46
  import { CLI_DIAGNOSTIC_CODES, cliError, cliWarning } from '../diagnostics.js';
38
47
  import { EXIT_FAILURE, EXIT_OK, EXIT_USAGE } from '../exit.js';
48
+ import { invokeNode, invokeNodeFile, NODE } from '../node.js';
39
49
  import { outcome } from '../output.js';
40
50
  import { absolutePath } from '../paths.js';
41
51
  import { lowerSpec, readSpec } from '../pipeline.js';
42
52
  import { discoverInterpreter, INTERPRETERS, interpreterCommand, invoke } from '../python.js';
43
53
  import { resolveTarget, unknownTargetDiagnostic } from '../targets.js';
54
+ /**
55
+ * The TypeScript resolve hook, as a URL, because `--import` parses its argument as a
56
+ * specifier: a bare `C:\...` path reads as a `c:` URL scheme.
57
+ *
58
+ * The `.ts` fallback exists for the same reason the hook does -- so this command works
59
+ * from source as well as from `dist/`.
60
+ */
61
+ const TS_LOADER = (() => {
62
+ const compiled = new URL('../ts-loader.js', import.meta.url);
63
+ if (existsSync(fileURLToPath(compiled)))
64
+ return compiled.href;
65
+ return new URL('../ts-loader.ts', import.meta.url).href;
66
+ })();
44
67
  /** Eval ids the spec declares, or the diagnostics that stopped it from declaring any. */
45
68
  function declaredSuites(text, specPath) {
46
69
  const lowered = lowerSpec(text, specPath);
@@ -84,6 +107,30 @@ function baselineScript(modules) {
84
107
  '',
85
108
  ].join('\n');
86
109
  }
110
+ /**
111
+ * The TypeScript baseline recorder, run as `node -e`.
112
+ *
113
+ * It imports each module by absolute URL so the module's own imports resolve from the
114
+ * project tree, and it calls `recordBaseline()` rather than re-deriving a baseline: that
115
+ * function already samples `SAMPLES` times, builds the `EvalBaseline`, and writes the file
116
+ * `loadBaseline()` reads back -- the same constant, so the two cannot disagree.
117
+ */
118
+ function nodeBaselineScript(files) {
119
+ return [
120
+ "import { fileURLToPath, pathToFileURL } from 'node:url';",
121
+ '',
122
+ `const MODULES = ${JSON.stringify(files)};`,
123
+ '',
124
+ 'for (const file of MODULES) {',
125
+ ' const module = await import(pathToFileURL(file).href);',
126
+ " await module.recordBaseline({ note: 'recorded by `aid eval --baseline`' });",
127
+ // Concatenation, not a template literal: the emitted line is a plain string here, and
128
+ // CodeQL (rightly) reads `${fileURLToPath}` inside one as a mistake.
129
+ ' console.log("wrote " + fileURLToPath(module.BASELINE_PATH));',
130
+ '}',
131
+ '',
132
+ ].join('\n');
133
+ }
87
134
  export function evaluate(context, options) {
88
135
  const command = 'eval';
89
136
  const target = resolveTarget(options.target);
@@ -141,44 +188,46 @@ export function evaluate(context, options) {
141
188
  ],
142
189
  });
143
190
  }
144
- if (target.runner !== 'python') {
145
- return outcome({
146
- command,
147
- // Exit 2, not 1: this command has no runner for this target, so no eval ran and
148
- // nothing about the project was judged. `1` would read as "the evals failed".
149
- exitCode: EXIT_USAGE,
150
- fields: { ...fields, suites },
151
- diagnostics: [
152
- cliError({
153
- code: CLI_DIAGNOSTIC_CODES.runnerUnsupported,
154
- message: `\`aid eval\` runs generated Python modules, and ${target.name} emits TypeScript.`,
155
- hint: 'The emitted eval module exports `sample()` and `evaluate(run, baseline)`; run it with Node.',
156
- }),
157
- ],
158
- });
191
+ // A Python target names its module (`app.generated.evals.<id>`, importable from the
192
+ // project root); a Node target names the file, because `process.argv[1]` is how the
193
+ // emitted module knows it is the entry point and should run its gate.
194
+ const modules = suites.map((id) => target.runner === 'node'
195
+ ? absolutePath(context.cwd, target.evalModuleFile(id))
196
+ : target.evalModule(id));
197
+ let driver;
198
+ let runModule;
199
+ let recordBaseline;
200
+ if (target.runner === 'node') {
201
+ driver = NODE;
202
+ runModule = (module) => invokeNodeFile(context, module, { import: TS_LOADER });
203
+ recordBaseline = () => invokeNode(context, nodeBaselineScript(modules), { import: TS_LOADER });
159
204
  }
160
- const interpreter = discoverInterpreter(context);
161
- if (interpreter === undefined) {
162
- return outcome({
163
- command,
164
- // Exit 2, not 1: nothing about the project was judged. The gate has no verdict when
165
- // the thing that would run it cannot start, and `1` would read as "the evals failed".
166
- exitCode: EXIT_USAGE,
167
- fields: { ...fields, suites },
168
- diagnostics: [
169
- cliError({
170
- code: CLI_DIAGNOSTIC_CODES.pythonMissing,
171
- message: `No interpreter could import aid_runtime (tried ${INTERPRETERS.join(', ')}).`,
172
- hint: 'Install the runtime into the interpreter you run with, or run the generated eval modules yourself.',
173
- }),
174
- ],
175
- });
205
+ else {
206
+ const interpreter = discoverInterpreter(context);
207
+ if (interpreter === undefined) {
208
+ return outcome({
209
+ command,
210
+ // Exit 2, not 1: nothing about the project was judged. The gate has no verdict when
211
+ // the thing that would run it cannot start, and `1` would read as "the evals failed".
212
+ exitCode: EXIT_USAGE,
213
+ fields: { ...fields, suites },
214
+ diagnostics: [
215
+ cliError({
216
+ code: CLI_DIAGNOSTIC_CODES.pythonMissing,
217
+ message: `No interpreter could import aid_runtime (tried ${INTERPRETERS.join(', ')}).`,
218
+ hint: 'Install the runtime into the interpreter you run with, or run the generated eval modules yourself.',
219
+ }),
220
+ ],
221
+ });
222
+ }
223
+ driver = interpreter;
224
+ const base = interpreterCommand(interpreter);
225
+ runModule = (module) => invoke(context, [...base, '-m', module]);
226
+ recordBaseline = () => invoke(context, [...base, '-'], baselineScript(modules));
176
227
  }
177
- const modules = suites.map((id) => target.evalModule(id));
178
- const base = interpreterCommand(interpreter);
179
- const common = { ...fields, suites, interpreter };
228
+ const common = { ...fields, suites, driver };
180
229
  if (options.baseline) {
181
- const recorded = invoke(context, [...base, '-'], baselineScript(modules));
230
+ const recorded = recordBaseline();
182
231
  if (recorded === undefined || recorded.status !== 0) {
183
232
  return outcome({
184
233
  command,
@@ -187,7 +236,7 @@ export function evaluate(context, options) {
187
236
  diagnostics: [
188
237
  cliError({
189
238
  code: CLI_DIAGNOSTIC_CODES.runnerFailed,
190
- message: `Could not record a baseline with ${interpreter}.`,
239
+ message: `Could not record a baseline with ${driver}.`,
191
240
  hint: 'Recording a baseline runs the evals, so it needs whatever they need; see the output for why they did not run.',
192
241
  }),
193
242
  ],
@@ -208,7 +257,8 @@ export function evaluate(context, options) {
208
257
  const spoken = [];
209
258
  const diagnostics = [...declared.warnings];
210
259
  for (const [index, module] of modules.entries()) {
211
- const run = invoke(context, [...base, '-m', module]);
260
+ const suite = suites[index] ?? module;
261
+ const run = runModule(module);
212
262
  if (run === undefined) {
213
263
  return outcome({
214
264
  command,
@@ -217,12 +267,11 @@ export function evaluate(context, options) {
217
267
  diagnostics: [
218
268
  cliError({
219
269
  code: CLI_DIAGNOSTIC_CODES.runnerFailed,
220
- message: `Could not start ${interpreter} to run "${module}".`,
270
+ message: `Could not start ${driver} to run "${suite}".`,
221
271
  }),
222
272
  ],
223
273
  });
224
274
  }
225
- const suite = suites[index] ?? module;
226
275
  results.push({ suite, module, status: run.status ?? EXIT_FAILURE });
227
276
  if (run.stdout.trim() !== '')
228
277
  output.push(run.stdout.trimEnd());
@@ -1 +1 @@
1
- {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"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"}
@@ -106,8 +106,9 @@ function summarize(success) {
106
106
  const failed = check
107
107
  ? hasErrors(diagnostics) || pending.length > 0 || report.drifted.length > 0
108
108
  : hasErrors(diagnostics) || (!force && hasDrift(report));
109
+ const discarded = force && !dryRun && !check;
109
110
  const text = [
110
- `${target.name}: ${check ? 'check, ' : dryRun ? 'dry run, ' : ''}${formatRegenerationSummary(report)}`,
111
+ `${target.name}: ${check ? 'check, ' : dryRun ? 'dry run, ' : ''}${formatRegenerationSummary(report, { forced: discarded })}`,
111
112
  ];
112
113
  if (check && pending.length > 0) {
113
114
  text.push('the tree does not match the spec; run `aid gen` and commit the result:');
@@ -117,11 +118,13 @@ function summarize(success) {
117
118
  text.push(...lines('created:', report.created));
118
119
  text.push(...lines('updated:', report.updated));
119
120
  if (report.drifted.length > 0) {
120
- text.push(dryRun || check
121
- ? 'would refuse to overwrite:'
122
- : 'refused to overwrite, the new content is beside it:');
121
+ text.push(discarded
122
+ ? 'rewritten, discarding your edits:'
123
+ : dryRun || check
124
+ ? 'would refuse to overwrite:'
125
+ : 'refused to overwrite, the new content is beside it:');
123
126
  for (const drift of report.drifted) {
124
- text.push(` ${drift.path} -> ${rejectionPath(drift.path)}`);
127
+ text.push(discarded ? ` ${drift.path}` : ` ${drift.path} -> ${rejectionPath(drift.path)}`);
125
128
  }
126
129
  }
127
130
  text.push(...lines('scaffold kept (yours):', report.scaffoldKept));
@@ -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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"}
@@ -3,7 +3,8 @@
3
3
  *
4
4
  * **What is measured, and why it is measured here.** The runtime's `GuardrailEngine` is
5
5
  * the thing that decides whether text is a jailbreak, a secret, or an injection, and the
6
- * generated `generated/guardrails.py` is the table of declarations the routes enforce.
6
+ * table the generator emitted -- `generated/guardrails.py`, or `generated/guardrails.ts`
7
+ * for the TypeScript target -- is the declarations the routes enforce.
7
8
  * This command joins the two and reports, per fixture, whether the table the app actually
8
9
  * shipped caught it. Detection is not reimplemented: a second implementation here would
9
10
  * drift from the one the routes run, and the number it produced would describe the CLI
@@ -32,16 +33,23 @@
32
33
  * line and in the `--json` document.
33
34
  *
34
35
  * **Why nothing is regenerated.** A gate measures the tree it is given, and `aid eval`
35
- * already sets that precedent: this command reads `generated/guardrails.py`, and a tree
36
- * that predates the spec is reported as a missing or stale module rather than silently
36
+ * already sets that precedent: this command reads the emitted table, and a tree that
37
+ * predates the spec is reported as a missing or stale module rather than silently
37
38
  * replaced. Run `aid gen` first, as CI does.
38
39
  *
40
+ * **Two drivers, one join.** Which program imports the table is the target's business,
41
+ * not this command's. A Python target is measured by an interpreter that can import
42
+ * `aid_runtime`, because that is what the emitted module is; a TypeScript target is
43
+ * measured by the Node that is running the CLI, because `aid` is a Node program and the
44
+ * emitted module is TypeScript it loads directly. Both drivers do the same four things --
45
+ * import the table, pick the stage method, turn the verdict into a row, print JSON -- so
46
+ * no part of detection is written twice.
47
+ *
39
48
  * **When it does not run, and what it exits with.** Exit 2 is "this command could not
40
- * judge the project": an unknown target, a target with no driver, a corpus that is
41
- * missing or malformed, or no interpreter that can import the runtime. Exit 1 is a
42
- * verdict about the project: it declares no guardrails, its tree has no guardrail module,
43
- * the run failed, or the measured recall / false-positive rate misses what the corpus
44
- * asks for.
49
+ * judge the project": an unknown target, a corpus that is missing or malformed, or (for a
50
+ * Python target) no interpreter that can import the runtime. Exit 1 is a verdict about the
51
+ * project: it declares no guardrails, its tree has no guardrail module, the run failed, or
52
+ * the measured recall / false-positive rate misses what the corpus asks for.
45
53
  */
46
54
  import type { CliContext } from '../context.js';
47
55
  import type { CommandOutcome } from '../output.js';
@@ -1 +1 @@
1
- {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../src/commands/guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAIhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAOnD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAwZD,wBAAgB,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,cAAc,CAkYhF"}
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../src/commands/guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,eAAe,CAAC;AAK7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAOnD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAydD,wBAAgB,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,cAAc,CAgYhF"}