@kindgi/guardrails 0.1.4 → 0.1.5-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAkNhF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,SAAS,eAAe,EAAO,GAAG,aAAa,CAexF;AAED,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,UAAmC,CAAC"}
1
+ {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAiB,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAyThF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,SAAS,eAAe,EAAO,GAAG,aAAa,CAexF;AAED,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,UAAmC,CAAC"}
package/dist/checks.js CHANGED
@@ -1,12 +1,15 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // Copyright (C) 2026 Kindgi Inc.
3
+ import { guardrailConfigProblems } from './config-problems.js';
3
4
  /**
4
5
  * Built-in check library. Every entry is `kind: 'zero-llm'` — pure
5
6
  * functions over the run trace, no external calls, deterministic. See
6
7
  * `judge.ts` for LLM-judge evaluation.
7
8
  *
8
9
  * Adding a new built-in check: implement the function, add it to
9
- * `BUILT_IN_CHECKS`, document its `config` schema in the JSDoc block.
10
+ * `BUILT_IN_CHECKS` with its config's JSON Schema (which also refuses a
11
+ * config it doesn't know: a misspelt setting is never silently ignored),
12
+ * and document it in the JSDoc block.
10
13
  */
11
14
  /**
12
15
  * `must-cite`: assistant output must include at least N matches of the
@@ -199,14 +202,105 @@ const forbiddenSubstring = async (config, trace) => {
199
202
  attributes: { violated },
200
203
  };
201
204
  };
205
+ const nonEmptyStrings = {
206
+ type: 'array',
207
+ minItems: 1,
208
+ items: { type: 'string', minLength: 1 },
209
+ };
210
+ const object = (properties, required = []) => ({
211
+ type: 'object',
212
+ properties,
213
+ ...(required.length > 0 && { required }),
214
+ additionalProperties: false,
215
+ });
216
+ /** Each built-in's config, as JSON Schema: what registration and evaluation check it against. */
217
+ const CONFIG_SCHEMAS = {
218
+ 'must-cite': object({
219
+ minCitations: { type: 'integer', minimum: 1 },
220
+ sourcePattern: { type: 'string', minLength: 1 },
221
+ }),
222
+ 'never-call-tool': object({
223
+ tools: {
224
+ type: 'array',
225
+ minItems: 1,
226
+ items: {
227
+ anyOf: [
228
+ { type: 'string', minLength: 1 },
229
+ {
230
+ type: 'object',
231
+ properties: { id: { type: 'string', minLength: 1 }, version: { type: 'string' } },
232
+ required: ['id'],
233
+ },
234
+ ],
235
+ },
236
+ },
237
+ }, ['tools']),
238
+ 'max-tool-calls': object({ max: { type: 'integer', minimum: 0 } }),
239
+ 'output-matches': object({
240
+ pattern: { type: 'string', minLength: 1 },
241
+ flags: { type: 'string', pattern: '^[dgimsuyv]*$' },
242
+ negate: { type: 'boolean' },
243
+ }, ['pattern']),
244
+ 'tool-order': object({ sequence: nonEmptyStrings }, ['sequence']),
245
+ 'required-substring': object({ patterns: nonEmptyStrings, caseSensitive: { type: 'boolean' } }, [
246
+ 'patterns',
247
+ ]),
248
+ 'forbidden-substring': object({ patterns: nonEmptyStrings, caseSensitive: { type: 'boolean' } }, [
249
+ 'patterns',
250
+ ]),
251
+ };
252
+ /** The settings that are regular expressions, by check: each must compile. */
253
+ const REGEX_SETTINGS = {
254
+ 'must-cite': ['sourcePattern'],
255
+ 'output-matches': ['pattern', 'flags'],
256
+ };
257
+ /** Every way `config` doesn't fit built-in `id`: its schema's problems, then a regex that won't compile. */
258
+ function builtInConfigProblems(id, config) {
259
+ const schema = CONFIG_SCHEMAS[id];
260
+ const problems = guardrailConfigProblems({ configSchema: schema, config });
261
+ if (problems.length > 0)
262
+ return problems;
263
+ const regex = REGEX_SETTINGS[id];
264
+ if (regex === undefined)
265
+ return [];
266
+ const [patternKey, flagsKey] = regex;
267
+ const settings = (config ?? {});
268
+ const pattern = settings[patternKey];
269
+ if (typeof pattern !== 'string')
270
+ return [];
271
+ const flags = flagsKey !== undefined ? settings[flagsKey] : undefined;
272
+ try {
273
+ new RegExp(pattern, typeof flags === 'string' ? flags : '');
274
+ return [];
275
+ }
276
+ catch (error) {
277
+ return [
278
+ {
279
+ path: `/config/${patternKey}`,
280
+ message: `config.${patternKey} isn't a regular expression that compiles: ${error.message}.`,
281
+ },
282
+ ];
283
+ }
284
+ }
285
+ function builtIn(id, evaluate) {
286
+ const configProblems = (config) => builtInConfigProblems(id, config);
287
+ return {
288
+ id,
289
+ kind: 'zero-llm',
290
+ evaluate,
291
+ configSchema: CONFIG_SCHEMAS[id],
292
+ configProblems,
293
+ validateConfig: (config) => configProblems(config)[0]?.message,
294
+ };
295
+ }
202
296
  const BUILT_IN_CHECKS = [
203
- { id: 'must-cite', kind: 'zero-llm', evaluate: mustCite },
204
- { id: 'never-call-tool', kind: 'zero-llm', evaluate: neverCallTool },
205
- { id: 'max-tool-calls', kind: 'zero-llm', evaluate: maxToolCalls },
206
- { id: 'output-matches', kind: 'zero-llm', evaluate: outputMatches },
207
- { id: 'tool-order', kind: 'zero-llm', evaluate: toolOrder },
208
- { id: 'required-substring', kind: 'zero-llm', evaluate: requiredSubstring },
209
- { id: 'forbidden-substring', kind: 'zero-llm', evaluate: forbiddenSubstring },
297
+ builtIn('must-cite', mustCite),
298
+ builtIn('never-call-tool', neverCallTool),
299
+ builtIn('max-tool-calls', maxToolCalls),
300
+ builtIn('output-matches', outputMatches),
301
+ builtIn('tool-order', toolOrder),
302
+ builtIn('required-substring', requiredSubstring),
303
+ builtIn('forbidden-substring', forbiddenSubstring),
210
304
  ];
211
305
  /**
212
306
  * Create a fresh CheckRegistry pre-populated with built-in checks.
@@ -1 +1 @@
1
- {"version":3,"file":"checks.js","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checks.js","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * One way a guardrail's config doesn't fit its check: `path` is a JSON
3
+ * pointer into the guardrail (`/config/maxChars`, `/config` at the root),
4
+ * `message` the setting and what it takes (`config.maxChars must be > 0.`).
5
+ * The shape of `details.issues` in an API error, as the provider check's
6
+ * (`provider-config-invalid`); `describeGuardrailConfigProblems` words the
7
+ * error's message.
8
+ */
9
+ export interface GuardrailConfigProblem {
10
+ readonly path: string;
11
+ readonly message: string;
12
+ }
13
+ export interface GuardrailConfigProblemsInput {
14
+ /** The config schema of the check the guardrail names (JSON Schema Draft 2020-12). */
15
+ readonly configSchema: Readonly<Record<string, unknown>>;
16
+ /** The guardrail's config; absent is checked as `{}`. */
17
+ readonly config: unknown;
18
+ }
19
+ /**
20
+ * Every way `config` doesn't fit `configSchema`, checked as declared (the
21
+ * schema's defaults not filled in, as the indexer and the pack service
22
+ * check it). Empty when it fits, and when the schema doesn't compile: that
23
+ * is the pack's to fix, and its pack service refuses every call already.
24
+ */
25
+ export declare function guardrailConfigProblems(input: GuardrailConfigProblemsInput): readonly GuardrailConfigProblem[];
26
+ /**
27
+ * An error message for `problems`, one sentence as the provider check's:
28
+ * the guardrail, the check, the first problem and how many more
29
+ * (`Guardrail "acme.strict" doesn't fit check "my-pack.checks.answer-length":
30
+ * config.maxChars must be > 0 (and 1 more).`). A CLI prints it before each
31
+ * problem's line.
32
+ */
33
+ export declare function describeGuardrailConfigProblems(input: {
34
+ readonly guardrailId: string;
35
+ readonly check: string;
36
+ }, problems: readonly GuardrailConfigProblem[]): string;
37
+ //# sourceMappingURL=config-problems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-problems.d.ts","sourceRoot":"","sources":["../src/config-problems.ts"],"names":[],"mappings":"AAsBA;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA4B;IAC3C,sFAAsF;IACtF,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAMD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,GAClC,SAAS,sBAAsB,EAAE,CAOnC;AAWD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAC/D,QAAQ,EAAE,SAAS,sBAAsB,EAAE,GAC1C,MAAM,CAMR"}
@@ -0,0 +1,74 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ import * as addFormatsModule from 'ajv-formats';
4
+ import { Ajv2020 } from 'ajv/dist/2020.js';
5
+ const addFormatsRaw = addFormatsModule;
6
+ const addFormats = typeof addFormatsRaw === 'function'
7
+ ? addFormatsRaw
8
+ : addFormatsRaw.default;
9
+ /** Compiled validators by schema, oldest first. */
10
+ const compiled = new Map();
11
+ const MAX_COMPILED = 256;
12
+ /**
13
+ * Every way `config` doesn't fit `configSchema`, checked as declared (the
14
+ * schema's defaults not filled in, as the indexer and the pack service
15
+ * check it). Empty when it fits, and when the schema doesn't compile: that
16
+ * is the pack's to fix, and its pack service refuses every call already.
17
+ */
18
+ export function guardrailConfigProblems(input) {
19
+ const validate = validatorFor(input.configSchema);
20
+ if (validate === null || validate(input.config ?? {}))
21
+ return [];
22
+ return (validate.errors ?? []).map((issue) => {
23
+ const path = `/config${issue.instancePath}`;
24
+ return { path, message: `${settingName(path)} ${issue.message ?? 'is invalid'}.` };
25
+ });
26
+ }
27
+ /** `/config/rules/0/pattern` → `config.rules.0.pattern`, as a message names it. */
28
+ function settingName(pointer) {
29
+ return pointer
30
+ .slice(1)
31
+ .split('/')
32
+ .map((step) => step.replaceAll('~1', '/').replaceAll('~0', '~'))
33
+ .join('.');
34
+ }
35
+ /**
36
+ * An error message for `problems`, one sentence as the provider check's:
37
+ * the guardrail, the check, the first problem and how many more
38
+ * (`Guardrail "acme.strict" doesn't fit check "my-pack.checks.answer-length":
39
+ * config.maxChars must be > 0 (and 1 more).`). A CLI prints it before each
40
+ * problem's line.
41
+ */
42
+ export function describeGuardrailConfigProblems(input, problems) {
43
+ const first = problems[0];
44
+ const head = `Guardrail "${input.guardrailId}"`;
45
+ if (first === undefined)
46
+ return `${head} fits check "${input.check}".`;
47
+ const more = problems.length > 1 ? ` (and ${problems.length - 1} more)` : '';
48
+ return `${head} doesn't fit check "${input.check}": ${first.message.replace(/\.$/, '')}${more}.`;
49
+ }
50
+ function validatorFor(schema) {
51
+ const key = JSON.stringify(schema);
52
+ const cached = compiled.get(key);
53
+ if (cached !== undefined)
54
+ return cached;
55
+ let validate;
56
+ try {
57
+ // Not strict: a schema keyword Ajv doesn't know (a generator's
58
+ // annotation) mustn't stop the check of the keywords it does.
59
+ const ajv = new Ajv2020({ strict: false, allErrors: true });
60
+ addFormats(ajv);
61
+ validate = ajv.compile(schema);
62
+ }
63
+ catch {
64
+ validate = null;
65
+ }
66
+ if (compiled.size >= MAX_COMPILED) {
67
+ const oldest = compiled.keys().next().value;
68
+ if (oldest !== undefined)
69
+ compiled.delete(oldest);
70
+ }
71
+ compiled.set(key, validate);
72
+ return validate;
73
+ }
74
+ //# sourceMappingURL=config-problems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-problems.js","sourceRoot":"","sources":["../src/config-problems.ts"],"names":[],"mappings":"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"}
package/dist/define.d.ts CHANGED
@@ -24,4 +24,10 @@ export declare function defineGuardrail(spec: Guardrail, checks: CheckRegistry):
24
24
  export declare function validateGuardrailSpec(spec: unknown): Result<Guardrail, InvalidGuardrailError>;
25
25
  /** The `$id` of the JSON Schema this loader validates against. */
26
26
  export declare const GUARDRAIL_SCHEMA_URI = "https://kindgi.com/schemas/v1/guardrail.schema.json";
27
+ /**
28
+ * The fields a guardrail spec may carry (`guardrail.schema.json`'s properties). A reader that
29
+ * builds a spec from a source a newer version may extend (a pack index) keeps only these, so a
30
+ * field it doesn't know never fails the spec; a direct registration stays strict.
31
+ */
32
+ export declare const GUARDRAIL_SPEC_KEYS: readonly string[];
27
33
  //# sourceMappingURL=define.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAe3D;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,aAAa,GACpB,MAAM,CAAC,SAAS,EAAE,qBAAqB,GAAG,iBAAiB,GAAG,uBAAuB,CAAC,CA4DxF;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC,CA8B7F;AAED,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,wDAAsB,CAAC"}
1
+ {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAe3D;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,aAAa,GACpB,MAAM,CAAC,SAAS,EAAE,qBAAqB,GAAG,iBAAiB,GAAG,uBAAuB,CAAC,CA4DxF;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC,CA8B7F;AAED,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,wDAAsB,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAA4C,CAAC"}
package/dist/define.js CHANGED
@@ -123,4 +123,10 @@ export function validateGuardrailSpec(spec) {
123
123
  }
124
124
  /** The `$id` of the JSON Schema this loader validates against. */
125
125
  export const GUARDRAIL_SCHEMA_URI = GUARDRAIL_SCHEMA_ID;
126
+ /**
127
+ * The fields a guardrail spec may carry (`guardrail.schema.json`'s properties). A reader that
128
+ * builds a spec from a source a newer version may extend (a pack index) keeps only these, so a
129
+ * field it doesn't know never fails the spec; a direct registration stays strict.
130
+ */
131
+ export const GUARDRAIL_SPEC_KEYS = Object.keys(guardrailSchema.properties);
126
132
  //# sourceMappingURL=define.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EACL,KAAK,iBAAiB,EAMvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EACV,aAAa,EAEb,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,QAAQ,EAET,MAAM,YAAY,CAAC;AAqBpB,qFAAqF;AACrF,wBAAgB,iBAAiB,IAAI,SAAS,iBAAiB,EAAE,CAEhE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,iBAAiB,CAAA;CAAE,CAAC;AAEjF,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,QAAQ,EACf,QAAQ,GAAE,kBAAuB,GAChC,OAAO,CAAC,iBAAiB,CAAC,CA0G5B;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,SAAS,SAAS,EAAE,EAChC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,QAAQ,EACf,QAAQ,GAAE,kBAAuB,GAChC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAEvC;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,gBAAgB,EAAE,CAM9F"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EACL,KAAK,iBAAiB,EAMvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EACV,aAAa,EAEb,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,QAAQ,EAET,MAAM,YAAY,CAAC;AAqBpB,qFAAqF;AACrF,wBAAgB,iBAAiB,IAAI,SAAS,iBAAiB,EAAE,CAEhE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,iBAAiB,CAAA;CAAE,CAAC;AAEjF,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,QAAQ,EACf,QAAQ,GAAE,kBAAuB,GAChC,OAAO,CAAC,iBAAiB,CAAC,CA0H5B;AAUD;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,SAAS,SAAS,EAAE,EAChC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,QAAQ,EACf,QAAQ,GAAE,kBAAuB,GAChC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAEvC;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,gBAAgB,EAAE,CAM9F"}
package/dist/engine.js CHANGED
@@ -42,7 +42,25 @@ export async function evaluateGuardrail(guardrail, checks, trace, bindings = {})
42
42
  },
43
43
  };
44
44
  }
45
- const strategyOutcome = await strategy.evaluate(guardrail, checks, trace, bindings);
45
+ let strategyOutcome;
46
+ try {
47
+ strategyOutcome = await strategy.evaluate(guardrail, checks, trace, bindings);
48
+ }
49
+ catch (thrown) {
50
+ // The turn was cancelled: that propagates as it is. Anything else the check threw is the
51
+ // check failing, which the caller treats as a check that couldn't run (a `halt` guardrail
52
+ // fails closed), never as a pass and never as the turn's own error.
53
+ if (bindings.abortSignal?.aborted === true)
54
+ throw thrown;
55
+ return {
56
+ kind: 'err',
57
+ error: {
58
+ code: 'check-failed',
59
+ message: `guardrail "${guardrail.id}": its check threw: ${thrownMessage(thrown)}`,
60
+ guardrailId: guardrail.id,
61
+ },
62
+ };
63
+ }
46
64
  if (strategyOutcome.kind === 'err') {
47
65
  const err = strategyOutcome.error;
48
66
  return {
@@ -124,6 +142,13 @@ export async function evaluateGuardrail(guardrail, checks, trace, bindings = {})
124
142
  }
125
143
  return { kind: 'ok', value: evaluation };
126
144
  }
145
+ /** What a check threw, as one bounded line: the message, never the stack. */
146
+ function thrownMessage(thrown) {
147
+ const raw = thrown instanceof Error ? thrown.message : String(thrown);
148
+ const line = raw.replace(/\s+/g, ' ').trim();
149
+ return line.length > THROWN_MESSAGE_MAX ? `${line.slice(0, THROWN_MESSAGE_MAX)}…` : line;
150
+ }
151
+ const THROWN_MESSAGE_MAX = 500;
127
152
  /**
128
153
  * Evaluate every guardrail in the list against a trace. Order-independent —
129
154
  * each check is a pure function over the trace. Returns one outcome per
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -3,7 +3,7 @@ import type { GuardrailId } from '@kindgi/types';
3
3
  * Errors emitted by @kindgi/guardrails. Every variant carries a `code`
4
4
  * for pattern matching; messages are human-readable, not API contract.
5
5
  */
6
- export type GuardrailError = InvalidGuardrailError | InvalidCheckDefinitionError | UnknownCheckError | InvalidCheckConfigError | JudgeMissingError | JudgeRoutingError | JudgeUsageError | ScopeMismatchError | UnknownActionError;
6
+ export type GuardrailError = InvalidGuardrailError | InvalidCheckDefinitionError | UnknownCheckError | InvalidCheckConfigError | JudgeMissingError | JudgeRoutingError | JudgeUsageError | ScopeMismatchError | UnknownActionError | CheckFailedError;
7
7
  /**
8
8
  * The judge model couldn't be routed via `@kindgi/capabilities`. Wraps
9
9
  * the underlying capability error (usually `capability-unsatisfiable` —
@@ -43,6 +43,16 @@ export interface InvalidGuardrailError {
43
43
  readonly message: string;
44
44
  }[];
45
45
  }
46
+ /**
47
+ * The check ran and threw: pack code that crashed, a pack service that couldn't be reached, a
48
+ * judge that failed. `message` is what it threw, bounded, with no stack. A cancelled turn isn't
49
+ * this: its abort propagates as it is.
50
+ */
51
+ export interface CheckFailedError {
52
+ readonly code: 'check-failed';
53
+ readonly message: string;
54
+ readonly guardrailId: GuardrailId;
55
+ }
46
56
  /** The guardrail references a check id that isn't registered. */
47
57
  export interface UnknownCheckError {
48
58
  readonly code: 'unknown-check';
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,qBAAqB,GACrB,2BAA2B,GAC3B,iBAAiB,GACjB,uBAAuB,GACvB,iBAAiB,GACjB,iBAAiB,GACjB,eAAe,GACf,kBAAkB,GAClB,kBAAkB,CAAC;AAEvB;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACjF;AAED,iEAAiE;AACjE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,iEAAiE;AACjE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,cAAc,CAAC;CAC/E"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"execution-strategy.d.ts","sourceRoot":"","sources":["../src/execution-strategy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CACN,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjF,uEAAuE;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC5C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACjD,IAAI,IAAI,SAAS,iBAAiB,EAAE,CAAC;CACtC;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,GAAE,SAAS,iBAAiB,EAAO,GACtC,yBAAyB,CAc3B;AAID,yEAAyE;AACzE,eAAO,MAAM,eAAe,EAAE,iBAkB7B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBAmB9B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,CACX,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,kBAAkB,EAC5B,WAAW,CAAC,EAAE,MAAM,KACjB,OAAO,CACV,WAAW,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CACtF,GACA,iBAAiB,CA+BnB"}
1
+ {"version":3,"file":"execution-strategy.d.ts","sourceRoot":"","sources":["../src/execution-strategy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CACN,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjF,uEAAuE;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC5C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACjD,IAAI,IAAI,SAAS,iBAAiB,EAAE,CAAC;CACtC;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,GAAE,SAAS,iBAAiB,EAAO,GACtC,yBAAyB,CAc3B;AAID,yEAAyE;AACzE,eAAO,MAAM,eAAe,EAAE,iBAgC7B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBAmB9B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,CACX,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,kBAAkB,EAC5B,WAAW,CAAC,EAAE,MAAM,KACjB,OAAO,CACV,WAAW,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CACtF,GACA,iBAAiB,CA+BnB"}
@@ -33,6 +33,20 @@ export const zeroLlmStrategy = {
33
33
  };
34
34
  }
35
35
  const config = (guardrail.config ?? {});
36
+ // A config the check refuses is a check that can't run, never a pass: a misspelt setting
37
+ // mustn't silently disable the rule (`never-call-tool` with no list forbade nothing).
38
+ const problems = check.configProblems?.(config);
39
+ const refused = problems !== undefined ? problems[0]?.message : check.validateConfig?.(config);
40
+ if (refused !== undefined) {
41
+ return {
42
+ kind: 'err',
43
+ error: {
44
+ code: 'invalid-check-config',
45
+ message: `Guardrail "${guardrail.id}"'s config doesn't fit check "${guardrail.check}": ${refused}`,
46
+ ...(problems !== undefined && problems.length > 0 && { issues: problems }),
47
+ },
48
+ };
49
+ }
36
50
  const result = await check.evaluate(config, trace, bindings);
37
51
  return { kind: 'ok', value: result };
38
52
  },
@@ -1 +1 @@
1
- {"version":3,"file":"execution-strategy.js","sourceRoot":"","sources":["../src/execution-strategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution-strategy.js","sourceRoot":"","sources":["../src/execution-strategy.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,10 @@
37
37
  "additionalProperties": true,
38
38
  "description": "Check-specific configuration. Interpreted by the check implementation."
39
39
  },
40
+ "configSchema": {
41
+ "type": "object",
42
+ "description": "JSON Schema (Draft 2020-12) of the check's config, for a check that is pack code: the pack index's `configSchema`, which a deployment keeps on the guardrails it registers. The runtime checks a guardrail's `config` against it at registration, for any guardrail naming that check, and the pack service checks it on every call. Optional; a runtime-declaration field like `codeArtifactRef`."
43
+ },
40
44
  "action": {
41
45
  "$ref": "#/$defs/Action"
42
46
  },
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
- export { GUARDRAIL_SCHEMA_URI, defineGuardrail, validateGuardrailSpec } from './define.js';
1
+ export { GUARDRAIL_SCHEMA_URI, GUARDRAIL_SPEC_KEYS, defineGuardrail, validateGuardrailSpec, } from './define.js';
2
2
  export { defineCheck } from './define-check.js';
3
+ export { describeGuardrailConfigProblems, guardrailConfigProblems } from './config-problems.js';
4
+ export type { GuardrailConfigProblem, GuardrailConfigProblemsInput } from './config-problems.js';
3
5
  export type { DefineCheckSpec, DefinedCheck, InferCheckConfig } from './define-check.js';
4
6
  export { BUILT_IN_CHECK_IDS, createCheckRegistry } from './checks.js';
5
7
  export { BUILT_IN_ACTION_HANDLERS, compensateHandler, createActionHandlerRegistry, escalateHandler, haltHandler, logOnlyHandler, noopHandler, retryHandler, } from './action-handler.js';
@@ -12,5 +14,5 @@ export { JUDGE_THINKING_TOKENS, JUDGE_VERDICT_TOKENS, invokeJudge } from './judg
12
14
  export type { LlmJudgeConfig } from './judge.js';
13
15
  export type { Action, Budget, BuiltInGuardrailKind, BuiltInOnViolation, CheckFunction, CheckRegistry, CheckResult, CodeArtifactRef, EvaluationBindings, EvaluationResult, Guardrail, GuardrailKind, GuardrailSeverity, JsonSchema, ModelCallRecord, NetworkPolicy, OnViolation, RegisteredCheck, RunTrace, RuntimeLimits, SandboxMode, Scope, ScopeWhen, ToolCallRecord, ToolResultRecord, TypedNeeds, } from './types.js';
14
16
  export { BUILT_IN_GUARDRAIL_KINDS, BUILT_IN_ON_VIOLATIONS } from './types.js';
15
- export type { InvalidCheckConfigError, InvalidCheckDefinitionError, InvalidGuardrailError, GuardrailError, JudgeMissingError, JudgeRoutingError, JudgeUsageError, ScopeMismatchError, UnknownActionError, UnknownCheckError, } from './errors.js';
17
+ export type { CheckFailedError, InvalidCheckConfigError, InvalidCheckDefinitionError, InvalidGuardrailError, GuardrailError, JudgeMissingError, JudgeRoutingError, JudgeUsageError, ScopeMismatchError, UnknownActionError, UnknownCheckError, } from './errors.js';
16
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,eAAe,EACf,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5F,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,+BAA+B,EAC/B,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtF,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EACV,MAAM,EACN,MAAM,EACN,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACX,eAAe,EACf,QAAQ,EACR,aAAa,EACb,WAAW,EACX,KAAK,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC9E,YAAY,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAChG,YAAY,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACjG,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,eAAe,EACf,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5F,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,+BAA+B,EAC/B,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtF,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EACV,MAAM,EACN,MAAM,EACN,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACX,eAAe,EACf,QAAQ,EACR,aAAa,EACb,WAAW,EACX,KAAK,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC9E,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // Copyright (C) 2026 Kindgi Inc.
3
- export { GUARDRAIL_SCHEMA_URI, defineGuardrail, validateGuardrailSpec } from './define.js';
3
+ export { GUARDRAIL_SCHEMA_URI, GUARDRAIL_SPEC_KEYS, defineGuardrail, validateGuardrailSpec, } from './define.js';
4
4
  export { defineCheck } from './define-check.js';
5
+ export { describeGuardrailConfigProblems, guardrailConfigProblems } from './config-problems.js';
5
6
  export { BUILT_IN_CHECK_IDS, createCheckRegistry } from './checks.js';
6
7
  export { BUILT_IN_ACTION_HANDLERS, compensateHandler, createActionHandlerRegistry, escalateHandler, haltHandler, logOnlyHandler, noopHandler, retryHandler, } from './action-handler.js';
7
8
  export { builtInStrategies, evaluateAll, evaluateGuardrail, violations } from './engine.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,eAAe,EACf,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,GACb,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5F,OAAO,EACL,+BAA+B,EAC/B,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAOjC,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA8BtF,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGhG,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,eAAe,EACf,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,GACb,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5F,OAAO,EACL,+BAA+B,EAC/B,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAOjC,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA8BtF,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { Capability, ModelProvider, ProviderRegistry, TenantPolicy, UsageSink } from '@kindgi/capabilities';
2
2
  import type { ComplianceProvider } from '@kindgi/compliance';
3
3
  import type { AgentId, FlowId, GuardrailId, OrgId, ProjectId, RunId, TenantId, Timestamp, ToolId } from '@kindgi/types';
4
+ import type { GuardrailConfigProblem } from './config-problems.js';
4
5
  /**
5
6
  * How a guardrail is checked. Open string — the engine dispatches
6
7
  * on this value through an `ExecutionStrategyRegistry`. Built-in kinds
@@ -225,6 +226,14 @@ export interface Guardrail {
225
226
  * check handler bytes. Absent for in-process declarations.
226
227
  */
227
228
  readonly codeArtifactRef?: CodeArtifactRef;
229
+ /**
230
+ * JSON Schema of the check's `config`, for a check that is pack code:
231
+ * the pack index's `configSchema`, kept by a deployment on the
232
+ * guardrails it registers. A runtime checks any guardrail naming this
233
+ * check against it at registration (`guardrailConfigProblems`), as the
234
+ * pack service does on every call.
235
+ */
236
+ readonly configSchema?: Readonly<Record<string, unknown>>;
228
237
  }
229
238
  /**
230
239
  * Recorded events from a run that checks operate on. Callers materialize
@@ -406,6 +415,13 @@ export interface RegisteredCheck {
406
415
  readonly kind: GuardrailKind;
407
416
  readonly evaluate: CheckFunction;
408
417
  readonly validateConfig?: (config: unknown) => string | undefined;
418
+ /** The check's config as JSON Schema (Draft 2020-12), when it publishes one (the built-ins do). */
419
+ readonly configSchema?: Readonly<Record<string, unknown>>;
420
+ /**
421
+ * Every way a guardrail's `config` doesn't fit this check, as an API answer's issues (paths
422
+ * under `/config`): what registration refuses up front. `validateConfig` words the first.
423
+ */
424
+ readonly configProblems?: (config: unknown) => readonly GuardrailConfigProblem[];
409
425
  }
410
426
  /**
411
427
  * Registry mapping check id → implementation. Built-in checks are
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAqCjC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAU,CAAC;AAiBvF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,MAAM;IACN,OAAO;IACP,UAAU;IACV,UAAU;IACV,YAAY;CACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAsCjC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAU,CAAC;AAiBvF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,MAAM;IACN,OAAO;IACP,UAAU;IACV,UAAU;IACV,YAAY;CACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kindgi/guardrails",
3
- "version": "0.1.4",
3
+ "version": "0.1.5-rc.0",
4
4
  "description": "Runtime + CI enforcement of agent-behavior guardrails for Kindgi. Same declaration runs at runtime (halt / retry / escalate / log-only / compensate on violation) and in CI (fails the build) — no drift between test and prod. Zero-LLM checks (must-cite, never-call-tool, max-tool-calls, output-matches, tool-order, required-substring, forbidden-substring) are the default fast path; LLM-judge guardrails route via @kindgi/capabilities with explicit budget declarations. Execution strategies and action handlers are pluggable registries, and failed checks optionally emit compliance evidence.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -30,10 +30,10 @@
30
30
  "type-manifest.json"
31
31
  ],
32
32
  "dependencies": {
33
- "@kindgi/capabilities": "0.1.4",
34
- "@kindgi/compliance": "0.1.4",
35
- "@kindgi/schema": "0.1.4",
36
- "@kindgi/types": "0.1.4",
33
+ "@kindgi/capabilities": "0.1.5-rc.0",
34
+ "@kindgi/compliance": "0.1.5-rc.0",
35
+ "@kindgi/schema": "0.1.5-rc.0",
36
+ "@kindgi/types": "0.1.5-rc.0",
37
37
  "ajv": "^8.17.1",
38
38
  "ajv-formats": "^3.0.1"
39
39
  },
@@ -46,7 +46,7 @@
46
46
  }
47
47
  },
48
48
  "devDependencies": {
49
- "@kindgi/specs": "0.1.4",
49
+ "@kindgi/specs": "0.1.5-rc.0",
50
50
  "@types/node": "^22.10.5",
51
51
  "typescript": "^5.7.3",
52
52
  "vitest": "^2.1.8",
package/src/checks.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // Copyright (C) 2026 Kindgi Inc.
3
3
 
4
+ import { type GuardrailConfigProblem, guardrailConfigProblems } from './config-problems.js';
4
5
  import type { CheckFunction, CheckRegistry, RegisteredCheck } from './types.js';
5
6
 
6
7
  /**
@@ -9,7 +10,9 @@ import type { CheckFunction, CheckRegistry, RegisteredCheck } from './types.js';
9
10
  * `judge.ts` for LLM-judge evaluation.
10
11
  *
11
12
  * Adding a new built-in check: implement the function, add it to
12
- * `BUILT_IN_CHECKS`, document its `config` schema in the JSDoc block.
13
+ * `BUILT_IN_CHECKS` with its config's JSON Schema (which also refuses a
14
+ * config it doesn't know: a misspelt setting is never silently ignored),
15
+ * and document it in the JSDoc block.
13
16
  */
14
17
 
15
18
  /**
@@ -201,14 +204,115 @@ const forbiddenSubstring: CheckFunction = async (config, trace) => {
201
204
  };
202
205
  };
203
206
 
207
+ const nonEmptyStrings = {
208
+ type: 'array',
209
+ minItems: 1,
210
+ items: { type: 'string', minLength: 1 },
211
+ } as const;
212
+ const object = (
213
+ properties: Record<string, unknown>,
214
+ required: readonly string[] = [],
215
+ ): Readonly<Record<string, unknown>> => ({
216
+ type: 'object',
217
+ properties,
218
+ ...(required.length > 0 && { required }),
219
+ additionalProperties: false,
220
+ });
221
+
222
+ /** Each built-in's config, as JSON Schema: what registration and evaluation check it against. */
223
+ const CONFIG_SCHEMAS: Readonly<Record<string, Readonly<Record<string, unknown>>>> = {
224
+ 'must-cite': object({
225
+ minCitations: { type: 'integer', minimum: 1 },
226
+ sourcePattern: { type: 'string', minLength: 1 },
227
+ }),
228
+ 'never-call-tool': object(
229
+ {
230
+ tools: {
231
+ type: 'array',
232
+ minItems: 1,
233
+ items: {
234
+ anyOf: [
235
+ { type: 'string', minLength: 1 },
236
+ {
237
+ type: 'object',
238
+ properties: { id: { type: 'string', minLength: 1 }, version: { type: 'string' } },
239
+ required: ['id'],
240
+ },
241
+ ],
242
+ },
243
+ },
244
+ },
245
+ ['tools'],
246
+ ),
247
+ 'max-tool-calls': object({ max: { type: 'integer', minimum: 0 } }),
248
+ 'output-matches': object(
249
+ {
250
+ pattern: { type: 'string', minLength: 1 },
251
+ flags: { type: 'string', pattern: '^[dgimsuyv]*$' },
252
+ negate: { type: 'boolean' },
253
+ },
254
+ ['pattern'],
255
+ ),
256
+ 'tool-order': object({ sequence: nonEmptyStrings }, ['sequence']),
257
+ 'required-substring': object({ patterns: nonEmptyStrings, caseSensitive: { type: 'boolean' } }, [
258
+ 'patterns',
259
+ ]),
260
+ 'forbidden-substring': object({ patterns: nonEmptyStrings, caseSensitive: { type: 'boolean' } }, [
261
+ 'patterns',
262
+ ]),
263
+ };
264
+
265
+ /** The settings that are regular expressions, by check: each must compile. */
266
+ const REGEX_SETTINGS: Readonly<Record<string, readonly [pattern: string, flags?: string]>> = {
267
+ 'must-cite': ['sourcePattern'],
268
+ 'output-matches': ['pattern', 'flags'],
269
+ };
270
+
271
+ /** Every way `config` doesn't fit built-in `id`: its schema's problems, then a regex that won't compile. */
272
+ function builtInConfigProblems(id: string, config: unknown): readonly GuardrailConfigProblem[] {
273
+ const schema = CONFIG_SCHEMAS[id] as Readonly<Record<string, unknown>>;
274
+ const problems = guardrailConfigProblems({ configSchema: schema, config });
275
+ if (problems.length > 0) return problems;
276
+ const regex = REGEX_SETTINGS[id];
277
+ if (regex === undefined) return [];
278
+ const [patternKey, flagsKey] = regex;
279
+ const settings = (config ?? {}) as Record<string, unknown>;
280
+ const pattern = settings[patternKey];
281
+ if (typeof pattern !== 'string') return [];
282
+ const flags = flagsKey !== undefined ? settings[flagsKey] : undefined;
283
+ try {
284
+ new RegExp(pattern, typeof flags === 'string' ? flags : '');
285
+ return [];
286
+ } catch (error) {
287
+ return [
288
+ {
289
+ path: `/config/${patternKey}`,
290
+ message: `config.${patternKey} isn't a regular expression that compiles: ${(error as Error).message}.`,
291
+ },
292
+ ];
293
+ }
294
+ }
295
+
296
+ function builtIn(id: string, evaluate: CheckFunction): RegisteredCheck {
297
+ const configProblems = (config: unknown) => builtInConfigProblems(id, config);
298
+ return {
299
+ id,
300
+ kind: 'zero-llm',
301
+ evaluate,
302
+ configSchema: CONFIG_SCHEMAS[id] as Readonly<Record<string, unknown>>,
303
+ configProblems,
304
+ validateConfig: (config) => configProblems(config)[0]?.message,
305
+ };
306
+ }
307
+
204
308
  const BUILT_IN_CHECKS: readonly RegisteredCheck[] = [
205
- { id: 'must-cite', kind: 'zero-llm', evaluate: mustCite },
206
- { id: 'never-call-tool', kind: 'zero-llm', evaluate: neverCallTool },
207
- { id: 'max-tool-calls', kind: 'zero-llm', evaluate: maxToolCalls },
208
- { id: 'output-matches', kind: 'zero-llm', evaluate: outputMatches },
209
- { id: 'tool-order', kind: 'zero-llm', evaluate: toolOrder },
210
- { id: 'required-substring', kind: 'zero-llm', evaluate: requiredSubstring },
211
- { id: 'forbidden-substring', kind: 'zero-llm', evaluate: forbiddenSubstring },
309
+ builtIn('must-cite', mustCite),
310
+ builtIn('never-call-tool', neverCallTool),
311
+ builtIn('max-tool-calls', maxToolCalls),
312
+ builtIn('output-matches', outputMatches),
313
+ builtIn('tool-order', toolOrder),
314
+ builtIn('required-substring', requiredSubstring),
315
+ builtIn('forbidden-substring', forbiddenSubstring),
212
316
  ];
213
317
 
214
318
  /**
@@ -0,0 +1,111 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+
4
+ /**
5
+ * A guardrail's `config` against the `configSchema` of the check it names,
6
+ * as issues for an API answer. A runtime calls it when a guardrail is
7
+ * registered (`POST /v1/guardrails`), with the schema of the pack check
8
+ * the guardrail names, so a config the pack service would refuse on every
9
+ * call is refused up front instead.
10
+ */
11
+
12
+ import type { ValidateFunction } from 'ajv';
13
+ import * as addFormatsModule from 'ajv-formats';
14
+ import { Ajv2020 } from 'ajv/dist/2020.js';
15
+
16
+ type AddFormatsFn = (ajv: InstanceType<typeof Ajv2020>, opts?: unknown) => unknown;
17
+ const addFormatsRaw = addFormatsModule as unknown;
18
+ const addFormats: AddFormatsFn =
19
+ typeof addFormatsRaw === 'function'
20
+ ? (addFormatsRaw as AddFormatsFn)
21
+ : (addFormatsRaw as { default: AddFormatsFn }).default;
22
+
23
+ /**
24
+ * One way a guardrail's config doesn't fit its check: `path` is a JSON
25
+ * pointer into the guardrail (`/config/maxChars`, `/config` at the root),
26
+ * `message` the setting and what it takes (`config.maxChars must be > 0.`).
27
+ * The shape of `details.issues` in an API error, as the provider check's
28
+ * (`provider-config-invalid`); `describeGuardrailConfigProblems` words the
29
+ * error's message.
30
+ */
31
+ export interface GuardrailConfigProblem {
32
+ readonly path: string;
33
+ readonly message: string;
34
+ }
35
+
36
+ export interface GuardrailConfigProblemsInput {
37
+ /** The config schema of the check the guardrail names (JSON Schema Draft 2020-12). */
38
+ readonly configSchema: Readonly<Record<string, unknown>>;
39
+ /** The guardrail's config; absent is checked as `{}`. */
40
+ readonly config: unknown;
41
+ }
42
+
43
+ /** Compiled validators by schema, oldest first. */
44
+ const compiled = new Map<string, ValidateFunction | null>();
45
+ const MAX_COMPILED = 256;
46
+
47
+ /**
48
+ * Every way `config` doesn't fit `configSchema`, checked as declared (the
49
+ * schema's defaults not filled in, as the indexer and the pack service
50
+ * check it). Empty when it fits, and when the schema doesn't compile: that
51
+ * is the pack's to fix, and its pack service refuses every call already.
52
+ */
53
+ export function guardrailConfigProblems(
54
+ input: GuardrailConfigProblemsInput,
55
+ ): readonly GuardrailConfigProblem[] {
56
+ const validate = validatorFor(input.configSchema);
57
+ if (validate === null || validate(input.config ?? {})) return [];
58
+ return (validate.errors ?? []).map((issue) => {
59
+ const path = `/config${issue.instancePath}`;
60
+ return { path, message: `${settingName(path)} ${issue.message ?? 'is invalid'}.` };
61
+ });
62
+ }
63
+
64
+ /** `/config/rules/0/pattern` → `config.rules.0.pattern`, as a message names it. */
65
+ function settingName(pointer: string): string {
66
+ return pointer
67
+ .slice(1)
68
+ .split('/')
69
+ .map((step) => step.replaceAll('~1', '/').replaceAll('~0', '~'))
70
+ .join('.');
71
+ }
72
+
73
+ /**
74
+ * An error message for `problems`, one sentence as the provider check's:
75
+ * the guardrail, the check, the first problem and how many more
76
+ * (`Guardrail "acme.strict" doesn't fit check "my-pack.checks.answer-length":
77
+ * config.maxChars must be > 0 (and 1 more).`). A CLI prints it before each
78
+ * problem's line.
79
+ */
80
+ export function describeGuardrailConfigProblems(
81
+ input: { readonly guardrailId: string; readonly check: string },
82
+ problems: readonly GuardrailConfigProblem[],
83
+ ): string {
84
+ const first = problems[0];
85
+ const head = `Guardrail "${input.guardrailId}"`;
86
+ if (first === undefined) return `${head} fits check "${input.check}".`;
87
+ const more = problems.length > 1 ? ` (and ${problems.length - 1} more)` : '';
88
+ return `${head} doesn't fit check "${input.check}": ${first.message.replace(/\.$/, '')}${more}.`;
89
+ }
90
+
91
+ function validatorFor(schema: Readonly<Record<string, unknown>>): ValidateFunction | null {
92
+ const key = JSON.stringify(schema);
93
+ const cached = compiled.get(key);
94
+ if (cached !== undefined) return cached;
95
+ let validate: ValidateFunction | null;
96
+ try {
97
+ // Not strict: a schema keyword Ajv doesn't know (a generator's
98
+ // annotation) mustn't stop the check of the keywords it does.
99
+ const ajv = new Ajv2020({ strict: false, allErrors: true });
100
+ addFormats(ajv);
101
+ validate = ajv.compile(schema as object);
102
+ } catch {
103
+ validate = null;
104
+ }
105
+ if (compiled.size >= MAX_COMPILED) {
106
+ const oldest = compiled.keys().next().value;
107
+ if (oldest !== undefined) compiled.delete(oldest);
108
+ }
109
+ compiled.set(key, validate);
110
+ return validate;
111
+ }
package/src/define.ts CHANGED
@@ -144,3 +144,10 @@ export function validateGuardrailSpec(spec: unknown): Result<Guardrail, InvalidG
144
144
 
145
145
  /** The `$id` of the JSON Schema this loader validates against. */
146
146
  export const GUARDRAIL_SCHEMA_URI = GUARDRAIL_SCHEMA_ID;
147
+
148
+ /**
149
+ * The fields a guardrail spec may carry (`guardrail.schema.json`'s properties). A reader that
150
+ * builds a spec from a source a newer version may extend (a pack index) keeps only these, so a
151
+ * field it doesn't know never fails the spec; a direct registration stays strict.
152
+ */
153
+ export const GUARDRAIL_SPEC_KEYS: readonly string[] = Object.keys(guardrailSchema.properties);
package/src/engine.ts CHANGED
@@ -99,7 +99,23 @@ export async function evaluateGuardrail(
99
99
  },
100
100
  };
101
101
  }
102
- const strategyOutcome = await strategy.evaluate(guardrail, checks, trace, bindings);
102
+ let strategyOutcome: Awaited<ReturnType<typeof strategy.evaluate>>;
103
+ try {
104
+ strategyOutcome = await strategy.evaluate(guardrail, checks, trace, bindings);
105
+ } catch (thrown) {
106
+ // The turn was cancelled: that propagates as it is. Anything else the check threw is the
107
+ // check failing, which the caller treats as a check that couldn't run (a `halt` guardrail
108
+ // fails closed), never as a pass and never as the turn's own error.
109
+ if (bindings.abortSignal?.aborted === true) throw thrown;
110
+ return {
111
+ kind: 'err',
112
+ error: {
113
+ code: 'check-failed',
114
+ message: `guardrail "${guardrail.id}": its check threw: ${thrownMessage(thrown)}`,
115
+ guardrailId: guardrail.id,
116
+ },
117
+ };
118
+ }
103
119
  if (strategyOutcome.kind === 'err') {
104
120
  const err = strategyOutcome.error;
105
121
  return {
@@ -186,6 +202,14 @@ export async function evaluateGuardrail(
186
202
  return { kind: 'ok', value: evaluation };
187
203
  }
188
204
 
205
+ /** What a check threw, as one bounded line: the message, never the stack. */
206
+ function thrownMessage(thrown: unknown): string {
207
+ const raw = thrown instanceof Error ? thrown.message : String(thrown);
208
+ const line = raw.replace(/\s+/g, ' ').trim();
209
+ return line.length > THROWN_MESSAGE_MAX ? `${line.slice(0, THROWN_MESSAGE_MAX)}…` : line;
210
+ }
211
+ const THROWN_MESSAGE_MAX = 500;
212
+
189
213
  /**
190
214
  * Evaluate every guardrail in the list against a trace. Order-independent —
191
215
  * each check is a pure function over the trace. Returns one outcome per
package/src/errors.ts CHANGED
@@ -16,7 +16,8 @@ export type GuardrailError =
16
16
  | JudgeRoutingError
17
17
  | JudgeUsageError
18
18
  | ScopeMismatchError
19
- | UnknownActionError;
19
+ | UnknownActionError
20
+ | CheckFailedError;
20
21
 
21
22
  /**
22
23
  * The judge model couldn't be routed via `@kindgi/capabilities`. Wraps
@@ -57,6 +58,17 @@ export interface InvalidGuardrailError {
57
58
  readonly issues: readonly { readonly path: string; readonly message: string }[];
58
59
  }
59
60
 
61
+ /**
62
+ * The check ran and threw: pack code that crashed, a pack service that couldn't be reached, a
63
+ * judge that failed. `message` is what it threw, bounded, with no stack. A cancelled turn isn't
64
+ * this: its abort propagates as it is.
65
+ */
66
+ export interface CheckFailedError {
67
+ readonly code: 'check-failed';
68
+ readonly message: string;
69
+ readonly guardrailId: GuardrailId;
70
+ }
71
+
60
72
  /** The guardrail references a check id that isn't registered. */
61
73
  export interface UnknownCheckError {
62
74
  readonly code: 'unknown-check';
@@ -105,6 +105,20 @@ export const zeroLlmStrategy: ExecutionStrategy = {
105
105
  };
106
106
  }
107
107
  const config = (guardrail.config ?? {}) as Readonly<Record<string, unknown>>;
108
+ // A config the check refuses is a check that can't run, never a pass: a misspelt setting
109
+ // mustn't silently disable the rule (`never-call-tool` with no list forbade nothing).
110
+ const problems = check.configProblems?.(config);
111
+ const refused = problems !== undefined ? problems[0]?.message : check.validateConfig?.(config);
112
+ if (refused !== undefined) {
113
+ return {
114
+ kind: 'err',
115
+ error: {
116
+ code: 'invalid-check-config',
117
+ message: `Guardrail "${guardrail.id}"'s config doesn't fit check "${guardrail.check}": ${refused}`,
118
+ ...(problems !== undefined && problems.length > 0 && { issues: problems }),
119
+ },
120
+ };
121
+ }
108
122
  const result = await check.evaluate(config, trace, bindings);
109
123
  return { kind: 'ok', value: result };
110
124
  },
@@ -37,6 +37,10 @@
37
37
  "additionalProperties": true,
38
38
  "description": "Check-specific configuration. Interpreted by the check implementation."
39
39
  },
40
+ "configSchema": {
41
+ "type": "object",
42
+ "description": "JSON Schema (Draft 2020-12) of the check's config, for a check that is pack code: the pack index's `configSchema`, which a deployment keeps on the guardrails it registers. The runtime checks a guardrail's `config` against it at registration, for any guardrail naming that check, and the pack service checks it on every call. Optional; a runtime-declaration field like `codeArtifactRef`."
43
+ },
40
44
  "action": {
41
45
  "$ref": "#/$defs/Action"
42
46
  },
package/src/index.ts CHANGED
@@ -1,8 +1,15 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // Copyright (C) 2026 Kindgi Inc.
3
3
 
4
- export { GUARDRAIL_SCHEMA_URI, defineGuardrail, validateGuardrailSpec } from './define.js';
4
+ export {
5
+ GUARDRAIL_SCHEMA_URI,
6
+ GUARDRAIL_SPEC_KEYS,
7
+ defineGuardrail,
8
+ validateGuardrailSpec,
9
+ } from './define.js';
5
10
  export { defineCheck } from './define-check.js';
11
+ export { describeGuardrailConfigProblems, guardrailConfigProblems } from './config-problems.js';
12
+ export type { GuardrailConfigProblem, GuardrailConfigProblemsInput } from './config-problems.js';
6
13
  export type { DefineCheckSpec, DefinedCheck, InferCheckConfig } from './define-check.js';
7
14
  export { BUILT_IN_CHECK_IDS, createCheckRegistry } from './checks.js';
8
15
  export {
@@ -67,6 +74,7 @@ export type {
67
74
  } from './types.js';
68
75
  export { BUILT_IN_GUARDRAIL_KINDS, BUILT_IN_ON_VIOLATIONS } from './types.js';
69
76
  export type {
77
+ CheckFailedError,
70
78
  InvalidCheckConfigError,
71
79
  InvalidCheckDefinitionError,
72
80
  InvalidGuardrailError,
package/src/types.ts CHANGED
@@ -20,6 +20,7 @@ import type {
20
20
  Timestamp,
21
21
  ToolId,
22
22
  } from '@kindgi/types';
23
+ import type { GuardrailConfigProblem } from './config-problems.js';
23
24
 
24
25
  /**
25
26
  * How a guardrail is checked. Open string — the engine dispatches
@@ -262,6 +263,14 @@ export interface Guardrail {
262
263
  * check handler bytes. Absent for in-process declarations.
263
264
  */
264
265
  readonly codeArtifactRef?: CodeArtifactRef;
266
+ /**
267
+ * JSON Schema of the check's `config`, for a check that is pack code:
268
+ * the pack index's `configSchema`, kept by a deployment on the
269
+ * guardrails it registers. A runtime checks any guardrail naming this
270
+ * check against it at registration (`guardrailConfigProblems`), as the
271
+ * pack service does on every call.
272
+ */
273
+ readonly configSchema?: Readonly<Record<string, unknown>>;
265
274
  }
266
275
 
267
276
  /**
@@ -456,6 +465,13 @@ export interface RegisteredCheck {
456
465
  readonly kind: GuardrailKind;
457
466
  readonly evaluate: CheckFunction;
458
467
  readonly validateConfig?: (config: unknown) => string | undefined;
468
+ /** The check's config as JSON Schema (Draft 2020-12), when it publishes one (the built-ins do). */
469
+ readonly configSchema?: Readonly<Record<string, unknown>>;
470
+ /**
471
+ * Every way a guardrail's `config` doesn't fit this check, as an API answer's issues (paths
472
+ * under `/config`): what registration refuses up front. `validateConfig` words the first.
473
+ */
474
+ readonly configProblems?: (config: unknown) => readonly GuardrailConfigProblem[];
459
475
  }
460
476
 
461
477
  /**