truthguard-ai 0.1.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.

Potentially problematic release.


This version of truthguard-ai might be problematic. Click here for more details.

Files changed (199) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +363 -0
  3. package/dist/Advisor/index.d.ts +78 -0
  4. package/dist/Advisor/index.d.ts.map +1 -0
  5. package/dist/Advisor/index.js +539 -0
  6. package/dist/Advisor/index.js.map +1 -0
  7. package/dist/Alerting/index.d.ts +35 -0
  8. package/dist/Alerting/index.d.ts.map +1 -0
  9. package/dist/Alerting/index.js +76 -0
  10. package/dist/Alerting/index.js.map +1 -0
  11. package/dist/Auth/index.d.ts +82 -0
  12. package/dist/Auth/index.d.ts.map +1 -0
  13. package/dist/Auth/index.js +242 -0
  14. package/dist/Auth/index.js.map +1 -0
  15. package/dist/Baseline/index.d.ts +43 -0
  16. package/dist/Baseline/index.d.ts.map +1 -0
  17. package/dist/Baseline/index.js +195 -0
  18. package/dist/Baseline/index.js.map +1 -0
  19. package/dist/Claims/index.d.ts +73 -0
  20. package/dist/Claims/index.d.ts.map +1 -0
  21. package/dist/Claims/index.js +1669 -0
  22. package/dist/Claims/index.js.map +1 -0
  23. package/dist/Client/index.d.ts +90 -0
  24. package/dist/Client/index.d.ts.map +1 -0
  25. package/dist/Client/index.js +186 -0
  26. package/dist/Client/index.js.map +1 -0
  27. package/dist/Config/index.d.ts +41 -0
  28. package/dist/Config/index.d.ts.map +1 -0
  29. package/dist/Config/index.js +129 -0
  30. package/dist/Config/index.js.map +1 -0
  31. package/dist/Coverage/index.d.ts +28 -0
  32. package/dist/Coverage/index.d.ts.map +1 -0
  33. package/dist/Coverage/index.js +134 -0
  34. package/dist/Coverage/index.js.map +1 -0
  35. package/dist/Demo/index.d.ts +16 -0
  36. package/dist/Demo/index.d.ts.map +1 -0
  37. package/dist/Demo/index.js +189 -0
  38. package/dist/Demo/index.js.map +1 -0
  39. package/dist/Gate/index.d.ts +39 -0
  40. package/dist/Gate/index.d.ts.map +1 -0
  41. package/dist/Gate/index.js +207 -0
  42. package/dist/Gate/index.js.map +1 -0
  43. package/dist/Grounding/index.d.ts +40 -0
  44. package/dist/Grounding/index.d.ts.map +1 -0
  45. package/dist/Grounding/index.js +1433 -0
  46. package/dist/Grounding/index.js.map +1 -0
  47. package/dist/L2/index.d.ts +93 -0
  48. package/dist/L2/index.d.ts.map +1 -0
  49. package/dist/L2/index.js +1773 -0
  50. package/dist/L2/index.js.map +1 -0
  51. package/dist/MCP/index.d.ts +139 -0
  52. package/dist/MCP/index.d.ts.map +1 -0
  53. package/dist/MCP/index.js +1250 -0
  54. package/dist/MCP/index.js.map +1 -0
  55. package/dist/Matchers/index.d.ts +101 -0
  56. package/dist/Matchers/index.d.ts.map +1 -0
  57. package/dist/Matchers/index.js +690 -0
  58. package/dist/Matchers/index.js.map +1 -0
  59. package/dist/Middleware/index.d.ts +146 -0
  60. package/dist/Middleware/index.d.ts.map +1 -0
  61. package/dist/Middleware/index.js +239 -0
  62. package/dist/Middleware/index.js.map +1 -0
  63. package/dist/Mode/index.d.ts +87 -0
  64. package/dist/Mode/index.d.ts.map +1 -0
  65. package/dist/Mode/index.js +117 -0
  66. package/dist/Mode/index.js.map +1 -0
  67. package/dist/Policy/index.d.ts +89 -0
  68. package/dist/Policy/index.d.ts.map +1 -0
  69. package/dist/Policy/index.js +143 -0
  70. package/dist/Policy/index.js.map +1 -0
  71. package/dist/Proxy/SessionStore.d.ts +94 -0
  72. package/dist/Proxy/SessionStore.d.ts.map +1 -0
  73. package/dist/Proxy/SessionStore.js +225 -0
  74. package/dist/Proxy/SessionStore.js.map +1 -0
  75. package/dist/Proxy/index.d.ts +166 -0
  76. package/dist/Proxy/index.d.ts.map +1 -0
  77. package/dist/Proxy/index.js +531 -0
  78. package/dist/Proxy/index.js.map +1 -0
  79. package/dist/Registry/index.d.ts +93 -0
  80. package/dist/Registry/index.d.ts.map +1 -0
  81. package/dist/Registry/index.js +818 -0
  82. package/dist/Registry/index.js.map +1 -0
  83. package/dist/Reports/index.d.ts +38 -0
  84. package/dist/Reports/index.d.ts.map +1 -0
  85. package/dist/Reports/index.js +149 -0
  86. package/dist/Reports/index.js.map +1 -0
  87. package/dist/Rules/index.d.ts +587 -0
  88. package/dist/Rules/index.d.ts.map +1 -0
  89. package/dist/Rules/index.js +6236 -0
  90. package/dist/Rules/index.js.map +1 -0
  91. package/dist/Rules/intents.d.ts +22 -0
  92. package/dist/Rules/intents.d.ts.map +1 -0
  93. package/dist/Rules/intents.js +242 -0
  94. package/dist/Rules/intents.js.map +1 -0
  95. package/dist/Runner/index.d.ts +39 -0
  96. package/dist/Runner/index.d.ts.map +1 -0
  97. package/dist/Runner/index.js +185 -0
  98. package/dist/Runner/index.js.map +1 -0
  99. package/dist/SDK/anthropic.d.ts +102 -0
  100. package/dist/SDK/anthropic.d.ts.map +1 -0
  101. package/dist/SDK/anthropic.js +425 -0
  102. package/dist/SDK/anthropic.js.map +1 -0
  103. package/dist/SDK/openai.d.ts +164 -0
  104. package/dist/SDK/openai.d.ts.map +1 -0
  105. package/dist/SDK/openai.js +557 -0
  106. package/dist/SDK/openai.js.map +1 -0
  107. package/dist/Store/index.d.ts +72 -0
  108. package/dist/Store/index.d.ts.map +1 -0
  109. package/dist/Store/index.js +136 -0
  110. package/dist/Store/index.js.map +1 -0
  111. package/dist/Telemetry/index.d.ts +84 -0
  112. package/dist/Telemetry/index.d.ts.map +1 -0
  113. package/dist/Telemetry/index.js +239 -0
  114. package/dist/Telemetry/index.js.map +1 -0
  115. package/dist/Trace/index.d.ts +219 -0
  116. package/dist/Trace/index.d.ts.map +1 -0
  117. package/dist/Trace/index.js +763 -0
  118. package/dist/Trace/index.js.map +1 -0
  119. package/dist/TraceReadiness/index.d.ts +42 -0
  120. package/dist/TraceReadiness/index.d.ts.map +1 -0
  121. package/dist/TraceReadiness/index.js +169 -0
  122. package/dist/TraceReadiness/index.js.map +1 -0
  123. package/dist/cli/index.d.ts +15 -0
  124. package/dist/cli/index.d.ts.map +1 -0
  125. package/dist/cli/index.js +807 -0
  126. package/dist/cli/index.js.map +1 -0
  127. package/dist/i18n/index.d.ts +44 -0
  128. package/dist/i18n/index.d.ts.map +1 -0
  129. package/dist/i18n/index.js +124 -0
  130. package/dist/i18n/index.js.map +1 -0
  131. package/dist/index.d.ts +55 -0
  132. package/dist/index.d.ts.map +1 -0
  133. package/dist/index.js +218 -0
  134. package/dist/index.js.map +1 -0
  135. package/dist/thin.d.ts +39 -0
  136. package/dist/thin.d.ts.map +1 -0
  137. package/dist/thin.js +120 -0
  138. package/dist/thin.js.map +1 -0
  139. package/dist/types/index.d.ts +498 -0
  140. package/dist/types/index.d.ts.map +1 -0
  141. package/dist/types/index.js +17 -0
  142. package/dist/types/index.js.map +1 -0
  143. package/dist-npm/Alerting/index.d.ts +35 -0
  144. package/dist-npm/Alerting/index.d.ts.map +1 -0
  145. package/dist-npm/Alerting/index.js +76 -0
  146. package/dist-npm/Alerting/index.js.map +1 -0
  147. package/dist-npm/Auth/index.d.ts +82 -0
  148. package/dist-npm/Auth/index.d.ts.map +1 -0
  149. package/dist-npm/Auth/index.js +242 -0
  150. package/dist-npm/Auth/index.js.map +1 -0
  151. package/dist-npm/Client/index.d.ts +90 -0
  152. package/dist-npm/Client/index.d.ts.map +1 -0
  153. package/dist-npm/Client/index.js +186 -0
  154. package/dist-npm/Client/index.js.map +1 -0
  155. package/dist-npm/Demo/index.d.ts +16 -0
  156. package/dist-npm/Demo/index.d.ts.map +1 -0
  157. package/dist-npm/Demo/index.js +189 -0
  158. package/dist-npm/Demo/index.js.map +1 -0
  159. package/dist-npm/Middleware/index.d.ts +146 -0
  160. package/dist-npm/Middleware/index.d.ts.map +1 -0
  161. package/dist-npm/Middleware/index.js +239 -0
  162. package/dist-npm/Middleware/index.js.map +1 -0
  163. package/dist-npm/Proxy/SessionStore.d.ts +94 -0
  164. package/dist-npm/Proxy/SessionStore.d.ts.map +1 -0
  165. package/dist-npm/Proxy/SessionStore.js +225 -0
  166. package/dist-npm/Proxy/SessionStore.js.map +1 -0
  167. package/dist-npm/Proxy/index.d.ts +166 -0
  168. package/dist-npm/Proxy/index.d.ts.map +1 -0
  169. package/dist-npm/Proxy/index.js +531 -0
  170. package/dist-npm/Proxy/index.js.map +1 -0
  171. package/dist-npm/SDK/anthropic.d.ts +102 -0
  172. package/dist-npm/SDK/anthropic.d.ts.map +1 -0
  173. package/dist-npm/SDK/anthropic.js +425 -0
  174. package/dist-npm/SDK/anthropic.js.map +1 -0
  175. package/dist-npm/SDK/openai.d.ts +164 -0
  176. package/dist-npm/SDK/openai.d.ts.map +1 -0
  177. package/dist-npm/SDK/openai.js +557 -0
  178. package/dist-npm/SDK/openai.js.map +1 -0
  179. package/dist-npm/Store/index.d.ts +72 -0
  180. package/dist-npm/Store/index.d.ts.map +1 -0
  181. package/dist-npm/Store/index.js +136 -0
  182. package/dist-npm/Store/index.js.map +1 -0
  183. package/dist-npm/Telemetry/index.d.ts +84 -0
  184. package/dist-npm/Telemetry/index.d.ts.map +1 -0
  185. package/dist-npm/Telemetry/index.js +239 -0
  186. package/dist-npm/Telemetry/index.js.map +1 -0
  187. package/dist-npm/Trace/index.d.ts +219 -0
  188. package/dist-npm/Trace/index.d.ts.map +1 -0
  189. package/dist-npm/Trace/index.js +763 -0
  190. package/dist-npm/Trace/index.js.map +1 -0
  191. package/dist-npm/thin.d.ts +39 -0
  192. package/dist-npm/thin.d.ts.map +1 -0
  193. package/dist-npm/thin.js +120 -0
  194. package/dist-npm/thin.js.map +1 -0
  195. package/dist-npm/types/index.d.ts +498 -0
  196. package/dist-npm/types/index.d.ts.map +1 -0
  197. package/dist-npm/types/index.js +17 -0
  198. package/dist-npm/types/index.js.map +1 -0
  199. package/package.json +114 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Matchers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * ai-rcp Express Middleware
3
+ *
4
+ * Drop-in middleware that intercepts AI agent responses and runs them
5
+ * through the grounding pipeline before they reach the user.
6
+ *
7
+ * Supports all five modes:
8
+ * debug — logs verdicts to console, passes response through
9
+ * ci — not applicable to middleware (use CLI)
10
+ * observe — persists trace+report, passes response through
11
+ * warn — observe + dispatches alerts when score < threshold
12
+ * block — warn + replaces response with fallback when score < threshold
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import express from 'express';
17
+ * import { groundingMiddleware } from 'ai-rcp/middleware';
18
+ * import { FileStore } from 'ai-rcp';
19
+ *
20
+ * const app = express();
21
+ *
22
+ * app.post('/api/chat', groundingMiddleware({
23
+ * mode: 'block',
24
+ * threshold: 0.9,
25
+ * store: new FileStore('./traces/grounding.jsonl'),
26
+ * extractTrace: (req, res, body) => body.trace,
27
+ * extractResponse: (req, res, body) => body.response,
28
+ * rewriteBody: (body, fallback) => ({ ...body, response: fallback, blocked: true }),
29
+ * }));
30
+ * ```
31
+ */
32
+ import type { Request, Response, NextFunction } from 'express';
33
+ import type { Trace, GroundingReport } from '../types';
34
+ import type { TruthGuardClient } from '../Client';
35
+ /** Operating mode. */
36
+ type MiddlewareMode = 'observe' | 'warn' | 'block' | 'debug' | 'ci';
37
+ /** Result from evaluation (thin-client compatible). */
38
+ interface MiddlewarePipelineResult {
39
+ report: GroundingReport;
40
+ allowed: boolean;
41
+ fallbackResponse?: string;
42
+ }
43
+ export interface GroundingMiddlewareOptions {
44
+ /** Operating mode. Default: 'observe'. */
45
+ mode?: MiddlewareMode;
46
+ /** Score threshold for block/warn decisions. Default: 0.75. */
47
+ threshold?: number;
48
+ /**
49
+ * TruthGuard client for remote evaluation (thin-client mode).
50
+ * When provided, traces are sent to the server for evaluation.
51
+ * When omitted, falls back to local Pipeline evaluation (server-side only).
52
+ */
53
+ client?: TruthGuardClient;
54
+ /**
55
+ * Local Pipeline instance for server-side evaluation.
56
+ * Only used when `client` is not provided.
57
+ * @internal
58
+ */
59
+ _pipeline?: {
60
+ evaluate(trace: Trace): Promise<MiddlewarePipelineResult>;
61
+ };
62
+ /**
63
+ * Extract the Trace from the request/response cycle.
64
+ * Called AFTER the downstream handler has finished.
65
+ *
66
+ * The `body` parameter contains the parsed response body
67
+ * (intercepted before being sent to the client).
68
+ */
69
+ extractTrace: (req: Request, res: Response, body: unknown) => Trace | null | undefined;
70
+ /**
71
+ * Extract a Trace even when the downstream handler throws an error.
72
+ */
73
+ extractTraceFromError?: (req: Request, res: Response, error: unknown) => Trace | null | undefined;
74
+ /**
75
+ * Extract the AI response text from the body for logging/debugging.
76
+ * Optional — used for debug mode output.
77
+ */
78
+ extractResponse?: (req: Request, res: Response, body: unknown) => string;
79
+ /**
80
+ * Rewrite the response body when the response is blocked or annotated.
81
+ * Only used in block mode. Return the new body to send to the client.
82
+ */
83
+ rewriteBody?: (body: unknown, fallbackMessage: string, report: GroundingReport) => unknown;
84
+ /**
85
+ * Header name to include the grounding score in the response.
86
+ * Set to null to disable. Default: 'X-Grounding-Score'.
87
+ */
88
+ scoreHeader?: string | null;
89
+ /**
90
+ * Callback fired after every evaluation (all modes).
91
+ */
92
+ onEvaluate?: (report: GroundingReport, trace: Trace) => void;
93
+ /** Store for persistence (used in local pipeline mode). */
94
+ store?: unknown;
95
+ /** Alert dispatchers (used in local pipeline mode). */
96
+ alerters?: unknown[];
97
+ /** Policy (used in local pipeline mode). */
98
+ policy?: unknown;
99
+ /** Tolerance overrides (used in local pipeline mode). */
100
+ tolerances?: unknown;
101
+ }
102
+ /**
103
+ * Creates an Express middleware that evaluates grounding on every response.
104
+ */
105
+ export declare function groundingMiddleware(options: GroundingMiddlewareOptions): (req: Request, res: Response, next: NextFunction) => void;
106
+ /**
107
+ * Express error-handling middleware that evaluates grounding even when
108
+ * the downstream handler throws (e.g., AI API rate limit, timeout).
109
+ *
110
+ * Register this AFTER your routes but BEFORE your generic error handler:
111
+ *
112
+ * @example
113
+ * ```ts
114
+ * app.post('/api/chat', chatHandler);
115
+ * app.use(groundingErrorHandler({
116
+ * extractTraceFromError: (req, _res, error) => buildTraceFromContext(req, error),
117
+ * mode: 'observe',
118
+ * store: new FileStore('./traces.jsonl'),
119
+ * }));
120
+ * ```
121
+ */
122
+ export declare function groundingErrorHandler(options: Pick<GroundingMiddlewareOptions, 'mode' | 'store' | 'threshold' | 'policy' | 'client' | '_pipeline' | 'extractTraceFromError' | 'onEvaluate'>): (err: unknown, req: Request, res: Response, next: NextFunction) => void;
123
+ /**
124
+ * Evaluate a trace and get the pipeline result directly.
125
+ * Use this when you're not using Express (e.g., Fastify, Hono, custom server).
126
+ *
127
+ * @example
128
+ * ```ts
129
+ * import { evaluate } from 'ai-rcp/middleware';
130
+ *
131
+ * const result = await evaluate(trace, {
132
+ * mode: 'block',
133
+ * threshold: 0.9,
134
+ * client: new TruthGuardClient({ apiKey: 'tg_xxx' }),
135
+ * });
136
+ *
137
+ * if (!result.allowed) {
138
+ * return res.json({ error: result.fallbackResponse });
139
+ * }
140
+ * ```
141
+ */
142
+ export declare function evaluate(trace: Trace, options: Omit<GroundingMiddlewareOptions, 'extractTrace'> & {
143
+ mode?: MiddlewareMode;
144
+ }): Promise<MiddlewarePipelineResult>;
145
+ export {};
146
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Middleware/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ /**
3
+ * ai-rcp Express Middleware
4
+ *
5
+ * Drop-in middleware that intercepts AI agent responses and runs them
6
+ * through the grounding pipeline before they reach the user.
7
+ *
8
+ * Supports all five modes:
9
+ * debug — logs verdicts to console, passes response through
10
+ * ci — not applicable to middleware (use CLI)
11
+ * observe — persists trace+report, passes response through
12
+ * warn — observe + dispatches alerts when score < threshold
13
+ * block — warn + replaces response with fallback when score < threshold
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import express from 'express';
18
+ * import { groundingMiddleware } from 'ai-rcp/middleware';
19
+ * import { FileStore } from 'ai-rcp';
20
+ *
21
+ * const app = express();
22
+ *
23
+ * app.post('/api/chat', groundingMiddleware({
24
+ * mode: 'block',
25
+ * threshold: 0.9,
26
+ * store: new FileStore('./traces/grounding.jsonl'),
27
+ * extractTrace: (req, res, body) => body.trace,
28
+ * extractResponse: (req, res, body) => body.response,
29
+ * rewriteBody: (body, fallback) => ({ ...body, response: fallback, blocked: true }),
30
+ * }));
31
+ * ```
32
+ */
33
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
34
+ if (k2 === undefined) k2 = k;
35
+ var desc = Object.getOwnPropertyDescriptor(m, k);
36
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
37
+ desc = { enumerable: true, get: function() { return m[k]; } };
38
+ }
39
+ Object.defineProperty(o, k2, desc);
40
+ }) : (function(o, m, k, k2) {
41
+ if (k2 === undefined) k2 = k;
42
+ o[k2] = m[k];
43
+ }));
44
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
45
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
46
+ }) : function(o, v) {
47
+ o["default"] = v;
48
+ });
49
+ var __importStar = (this && this.__importStar) || (function () {
50
+ var ownKeys = function(o) {
51
+ ownKeys = Object.getOwnPropertyNames || function (o) {
52
+ var ar = [];
53
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
54
+ return ar;
55
+ };
56
+ return ownKeys(o);
57
+ };
58
+ return function (mod) {
59
+ if (mod && mod.__esModule) return mod;
60
+ var result = {};
61
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
62
+ __setModuleDefault(result, mod);
63
+ return result;
64
+ };
65
+ })();
66
+ Object.defineProperty(exports, "__esModule", { value: true });
67
+ exports.groundingMiddleware = groundingMiddleware;
68
+ exports.groundingErrorHandler = groundingErrorHandler;
69
+ exports.evaluate = evaluate;
70
+ // ---------------------------------------------------------------------------
71
+ // Response interceptor helper
72
+ // ---------------------------------------------------------------------------
73
+ /**
74
+ * Monkey-patches res.json() to intercept the response body before it's sent.
75
+ * Calls the callback with the body, allowing mutation before sending.
76
+ */
77
+ function interceptJson(res, callback) {
78
+ const originalJson = res.json.bind(res);
79
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
80
+ res.json = function interceptedJson(body) {
81
+ // We need to handle this async but Express doesn't support async res.json
82
+ // So we intercept synchronously and queue the async work
83
+ callback(body)
84
+ .then((newBody) => {
85
+ originalJson(newBody);
86
+ })
87
+ .catch((err) => {
88
+ console.error('[TruthGuard middleware] Error during evaluation:', err);
89
+ originalJson(body); // Pass through on error
90
+ });
91
+ return res;
92
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
93
+ };
94
+ }
95
+ function buildMiddlewareEvaluator(options, mode) {
96
+ if (options.client) {
97
+ const client = options.client;
98
+ const threshold = options.threshold;
99
+ return async (trace) => {
100
+ const result = await client.evaluate(trace, { mode, threshold });
101
+ options.onEvaluate?.(result.report, trace);
102
+ return result;
103
+ };
104
+ }
105
+ if (options._pipeline) {
106
+ const pipeline = options._pipeline;
107
+ return async (trace) => {
108
+ const result = await pipeline.evaluate(trace);
109
+ options.onEvaluate?.(result.report, trace);
110
+ return result;
111
+ };
112
+ }
113
+ // Lazy-load Pipeline for backwards compatibility
114
+ let lazyPipeline = null;
115
+ return async (trace) => {
116
+ if (!lazyPipeline) {
117
+ try {
118
+ const { Pipeline } = await Promise.resolve().then(() => __importStar(require('../Mode')));
119
+ lazyPipeline = new Pipeline({ ...options, mode });
120
+ }
121
+ catch {
122
+ throw new Error('TruthGuard: No evaluation backend available. ' +
123
+ 'Provide a `client` option (TruthGuardClient) for remote evaluation.');
124
+ }
125
+ }
126
+ const result = await lazyPipeline.evaluate(trace);
127
+ options.onEvaluate?.(result.report, trace);
128
+ return result;
129
+ };
130
+ }
131
+ // ---------------------------------------------------------------------------
132
+ // Middleware factory
133
+ // ---------------------------------------------------------------------------
134
+ /**
135
+ * Creates an Express middleware that evaluates grounding on every response.
136
+ */
137
+ function groundingMiddleware(options) {
138
+ const mode = options.mode ?? 'observe';
139
+ const scoreHeader = options.scoreHeader !== undefined
140
+ ? options.scoreHeader
141
+ : 'X-Grounding-Score';
142
+ const evaluator = buildMiddlewareEvaluator(options, mode);
143
+ return (req, res, next) => {
144
+ interceptJson(res, async (body) => {
145
+ const trace = options.extractTrace(req, res, body);
146
+ if (!trace) {
147
+ return body;
148
+ }
149
+ const result = await evaluator(trace);
150
+ // Add grounding score header
151
+ if (scoreHeader && !res.headersSent) {
152
+ res.setHeader(scoreHeader, result.report.groundingScore.toFixed(4));
153
+ res.setHeader('X-Grounding-Mode', mode);
154
+ if (!result.allowed) {
155
+ res.setHeader('X-Grounding-Blocked', 'true');
156
+ }
157
+ }
158
+ // Block mode: rewrite the body if score is below threshold
159
+ if (!result.allowed && result.fallbackResponse) {
160
+ if (options.rewriteBody) {
161
+ return options.rewriteBody(body, result.fallbackResponse, result.report);
162
+ }
163
+ // Default rewrite: replace the body entirely
164
+ return {
165
+ blocked: true,
166
+ message: result.fallbackResponse,
167
+ groundingScore: result.report.groundingScore,
168
+ failures: result.report.detectedFailures.map((f) => f.type),
169
+ };
170
+ }
171
+ return body;
172
+ });
173
+ next();
174
+ };
175
+ }
176
+ /**
177
+ * Express error-handling middleware that evaluates grounding even when
178
+ * the downstream handler throws (e.g., AI API rate limit, timeout).
179
+ *
180
+ * Register this AFTER your routes but BEFORE your generic error handler:
181
+ *
182
+ * @example
183
+ * ```ts
184
+ * app.post('/api/chat', chatHandler);
185
+ * app.use(groundingErrorHandler({
186
+ * extractTraceFromError: (req, _res, error) => buildTraceFromContext(req, error),
187
+ * mode: 'observe',
188
+ * store: new FileStore('./traces.jsonl'),
189
+ * }));
190
+ * ```
191
+ */
192
+ function groundingErrorHandler(options) {
193
+ const errorEvaluator = buildMiddlewareEvaluator(options, options.mode ?? 'observe');
194
+ return (err, req, res, next) => {
195
+ if (!options.extractTraceFromError) {
196
+ next(err);
197
+ return;
198
+ }
199
+ const trace = options.extractTraceFromError(req, res, err);
200
+ if (!trace) {
201
+ next(err);
202
+ return;
203
+ }
204
+ // Evaluate async and pass the original error through
205
+ errorEvaluator(trace).then((result) => {
206
+ // Attach the result to the request for downstream error handlers
207
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
208
+ req._truthguardResult = result;
209
+ next(err);
210
+ }, () => next(err));
211
+ };
212
+ }
213
+ // ---------------------------------------------------------------------------
214
+ // Standalone evaluator for non-Express environments
215
+ // ---------------------------------------------------------------------------
216
+ /**
217
+ * Evaluate a trace and get the pipeline result directly.
218
+ * Use this when you're not using Express (e.g., Fastify, Hono, custom server).
219
+ *
220
+ * @example
221
+ * ```ts
222
+ * import { evaluate } from 'ai-rcp/middleware';
223
+ *
224
+ * const result = await evaluate(trace, {
225
+ * mode: 'block',
226
+ * threshold: 0.9,
227
+ * client: new TruthGuardClient({ apiKey: 'tg_xxx' }),
228
+ * });
229
+ *
230
+ * if (!result.allowed) {
231
+ * return res.json({ error: result.fallbackResponse });
232
+ * }
233
+ * ```
234
+ */
235
+ async function evaluate(trace, options) {
236
+ const evaluator = buildMiddlewareEvaluator(options, options.mode ?? 'observe');
237
+ return evaluator(trace);
238
+ }
239
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Middleware/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * ai-rcp Operating Modes
3
+ *
4
+ * Defines the five stages of the adoption funnel:
5
+ *
6
+ * debug — local dev, pretty-printed verdict table, no persistence
7
+ * ci — pass/fail gate in CI pipeline, exit code
8
+ * observe — production trace collection + persistence, no intervention
9
+ * warn — observe + alert when score drops below threshold
10
+ * block — real-time interception, rejects responses below threshold
11
+ *
12
+ * Each mode is a superset of the previous:
13
+ * debug ⊂ ci ⊂ observe ⊂ warn ⊂ block
14
+ */
15
+ import type { GroundingReport, Trace, ToleranceConfig } from '../types';
16
+ import type { TraceStore } from '../Store';
17
+ import type { AlertDispatcher } from '../Alerting';
18
+ import type { Policy, PolicyDecision } from '../Policy';
19
+ /** The five operating modes, from lightest to heaviest. */
20
+ export type Mode = 'debug' | 'ci' | 'observe' | 'warn' | 'block';
21
+ /** Configuration for the ai-rcp pipeline. */
22
+ export interface PipelineConfig {
23
+ /** Operating mode. */
24
+ mode: Mode;
25
+ /** Grounding score threshold (0–1). Used by warn and block modes. Default: 0.75. */
26
+ threshold?: number;
27
+ /** Tolerance overrides for the grounding engine. */
28
+ tolerances?: Partial<ToleranceConfig>;
29
+ /** Trace store for persistence (observe/warn/block). */
30
+ store?: TraceStore;
31
+ /** Alert dispatchers for warn/block modes. */
32
+ alerters?: AlertDispatcher[];
33
+ /**
34
+ * Callback when a response is blocked (block mode only).
35
+ * Return a fallback response string, or null to use the default.
36
+ */
37
+ onBlock?: (report: GroundingReport) => string | null;
38
+ /**
39
+ * Callback fired after every evaluation (all modes).
40
+ * Useful for custom logging, metrics export, etc.
41
+ */
42
+ onEvaluate?: (report: GroundingReport, trace: Trace) => void;
43
+ /**
44
+ * Policy for per-failure-type block/warn/observe decisions.
45
+ * When provided, the pipeline uses policy-based decisions instead of
46
+ * (or in addition to) the score threshold.
47
+ * Use `buildDefaultPolicy()` for a policy derived from the registry.
48
+ */
49
+ policy?: Policy;
50
+ }
51
+ /** The result of running a trace through the pipeline. */
52
+ export interface PipelineResult {
53
+ /** The grounding report. */
54
+ report: GroundingReport;
55
+ /** Whether the response was allowed through. */
56
+ allowed: boolean;
57
+ /** If blocked, the fallback message. */
58
+ fallbackResponse?: string;
59
+ /** Alerts that were dispatched (warn/block). */
60
+ alertsSent: number;
61
+ /** Policy evaluation result (present when a policy is configured). */
62
+ policyDecision?: PolicyDecision;
63
+ }
64
+ /**
65
+ * The core pipeline that runs a trace through the appropriate mode.
66
+ * This is the single entry point for all modes.
67
+ */
68
+ export declare class Pipeline {
69
+ private readonly config;
70
+ private readonly engine;
71
+ constructor(config: PipelineConfig);
72
+ /** Evaluate a trace through the pipeline. */
73
+ evaluate(trace: Trace, meta?: {
74
+ orgId?: string;
75
+ projectId?: string;
76
+ environment?: string;
77
+ userId?: string;
78
+ }): Promise<PipelineResult>;
79
+ /** Quick evaluate that returns just the report (debug/ci convenience). */
80
+ check(trace: Trace): GroundingReport;
81
+ private shouldPersist;
82
+ private shouldAlert;
83
+ private dispatchAlerts;
84
+ }
85
+ /** Create a pipeline with the given mode and options. */
86
+ export declare function createPipeline(mode: Mode, options?: Omit<PipelineConfig, 'mode'>): Pipeline;
87
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Mode/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,KAAK,EACL,eAAe,EAChB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAOxD,2DAA2D;AAC3D,MAAM,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEjE,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,sBAAsB;IACtB,IAAI,EAAE,IAAI,CAAC;IAEX,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAEtC,wDAAwD;IACxD,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAE7B;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,MAAM,GAAG,IAAI,CAAC;IAErD;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAE7D;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,0DAA0D;AAC1D,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,MAAM,EAAE,eAAe,CAAC;IACxB,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAeD;;;GAGG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAGN;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;gBAE7B,MAAM,EAAE,cAAc;IAUlC,6CAA6C;IACvC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAqD3I,0EAA0E;IAC1E,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe;IAIpC,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,WAAW;YAIL,cAAc;CAgB7B;AAMD,yDAAyD;AACzD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAM,GACzC,QAAQ,CAEV"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ /**
3
+ * ai-rcp Operating Modes
4
+ *
5
+ * Defines the five stages of the adoption funnel:
6
+ *
7
+ * debug — local dev, pretty-printed verdict table, no persistence
8
+ * ci — pass/fail gate in CI pipeline, exit code
9
+ * observe — production trace collection + persistence, no intervention
10
+ * warn — observe + alert when score drops below threshold
11
+ * block — real-time interception, rejects responses below threshold
12
+ *
13
+ * Each mode is a superset of the previous:
14
+ * debug ⊂ ci ⊂ observe ⊂ warn ⊂ block
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Pipeline = void 0;
18
+ exports.createPipeline = createPipeline;
19
+ const Grounding_1 = require("../Grounding");
20
+ const Policy_1 = require("../Policy");
21
+ // ---------------------------------------------------------------------------
22
+ // Default fallback
23
+ // ---------------------------------------------------------------------------
24
+ const DEFAULT_THRESHOLD = 0.75;
25
+ const DEFAULT_FALLBACK = 'I apologize, but I cannot verify the accuracy of this response. ' +
26
+ 'Please try again or contact support for assistance.';
27
+ // ---------------------------------------------------------------------------
28
+ // Pipeline core
29
+ // ---------------------------------------------------------------------------
30
+ /**
31
+ * The core pipeline that runs a trace through the appropriate mode.
32
+ * This is the single entry point for all modes.
33
+ */
34
+ class Pipeline {
35
+ constructor(config) {
36
+ this.config = {
37
+ ...config,
38
+ threshold: config.threshold ?? DEFAULT_THRESHOLD,
39
+ };
40
+ this.engine = new Grounding_1.GroundingEngine({
41
+ tolerances: config.tolerances,
42
+ });
43
+ }
44
+ /** Evaluate a trace through the pipeline. */
45
+ async evaluate(trace, meta) {
46
+ const report = this.engine.evaluate(trace);
47
+ const result = {
48
+ report,
49
+ allowed: true,
50
+ alertsSent: 0,
51
+ };
52
+ // Callback hook (all modes)
53
+ this.config.onEvaluate?.(report, trace);
54
+ // ---- Policy evaluation (when configured) ----------------------------
55
+ const policy = this.config.policy;
56
+ let policyDecision;
57
+ if (policy) {
58
+ policyDecision = (0, Policy_1.evaluatePolicy)(report, policy);
59
+ result.policyDecision = policyDecision;
60
+ }
61
+ // ---- Observe / Warn / Block: persist --------------------------------
62
+ if (this.shouldPersist() &&
63
+ this.config.store) {
64
+ await this.config.store.save(trace, report, meta);
65
+ }
66
+ // ---- Warn / Block: alert --------------------------------------------
67
+ const shouldAlertByScore = report.groundingScore < this.config.threshold;
68
+ const shouldAlertByPolicy = policyDecision?.shouldWarn || policyDecision?.shouldBlock;
69
+ if (this.shouldAlert() &&
70
+ (shouldAlertByScore || shouldAlertByPolicy)) {
71
+ result.alertsSent = await this.dispatchAlerts(report, trace);
72
+ }
73
+ // ---- Block: reject --------------------------------------------------
74
+ const shouldBlockByScore = report.groundingScore < this.config.threshold;
75
+ const shouldBlockByPolicy = policyDecision?.shouldBlock;
76
+ if (this.config.mode === 'block' &&
77
+ (shouldBlockByScore || shouldBlockByPolicy)) {
78
+ result.allowed = false;
79
+ const custom = this.config.onBlock?.(report);
80
+ result.fallbackResponse = custom ?? DEFAULT_FALLBACK;
81
+ }
82
+ return result;
83
+ }
84
+ /** Quick evaluate that returns just the report (debug/ci convenience). */
85
+ check(trace) {
86
+ return this.engine.evaluate(trace);
87
+ }
88
+ shouldPersist() {
89
+ return ['observe', 'warn', 'block'].includes(this.config.mode);
90
+ }
91
+ shouldAlert() {
92
+ return ['warn', 'block'].includes(this.config.mode);
93
+ }
94
+ async dispatchAlerts(report, trace) {
95
+ const alerters = this.config.alerters ?? [];
96
+ let sent = 0;
97
+ for (const alerter of alerters) {
98
+ try {
99
+ await alerter.dispatch(report, trace);
100
+ sent++;
101
+ }
102
+ catch {
103
+ // Don't let alerting failures break the pipeline
104
+ }
105
+ }
106
+ return sent;
107
+ }
108
+ }
109
+ exports.Pipeline = Pipeline;
110
+ // ---------------------------------------------------------------------------
111
+ // Convenience factory
112
+ // ---------------------------------------------------------------------------
113
+ /** Create a pipeline with the given mode and options. */
114
+ function createPipeline(mode, options = {}) {
115
+ return new Pipeline({ ...options, mode });
116
+ }
117
+ //# sourceMappingURL=index.js.map