@agentguard-run/spend 0.4.0 → 0.4.2

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 (68) hide show
  1. package/CHANGELOG.md +8 -2
  2. package/README.es-419.md +21 -4
  3. package/README.md +24 -5
  4. package/README.pt-BR.md +21 -4
  5. package/dist/{coach → advisor}/anomaly.d.ts +5 -5
  6. package/dist/advisor/anomaly.d.ts.map +1 -0
  7. package/dist/{coach → advisor}/anomaly.js +1 -1
  8. package/dist/advisor/anomaly.js.map +1 -0
  9. package/dist/{coach → advisor}/conversation.d.ts +23 -17
  10. package/dist/advisor/conversation.d.ts.map +1 -0
  11. package/dist/{coach → advisor}/conversation.js +63 -27
  12. package/dist/advisor/conversation.js.map +1 -0
  13. package/dist/{coach → advisor}/forecast.d.ts +4 -4
  14. package/dist/advisor/forecast.d.ts.map +1 -0
  15. package/dist/{coach → advisor}/forecast.js +1 -1
  16. package/dist/advisor/forecast.js.map +1 -0
  17. package/dist/{coach → advisor}/llm-client.d.ts +10 -10
  18. package/dist/advisor/llm-client.d.ts.map +1 -0
  19. package/dist/{coach → advisor}/llm-client.js +12 -12
  20. package/dist/advisor/llm-client.js.map +1 -0
  21. package/dist/{coach → advisor}/output.d.ts +12 -12
  22. package/dist/advisor/output.d.ts.map +1 -0
  23. package/dist/{coach → advisor}/output.js +42 -13
  24. package/dist/advisor/output.js.map +1 -0
  25. package/dist/advisor/posture.d.ts +26 -0
  26. package/dist/advisor/posture.d.ts.map +1 -0
  27. package/dist/advisor/posture.js +100 -0
  28. package/dist/advisor/posture.js.map +1 -0
  29. package/dist/{coach → advisor}/system-prompt.d.ts +5 -5
  30. package/dist/advisor/system-prompt.d.ts.map +1 -0
  31. package/dist/{coach → advisor}/system-prompt.js +21 -8
  32. package/dist/advisor/system-prompt.js.map +1 -0
  33. package/dist/cli/advisor.d.ts +5 -0
  34. package/dist/cli/advisor.d.ts.map +1 -0
  35. package/dist/cli/{coach.js → advisor.js} +63 -47
  36. package/dist/cli/advisor.js.map +1 -0
  37. package/dist/cli/main.d.ts.map +1 -1
  38. package/dist/cli/main.js +7 -6
  39. package/dist/cli/main.js.map +1 -1
  40. package/dist/index.d.ts +4 -4
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +11 -11
  43. package/dist/index.js.map +1 -1
  44. package/dist/telemetry.js +1 -1
  45. package/package.json +7 -7
  46. package/src/{coach → advisor}/anomaly.ts +9 -9
  47. package/src/{coach → advisor}/conversation.ts +80 -39
  48. package/src/{coach → advisor}/forecast.ts +5 -5
  49. package/src/{coach → advisor}/llm-client.ts +21 -21
  50. package/src/{coach → advisor}/output.ts +49 -20
  51. package/src/advisor/posture.ts +112 -0
  52. package/src/{coach → advisor}/system-prompt.ts +22 -8
  53. package/src/cli/{coach.ts → advisor.ts} +74 -58
  54. package/dist/cli/coach.d.ts +0 -5
  55. package/dist/cli/coach.d.ts.map +0 -1
  56. package/dist/cli/coach.js.map +0 -1
  57. package/dist/coach/anomaly.d.ts.map +0 -1
  58. package/dist/coach/anomaly.js.map +0 -1
  59. package/dist/coach/conversation.d.ts.map +0 -1
  60. package/dist/coach/conversation.js.map +0 -1
  61. package/dist/coach/forecast.d.ts.map +0 -1
  62. package/dist/coach/forecast.js.map +0 -1
  63. package/dist/coach/llm-client.d.ts.map +0 -1
  64. package/dist/coach/llm-client.js.map +0 -1
  65. package/dist/coach/output.d.ts.map +0 -1
  66. package/dist/coach/output.js.map +0 -1
  67. package/dist/coach/system-prompt.d.ts.map +0 -1
  68. package/dist/coach/system-prompt.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * `agentguard coach`: local LLM-driven policy setup.
3
+ * `agentguard advisor`: local LLM-driven policy setup.
4
4
  */
5
5
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
6
  if (k2 === undefined) k2 = k;
@@ -36,66 +36,72 @@ var __importStar = (this && this.__importStar) || (function () {
36
36
  };
37
37
  })();
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.runCoach = runCoach;
39
+ exports.runAdvisor = runAdvisor;
40
40
  const readline = __importStar(require("readline"));
41
41
  const index_1 = require("../index");
42
- const conversation_1 = require("../coach/conversation");
43
- const forecast_1 = require("../coach/forecast");
44
- const llm_client_1 = require("../coach/llm-client");
45
- const anomaly_1 = require("../coach/anomaly");
46
- const system_prompt_1 = require("../coach/system-prompt");
47
- const output_1 = require("../coach/output");
42
+ const conversation_1 = require("../advisor/conversation");
43
+ const posture_1 = require("../advisor/posture");
44
+ const forecast_1 = require("../advisor/forecast");
45
+ const llm_client_1 = require("../advisor/llm-client");
46
+ const anomaly_1 = require("../advisor/anomaly");
47
+ const system_prompt_1 = require("../advisor/system-prompt");
48
+ const output_1 = require("../advisor/output");
48
49
  const colors_1 = require("./colors");
49
- const HELP = `agentguard coach: local LLM-driven policy setup
50
+ const HELP = `agentguard advisor: local LLM-driven policy setup
50
51
 
51
52
  usage:
52
- agentguard coach [--provider openrouter|openai|anthropic|compatible] [--base-url <url>] [--model <model>]
53
- agentguard coach review [--scope <name>]
54
- agentguard coach forecast [--scope <name>] [--cap-cents <cents>]
53
+ agentguard advisor [--provider openrouter|openai|anthropic|compatible] [--base-url <url>] [--model <model>] [--posture velocity|standard|compliance|custom]
54
+ agentguard advisor review [--scope <name>]
55
+ agentguard advisor forecast [--scope <name>] [--cap-cents <cents>]
55
56
 
56
57
  examples:
57
58
  agentguard auth openrouter
58
- agentguard coach
59
- agentguard coach --base-url https://api.deepseek.com/v1 --model deepseek-chat
60
- agentguard coach review
59
+ agentguard advisor
60
+ agentguard advisor --posture velocity --provider mock --defaults
61
+ agentguard advisor --base-url https://api.deepseek.com/v1 --model deepseek-chat
62
+ agentguard advisor review
61
63
  `;
62
- async function runCoach(argv) {
64
+ async function runAdvisor(argv) {
63
65
  if (argv.includes('--help') || argv.includes('-h')) {
64
66
  console.log(HELP);
65
67
  return 0;
66
68
  }
67
69
  if (argv[0] === 'review')
68
- return runCoachReview(argv.slice(1));
70
+ return runAdvisorReview(argv.slice(1));
69
71
  if (argv[0] === 'forecast')
70
- return runCoachForecast(argv.slice(1));
72
+ return runAdvisorForecast(argv.slice(1));
71
73
  const options = parseOptions(argv);
72
- const apiKey = (0, llm_client_1.resolveCoachApiKey)(options.provider);
74
+ if (options.posture === 'custom') {
75
+ console.log('Solo tier required for custom governance posture. Choose velocity, standard, or compliance in this release.');
76
+ return 0;
77
+ }
78
+ const apiKey = (0, llm_client_1.resolveAdvisorApiKey)(options.provider);
73
79
  if (options.provider !== 'mock' && !apiKey) {
74
80
  console.log('');
75
81
  console.log(' ' + (0, colors_1.banner)(index_1.AGENTGUARD_SPEND_VERSION));
76
82
  console.log('');
77
- console.log(` ${(0, colors_1.yellow)('agentguard coach needs a local provider key')}`);
78
- console.log(' Run agentguard auth openrouter, set OPENROUTER_API_KEY, or pass --base-url with AGENTGUARD_COACH_API_KEY.');
83
+ console.log(` ${(0, colors_1.yellow)('agentguard advisor needs a local provider key')}`);
84
+ console.log(' Run agentguard auth openrouter, set OPENROUTER_API_KEY, or pass --base-url with AGENTGUARD_ADVISOR_API_KEY.');
79
85
  console.log(' Prompts and policy details stay in your terminal and go only to your chosen provider.');
80
86
  console.log('');
81
87
  return 0;
82
88
  }
83
89
  let cancelled = false;
84
- const logger = (0, output_1.createCoachSessionLogger)();
90
+ const logger = (0, output_1.createAdvisorSessionLogger)();
85
91
  const onSigint = () => {
86
92
  cancelled = true;
87
93
  logger.append('cancelled', { reason: 'sigint' });
88
- process.stdout.write('\ncoach cancelled. No policy files were written.\n');
94
+ process.stdout.write('\nadvisor cancelled. No policy files were written.\n');
89
95
  };
90
96
  process.once('SIGINT', onSigint);
91
97
  try {
92
- const conversation = new conversation_1.CoachConversation(options.language ? { language: options.language } : undefined);
93
- const history = [{ role: 'system', content: system_prompt_1.MASTER_SYSTEM_PROMPT }];
94
- const client = (0, llm_client_1.createCoachClient)({ provider: options.provider, baseUrl: options.baseUrl, model: options.model, apiKey: apiKey ?? undefined });
98
+ const conversation = new conversation_1.AdvisorConversation({ ...(options.language ? { language: options.language } : {}), ...(options.posture ? { posture: options.posture } : {}) });
99
+ const history = [{ role: 'system', content: system_prompt_1.ADVISOR_SYSTEM_PROMPT }];
100
+ const client = (0, llm_client_1.createAdvisorClient)({ provider: options.provider, baseUrl: options.baseUrl, model: options.model, apiKey: apiKey ?? undefined });
95
101
  console.log('');
96
102
  console.log(' ' + (0, colors_1.banner)(index_1.AGENTGUARD_SPEND_VERSION));
97
103
  console.log('');
98
- console.log((0, colors_1.cyanBold)('AgentGuard Coach'));
104
+ console.log((0, colors_1.cyanBold)('AgentGuard Advisor'));
99
105
  console.log((0, colors_1.dim)('Local LLM setup. No AgentGuard service receives prompts, completions, keys, or policies.'));
100
106
  console.log('');
101
107
  if (options.defaults || !process.stdin.isTTY) {
@@ -108,18 +114,20 @@ async function runCoach(argv) {
108
114
  if (cancelled)
109
115
  return 130;
110
116
  if (!conversation.isComplete()) {
111
- console.log((0, colors_1.yellow)('coach did not collect enough answers to write policy files.'));
117
+ console.log((0, colors_1.yellow)('advisor did not collect enough answers to write policy files.'));
112
118
  return 0;
113
119
  }
114
120
  const profile = conversation.profile(process.cwd());
115
121
  if (options.language)
116
122
  profile.language = options.language;
123
+ if (options.posture)
124
+ profile.posture = options.posture;
117
125
  logger.append('profile_built', { profile });
118
126
  console.log('');
119
- await streamCoachSummary(client, history, profileSummaryPrompt(profile), logger, () => cancelled);
127
+ await streamAdvisorSummary(client, history, profileSummaryPrompt(profile), logger, () => cancelled);
120
128
  if (cancelled)
121
129
  return 130;
122
- const outputs = (0, output_1.writeCoachOutputs)(profile, { language: profile.language, overwrite: options.yes || options.defaults });
130
+ const outputs = (0, output_1.writeAdvisorOutputs)(profile, { language: profile.language, overwrite: options.yes || options.defaults });
123
131
  logger.append('files_written', { policyPath: outputs.policyPath, quickstartPath: outputs.quickstartPath, sessionLogPath: logger.path });
124
132
  console.log('');
125
133
  console.log(outputs.savingsTable);
@@ -128,6 +136,9 @@ async function runCoach(argv) {
128
136
  console.log(`${(0, colors_1.green)('created')} ${outputs.quickstartPath}`);
129
137
  console.log(`${(0, colors_1.green)('session')} ${logger.path}`);
130
138
  console.log('');
139
+ console.log('AgentGuard now proves what your AI agent attempted, who authorized it,');
140
+ console.log('what it cost, and whether it succeeded.');
141
+ console.log('');
131
142
  console.log('Next: agentguard demo --policy ~/.agentguard/policy.yaml');
132
143
  console.log('Verify receipts: https://agentguard.run/verify');
133
144
  console.log('');
@@ -137,7 +148,7 @@ async function runCoach(argv) {
137
148
  process.removeListener('SIGINT', onSigint);
138
149
  }
139
150
  }
140
- async function runCoachReview(argv) {
151
+ async function runAdvisorReview(argv) {
141
152
  const scope = valueAfter(argv, '--scope') ?? 'default';
142
153
  const anomalies = (0, anomaly_1.reviewAnomalies)((0, anomaly_1.readDecisionSpend)(scope));
143
154
  console.log('');
@@ -153,7 +164,7 @@ async function runCoachReview(argv) {
153
164
  }
154
165
  return 0;
155
166
  }
156
- async function runCoachForecast(argv) {
167
+ async function runAdvisorForecast(argv) {
157
168
  const scope = valueAfter(argv, '--scope') ?? 'default';
158
169
  const cap = valueAfter(argv, '--cap-cents');
159
170
  const forecast = (0, forecast_1.forecastMonthEnd)((0, anomaly_1.readDecisionSpend)(scope), cap ? Number(cap) : null);
@@ -186,7 +197,7 @@ async function runInteractiveQuestions(conversation, logger, history, client, is
186
197
  conversation.answer(answer);
187
198
  logger.append('answer', { question: question.id, answer });
188
199
  history.push({ role: 'user', content: `${question.prompt}\n${answer}` });
189
- await streamCoachSummary(client, history, coachQuestionPrompt(question.id), logger, isCancelled);
200
+ await streamAdvisorSummary(client, history, advisorQuestionPrompt(question.id), logger, isCancelled);
190
201
  conversation.next();
191
202
  }
192
203
  }
@@ -194,7 +205,7 @@ async function runInteractiveQuestions(conversation, logger, history, client, is
194
205
  rl.close();
195
206
  }
196
207
  }
197
- async function streamCoachSummary(client, history, prompt, logger, isCancelled) {
208
+ async function streamAdvisorSummary(client, history, prompt, logger, isCancelled) {
198
209
  history.push({ role: 'user', content: prompt });
199
210
  let content = '';
200
211
  process.stdout.write('\n');
@@ -209,28 +220,30 @@ async function streamCoachSummary(client, history, prompt, logger, isCancelled)
209
220
  }
210
221
  catch (err) {
211
222
  const message = err instanceof Error ? err.message : String(err);
212
- content = `Coach provider unavailable: ${message}`;
223
+ content = `Advisor provider unavailable: ${message}`;
213
224
  console.log(content);
214
225
  }
215
226
  history.push({ role: 'assistant', content });
216
227
  logger.append('assistant', { content });
217
228
  }
218
229
  function fillDefaults(conversation) {
219
- const answers = [
220
- 'A customer support agent for an ecommerce business',
221
- 'Team of 5, around 2000 support tickets and orders per month',
222
- 'triage refunds, draft support replies, assemble chargeback evidence',
223
- '$199 monthly budget with low per-call costs',
224
- 'Confirmed',
225
- ];
226
- for (const answer of answers) {
227
- if (!conversation.currentQuestion())
230
+ const answers = {
231
+ building: 'A customer support agent for an ecommerce business',
232
+ posture: '',
233
+ scale: 'Team of 5, around 2000 support tickets and orders per month',
234
+ tasks: 'triage refunds, draft support replies, assemble chargeback evidence',
235
+ budget: '$199 monthly budget with low per-call costs',
236
+ confirm: 'Confirmed',
237
+ };
238
+ while (conversation.currentQuestion()) {
239
+ const question = conversation.currentQuestion();
240
+ if (!question)
228
241
  break;
229
- conversation.answer(answer);
242
+ conversation.answer(answers[question.id] ?? 'Confirmed');
230
243
  conversation.next();
231
244
  }
232
245
  }
233
- function coachQuestionPrompt(id) {
246
+ function advisorQuestionPrompt(id) {
234
247
  return `Acknowledge the ${id} answer in 2 short sentences. Ask only the next unanswered setup question. Do not write files yet.`;
235
248
  }
236
249
  function profileSummaryPrompt(profile) {
@@ -241,11 +254,14 @@ function parseOptions(argv) {
241
254
  const providerFlag = valueAfter(argv, '--provider');
242
255
  const provider = providerFlag ?? (baseUrl ? 'compatible' : 'openrouter');
243
256
  const language = valueAfter(argv, '--language');
257
+ const postureValue = valueAfter(argv, '--posture');
258
+ const posture = postureValue === 'custom' ? 'custom' : (0, posture_1.normalizePosture)(postureValue);
244
259
  return {
245
260
  provider,
246
261
  baseUrl,
247
262
  model: valueAfter(argv, '--model'),
248
263
  language: language === 'py' ? 'py' : language === 'ts' ? 'ts' : undefined,
264
+ posture: posture ?? undefined,
249
265
  defaults: argv.includes('--defaults'),
250
266
  yes: argv.includes('--yes') || argv.includes('-y'),
251
267
  };
@@ -254,4 +270,4 @@ function valueAfter(argv, flag) {
254
270
  const index = argv.indexOf(flag);
255
271
  return index >= 0 ? argv[index + 1] : undefined;
256
272
  }
257
- //# sourceMappingURL=coach.js.map
273
+ //# sourceMappingURL=advisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advisor.js","sourceRoot":"","sources":["../../src/cli/advisor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAAA;;GAEG;AAuCH,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAwElF"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwCH,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAwElF"}
package/dist/cli/main.js CHANGED
@@ -39,13 +39,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.main = main;
40
40
  const index_1 = require("../index");
41
41
  const colors_1 = require("./colors");
42
- const HELP = `agentguard: local-runtime spend caps + signed receipts for AI agents
42
+ const HELP = `agentguard: proves what your AI agent attempted, who authorized it, what it cost, and whether it succeeded.
43
+ local-runtime spend caps + Ed25519-signed receipts. zero data plane.
43
44
 
44
45
  usage:
45
46
  agentguard <command> [options]
46
47
 
47
48
  commands:
48
- coach Local LLM setup that writes policy.yaml and quickstart code.
49
+ advisor Local LLM setup that writes policy.yaml and quickstart code.
49
50
  wizard Guided setup for policy.yaml and quickstarts.
50
51
  models Browse models, sync OpenRouter pricing, update policy.
51
52
  auth Configure local provider keys.
@@ -62,7 +63,7 @@ commands:
62
63
 
63
64
  examples:
64
65
  agentguard auth openrouter
65
- agentguard coach
66
+ agentguard advisor
66
67
  agentguard wizard
67
68
  agentguard models --sync-pricing
68
69
  agentguard models --task payment-approval
@@ -89,9 +90,9 @@ async function main(argv = process.argv.slice(2)) {
89
90
  const { maybeShowStartupTips } = await Promise.resolve().then(() => __importStar(require('./tips')));
90
91
  maybeShowStartupTips(showTips);
91
92
  }
92
- if (command === 'coach') {
93
- const { runCoach } = await Promise.resolve().then(() => __importStar(require('./coach')));
94
- return runCoach(rest);
93
+ if (command === 'advisor') {
94
+ const { runAdvisor } = await Promise.resolve().then(() => __importStar(require('./advisor')));
95
+ return runAdvisor(rest);
95
96
  }
96
97
  if (command === 'wizard') {
97
98
  const { runWizard } = await Promise.resolve().then(() => __importStar(require('./wizard')));
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -12,14 +12,14 @@ export { canonicalJson, sha256Hex, computeEntryHash, computeSignerFingerprint, s
12
12
  export { InMemorySpendStore } from './store-memory';
13
13
  export { telemetryStatus, enableTelemetry, disableTelemetry, resetTelemetryInstallId, recordTelemetryEvent, type TelemetryStatus, } from './telemetry';
14
14
  export { fetchCatalog, getCachedCatalog, syncPricingIntoCostTable, persistOverrides, modelCostFromOpenRouter, type OpenRouterCatalog, type OpenRouterModel, type SyncPricingResult, } from './openrouter-catalog';
15
- export { CoachConversation, buildBusinessProfile, buildPolicyFromProfile, projectedSavings, type CoachBusinessProfile, type ProjectedSavings, } from './coach/conversation';
16
- export { createCoachClient, resolveCoachApiKey, type CoachClient, type CoachProvider } from './coach/llm-client';
17
- export { createCoachSessionLogger, writeCoachOutputs, type CoachOutputs } from './coach/output';
15
+ export { AdvisorConversation, buildBusinessProfile, buildPolicyFromProfile, projectedSavings, type AdvisorBusinessProfile, type ProjectedSavings, } from './advisor/conversation';
16
+ export { createAdvisorClient, resolveAdvisorApiKey, type AdvisorClient, type AdvisorProvider } from './advisor/llm-client';
17
+ export { createAdvisorSessionLogger, writeAdvisorOutputs, type AdvisorOutputs } from './advisor/output';
18
18
  export { SpendGuard, withSpendGuard, AgentGuardBlockedError, type SpendGuardConfig, type OpenAIBindingOptions, type StreamSettlementOptions, type StreamSettlementResult, } from './spend-guard';
19
19
  export { withSpendGuardAnthropic, type AnthropicBindingOptions } from './bindings/anthropic';
20
20
  export { withSpendGuardBedrock, type BedrockBindingOptions } from './bindings/bedrock';
21
21
  export { DEFAULT_LOCALE, SUPPORTED_LOCALES, TRANSLATIONS, type SupportedLocale, resolveLocale, t, formatBlockedTrace, type BlockedTraceArgs, } from './i18n';
22
- export declare const AGENTGUARD_SPEND_VERSION = "0.4.0";
22
+ export declare const AGENTGUARD_SPEND_VERSION = "0.4.2";
23
23
  /** Patent marking. 35 U.S.C. § 287 constructive notice. */
24
24
  export declare const PATENT_NOTICE: string;
25
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,YAAY,EACV,WAAW,EACX,WAAW,EACX,QAAQ,EACR,eAAe,EACf,cAAc,EACd,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,UAAU,EACV,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,EACf,KAAK,SAAS,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAGlF,OAAO,EACL,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjH,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGhG,OAAO,EACL,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,uBAAuB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAGvF,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,KAAK,eAAe,EACpB,aAAa,EACb,CAAC,EACD,kBAAkB,EAClB,KAAK,gBAAgB,GACtB,MAAM,QAAQ,CAAC;AAEhB,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAEhD,2DAA2D;AAC3D,eAAO,MAAM,aAAa,QAG8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,YAAY,EACV,WAAW,EACX,WAAW,EACX,QAAQ,EACR,eAAe,EACf,cAAc,EACd,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,UAAU,EACV,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,EACf,KAAK,SAAS,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAGlF,OAAO,EACL,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3H,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGxG,OAAO,EACL,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,uBAAuB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAGvF,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,KAAK,eAAe,EACpB,aAAa,EACb,CAAC,EACD,kBAAkB,EAClB,KAAK,gBAAgB,GACtB,MAAM,QAAQ,CAAC;AAEhB,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAEhD,2DAA2D;AAC3D,eAAO,MAAM,aAAa,QAG8B,CAAC"}
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@
7
7
  * 64/071,781; 64/071,789).
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.t = exports.resolveLocale = exports.TRANSLATIONS = exports.SUPPORTED_LOCALES = exports.DEFAULT_LOCALE = exports.withSpendGuardBedrock = exports.withSpendGuardAnthropic = exports.AgentGuardBlockedError = exports.withSpendGuard = exports.SpendGuard = exports.writeCoachOutputs = exports.createCoachSessionLogger = exports.resolveCoachApiKey = exports.createCoachClient = exports.projectedSavings = exports.buildPolicyFromProfile = exports.buildBusinessProfile = exports.CoachConversation = exports.modelCostFromOpenRouter = exports.persistOverrides = exports.syncPricingIntoCostTable = exports.getCachedCatalog = exports.fetchCatalog = exports.recordTelemetryEvent = exports.resetTelemetryInstallId = exports.disableTelemetry = exports.enableTelemetry = exports.telemetryStatus = exports.InMemorySpendStore = exports.InMemoryDecisionLogStore = exports.GENESIS_PREVIOUS_HASH = exports.verifyChain = exports.verifyEntry = exports.signDecision = exports.computeSignerFingerprint = exports.computeEntryHash = exports.sha256Hex = exports.canonicalJson = exports.adjustPolicyWindowSpend = exports.buildScopeKey = exports.evaluatePolicy = exports.knownModelCosts = exports.persistCostOverrides = exports.loadPersistedCostOverrides = exports.listCostOverrides = exports.inferProvider = exports.computeCallCents = exports.clearCostOverrides = exports.setCostOverride = exports.getModelCost = void 0;
10
+ exports.t = exports.resolveLocale = exports.TRANSLATIONS = exports.SUPPORTED_LOCALES = exports.DEFAULT_LOCALE = exports.withSpendGuardBedrock = exports.withSpendGuardAnthropic = exports.AgentGuardBlockedError = exports.withSpendGuard = exports.SpendGuard = exports.writeAdvisorOutputs = exports.createAdvisorSessionLogger = exports.resolveAdvisorApiKey = exports.createAdvisorClient = exports.projectedSavings = exports.buildPolicyFromProfile = exports.buildBusinessProfile = exports.AdvisorConversation = exports.modelCostFromOpenRouter = exports.persistOverrides = exports.syncPricingIntoCostTable = exports.getCachedCatalog = exports.fetchCatalog = exports.recordTelemetryEvent = exports.resetTelemetryInstallId = exports.disableTelemetry = exports.enableTelemetry = exports.telemetryStatus = exports.InMemorySpendStore = exports.InMemoryDecisionLogStore = exports.GENESIS_PREVIOUS_HASH = exports.verifyChain = exports.verifyEntry = exports.signDecision = exports.computeSignerFingerprint = exports.computeEntryHash = exports.sha256Hex = exports.canonicalJson = exports.adjustPolicyWindowSpend = exports.buildScopeKey = exports.evaluatePolicy = exports.knownModelCosts = exports.persistCostOverrides = exports.loadPersistedCostOverrides = exports.listCostOverrides = exports.inferProvider = exports.computeCallCents = exports.clearCostOverrides = exports.setCostOverride = exports.getModelCost = void 0;
11
11
  exports.PATENT_NOTICE = exports.AGENTGUARD_SPEND_VERSION = exports.formatBlockedTrace = void 0;
12
12
  const telemetry_1 = require("./telemetry");
13
13
  // Cost table
@@ -54,18 +54,18 @@ Object.defineProperty(exports, "getCachedCatalog", { enumerable: true, get: func
54
54
  Object.defineProperty(exports, "syncPricingIntoCostTable", { enumerable: true, get: function () { return openrouter_catalog_1.syncPricingIntoCostTable; } });
55
55
  Object.defineProperty(exports, "persistOverrides", { enumerable: true, get: function () { return openrouter_catalog_1.persistOverrides; } });
56
56
  Object.defineProperty(exports, "modelCostFromOpenRouter", { enumerable: true, get: function () { return openrouter_catalog_1.modelCostFromOpenRouter; } });
57
- // Coach local setup
58
- var conversation_1 = require("./coach/conversation");
59
- Object.defineProperty(exports, "CoachConversation", { enumerable: true, get: function () { return conversation_1.CoachConversation; } });
57
+ // Advisor local setup
58
+ var conversation_1 = require("./advisor/conversation");
59
+ Object.defineProperty(exports, "AdvisorConversation", { enumerable: true, get: function () { return conversation_1.AdvisorConversation; } });
60
60
  Object.defineProperty(exports, "buildBusinessProfile", { enumerable: true, get: function () { return conversation_1.buildBusinessProfile; } });
61
61
  Object.defineProperty(exports, "buildPolicyFromProfile", { enumerable: true, get: function () { return conversation_1.buildPolicyFromProfile; } });
62
62
  Object.defineProperty(exports, "projectedSavings", { enumerable: true, get: function () { return conversation_1.projectedSavings; } });
63
- var llm_client_1 = require("./coach/llm-client");
64
- Object.defineProperty(exports, "createCoachClient", { enumerable: true, get: function () { return llm_client_1.createCoachClient; } });
65
- Object.defineProperty(exports, "resolveCoachApiKey", { enumerable: true, get: function () { return llm_client_1.resolveCoachApiKey; } });
66
- var output_1 = require("./coach/output");
67
- Object.defineProperty(exports, "createCoachSessionLogger", { enumerable: true, get: function () { return output_1.createCoachSessionLogger; } });
68
- Object.defineProperty(exports, "writeCoachOutputs", { enumerable: true, get: function () { return output_1.writeCoachOutputs; } });
63
+ var llm_client_1 = require("./advisor/llm-client");
64
+ Object.defineProperty(exports, "createAdvisorClient", { enumerable: true, get: function () { return llm_client_1.createAdvisorClient; } });
65
+ Object.defineProperty(exports, "resolveAdvisorApiKey", { enumerable: true, get: function () { return llm_client_1.resolveAdvisorApiKey; } });
66
+ var output_1 = require("./advisor/output");
67
+ Object.defineProperty(exports, "createAdvisorSessionLogger", { enumerable: true, get: function () { return output_1.createAdvisorSessionLogger; } });
68
+ Object.defineProperty(exports, "writeAdvisorOutputs", { enumerable: true, get: function () { return output_1.writeAdvisorOutputs; } });
69
69
  // Core wrapper
70
70
  var spend_guard_1 = require("./spend-guard");
71
71
  Object.defineProperty(exports, "SpendGuard", { enumerable: true, get: function () { return spend_guard_1.SpendGuard; } });
@@ -83,7 +83,7 @@ Object.defineProperty(exports, "TRANSLATIONS", { enumerable: true, get: function
83
83
  Object.defineProperty(exports, "resolveLocale", { enumerable: true, get: function () { return i18n_1.resolveLocale; } });
84
84
  Object.defineProperty(exports, "t", { enumerable: true, get: function () { return i18n_1.t; } });
85
85
  Object.defineProperty(exports, "formatBlockedTrace", { enumerable: true, get: function () { return i18n_1.formatBlockedTrace; } });
86
- exports.AGENTGUARD_SPEND_VERSION = '0.4.0';
86
+ exports.AGENTGUARD_SPEND_VERSION = '0.4.2';
87
87
  /** Patent marking. 35 U.S.C. § 287 constructive notice. */
88
88
  exports.PATENT_NOTICE = 'Protected by U.S. patent-pending technology ' +
89
89
  '(App. Nos. 63/983,615; 63/983,621; 63/983,843; 63/984,626; ' +
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;AAEH,2CAA8E;AAmB9E,aAAa;AACb,2CAWsB;AAVpB,0GAAA,YAAY,OAAA;AACZ,6GAAA,eAAe,OAAA;AACf,gHAAA,kBAAkB,OAAA;AAClB,8GAAA,gBAAgB,OAAA;AAChB,2GAAA,aAAa,OAAA;AACb,+GAAA,iBAAiB,OAAA;AACjB,wHAAA,0BAA0B,OAAA;AAC1B,kHAAA,oBAAoB,OAAA;AACpB,6GAAA,eAAe,OAAA;AAIjB,gBAAgB;AAChB,mCAAkF;AAAzE,wGAAA,cAAc,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,iHAAA,uBAAuB,OAAA;AAE/D,eAAe;AACf,+CAUwB;AATtB,6GAAA,aAAa,OAAA;AACb,yGAAA,SAAS,OAAA;AACT,gHAAA,gBAAgB,OAAA;AAChB,wHAAA,wBAAwB,OAAA;AACxB,4GAAA,YAAY,OAAA;AACZ,2GAAA,WAAW,OAAA;AACX,2GAAA,WAAW,OAAA;AACX,qHAAA,qBAAqB,OAAA;AACrB,wHAAA,wBAAwB,OAAA;AAG1B,wBAAwB;AACxB,+CAAoD;AAA3C,kHAAA,kBAAkB,OAAA;AAE3B,qBAAqB;AACrB,yCAOqB;AANnB,4GAAA,eAAe,OAAA;AACf,4GAAA,eAAe,OAAA;AACf,6GAAA,gBAAgB,OAAA;AAChB,oHAAA,uBAAuB,OAAA;AACvB,iHAAA,oBAAoB,OAAA;AAItB,qBAAqB;AACrB,2DAS8B;AAR5B,kHAAA,YAAY,OAAA;AACZ,sHAAA,gBAAgB,OAAA;AAChB,8HAAA,wBAAwB,OAAA;AACxB,sHAAA,gBAAgB,OAAA;AAChB,6HAAA,uBAAuB,OAAA;AAOzB,oBAAoB;AACpB,qDAO8B;AAN5B,iHAAA,iBAAiB,OAAA;AACjB,oHAAA,oBAAoB,OAAA;AACpB,sHAAA,sBAAsB,OAAA;AACtB,gHAAA,gBAAgB,OAAA;AAIlB,iDAAiH;AAAxG,+GAAA,iBAAiB,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AAC9C,yCAAgG;AAAvF,kHAAA,wBAAwB,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAEpD,eAAe;AACf,6CAQuB;AAPrB,yGAAA,UAAU,OAAA;AACV,6GAAA,cAAc,OAAA;AACd,qHAAA,sBAAsB,OAAA;AAOxB,kDAA6F;AAApF,oHAAA,uBAAuB,OAAA;AAChC,8CAAuF;AAA9E,gHAAA,qBAAqB,OAAA;AAE9B,sCAAsC;AACtC,+BASgB;AARd,sGAAA,cAAc,OAAA;AACd,yGAAA,iBAAiB,OAAA;AACjB,oGAAA,YAAY,OAAA;AAEZ,qGAAA,aAAa,OAAA;AACb,yFAAA,CAAC,OAAA;AACD,0GAAA,kBAAkB,OAAA;AAIP,QAAA,wBAAwB,GAAG,OAAO,CAAC;AAEhD,2DAA2D;AAC9C,QAAA,aAAa,GACxB,8CAA8C;IAC9C,6DAA6D;IAC7D,sDAAsD,CAAC;AACzD,IAAA,gCAAuB,EAAC,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;AAEH,2CAA8E;AAmB9E,aAAa;AACb,2CAWsB;AAVpB,0GAAA,YAAY,OAAA;AACZ,6GAAA,eAAe,OAAA;AACf,gHAAA,kBAAkB,OAAA;AAClB,8GAAA,gBAAgB,OAAA;AAChB,2GAAA,aAAa,OAAA;AACb,+GAAA,iBAAiB,OAAA;AACjB,wHAAA,0BAA0B,OAAA;AAC1B,kHAAA,oBAAoB,OAAA;AACpB,6GAAA,eAAe,OAAA;AAIjB,gBAAgB;AAChB,mCAAkF;AAAzE,wGAAA,cAAc,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,iHAAA,uBAAuB,OAAA;AAE/D,eAAe;AACf,+CAUwB;AATtB,6GAAA,aAAa,OAAA;AACb,yGAAA,SAAS,OAAA;AACT,gHAAA,gBAAgB,OAAA;AAChB,wHAAA,wBAAwB,OAAA;AACxB,4GAAA,YAAY,OAAA;AACZ,2GAAA,WAAW,OAAA;AACX,2GAAA,WAAW,OAAA;AACX,qHAAA,qBAAqB,OAAA;AACrB,wHAAA,wBAAwB,OAAA;AAG1B,wBAAwB;AACxB,+CAAoD;AAA3C,kHAAA,kBAAkB,OAAA;AAE3B,qBAAqB;AACrB,yCAOqB;AANnB,4GAAA,eAAe,OAAA;AACf,4GAAA,eAAe,OAAA;AACf,6GAAA,gBAAgB,OAAA;AAChB,oHAAA,uBAAuB,OAAA;AACvB,iHAAA,oBAAoB,OAAA;AAItB,qBAAqB;AACrB,2DAS8B;AAR5B,kHAAA,YAAY,OAAA;AACZ,sHAAA,gBAAgB,OAAA;AAChB,8HAAA,wBAAwB,OAAA;AACxB,sHAAA,gBAAgB,OAAA;AAChB,6HAAA,uBAAuB,OAAA;AAOzB,sBAAsB;AACtB,uDAOgC;AAN9B,mHAAA,mBAAmB,OAAA;AACnB,oHAAA,oBAAoB,OAAA;AACpB,sHAAA,sBAAsB,OAAA;AACtB,gHAAA,gBAAgB,OAAA;AAIlB,mDAA2H;AAAlH,iHAAA,mBAAmB,OAAA;AAAE,kHAAA,oBAAoB,OAAA;AAClD,2CAAwG;AAA/F,oHAAA,0BAA0B,OAAA;AAAE,6GAAA,mBAAmB,OAAA;AAExD,eAAe;AACf,6CAQuB;AAPrB,yGAAA,UAAU,OAAA;AACV,6GAAA,cAAc,OAAA;AACd,qHAAA,sBAAsB,OAAA;AAOxB,kDAA6F;AAApF,oHAAA,uBAAuB,OAAA;AAChC,8CAAuF;AAA9E,gHAAA,qBAAqB,OAAA;AAE9B,sCAAsC;AACtC,+BASgB;AARd,sGAAA,cAAc,OAAA;AACd,yGAAA,iBAAiB,OAAA;AACjB,oGAAA,YAAY,OAAA;AAEZ,qGAAA,aAAa,OAAA;AACb,yFAAA,CAAC,OAAA;AACD,0GAAA,kBAAkB,OAAA;AAIP,QAAA,wBAAwB,GAAG,OAAO,CAAC;AAEhD,2DAA2D;AAC9C,QAAA,aAAa,GACxB,8CAA8C;IAC9C,6DAA6D;IAC7D,sDAAsD,CAAC;AACzD,IAAA,gCAAuB,EAAC,UAAU,CAAC,CAAC"}
package/dist/telemetry.js CHANGED
@@ -43,7 +43,7 @@ const https = __importStar(require("https"));
43
43
  const os = __importStar(require("os"));
44
44
  const path = __importStar(require("path"));
45
45
  const crypto_1 = require("crypto");
46
- const AGENTGUARD_SPEND_VERSION = '0.4.0';
46
+ const AGENTGUARD_SPEND_VERSION = '0.4.1';
47
47
  const STATE_DIR = path.join(os.homedir(), '.agentguard');
48
48
  const INSTALL_PATH = path.join(STATE_DIR, 'install.json');
49
49
  const BEACON_URL = 'https://agentguard.run/api/beacon';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentguard-run/spend",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "Local-runtime spend caps and capability-gated model routing for AI agents. Prompts, API keys, and signing keys stay inside the customer runtime. Zero data plane involvement.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -40,10 +40,10 @@
40
40
  "require": "./dist/templates/index.js",
41
41
  "default": "./dist/templates/index.js"
42
42
  },
43
- "./coach": {
44
- "types": "./dist/coach/conversation.d.ts",
45
- "require": "./dist/coach/conversation.js",
46
- "default": "./dist/coach/conversation.js"
43
+ "./advisor": {
44
+ "types": "./dist/advisor/conversation.d.ts",
45
+ "require": "./dist/advisor/conversation.js",
46
+ "default": "./dist/advisor/conversation.js"
47
47
  }
48
48
  },
49
49
  "bin": {
@@ -64,8 +64,8 @@
64
64
  "src/cli/tips.ts",
65
65
  "src/cli/wizard.ts",
66
66
  "src/bindings",
67
- "src/coach",
68
- "src/cli/coach.ts"
67
+ "src/advisor",
68
+ "src/cli/advisor.ts"
69
69
  ],
70
70
  "scripts": {
71
71
  "build": "tsc",
@@ -1,5 +1,5 @@
1
1
  /**
2
- * AgentGuard(TM) Spend: local Coach anomaly review skeleton.
2
+ * AgentGuard(TM) Spend: local Advisor anomaly review skeleton.
3
3
  *
4
4
  * Reads local decision logs only. No network calls are made.
5
5
  *
@@ -12,14 +12,14 @@ import * as fs from 'fs';
12
12
  import * as path from 'path';
13
13
  import { agentguardHome } from './output';
14
14
 
15
- export interface CoachSpendPoint {
15
+ export interface AdvisorSpendPoint {
16
16
  ts: string;
17
17
  scope: string;
18
18
  agentId: string;
19
19
  cents: number;
20
20
  }
21
21
 
22
- export interface CoachAnomaly {
22
+ export interface AdvisorAnomaly {
23
23
  scope: string;
24
24
  agentId: string;
25
25
  last24hCents: number;
@@ -28,10 +28,10 @@ export interface CoachAnomaly {
28
28
  suggestion: string;
29
29
  }
30
30
 
31
- export function readDecisionSpend(scope = 'default', home = agentguardHome()): CoachSpendPoint[] {
31
+ export function readDecisionSpend(scope = 'default', home = agentguardHome()): AdvisorSpendPoint[] {
32
32
  const file = path.join(home, scope, 'decisions.ndjson');
33
33
  if (!fs.existsSync(file)) return [];
34
- const points: CoachSpendPoint[] = [];
34
+ const points: AdvisorSpendPoint[] = [];
35
35
  for (const line of fs.readFileSync(file, 'utf8').split('\n')) {
36
36
  if (!line.trim()) continue;
37
37
  try {
@@ -53,14 +53,14 @@ export function readDecisionSpend(scope = 'default', home = agentguardHome()): C
53
53
  return points;
54
54
  }
55
55
 
56
- export function reviewAnomalies(points: CoachSpendPoint[], now = new Date()): CoachAnomaly[] {
56
+ export function reviewAnomalies(points: AdvisorSpendPoint[], now = new Date()): AdvisorAnomaly[] {
57
57
  const cutoff = now.getTime() - 24 * 60 * 60 * 1000;
58
- const byAgent = new Map<string, CoachSpendPoint[]>();
58
+ const byAgent = new Map<string, AdvisorSpendPoint[]>();
59
59
  for (const point of points) {
60
60
  const key = `${point.scope}\t${point.agentId}`;
61
61
  byAgent.set(key, [...(byAgent.get(key) ?? []), point]);
62
62
  }
63
- const anomalies: CoachAnomaly[] = [];
63
+ const anomalies: AdvisorAnomaly[] = [];
64
64
  for (const [key, rows] of byAgent) {
65
65
  const [scope, agentId] = key.split('\t');
66
66
  const daily = bucketDaily(rows);
@@ -84,7 +84,7 @@ export function reviewAnomalies(points: CoachSpendPoint[], now = new Date()): Co
84
84
  return anomalies.sort((a, b) => b.last24hCents - a.last24hCents);
85
85
  }
86
86
 
87
- function bucketDaily(points: CoachSpendPoint[]): Array<{ day: string; cents: number }> {
87
+ function bucketDaily(points: AdvisorSpendPoint[]): Array<{ day: string; cents: number }> {
88
88
  const buckets = new Map<string, number>();
89
89
  for (const point of points) {
90
90
  const day = dayKey(new Date(point.ts));