veto-sdk 2.6.0 → 2.8.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.
Files changed (42) hide show
  1. package/dist/cli/compile.js +1 -1
  2. package/dist/cli/compile.js.map +1 -1
  3. package/dist/cli/templates.js +1 -1
  4. package/dist/core/interceptor.d.ts +2 -2
  5. package/dist/core/interceptor.d.ts.map +1 -1
  6. package/dist/core/interceptor.js +1 -1
  7. package/dist/core/interceptor.js.map +1 -1
  8. package/dist/core/veto.d.ts +8 -0
  9. package/dist/core/veto.d.ts.map +1 -1
  10. package/dist/core/veto.js +74 -18
  11. package/dist/core/veto.js.map +1 -1
  12. package/dist/custom/providers/anthropic.d.ts +0 -13
  13. package/dist/custom/providers/anthropic.d.ts.map +1 -1
  14. package/dist/custom/providers/anthropic.js +39 -40
  15. package/dist/custom/providers/anthropic.js.map +1 -1
  16. package/dist/custom/providers/openai.d.ts +0 -13
  17. package/dist/custom/providers/openai.d.ts.map +1 -1
  18. package/dist/custom/providers/openai.js +40 -41
  19. package/dist/custom/providers/openai.js.map +1 -1
  20. package/dist/custom/providers/utils.d.ts +10 -0
  21. package/dist/custom/providers/utils.d.ts.map +1 -0
  22. package/dist/custom/providers/utils.js +130 -0
  23. package/dist/custom/providers/utils.js.map +1 -0
  24. package/dist/custom/types.d.ts +11 -18
  25. package/dist/custom/types.d.ts.map +1 -1
  26. package/dist/custom/types.js +70 -28
  27. package/dist/custom/types.js.map +1 -1
  28. package/dist/rules/index.d.ts +1 -0
  29. package/dist/rules/index.d.ts.map +1 -1
  30. package/dist/rules/index.js +1 -0
  31. package/dist/rules/index.js.map +1 -1
  32. package/dist/rules/policy-packs.d.ts.map +1 -1
  33. package/dist/rules/policy-packs.js +3 -0
  34. package/dist/rules/policy-packs.js.map +1 -1
  35. package/dist/utils/logger.d.ts +8 -0
  36. package/dist/utils/logger.d.ts.map +1 -1
  37. package/dist/utils/logger.js +73 -27
  38. package/dist/utils/logger.js.map +1 -1
  39. package/package.json +1 -1
  40. package/packs/eu-ai-act-starter.yaml +155 -0
  41. package/packs/hipaa-lite.yaml +154 -0
  42. package/packs/soc2-lite.yaml +136 -0
@@ -1,47 +1,46 @@
1
- /**
2
- * OpenAI provider adapter for custom validation.
3
- *
4
- * @module custom/providers/openai
5
- */
6
- import { CustomError } from '../types.js';
7
- /**
8
- * Call OpenAI API with the given prompt.
9
- *
10
- * @param messages - Provider-specific message structure
11
- * @param config - Resolved custom configuration
12
- * @param logger - Logger instance
13
- * @returns Raw text response from OpenAI
14
- */
15
- export async function callOpenAI(messages, config, logger) {
1
+ import { CustomError, CustomProviderPackageError } from '../types.js';
2
+ import { withProviderRetry } from './utils.js';
3
+ async function loadOpenAI() {
16
4
  try {
17
- const OpenAI = (await import('openai')).default;
18
- const client = new OpenAI({
19
- apiKey: config.apiKey,
20
- baseURL: config.baseUrl,
21
- });
22
- logger.debug('Calling OpenAI API', {
23
- model: config.model,
24
- temperature: config.temperature,
25
- maxTokens: config.maxTokens,
26
- });
27
- const response = await client.chat.completions.create({
28
- model: config.model,
29
- messages: messages.messages,
30
- temperature: config.temperature,
31
- max_tokens: config.maxTokens,
32
- response_format: { type: 'json_object' }, // Force JSON output
33
- });
34
- const content = response.choices[0]?.message?.content;
35
- if (!content) {
36
- throw new CustomError('Empty response from OpenAI');
37
- }
38
- return content;
5
+ const module = await import('openai');
6
+ return module.default;
39
7
  }
40
8
  catch (error) {
41
- if (error instanceof CustomError) {
42
- throw error;
43
- }
44
- throw new CustomError(`OpenAI API call failed: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? error : undefined);
9
+ throw new CustomProviderPackageError('openai', 'openai', error instanceof Error ? error : undefined);
10
+ }
11
+ }
12
+ export async function callOpenAI(messages, config, logger) {
13
+ const OpenAI = await loadOpenAI();
14
+ const client = new OpenAI({
15
+ apiKey: config.apiKey,
16
+ baseURL: config.baseUrl,
17
+ timeout: config.timeout,
18
+ maxRetries: 0,
19
+ });
20
+ logger.debug('Calling OpenAI API', {
21
+ model: config.model,
22
+ temperature: config.temperature,
23
+ maxTokens: config.maxTokens,
24
+ timeout: config.timeout,
25
+ });
26
+ const response = await withProviderRetry(() => client.chat.completions.create({
27
+ model: config.model,
28
+ messages: messages.messages ?? [],
29
+ temperature: config.temperature,
30
+ max_tokens: config.maxTokens,
31
+ response_format: { type: 'json_object' },
32
+ }, {
33
+ timeout: config.timeout,
34
+ maxRetries: 0,
35
+ }), {
36
+ providerLabel: 'OpenAI',
37
+ timeoutMs: config.timeout,
38
+ logger,
39
+ });
40
+ const content = response.choices[0]?.message?.content;
41
+ if (!content) {
42
+ throw new CustomError('Empty response from OpenAI');
45
43
  }
44
+ return content;
46
45
  }
47
46
  //# sourceMappingURL=openai.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/custom/providers/openai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAA0B,EAC1B,MAA4B,EAC5B,MAAc;IAEd,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;YACxB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE;YACjC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACpD,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAgB;YACnC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,oBAAoB;SAC/D,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,WAAW,CAAC,4BAA4B,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,IAAI,WAAW,CACnB,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACnF,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/custom/providers/openai.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA4B/C,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAA8C,CAAC;QACnF,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,0BAA0B,CAClC,QAAQ,EACR,QAAQ,EACR,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAA0B,EAC1B,MAA4B,EAC5B,MAAc;IAEd,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU,EAAE,CAAC;KACd,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE;QACjC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CACtC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAClC;QACE,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,EAAE;QACjC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,SAAS;QAC5B,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;KACzC,EACD;QACE,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU,EAAE,CAAC;KACd,CACF,EACD;QACE,aAAa,EAAE,QAAQ;QACvB,SAAS,EAAE,MAAM,CAAC,OAAO;QACzB,MAAM;KACP,CACF,CAAC;IAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IACtD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,WAAW,CAAC,4BAA4B,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Logger } from '../../utils/logger.js';
2
+ export interface ProviderRetryOptions {
3
+ providerLabel: string;
4
+ timeoutMs: number;
5
+ logger: Logger;
6
+ maxRetries?: number;
7
+ retryDelayMs?: number;
8
+ }
9
+ export declare function withProviderRetry<T>(operation: () => Promise<T>, options: ProviderRetryOptions): Promise<T>;
10
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/custom/providers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAyBpD,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAwID,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,CAAC,CAAC,CAgCZ"}
@@ -0,0 +1,130 @@
1
+ import { CustomError } from '../types.js';
2
+ const DEFAULT_MAX_RETRIES = 2;
3
+ const DEFAULT_RETRY_DELAY_MS = 100;
4
+ const TRANSIENT_NETWORK_CODES = new Set([
5
+ 'ETIMEDOUT',
6
+ 'ECONNRESET',
7
+ 'ECONNREFUSED',
8
+ 'EAI_AGAIN',
9
+ 'ENOTFOUND',
10
+ 'UND_ERR_CONNECT_TIMEOUT',
11
+ 'APIConnectionError',
12
+ 'APIConnectionTimeoutError',
13
+ ]);
14
+ function getErrorRecord(error) {
15
+ if (!error || typeof error !== 'object') {
16
+ return {};
17
+ }
18
+ return error;
19
+ }
20
+ function getStatus(error) {
21
+ const record = getErrorRecord(error);
22
+ const status = record.status ?? record.statusCode;
23
+ if (typeof status === 'number') {
24
+ return status;
25
+ }
26
+ const response = record.response;
27
+ if (response && typeof response === 'object') {
28
+ const responseStatus = response.status;
29
+ if (typeof responseStatus === 'number') {
30
+ return responseStatus;
31
+ }
32
+ }
33
+ return undefined;
34
+ }
35
+ function getCode(error) {
36
+ const record = getErrorRecord(error);
37
+ const code = record.code ?? record.name ?? record.type;
38
+ return typeof code === 'string' ? code : undefined;
39
+ }
40
+ function getMessage(error) {
41
+ return error instanceof Error ? error.message : String(error);
42
+ }
43
+ function isTimeoutError(error, code) {
44
+ const message = getMessage(error).toLowerCase();
45
+ const normalizedCode = code?.toLowerCase() ?? '';
46
+ return normalizedCode.includes('timeout')
47
+ || normalizedCode === 'etimedout'
48
+ || normalizedCode === 'aborterror'
49
+ || message.includes('timed out')
50
+ || message.includes('timeout');
51
+ }
52
+ function isNetworkError(error, code) {
53
+ if (code && TRANSIENT_NETWORK_CODES.has(code)) {
54
+ return true;
55
+ }
56
+ const message = getMessage(error).toLowerCase();
57
+ return message.includes('fetch failed')
58
+ || message.includes('network')
59
+ || message.includes('socket hang up')
60
+ || message.includes('connection reset');
61
+ }
62
+ function classifyProviderError(error) {
63
+ const status = getStatus(error);
64
+ const code = getCode(error);
65
+ if (isTimeoutError(error, code)) {
66
+ return { kind: 'timeout', retryable: true, status, code };
67
+ }
68
+ if (status === 401 || status === 403) {
69
+ return { kind: 'auth', retryable: false, status, code };
70
+ }
71
+ if (status === 429) {
72
+ return { kind: 'rate_limit', retryable: true, status, code };
73
+ }
74
+ if (status !== undefined && status >= 500) {
75
+ return { kind: 'server', retryable: true, status, code };
76
+ }
77
+ if (isNetworkError(error, code)) {
78
+ return { kind: 'network', retryable: true, status, code };
79
+ }
80
+ return { kind: 'other', retryable: false, status, code };
81
+ }
82
+ function buildProviderError(error, classification, providerLabel, timeoutMs, attempts) {
83
+ const cause = error instanceof Error ? error : undefined;
84
+ const attemptSuffix = attempts > 1 ? ` after ${attempts} attempts` : '';
85
+ switch (classification.kind) {
86
+ case 'timeout':
87
+ return new CustomError(`${providerLabel} request timed out after ${timeoutMs}ms${attemptSuffix}.`, cause);
88
+ case 'auth':
89
+ return new CustomError(`${providerLabel} authentication failed with status ${classification.status}. Check the configured API key and provider permissions.`, cause);
90
+ case 'rate_limit':
91
+ return new CustomError(`${providerLabel} rate limited the request with status 429${attemptSuffix}.`, cause);
92
+ case 'server':
93
+ return new CustomError(`${providerLabel} provider server error with status ${classification.status}${attemptSuffix}.`, cause);
94
+ case 'network':
95
+ return new CustomError(`${providerLabel} transient network error${attemptSuffix}: ${getMessage(error)}`, cause);
96
+ case 'other':
97
+ return new CustomError(`${providerLabel} API call failed: ${getMessage(error)}`, cause);
98
+ }
99
+ }
100
+ function delay(milliseconds) {
101
+ return new Promise((resolve) => {
102
+ setTimeout(resolve, milliseconds);
103
+ });
104
+ }
105
+ export async function withProviderRetry(operation, options) {
106
+ const maxRetries = options.maxRetries ?? DEFAULT_MAX_RETRIES;
107
+ const retryDelayMs = options.retryDelayMs ?? DEFAULT_RETRY_DELAY_MS;
108
+ let attempt = 0;
109
+ while (true) {
110
+ try {
111
+ return await operation();
112
+ }
113
+ catch (error) {
114
+ const classification = classifyProviderError(error);
115
+ const attempts = attempt + 1;
116
+ if (!classification.retryable || attempt >= maxRetries) {
117
+ throw buildProviderError(error, classification, options.providerLabel, options.timeoutMs, attempts);
118
+ }
119
+ options.logger.warn(`${options.providerLabel} request failed, retrying`, {
120
+ attempt: attempts,
121
+ maxRetries,
122
+ status: classification.status,
123
+ code: classification.code,
124
+ });
125
+ attempt += 1;
126
+ await delay(retryDelayMs);
127
+ }
128
+ }
129
+ }
130
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/custom/providers/utils.ts"],"names":[],"mappings":"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"}
@@ -71,33 +71,26 @@ export declare const CUSTOM_DEFAULTS: {
71
71
  readonly maxTokens: 500;
72
72
  readonly timeout: 30000;
73
73
  };
74
- /**
75
- * Base error class for custom provider errors.
76
- */
77
74
  export declare class CustomError extends Error {
78
75
  readonly cause?: Error;
79
76
  constructor(message: string, cause?: Error);
80
77
  }
81
- /**
82
- * Error thrown when response parsing fails.
83
- */
78
+ export declare class CustomConfigError extends CustomError {
79
+ constructor(message: string);
80
+ }
84
81
  export declare class CustomParseError extends CustomError {
85
82
  readonly rawResponse: string;
86
83
  constructor(message: string, rawResponse: string);
87
84
  }
88
- /**
89
- * Error thrown when API key is missing.
90
- */
91
- export declare class CustomAPIKeyError extends CustomError {
85
+ export declare class CustomAPIKeyError extends CustomConfigError {
92
86
  readonly provider: CustomProvider;
93
- constructor(provider: CustomProvider, envVar: string);
87
+ readonly envVar: string;
88
+ constructor(provider: CustomProvider, envVar: string, configuredEnvVar?: boolean);
89
+ }
90
+ export declare class CustomProviderPackageError extends CustomError {
91
+ readonly provider: CustomProvider;
92
+ readonly packageName: string;
93
+ constructor(provider: CustomProvider, packageName: string, cause?: Error);
94
94
  }
95
- /**
96
- * Resolve custom configuration with defaults and validation.
97
- *
98
- * @param config - User-provided configuration
99
- * @returns Resolved configuration with all required fields
100
- * @throws {CustomAPIKeyError} If API key is not found
101
- */
102
95
  export declare function resolveCustomConfig(config: CustomConfig): ResolvedCustomConfig;
103
96
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/custom/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,QAAQ,EAAE,cAAc,CAAC;IACzB,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAK5D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAKzE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAK3C;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAKjD;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;gBAEtB,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM;CAOrD;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,oBAAoB,CAkB9E"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/custom/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,QAAQ,EAAE,cAAc,CAAC;IACzB,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAK5D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAKzE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAK3C;AAED,qBAAa,iBAAkB,SAAQ,WAAW;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAKjD;AAED,qBAAa,iBAAkB,SAAQ,iBAAiB;IACtD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,UAAQ;CAS/E;AAED,qBAAa,0BAA2B,SAAQ,WAAW;IACzD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CASzE;AA0CD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,oBAAoB,CA8B9E"}
@@ -29,9 +29,6 @@ export const CUSTOM_DEFAULTS = {
29
29
  maxTokens: 500,
30
30
  timeout: 30000,
31
31
  };
32
- /**
33
- * Base error class for custom provider errors.
34
- */
35
32
  export class CustomError extends Error {
36
33
  cause;
37
34
  constructor(message, cause) {
@@ -40,9 +37,12 @@ export class CustomError extends Error {
40
37
  this.cause = cause;
41
38
  }
42
39
  }
43
- /**
44
- * Error thrown when response parsing fails.
45
- */
40
+ export class CustomConfigError extends CustomError {
41
+ constructor(message) {
42
+ super(message);
43
+ this.name = 'CustomConfigError';
44
+ }
45
+ }
46
46
  export class CustomParseError extends CustomError {
47
47
  rawResponse;
48
48
  constructor(message, rawResponse) {
@@ -51,39 +51,81 @@ export class CustomParseError extends CustomError {
51
51
  this.rawResponse = rawResponse;
52
52
  }
53
53
  }
54
- /**
55
- * Error thrown when API key is missing.
56
- */
57
- export class CustomAPIKeyError extends CustomError {
54
+ export class CustomAPIKeyError extends CustomConfigError {
58
55
  provider;
59
- constructor(provider, envVar) {
60
- super(`API key for ${provider} not found. Set ${envVar} environment variable or provide apiKey in config.`);
56
+ envVar;
57
+ constructor(provider, envVar, configuredEnvVar = false) {
58
+ const message = configuredEnvVar
59
+ ? `API key env var ${envVar} for custom provider ${provider} is not set or empty. Set ${envVar} or configure custom.apiKey with a literal secret.`
60
+ : `Missing API key for custom provider ${provider}. Set ${envVar} environment variable or configure custom.apiKey.`;
61
+ super(message);
61
62
  this.name = 'CustomAPIKeyError';
62
63
  this.provider = provider;
64
+ this.envVar = envVar;
63
65
  }
64
66
  }
65
- /**
66
- * Resolve custom configuration with defaults and validation.
67
- *
68
- * @param config - User-provided configuration
69
- * @returns Resolved configuration with all required fields
70
- * @throws {CustomAPIKeyError} If API key is not found
71
- */
72
- export function resolveCustomConfig(config) {
73
- // Resolve API key: use provided key or environment variable
74
- const envVar = PROVIDER_ENV_VARS[config.provider];
75
- const apiKey = config.apiKey || process.env[envVar];
67
+ export class CustomProviderPackageError extends CustomError {
68
+ provider;
69
+ packageName;
70
+ constructor(provider, packageName, cause) {
71
+ super(`Custom provider package "${packageName}" is not installed. Install ${packageName} to use custom.provider="${provider}".`, cause);
72
+ this.name = 'CustomProviderPackageError';
73
+ this.provider = provider;
74
+ this.packageName = packageName;
75
+ }
76
+ }
77
+ const ENV_VAR_NAME_PATTERN = /^[A-Z_][A-Z0-9_]*$/;
78
+ const SUPPORTED_PROVIDERS = new Set([
79
+ 'gemini',
80
+ 'openrouter',
81
+ 'openai',
82
+ 'anthropic',
83
+ ]);
84
+ function isSupportedProvider(provider) {
85
+ return typeof provider === 'string' && SUPPORTED_PROVIDERS.has(provider);
86
+ }
87
+ function looksLikeEnvVarName(value) {
88
+ return ENV_VAR_NAME_PATTERN.test(value);
89
+ }
90
+ function resolveApiKey(provider, configuredApiKey) {
91
+ const trimmedApiKey = configuredApiKey?.trim();
92
+ if (trimmedApiKey) {
93
+ if (looksLikeEnvVarName(trimmedApiKey)) {
94
+ const resolvedApiKey = process.env[trimmedApiKey];
95
+ if (!resolvedApiKey) {
96
+ throw new CustomAPIKeyError(provider, trimmedApiKey, true);
97
+ }
98
+ return resolvedApiKey;
99
+ }
100
+ return trimmedApiKey;
101
+ }
102
+ const envVar = PROVIDER_ENV_VARS[provider];
103
+ const apiKey = process.env[envVar];
76
104
  if (!apiKey) {
77
- throw new CustomAPIKeyError(config.provider, envVar);
105
+ throw new CustomAPIKeyError(provider, envVar);
106
+ }
107
+ return apiKey;
108
+ }
109
+ export function resolveCustomConfig(config) {
110
+ const provider = config.provider;
111
+ if (!provider) {
112
+ throw new CustomConfigError('Missing custom.provider for custom validation. Set custom.provider to one of: openai, anthropic, gemini, openrouter.');
113
+ }
114
+ if (!isSupportedProvider(provider)) {
115
+ throw new CustomConfigError(`Unsupported custom.provider "${String(provider)}". Supported providers: openai, anthropic, gemini, openrouter.`);
116
+ }
117
+ const model = config.model;
118
+ if (!model || model.trim() === '') {
119
+ throw new CustomConfigError(`Missing custom.model for custom provider ${provider}. Set custom.model in veto.config.yaml.`);
78
120
  }
79
121
  return {
80
- provider: config.provider,
81
- model: config.model,
82
- apiKey,
122
+ provider,
123
+ model,
124
+ apiKey: resolveApiKey(provider, config.apiKey),
83
125
  temperature: config.temperature ?? CUSTOM_DEFAULTS.temperature,
84
126
  maxTokens: config.maxTokens ?? CUSTOM_DEFAULTS.maxTokens,
85
127
  timeout: config.timeout ?? CUSTOM_DEFAULTS.timeout,
86
- baseUrl: config.baseUrl ?? PROVIDER_BASE_URLS[config.provider],
128
+ baseUrl: config.baseUrl ?? PROVIDER_BASE_URLS[provider],
87
129
  };
88
130
  }
89
131
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/custom/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2DH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAmC;IAC/D,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE,oBAAoB;CACjC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA+C;IAC5E,MAAM,EAAE,2BAA2B;IACnC,SAAS,EAAE,SAAS,EAAE,mBAAmB;IACzC,MAAM,EAAE,SAAS,EAAE,mBAAmB;IACtC,UAAU,EAAE,8BAA8B;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,KAAK;CACN,CAAC;AAEX;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,KAAK,CAAS;IAEvB,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IACtC,WAAW,CAAS;IAE7B,YAAY,OAAe,EAAE,WAAmB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IACvC,QAAQ,CAAiB;IAElC,YAAY,QAAwB,EAAE,MAAc;QAClD,KAAK,CACH,eAAe,QAAQ,mBAAmB,MAAM,oDAAoD,CACrG,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAoB;IACtD,4DAA4D;IAC5D,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEpD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM;QACN,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,eAAe,CAAC,WAAW;QAC9D,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,eAAe,CAAC,SAAS;QACxD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO;QAClD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC;KAC/D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/custom/types.ts"],"names":[],"mappings":"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"}
@@ -14,4 +14,5 @@ export * from './condition-evaluator.js';
14
14
  export * from './patterns.js';
15
15
  export { InMemoryFeedProvider, resolveFeedRef } from './feed-provider.js';
16
16
  export { evaluateRulesLocally, evaluateCondition as evaluateConditionLocally, resolveFieldPath as resolveLocalFieldPath, type LocalEvalResult, type LocalEvalOptions, } from './local-evaluator.js';
17
+ export { getBuiltInPolicyPackNames, normalizePolicyPackName, resolveBuiltInPolicyPackPath, } from './policy-packs.js';
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAK9B,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,oBAAoB,EACpB,iBAAiB,IAAI,wBAAwB,EAC7C,gBAAgB,IAAI,qBAAqB,EACzC,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAK9B,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,oBAAoB,EACpB,iBAAiB,IAAI,wBAAwB,EAC7C,gBAAgB,IAAI,qBAAqB,EACzC,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC"}
@@ -18,4 +18,5 @@ export * from './patterns.js';
18
18
  // remains zod-free for existing callers.
19
19
  export { InMemoryFeedProvider, resolveFeedRef } from './feed-provider.js';
20
20
  export { evaluateRulesLocally, evaluateCondition as evaluateConditionLocally, resolveFieldPath as resolveLocalFieldPath, } from './local-evaluator.js';
21
+ export { getBuiltInPolicyPackNames, normalizePolicyPackName, resolveBuiltInPolicyPackPath, } from './policy-packs.js';
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,yCAAyC;AACzC,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,oBAAoB,EACpB,iBAAiB,IAAI,wBAAwB,EAC7C,gBAAgB,IAAI,qBAAqB,GAG1C,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,yCAAyC;AACzC,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,oBAAoB,EACpB,iBAAiB,IAAI,wBAAwB,EAC7C,gBAAgB,IAAI,qBAAqB,GAG1C,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"policy-packs.d.ts","sourceRoot":"","sources":["../../src/rules/policy-packs.ts"],"names":[],"mappings":"AAmBA,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE9C,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAEpD;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMhE;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoBrE;AA+CD,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,cAAc,GACzB,cAAc,CAqBhB;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GACxC,cAAc,CAyBhB"}
1
+ {"version":3,"file":"policy-packs.d.ts","sourceRoot":"","sources":["../../src/rules/policy-packs.ts"],"names":[],"mappings":"AAsBA,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE9C,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAEpD;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMhE;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoBrE;AA+CD,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,cAAc,GACzB,cAAc,CAqBhB;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GACxC,cAAc,CAyBhB"}
@@ -11,6 +11,9 @@ const BUILT_IN_POLICY_PACK_FILE_NAMES = {
11
11
  '@veto/communication': 'communication.yaml',
12
12
  '@veto/deployment': 'deployment.yaml',
13
13
  '@veto/economic-agent': 'economic-agent.yaml',
14
+ '@veto/soc2-lite': 'soc2-lite.yaml',
15
+ '@veto/hipaa-lite': 'hipaa-lite.yaml',
16
+ '@veto/eu-ai-act-starter': 'eu-ai-act-starter.yaml',
14
17
  };
15
18
  const MODULE_DIR = dirname(fileURLToPath(import.meta.url));
16
19
  const PACKS_DIR = resolve(MODULE_DIR, '..', '..', 'packs');
@@ -1 +1 @@
1
- {"version":3,"file":"policy-packs.js","sourceRoot":"","sources":["../../src/rules/policy-packs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy-packs.js","sourceRoot":"","sources":["../../src/rules/policy-packs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAE1C,MAAM,+BAA+B,GAAG;IACtC,oBAAoB,EAAE,mBAAmB;IACzC,sBAAsB,EAAE,qBAAqB;IAC7C,iBAAiB,EAAE,gBAAgB;IACnC,0BAA0B,EAAE,yBAAyB;IACrD,mBAAmB,EAAE,kBAAkB;IACvC,qBAAqB,EAAE,oBAAoB;IAC3C,kBAAkB,EAAE,iBAAiB;IACrC,sBAAsB,EAAE,qBAAqB;IAC7C,iBAAiB,EAAE,gBAAgB;IACnC,kBAAkB,EAAE,iBAAiB;IACrC,yBAAyB,EAAE,wBAAwB;CAC3C,CAAC;AAEX,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAI3D,MAAM,UAAU,yBAAyB;IACvC,OAAO,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,SAAS,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,QAAgB;IAC3D,MAAM,cAAc,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,+BAA+B,CAC9C,cAA8D,CAC/D,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,wBAAwB,QAAQ,uBAAuB,yBAAyB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChG,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,gBAAgB,cAAc,+BAA+B,QAAQ,EAAE,CACxE,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,IAAa;IAC9B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,EAAE,GAAI,IAAuB,CAAC,EAAE,CAAC;IACvC,OAAO,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED,SAAS,cAAc,CACrB,SAAoB,EACpB,SAAoB;IAEpB,MAAM,WAAW,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE5C,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,QAAQ,CAAC;YAC/C,SAAS;QACX,CAAC;QAED,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,MAAM,EAAE,CAAC;YACX,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,UAA0B,EAC1B,UAA0B;IAE1B,MAAM,YAAY,GAAmB;QACnC,GAAG,UAAU;QACb,GAAG,UAAU;KACd,CAAC;IAEF,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACrE,YAAY,CAAC,KAAK,GAAG,cAAc,CACjC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EACzB,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAC1B,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACnF,YAAY,CAAC,YAAY,GAAG,cAAc,CACxC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAChC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CACjC,CAAC;IACJ,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,UAA0B,EAC1B,MAAc,EACd,UAAyC;IAEzC,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CACb,8BAA8B,MAAM,0DAA0D,CAC/F,CAAC;IACJ,CAAC;IAED,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,4BAA4B,CAAC,kBAAkB,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,UAAU,IAAI,SAAS,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvC,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,gBAAgB,kBAAkB,QAAQ,QAAQ,6BAA6B,CAAC,CAAC;IACnG,CAAC;IAED,OAAO,mBAAmB,CACxB,UAA4B,EAC5B,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAC/C,CAAC;AACJ,CAAC"}
@@ -33,6 +33,10 @@ export interface DecisionStreamEvent {
33
33
  ruleId?: string;
34
34
  latencyMs?: number;
35
35
  approvalId?: string;
36
+ /** Email or identifier of the approver that resolved an awaited decision. */
37
+ approver?: string;
38
+ /** Override for the timestamp shown in compact mode (defaults to "now"). */
39
+ timestamp?: Date;
36
40
  }
37
41
  /**
38
42
  * Logger interface that can be implemented for custom logging.
@@ -60,6 +64,10 @@ export interface DecisionStreamLogger extends Logger {
60
64
  * Check if a log level should be emitted given the configured level.
61
65
  */
62
66
  declare function shouldLog(messageLevel: Exclude<LogLevel, 'stream'>, configuredLevel: LogLevel): boolean;
67
+ /**
68
+ * One-line decision row, formatted as:
69
+ * `HH:MM:SS <decision> <tool>(<args>) <latency> <tag?>`
70
+ */
63
71
  declare function formatCompactDecision(event: DecisionStreamEvent): string;
64
72
  declare function formatVerboseDecision(event: DecisionStreamEvent): string;
65
73
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}