@cendor/guardrails 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/adapters.d.ts +21 -5
- package/dist/adapters.d.ts.map +1 -1
- package/dist/adapters.js +110 -23
- package/dist/adapters.js.map +1 -1
- package/dist/decision.d.ts +17 -1
- package/dist/decision.d.ts.map +1 -1
- package/dist/decision.js +12 -1
- package/dist/decision.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/intent.d.ts +40 -0
- package/dist/intent.d.ts.map +1 -0
- package/dist/intent.js +118 -0
- package/dist/intent.js.map +1 -0
- package/dist/judge.d.ts +36 -0
- package/dist/judge.d.ts.map +1 -1
- package/dist/judge.js +84 -0
- package/dist/judge.js.map +1 -1
- package/dist/policy.d.ts +9 -0
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +81 -0
- package/dist/policy.js.map +1 -1
- package/dist/presets.d.ts +34 -0
- package/dist/presets.d.ts.map +1 -0
- package/dist/presets.js +65 -0
- package/dist/presets.js.map +1 -0
- package/dist/rules.d.ts +42 -2
- package/dist/rules.d.ts.map +1 -1
- package/dist/rules.js +146 -13
- package/dist/rules.js.map +1 -1
- package/dist/semantic.d.ts +21 -0
- package/dist/semantic.d.ts.map +1 -1
- package/dist/semantic.js +27 -0
- package/dist/semantic.js.map +1 -1
- package/package.json +1 -1
package/dist/semantic.js
CHANGED
|
@@ -68,6 +68,33 @@ export function groundedness(embed, sources, opts = {}) {
|
|
|
68
68
|
};
|
|
69
69
|
return defineGuardrail(check, { name, stage, timeout, onError: resolveOnError(action, onError) });
|
|
70
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Trip when the payload is semantically close to a **custom category** you define by example — the
|
|
73
|
+
* local, `$0` counterpart to Azure Content Safety's *rapid custom categories* (description + examples
|
|
74
|
+
* → embedding search), with no cloud call and no training step. Trips when the payload's max cosine
|
|
75
|
+
* similarity to any example is **at or above** `threshold`, recording `metadata.category` /
|
|
76
|
+
* `metadata.score`; catches paraphrases `keywordDeny` misses. Defaults to `action:'flag'` (a tuned
|
|
77
|
+
* heuristic — calibrate before you block). No catch-rate claim; empty `examples` never trips.
|
|
78
|
+
*
|
|
79
|
+
* `embed(text)` is **bring-your-own** — a local sentence-transformer, a hosted endpoint, or e.g. a
|
|
80
|
+
* transformers.js pipeline. (There is no zero-config `localEmbedder` in TS yet — model2vec is
|
|
81
|
+
* Python-only; parity 🚧.)
|
|
82
|
+
*/
|
|
83
|
+
export function customCategory(category, examples, embed, opts = {}) {
|
|
84
|
+
const { threshold = 0.8, stage = 'input', action = 'flag', name = `custom_category:${category}`, timeout, onError, } = opts;
|
|
85
|
+
const exampleVecs = lazyVectors(embed, [...examples]);
|
|
86
|
+
const check = (payload, _ctx) => {
|
|
87
|
+
const vecs = exampleVecs();
|
|
88
|
+
if (vecs.length === 0)
|
|
89
|
+
return null;
|
|
90
|
+
const query = [...embed(payloadText(payload))];
|
|
91
|
+
const best = vecs.reduce((m, v) => Math.max(m, cosine(query, v)), Number.NEGATIVE_INFINITY);
|
|
92
|
+
if (best < threshold)
|
|
93
|
+
return null;
|
|
94
|
+
return new Verdict(action, `custom category ${JSON.stringify(category)}: sim ${best.toFixed(2)} >= ${threshold}`, null, { category, score: Math.round(best * 1e4) / 1e4 });
|
|
95
|
+
};
|
|
96
|
+
return defineGuardrail(check, { name, stage, timeout, onError: resolveOnError(action, onError) });
|
|
97
|
+
}
|
|
71
98
|
/**
|
|
72
99
|
* Trip when the payload's max cosine similarity to any denied-topic exemplar is **at or above**
|
|
73
100
|
* `threshold` — steer an agent off subjects it must never engage. The reason names the closest topic
|
package/dist/semantic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../src/semantic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../src/semantic.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cendor/guardrails",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "A local-first gate for LLM apps: define a check — keyword, regex, URL, length, JSON-schema — attach it to a stage (input, tool call, tool output, output). Deterministic, microsecond, $0, and every decision is audit-grade evidence.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|