@agentguard-run/spend 0.4.3 → 0.4.4

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 (65) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/LICENSE +53 -0
  3. package/README.md +53 -0
  4. package/dist/advisor/conversation.d.ts +5 -0
  5. package/dist/advisor/conversation.d.ts.map +1 -1
  6. package/dist/advisor/conversation.js +34 -2
  7. package/dist/advisor/conversation.js.map +1 -1
  8. package/dist/advisor/output.d.ts.map +1 -1
  9. package/dist/advisor/output.js +9 -2
  10. package/dist/advisor/output.js.map +1 -1
  11. package/dist/advisor/system-prompt.d.ts.map +1 -1
  12. package/dist/advisor/system-prompt.js +6 -3
  13. package/dist/advisor/system-prompt.js.map +1 -1
  14. package/dist/cli/advisor.d.ts.map +1 -1
  15. package/dist/cli/advisor.js +11 -2
  16. package/dist/cli/advisor.js.map +1 -1
  17. package/dist/cli/auth.d.ts.map +1 -1
  18. package/dist/cli/auth.js +20 -1
  19. package/dist/cli/auth.js.map +1 -1
  20. package/dist/cli/config.d.ts +2 -0
  21. package/dist/cli/config.d.ts.map +1 -0
  22. package/dist/cli/config.js +19 -0
  23. package/dist/cli/config.js.map +1 -0
  24. package/dist/cli/license.d.ts +2 -0
  25. package/dist/cli/license.d.ts.map +1 -0
  26. package/dist/cli/license.js +39 -0
  27. package/dist/cli/license.js.map +1 -0
  28. package/dist/cli/main.d.ts.map +1 -1
  29. package/dist/cli/main.js +37 -1
  30. package/dist/cli/main.js.map +1 -1
  31. package/dist/cli/skill.d.ts +2 -0
  32. package/dist/cli/skill.d.ts.map +1 -0
  33. package/dist/cli/skill.js +33 -0
  34. package/dist/cli/skill.js.map +1 -0
  35. package/dist/cli/soft-cap.d.ts +25 -0
  36. package/dist/cli/soft-cap.d.ts.map +1 -0
  37. package/dist/cli/soft-cap.js +204 -0
  38. package/dist/cli/soft-cap.js.map +1 -0
  39. package/dist/cost-table.d.ts.map +1 -1
  40. package/dist/cost-table.js +2 -0
  41. package/dist/cost-table.js.map +1 -1
  42. package/dist/index.d.ts +3 -2
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +15 -3
  45. package/dist/index.js.map +1 -1
  46. package/dist/license.d.ts +44 -0
  47. package/dist/license.d.ts.map +1 -0
  48. package/dist/license.js +278 -0
  49. package/dist/license.js.map +1 -0
  50. package/dist/policy.d.ts +15 -1
  51. package/dist/policy.d.ts.map +1 -1
  52. package/dist/policy.js +95 -1
  53. package/dist/policy.js.map +1 -1
  54. package/dist/spend-guard.d.ts +10 -0
  55. package/dist/spend-guard.d.ts.map +1 -1
  56. package/dist/spend-guard.js +14 -1
  57. package/dist/spend-guard.js.map +1 -1
  58. package/dist/types.d.ts +30 -0
  59. package/dist/types.d.ts.map +1 -1
  60. package/package.json +2 -2
  61. package/src/advisor/conversation.ts +41 -2
  62. package/src/advisor/output.ts +9 -2
  63. package/src/advisor/system-prompt.ts +6 -3
  64. package/src/cli/advisor.ts +9 -2
  65. package/src/cli/auth.ts +19 -1
@@ -0,0 +1,44 @@
1
+ /**
2
+ * AgentGuard(TM) Spend: local license validation helpers.
3
+ *
4
+ * License checks send only license key fingerprints, anonymous machine ids,
5
+ * and SDK metadata to AgentGuard endpoints. Prompts, completions, provider
6
+ * keys, signing keys, and policy bodies are never sent.
7
+ */
8
+ export type AgentGuardTier = 'free' | 'solo' | 'startup' | 'growth';
9
+ export interface AgentGuardLicenseFeatures {
10
+ postureSwitching: boolean;
11
+ customWatchlists: boolean;
12
+ outcomeBuilder: boolean;
13
+ reviewerCascade: boolean;
14
+ verticalSkillPackImport: boolean;
15
+ auditRetentionDays: number;
16
+ maxActiveSeats: number;
17
+ }
18
+ export interface AgentGuardLicenseStatus {
19
+ valid: boolean;
20
+ tier: AgentGuardTier;
21
+ seats: number;
22
+ expiresAt: string | null;
23
+ features: AgentGuardLicenseFeatures;
24
+ }
25
+ export interface LicenseClientOptions {
26
+ endpointBaseUrl?: string;
27
+ nowMs?: number;
28
+ force?: boolean;
29
+ home?: string;
30
+ postJson?: (url: string, payload: Record<string, unknown>) => Promise<unknown>;
31
+ }
32
+ export declare class AgentGuardLicenseRequiredError extends Error {
33
+ code: string;
34
+ constructor(message: string);
35
+ }
36
+ export declare function agentguardHome(home?: string): string;
37
+ export declare function configPath(home?: string): string;
38
+ export declare function readConfiguredLicenseKey(home?: string): string | null;
39
+ export declare function writeConfiguredLicenseKey(licenseKey: string, home?: string): void;
40
+ export declare function clearConfiguredLicenseKey(home?: string): void;
41
+ export declare function licenseKeyFingerprint(licenseKey: string): string;
42
+ export declare function validateLicenseKey(licenseKey?: string | null, opts?: LicenseClientOptions): Promise<AgentGuardLicenseStatus>;
43
+ export declare function validateAndRegisterLicense(licenseKey?: string | null, opts?: LicenseClientOptions): Promise<AgentGuardLicenseStatus>;
44
+ //# sourceMappingURL=license.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../src/license.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpE,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,uBAAuB,EAAE,OAAO,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,yBAAyB,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAChF;AAoBD,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,IAAI,SAAiC;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASrE;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAQjF;AAED,wBAAgB,yBAAyB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAO7D;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAsB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CActI;AAED,wBAAsB,0BAA0B,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAmB9I"}
@@ -0,0 +1,278 @@
1
+ "use strict";
2
+ /**
3
+ * AgentGuard(TM) Spend: local license validation helpers.
4
+ *
5
+ * License checks send only license key fingerprints, anonymous machine ids,
6
+ * and SDK metadata to AgentGuard endpoints. Prompts, completions, provider
7
+ * keys, signing keys, and policy bodies are never sent.
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.AgentGuardLicenseRequiredError = void 0;
44
+ exports.agentguardHome = agentguardHome;
45
+ exports.configPath = configPath;
46
+ exports.readConfiguredLicenseKey = readConfiguredLicenseKey;
47
+ exports.writeConfiguredLicenseKey = writeConfiguredLicenseKey;
48
+ exports.clearConfiguredLicenseKey = clearConfiguredLicenseKey;
49
+ exports.licenseKeyFingerprint = licenseKeyFingerprint;
50
+ exports.validateLicenseKey = validateLicenseKey;
51
+ exports.validateAndRegisterLicense = validateAndRegisterLicense;
52
+ const crypto = __importStar(require("crypto"));
53
+ const fs = __importStar(require("fs"));
54
+ const http = __importStar(require("http"));
55
+ const https = __importStar(require("https"));
56
+ const os = __importStar(require("os"));
57
+ const path = __importStar(require("path"));
58
+ const DEFAULT_ENDPOINT = 'https://agentguard.run';
59
+ const DAY_MS = 24 * 60 * 60 * 1000;
60
+ const FREE_STATUS = {
61
+ valid: true,
62
+ tier: 'free',
63
+ seats: 1,
64
+ expiresAt: null,
65
+ features: {
66
+ postureSwitching: false,
67
+ customWatchlists: false,
68
+ outcomeBuilder: false,
69
+ reviewerCascade: false,
70
+ verticalSkillPackImport: false,
71
+ auditRetentionDays: 7,
72
+ maxActiveSeats: 1,
73
+ },
74
+ };
75
+ class AgentGuardLicenseRequiredError extends Error {
76
+ code = 'AGENTGUARD_LICENSE_REQUIRED';
77
+ constructor(message) {
78
+ super(message);
79
+ this.name = 'AgentGuardLicenseRequiredError';
80
+ }
81
+ }
82
+ exports.AgentGuardLicenseRequiredError = AgentGuardLicenseRequiredError;
83
+ function agentguardHome(home) {
84
+ return home || process.env.AGENTGUARD_HOME || path.join(os.homedir(), '.agentguard');
85
+ }
86
+ function configPath(home) {
87
+ return path.join(agentguardHome(home), 'config.json');
88
+ }
89
+ function readConfiguredLicenseKey(home) {
90
+ if (process.env.AGENTGUARD_LICENSE_KEY)
91
+ return process.env.AGENTGUARD_LICENSE_KEY.trim();
92
+ try {
93
+ const parsed = JSON.parse(fs.readFileSync(configPath(home), 'utf8'));
94
+ const key = parsed.licenseKey || parsed.license_key;
95
+ return key ? String(key).trim() : null;
96
+ }
97
+ catch {
98
+ return null;
99
+ }
100
+ }
101
+ function writeConfiguredLicenseKey(licenseKey, home) {
102
+ const file = configPath(home);
103
+ fs.mkdirSync(path.dirname(file), { recursive: true, mode: 0o700 });
104
+ let parsed = {};
105
+ try {
106
+ parsed = JSON.parse(fs.readFileSync(file, 'utf8'));
107
+ }
108
+ catch { }
109
+ parsed.licenseKey = licenseKey.trim();
110
+ fs.writeFileSync(file, JSON.stringify(parsed, null, 2) + '\n', { mode: 0o600 });
111
+ try {
112
+ fs.chmodSync(file, 0o600);
113
+ }
114
+ catch {
115
+ return;
116
+ }
117
+ }
118
+ function clearConfiguredLicenseKey(home) {
119
+ const file = configPath(home);
120
+ let parsed = {};
121
+ try {
122
+ parsed = JSON.parse(fs.readFileSync(file, 'utf8'));
123
+ }
124
+ catch {
125
+ return;
126
+ }
127
+ delete parsed.licenseKey;
128
+ delete parsed.license_key;
129
+ fs.writeFileSync(file, JSON.stringify(parsed, null, 2) + '\n', { mode: 0o600 });
130
+ }
131
+ function licenseKeyFingerprint(licenseKey) {
132
+ return crypto.createHash('sha256').update(licenseKey).digest('hex').slice(0, 16);
133
+ }
134
+ async function validateLicenseKey(licenseKey, opts = {}) {
135
+ const key = licenseKey?.trim() || null;
136
+ if (!key)
137
+ return { ...FREE_STATUS, features: { ...FREE_STATUS.features } };
138
+ const now = opts.nowMs ?? Date.now();
139
+ const cache = licenseCachePath(key, opts.home);
140
+ if (!opts.force) {
141
+ const cached = readCachedStatus(cache, now);
142
+ if (cached)
143
+ return cached;
144
+ }
145
+ const base = (opts.endpointBaseUrl || process.env.AGENTGUARD_LICENSE_ENDPOINT || DEFAULT_ENDPOINT).replace(/\/$/, '');
146
+ const raw = await (opts.postJson ?? postJson)(`${base}/api/license/validate`, { license_key: key });
147
+ const status = normalizeStatus(raw);
148
+ writeCachedStatus(cache, status, now);
149
+ return status;
150
+ }
151
+ async function validateAndRegisterLicense(licenseKey, opts = {}) {
152
+ const key = licenseKey?.trim() || readConfiguredLicenseKey(opts.home);
153
+ const status = await validateLicenseKey(key, opts);
154
+ const processId = processUuid(opts.home);
155
+ const machineFingerprint = anonymousMachineFingerprint(opts.home);
156
+ const base = (opts.endpointBaseUrl || process.env.AGENTGUARD_LICENSE_ENDPOINT || DEFAULT_ENDPOINT).replace(/\/$/, '');
157
+ try {
158
+ const seat = await (opts.postJson ?? postJson)(`${base}/api/license/seats`, {
159
+ license_key: key || undefined,
160
+ machine_fingerprint: machineFingerprint,
161
+ process_id: processId,
162
+ });
163
+ if (seat && seat.ok === false) {
164
+ throw new AgentGuardLicenseRequiredError(`Active SDK process limit exceeded for this license. Active seats: ${seat.activeSeats ?? 'unknown'}. Limit: ${seat.maxActiveSeats ?? status.features.maxActiveSeats}. Upgrade at https://agentguard.run/pricing or activate a team license with: agentguard auth license-key <KEY>`);
165
+ }
166
+ }
167
+ catch (err) {
168
+ if (err instanceof AgentGuardLicenseRequiredError)
169
+ throw err;
170
+ }
171
+ return status;
172
+ }
173
+ function licenseCachePath(licenseKey, home) {
174
+ return path.join(agentguardHome(home), `license-${crypto.createHash('sha256').update(licenseKey).digest('hex')}.json`);
175
+ }
176
+ function readCachedStatus(file, now) {
177
+ try {
178
+ const parsed = JSON.parse(fs.readFileSync(file, 'utf8'));
179
+ if (!parsed.fetchedAt || now - parsed.fetchedAt > DAY_MS)
180
+ return null;
181
+ return normalizeStatus(parsed.status);
182
+ }
183
+ catch {
184
+ return null;
185
+ }
186
+ }
187
+ function writeCachedStatus(file, status, now) {
188
+ try {
189
+ fs.mkdirSync(path.dirname(file), { recursive: true, mode: 0o700 });
190
+ fs.writeFileSync(file, JSON.stringify({ fetchedAt: now, status }, null, 2) + '\n', { mode: 0o600 });
191
+ fs.chmodSync(file, 0o600);
192
+ }
193
+ catch {
194
+ return;
195
+ }
196
+ }
197
+ function processUuid(home) {
198
+ const file = path.join(agentguardHome(home), 'process-id');
199
+ try {
200
+ const existing = fs.readFileSync(file, 'utf8').trim();
201
+ if (existing)
202
+ return existing;
203
+ }
204
+ catch { }
205
+ const id = crypto.randomUUID();
206
+ try {
207
+ fs.mkdirSync(path.dirname(file), { recursive: true, mode: 0o700 });
208
+ fs.writeFileSync(file, id + '\n', { mode: 0o600 });
209
+ fs.chmodSync(file, 0o600);
210
+ }
211
+ catch { }
212
+ return id;
213
+ }
214
+ function anonymousMachineFingerprint(home) {
215
+ const file = path.join(agentguardHome(home), 'install.json');
216
+ try {
217
+ const parsed = JSON.parse(fs.readFileSync(file, 'utf8'));
218
+ if (parsed.anonymous_install_id)
219
+ return crypto.createHash('sha256').update(parsed.anonymous_install_id).digest('hex');
220
+ }
221
+ catch { }
222
+ const seed = `${os.platform()}:${os.arch()}:${os.homedir()}:${os.hostname()}`;
223
+ return crypto.createHash('sha256').update(seed).digest('hex');
224
+ }
225
+ function normalizeStatus(raw) {
226
+ const obj = raw && typeof raw === 'object' ? raw : {};
227
+ const features = obj.features && typeof obj.features === 'object' ? obj.features : {};
228
+ return {
229
+ valid: obj.valid === true,
230
+ tier: normalizeTier(obj.tier),
231
+ seats: numberOr(obj.seats, normalizeTier(obj.tier) === 'growth' ? 50 : normalizeTier(obj.tier) === 'startup' ? 5 : 1),
232
+ expiresAt: typeof obj.expiresAt === 'string' ? obj.expiresAt : null,
233
+ features: {
234
+ postureSwitching: features.postureSwitching === true,
235
+ customWatchlists: features.customWatchlists === true,
236
+ outcomeBuilder: features.outcomeBuilder === true,
237
+ reviewerCascade: features.reviewerCascade === true,
238
+ verticalSkillPackImport: features.verticalSkillPackImport === true,
239
+ auditRetentionDays: numberOr(features.auditRetentionDays, 7),
240
+ maxActiveSeats: numberOr(features.maxActiveSeats, 1),
241
+ },
242
+ };
243
+ }
244
+ function normalizeTier(value) {
245
+ return value === 'solo' || value === 'startup' || value === 'growth' ? value : 'free';
246
+ }
247
+ function numberOr(value, fallback) {
248
+ return typeof value === 'number' && Number.isFinite(value) ? value : fallback;
249
+ }
250
+ function postJson(url, payload) {
251
+ void payload;
252
+ if (url.startsWith('mock://'))
253
+ return Promise.resolve({ ...FREE_STATUS, features: { ...FREE_STATUS.features } });
254
+ return new Promise((resolve, reject) => {
255
+ const parsed = new URL(url);
256
+ const client = parsed.protocol === 'http:' ? http : https;
257
+ const body = JSON.stringify(payload);
258
+ const req = client.request({ method: 'POST', hostname: parsed.hostname, port: parsed.port, path: parsed.pathname + parsed.search, headers: { 'content-type': 'application/json', 'content-length': Buffer.byteLength(body) }, timeout: 5000 }, (res) => {
259
+ const chunks = [];
260
+ res.on('data', (chunk) => chunks.push(chunk));
261
+ res.on('end', () => {
262
+ const text = Buffer.concat(chunks).toString('utf8');
263
+ if ((res.statusCode ?? 0) >= 400)
264
+ return reject(new Error(`license endpoint failed: ${res.statusCode} ${text.slice(0, 160)}`));
265
+ try {
266
+ resolve(text ? JSON.parse(text) : {});
267
+ }
268
+ catch {
269
+ resolve({});
270
+ }
271
+ });
272
+ });
273
+ req.on('error', reject);
274
+ req.on('timeout', () => req.destroy(new Error('license endpoint timed out')));
275
+ req.end(body);
276
+ });
277
+ }
278
+ //# sourceMappingURL=license.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license.js","sourceRoot":"","sources":["../src/license.ts"],"names":[],"mappings":"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"}
package/dist/policy.d.ts CHANGED
@@ -9,7 +9,8 @@
9
9
  * (App. Nos. 63/983,615; 63/983,621; 63/983,843; 63/984,626;
10
10
  * 64/071,781; 64/071,789).
11
11
  */
12
- import type { SpendPolicy, CallContext, SpendDecision, SpendStore, SpendScope, SpendAction } from './types';
12
+ import type { SpendPolicy, CallContext, SpendDecision, SpendStore, SpendScope, SpendAction, ReviewerCascadeOutcome, ReviewerCascadeReceipt } from './types';
13
+ import { type AgentGuardLicenseStatus } from './license';
13
14
  /**
14
15
  * Build a collision-resistant storage key from a SpendScope. The hash is over
15
16
  * canonical JSON, so attacker-controlled separators in tenant/user IDs cannot
@@ -21,6 +22,19 @@ export declare function buildScopeKey(scope: SpendScope): string;
21
22
  * Empty fields in the policy scope are wildcards.
22
23
  */
23
24
  declare function policyMatchesCall(policyScope: SpendScope, callScope: SpendScope): boolean;
25
+ export interface ReviewerCascadeInput {
26
+ drafterConfidence?: number;
27
+ outputText?: string;
28
+ highRiskClassifierScore?: number;
29
+ keywordWatchlist?: string[];
30
+ reviewerVerdict?: string;
31
+ }
32
+ export declare function getReviewerCascadeOutcome(policy: SpendPolicy, outcomeName: string): ReviewerCascadeOutcome | null;
33
+ export declare function evaluateReviewerCascadeOutcome(outcomeName: string, outcome: ReviewerCascadeOutcome, input?: ReviewerCascadeInput): ReviewerCascadeReceipt;
34
+ export declare function evaluateReviewerTriggers(triggers: unknown[], input?: ReviewerCascadeInput): string[];
35
+ export declare const BUILT_IN_KEYWORD_WATCHLISTS: Set<string>;
36
+ export declare function enforcePolicyLicenseGates(policy: SpendPolicy, license: AgentGuardLicenseStatus): void;
37
+ export declare function findCustomKeywordWatchlists(policy: SpendPolicy): string[];
24
38
  declare function mostRestrictive(a: SpendAction, b: SpendAction): SpendAction;
25
39
  export declare function evaluatePolicy(policy: SpendPolicy, call: CallContext, store: SpendStore): Promise<SpendDecision>;
26
40
  export declare function adjustPolicyWindowSpend(policy: SpendPolicy, store: SpendStore, deltaCents: number): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,UAAU,EAEV,UAAU,EAEV,WAAW,EACZ,MAAM,SAAS,CAAC;AA+BjB;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEvD;AAmBD;;;GAGG;AACH,iBAAS,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAQlF;AASD,iBAAS,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAEpE;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,aAAa,CAAC,CA8HxB;AAsJD,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CASf;AA2CD,iBAAS,0BAA0B,CACjC,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,EACvD,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,GACvD,OAAO,CAET;AA6BD,eAAO,MAAM,QAAQ;;;;CAAqE,CAAC"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,UAAU,EAEV,UAAU,EAEV,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAkC,KAAK,uBAAuB,EAAE,MAAM,WAAW,CAAC;AA6BzF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEvD;AAmBD;;;GAGG;AACH,iBAAS,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAQlF;AAID,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAGjH;AAED,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,sBAAsB,EAC/B,KAAK,GAAE,oBAAyB,GAC/B,sBAAsB,CAUxB;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,GAAE,oBAAyB,GAAG,MAAM,EAAE,CAoBxG;AAED,eAAO,MAAM,2BAA2B,aAMtC,CAAC;AAEH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAWrG;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,CAIzE;AAkCD,iBAAS,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAEpE;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,aAAa,CAAC,CA8HxB;AAsJD,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CASf;AA2CD,iBAAS,0BAA0B,CACjC,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,EACvD,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,GACvD,OAAO,CAET;AA6BD,eAAO,MAAM,QAAQ;;;;CAAqE,CAAC"}
package/dist/policy.js CHANGED
@@ -11,13 +11,19 @@
11
11
  * 64/071,781; 64/071,789).
12
12
  */
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports._testing = void 0;
14
+ exports._testing = exports.BUILT_IN_KEYWORD_WATCHLISTS = void 0;
15
15
  exports.buildScopeKey = buildScopeKey;
16
+ exports.getReviewerCascadeOutcome = getReviewerCascadeOutcome;
17
+ exports.evaluateReviewerCascadeOutcome = evaluateReviewerCascadeOutcome;
18
+ exports.evaluateReviewerTriggers = evaluateReviewerTriggers;
19
+ exports.enforcePolicyLicenseGates = enforcePolicyLicenseGates;
20
+ exports.findCustomKeywordWatchlists = findCustomKeywordWatchlists;
16
21
  exports.evaluatePolicy = evaluatePolicy;
17
22
  exports.adjustPolicyWindowSpend = adjustPolicyWindowSpend;
18
23
  const crypto_1 = require("crypto");
19
24
  const cost_table_1 = require("./cost-table");
20
25
  const decision_log_1 = require("./decision-log");
26
+ const license_1 = require("./license");
21
27
  /**
22
28
  * Build a collision-resistant storage key from a SpendScope. The hash is over
23
29
  * canonical JSON, so attacker-controlled separators in tenant/user IDs cannot
@@ -65,6 +71,94 @@ function policyMatchesCall(policyScope, callScope) {
65
71
  return false;
66
72
  return true;
67
73
  }
74
+ function getReviewerCascadeOutcome(policy, outcomeName) {
75
+ const outcomes = policy.outcomes;
76
+ return outcomes?.[outcomeName] ?? null;
77
+ }
78
+ function evaluateReviewerCascadeOutcome(outcomeName, outcome, input = {}) {
79
+ const triggerFired = evaluateReviewerTriggers(outcome.reviewer?.trigger ?? [], input);
80
+ const reviewerRuns = Boolean(outcome.reviewer && triggerFired.length > 0);
81
+ return {
82
+ outcome: outcomeName,
83
+ drafter: outcome.drafter,
84
+ reviewer: reviewerRuns && outcome.reviewer ? { model: outcome.reviewer.model, maxCostCents: outcome.reviewer.maxCostCents } : null,
85
+ triggerFired,
86
+ reviewerVerdict: reviewerRuns ? input.reviewerVerdict ?? 'review_required' : 'drafter_only',
87
+ };
88
+ }
89
+ function evaluateReviewerTriggers(triggers, input = {}) {
90
+ const fired = [];
91
+ const output = (input.outputText ?? '').toLowerCase();
92
+ for (const trigger of triggers) {
93
+ if (!trigger || typeof trigger !== 'object')
94
+ continue;
95
+ const t = trigger;
96
+ if (typeof t.drafter_confidence_below === 'number' && typeof input.drafterConfidence === 'number' && input.drafterConfidence < t.drafter_confidence_below) {
97
+ fired.push(`drafter_confidence_below:${t.drafter_confidence_below}`);
98
+ }
99
+ if (Array.isArray(t.output_contains_any) && t.output_contains_any.some((term) => typeof term === 'string' && output.includes(term.toLowerCase()))) {
100
+ fired.push('output_contains_any');
101
+ }
102
+ if (typeof t.high_risk_classifier_score_above === 'number' && typeof input.highRiskClassifierScore === 'number' && input.highRiskClassifierScore > t.high_risk_classifier_score_above) {
103
+ fired.push(`high_risk_classifier_score_above:${t.high_risk_classifier_score_above}`);
104
+ }
105
+ if (typeof t.keyword_watchlist === 'string' && (input.keywordWatchlist ?? []).some((term) => output.includes(term.toLowerCase()))) {
106
+ fired.push(`keyword_watchlist:${t.keyword_watchlist}`);
107
+ }
108
+ }
109
+ return [...new Set(fired)];
110
+ }
111
+ exports.BUILT_IN_KEYWORD_WATCHLISTS = new Set([
112
+ 'law-firm-defaults',
113
+ 'cpa-defaults',
114
+ 'ecommerce-defaults',
115
+ 'real-estate-defaults',
116
+ 'insurance-defaults',
117
+ ]);
118
+ function enforcePolicyLicenseGates(policy, license) {
119
+ const posture = policyPosture(policy);
120
+ if (posture && posture !== 'standard' && !license.features.postureSwitching) {
121
+ throw new license_1.AgentGuardLicenseRequiredError(`Posture switching requires a Solo license. Get one at https://agentguard.run/pricing or via Visa CLI:
122
+ visa-cli buy https://agentguard.run/api/x402/license?tier=solo
123
+ Then activate with: agentguard auth license-key <KEY>`);
124
+ }
125
+ const custom = findCustomKeywordWatchlists(policy);
126
+ if (custom.length > 0 && !license.features.customWatchlists) {
127
+ throw new license_1.AgentGuardLicenseRequiredError(`Custom keyword watchlists require a Solo license. Built-in watchlists remain available on the free tier. Activate with: agentguard auth license-key <KEY>`);
128
+ }
129
+ }
130
+ function findCustomKeywordWatchlists(policy) {
131
+ const found = new Set();
132
+ scanForKeywordWatchlists(policy, found);
133
+ return [...found].filter((name) => !exports.BUILT_IN_KEYWORD_WATCHLISTS.has(name));
134
+ }
135
+ function policyPosture(policy) {
136
+ const anyPolicy = policy;
137
+ const posture = anyPolicy.governancePosture?.posture || anyPolicy.posture;
138
+ return typeof posture === 'string' ? posture.toLowerCase() : null;
139
+ }
140
+ function scanForKeywordWatchlists(value, found) {
141
+ if (!value)
142
+ return;
143
+ if (typeof value === 'string') {
144
+ const match = value.match(/keyword_watchlist\s*:\s*([A-Za-z0-9_-]+)/);
145
+ if (match?.[1])
146
+ found.add(match[1]);
147
+ return;
148
+ }
149
+ if (Array.isArray(value)) {
150
+ for (const item of value)
151
+ scanForKeywordWatchlists(item, found);
152
+ return;
153
+ }
154
+ if (typeof value === 'object') {
155
+ for (const [key, child] of Object.entries(value)) {
156
+ if (key === 'keyword_watchlist' && typeof child === 'string')
157
+ found.add(child);
158
+ scanForKeywordWatchlists(child, found);
159
+ }
160
+ }
161
+ }
68
162
  const ACTION_RANK = {
69
163
  block: 3,
70
164
  downgrade: 2,
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@
15
15
  * 64/071,781; 64/071,789).
16
16
  */
17
17
  import type { SpendPolicy, CallContext, SpendDecision, SpendStore, DecisionLogStore, SignedDecisionLogEntry, CapabilityTier, SpendScope } from './types';
18
+ import { type LicenseClientOptions } from './license';
18
19
  export interface SpendGuardConfig {
19
20
  /** The policy to evaluate every call against. */
20
21
  policy: SpendPolicy;
@@ -35,6 +36,12 @@ export interface SpendGuardConfig {
35
36
  tokenEstimator?: (text: string) => number;
36
37
  /** Optional locale for localized block traces. */
37
38
  locale?: string;
39
+ /** Optional AgentGuard license key. If omitted, local config or free tier is used. */
40
+ licenseKey?: string;
41
+ /** Optional license endpoint base URL for enterprise tests or private mirrors. */
42
+ licenseEndpointBaseUrl?: string;
43
+ /** Optional test hook for license endpoint calls. */
44
+ licensePostJson?: LicenseClientOptions['postJson'];
38
45
  }
39
46
  export interface StreamSettlementOptions {
40
47
  partial?: boolean;
@@ -53,6 +60,7 @@ export declare class SpendGuard {
53
60
  private previousHash;
54
61
  private decisionLock;
55
62
  private reservations;
63
+ private licenseReady;
56
64
  constructor(config: SpendGuardConfig);
57
65
  hydrate(): Promise<void>;
58
66
  decide(call: CallContext): Promise<{
@@ -60,6 +68,7 @@ export declare class SpendGuard {
60
68
  signed: SignedDecisionLogEntry | null;
61
69
  }>;
62
70
  settleStreamUsage(decisionId: string, actualInputTokens: number, actualOutputTokens: number, options?: StreamSettlementOptions): Promise<StreamSettlementResult | null>;
71
+ private ensureLicenseReady;
63
72
  private signAndAppendDecision;
64
73
  private rememberReservation;
65
74
  private buildSettlementDecision;
@@ -76,6 +85,7 @@ export interface OpenAIBindingOptions {
76
85
  scope: SpendScope;
77
86
  capabilityClaim?: CapabilityTier;
78
87
  config?: Omit<SpendGuardConfig, 'policy'>;
88
+ licenseKey?: string;
79
89
  }
80
90
  export declare class AgentGuardBlockedError extends Error {
81
91
  decision: SpendDecision;
@@ -1 +1 @@
1
- {"version":3,"file":"spend-guard.d.ts","sourceRoot":"","sources":["../src/spend-guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spend-guard.d.ts","sourceRoot":"","sources":["../src/spend-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EAEtB,cAAc,EACd,UAAU,EACX,MAAM,SAAS,CAAC;AAYjB,OAAO,EAA4D,KAAK,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEhH,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,MAAM,EAAE,WAAW,CAAC;IACpB,gDAAgD;IAChD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,kEAAkE;IAClE,WAAW,CAAC,EAAE;QACZ,mCAAmC;QACnC,UAAU,EAAE,UAAU,CAAC;QACvB,kCAAkC;QAClC,SAAS,EAAE,UAAU,CAAC;KACvB,CAAC;IACF,4DAA4D;IAC5D,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtG,yEAAyE;IACzE,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,qDAAqD;IACrD,eAAe,CAAC,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC;CACpD;AAUD,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,YAAY,CAAiD;gBAEzD,MAAM,EAAE,gBAAgB;IAO9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxB,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;QACvC,QAAQ,EAAE,aAAa,CAAC;QACxB,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;KACvC,CAAC;IAiBI,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM,EACzB,kBAAkB,EAAE,MAAM,EAC1B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAyCzC,OAAO,CAAC,kBAAkB;YAUZ,qBAAqB;IAgBnC,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,uBAAuB;IA2C/B,OAAO,CAAC,oBAAoB;YAMd,gBAAgB;YAQhB,gBAAgB;IAc9B,OAAO,CAAC,qBAAqB;IAI7B,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAOpC,aAAa,IAAI,UAAU;IAI3B,WAAW,IAAI,gBAAgB;CAGhC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,UAAU,CAAC;IAClB,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,MAAM,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;gBACJ,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM;CAwBzE;AAED,wBAAgB,cAAc,CAE5B,MAAM,EAAE,GAAG,EACX,IAAI,EAAE,oBAAoB,GAEzB,GAAG,CAqCL;AAuBD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAG3D;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAGhE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAWlD;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAI9D;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAGlE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAQxE;AA0DD,wBAAgB,eAAe,CAAC,CAAC,EAC/B,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,KAAK,EAAE;IACL,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5B,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACjE,GACA,aAAa,CAAC,CAAC,CAAC,CA2BlB"}