@agentguard-run/spend 0.4.0 → 0.4.1

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 (67) hide show
  1. package/CHANGELOG.md +8 -2
  2. package/README.es-419.md +21 -4
  3. package/README.md +21 -4
  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 +99 -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} +60 -47
  36. package/dist/cli/advisor.js.map +1 -0
  37. package/dist/cli/main.js +5 -5
  38. package/dist/cli/main.js.map +1 -1
  39. package/dist/index.d.ts +4 -4
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +11 -11
  42. package/dist/index.js.map +1 -1
  43. package/dist/telemetry.js +1 -1
  44. package/package.json +7 -7
  45. package/src/{coach → advisor}/anomaly.ts +9 -9
  46. package/src/{coach → advisor}/conversation.ts +80 -39
  47. package/src/{coach → advisor}/forecast.ts +5 -5
  48. package/src/{coach → advisor}/llm-client.ts +21 -21
  49. package/src/{coach → advisor}/output.ts +49 -20
  50. package/src/advisor/posture.ts +111 -0
  51. package/src/{coach → advisor}/system-prompt.ts +22 -8
  52. package/src/cli/{coach.ts → advisor.ts} +71 -58
  53. package/dist/cli/coach.d.ts +0 -5
  54. package/dist/cli/coach.d.ts.map +0 -1
  55. package/dist/cli/coach.js.map +0 -1
  56. package/dist/coach/anomaly.d.ts.map +0 -1
  57. package/dist/coach/anomaly.js.map +0 -1
  58. package/dist/coach/conversation.d.ts.map +0 -1
  59. package/dist/coach/conversation.js.map +0 -1
  60. package/dist/coach/forecast.d.ts.map +0 -1
  61. package/dist/coach/forecast.js.map +0 -1
  62. package/dist/coach/llm-client.d.ts.map +0 -1
  63. package/dist/coach/llm-client.js.map +0 -1
  64. package/dist/coach/output.d.ts.map +0 -1
  65. package/dist/coach/output.js.map +0 -1
  66. package/dist/coach/system-prompt.d.ts.map +0 -1
  67. 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);
@@ -137,7 +145,7 @@ async function runCoach(argv) {
137
145
  process.removeListener('SIGINT', onSigint);
138
146
  }
139
147
  }
140
- async function runCoachReview(argv) {
148
+ async function runAdvisorReview(argv) {
141
149
  const scope = valueAfter(argv, '--scope') ?? 'default';
142
150
  const anomalies = (0, anomaly_1.reviewAnomalies)((0, anomaly_1.readDecisionSpend)(scope));
143
151
  console.log('');
@@ -153,7 +161,7 @@ async function runCoachReview(argv) {
153
161
  }
154
162
  return 0;
155
163
  }
156
- async function runCoachForecast(argv) {
164
+ async function runAdvisorForecast(argv) {
157
165
  const scope = valueAfter(argv, '--scope') ?? 'default';
158
166
  const cap = valueAfter(argv, '--cap-cents');
159
167
  const forecast = (0, forecast_1.forecastMonthEnd)((0, anomaly_1.readDecisionSpend)(scope), cap ? Number(cap) : null);
@@ -186,7 +194,7 @@ async function runInteractiveQuestions(conversation, logger, history, client, is
186
194
  conversation.answer(answer);
187
195
  logger.append('answer', { question: question.id, answer });
188
196
  history.push({ role: 'user', content: `${question.prompt}\n${answer}` });
189
- await streamCoachSummary(client, history, coachQuestionPrompt(question.id), logger, isCancelled);
197
+ await streamAdvisorSummary(client, history, advisorQuestionPrompt(question.id), logger, isCancelled);
190
198
  conversation.next();
191
199
  }
192
200
  }
@@ -194,7 +202,7 @@ async function runInteractiveQuestions(conversation, logger, history, client, is
194
202
  rl.close();
195
203
  }
196
204
  }
197
- async function streamCoachSummary(client, history, prompt, logger, isCancelled) {
205
+ async function streamAdvisorSummary(client, history, prompt, logger, isCancelled) {
198
206
  history.push({ role: 'user', content: prompt });
199
207
  let content = '';
200
208
  process.stdout.write('\n');
@@ -209,28 +217,30 @@ async function streamCoachSummary(client, history, prompt, logger, isCancelled)
209
217
  }
210
218
  catch (err) {
211
219
  const message = err instanceof Error ? err.message : String(err);
212
- content = `Coach provider unavailable: ${message}`;
220
+ content = `Advisor provider unavailable: ${message}`;
213
221
  console.log(content);
214
222
  }
215
223
  history.push({ role: 'assistant', content });
216
224
  logger.append('assistant', { content });
217
225
  }
218
226
  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())
227
+ const answers = {
228
+ building: 'A customer support agent for an ecommerce business',
229
+ posture: '',
230
+ scale: 'Team of 5, around 2000 support tickets and orders per month',
231
+ tasks: 'triage refunds, draft support replies, assemble chargeback evidence',
232
+ budget: '$199 monthly budget with low per-call costs',
233
+ confirm: 'Confirmed',
234
+ };
235
+ while (conversation.currentQuestion()) {
236
+ const question = conversation.currentQuestion();
237
+ if (!question)
228
238
  break;
229
- conversation.answer(answer);
239
+ conversation.answer(answers[question.id] ?? 'Confirmed');
230
240
  conversation.next();
231
241
  }
232
242
  }
233
- function coachQuestionPrompt(id) {
243
+ function advisorQuestionPrompt(id) {
234
244
  return `Acknowledge the ${id} answer in 2 short sentences. Ask only the next unanswered setup question. Do not write files yet.`;
235
245
  }
236
246
  function profileSummaryPrompt(profile) {
@@ -241,11 +251,14 @@ function parseOptions(argv) {
241
251
  const providerFlag = valueAfter(argv, '--provider');
242
252
  const provider = providerFlag ?? (baseUrl ? 'compatible' : 'openrouter');
243
253
  const language = valueAfter(argv, '--language');
254
+ const postureValue = valueAfter(argv, '--posture');
255
+ const posture = postureValue === 'custom' ? 'custom' : (0, posture_1.normalizePosture)(postureValue);
244
256
  return {
245
257
  provider,
246
258
  baseUrl,
247
259
  model: valueAfter(argv, '--model'),
248
260
  language: language === 'py' ? 'py' : language === 'ts' ? 'ts' : undefined,
261
+ posture: posture ?? undefined,
249
262
  defaults: argv.includes('--defaults'),
250
263
  yes: argv.includes('--yes') || argv.includes('-y'),
251
264
  };
@@ -254,4 +267,4 @@ function valueAfter(argv, flag) {
254
267
  const index = argv.indexOf(flag);
255
268
  return index >= 0 ? argv[index + 1] : undefined;
256
269
  }
257
- //# sourceMappingURL=coach.js.map
270
+ //# 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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"}
package/dist/cli/main.js CHANGED
@@ -45,7 +45,7 @@ usage:
45
45
  agentguard <command> [options]
46
46
 
47
47
  commands:
48
- coach Local LLM setup that writes policy.yaml and quickstart code.
48
+ advisor Local LLM setup that writes policy.yaml and quickstart code.
49
49
  wizard Guided setup for policy.yaml and quickstarts.
50
50
  models Browse models, sync OpenRouter pricing, update policy.
51
51
  auth Configure local provider keys.
@@ -62,7 +62,7 @@ commands:
62
62
 
63
63
  examples:
64
64
  agentguard auth openrouter
65
- agentguard coach
65
+ agentguard advisor
66
66
  agentguard wizard
67
67
  agentguard models --sync-pricing
68
68
  agentguard models --task payment-approval
@@ -89,9 +89,9 @@ async function main(argv = process.argv.slice(2)) {
89
89
  const { maybeShowStartupTips } = await Promise.resolve().then(() => __importStar(require('./tips')));
90
90
  maybeShowStartupTips(showTips);
91
91
  }
92
- if (command === 'coach') {
93
- const { runCoach } = await Promise.resolve().then(() => __importStar(require('./coach')));
94
- return runCoach(rest);
92
+ if (command === 'advisor') {
93
+ const { runAdvisor } = await Promise.resolve().then(() => __importStar(require('./advisor')));
94
+ return runAdvisor(rest);
95
95
  }
96
96
  if (command === 'wizard') {
97
97
  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":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCH,oBAwEC;AA7GD,oCAAoD;AACpD,qCAAkC;AAElC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCZ,CAAC;AAEK,KAAK,UAAU,IAAI,CAAC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,IAAA,eAAM,EAAC,gCAAwB,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,cAAc,gCAAwB,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IAE7D,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,oBAAoB,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;QACxD,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,SAAS,GAAC,CAAC;QAC7C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,EAAE,SAAS,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;QAC/C,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,EAAE,SAAS,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;QAC/C,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,EAAE,SAAS,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;QAC/C,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,EAAE,SAAS,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;QAC/C,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,EAAE,UAAU,EAAE,GAAG,wDAAa,WAAW,GAAC,CAAC;QACjD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,SAAS,GAAC,CAAC;QAC7C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,MAAM,EAAE,YAAY,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAC;QACrD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,OAAO,OAAO,CAAC,CAAC;IACrE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,IAAI,CACT,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5B,CAAC,GAAG,EAAE,EAAE;QACN,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CACF,CAAC;AACJ,CAAC"}
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.1";
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.1';
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.1",
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));