@agentguard-run/spend 0.2.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -1
- package/LICENSE +1 -1
- package/README.es-419.md +37 -100
- package/README.md +58 -121
- package/README.pt-BR.md +37 -100
- package/dist/bindings/anthropic.d.ts +11 -0
- package/dist/bindings/anthropic.d.ts.map +1 -0
- package/dist/bindings/anthropic.js +116 -0
- package/dist/bindings/anthropic.js.map +1 -0
- package/dist/bindings/bedrock.d.ts +11 -0
- package/dist/bindings/bedrock.d.ts.map +1 -0
- package/dist/bindings/bedrock.js +177 -0
- package/dist/bindings/bedrock.js.map +1 -0
- package/dist/cli/auth.d.ts +7 -0
- package/dist/cli/auth.d.ts.map +1 -0
- package/dist/cli/auth.js +189 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/coach.d.ts +5 -0
- package/dist/cli/coach.d.ts.map +1 -0
- package/dist/cli/coach.js +257 -0
- package/dist/cli/coach.js.map +1 -0
- package/dist/cli/colors.d.ts +8 -3
- package/dist/cli/colors.d.ts.map +1 -1
- package/dist/cli/colors.js +93 -4
- package/dist/cli/colors.js.map +1 -1
- package/dist/cli/demo.d.ts.map +1 -1
- package/dist/cli/demo.js +23 -2
- package/dist/cli/demo.js.map +1 -1
- package/dist/cli/main.d.ts +0 -6
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +42 -16
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/models.d.ts +18 -0
- package/dist/cli/models.d.ts.map +1 -0
- package/dist/cli/models.js +277 -0
- package/dist/cli/models.js.map +1 -0
- package/dist/cli/tips.d.ts +21 -0
- package/dist/cli/tips.d.ts.map +1 -0
- package/dist/cli/tips.js +191 -0
- package/dist/cli/tips.js.map +1 -0
- package/dist/cli/wizard.d.ts +27 -0
- package/dist/cli/wizard.d.ts.map +1 -0
- package/dist/cli/wizard.js +182 -0
- package/dist/cli/wizard.js.map +1 -0
- package/dist/coach/anomaly.d.ts +26 -0
- package/dist/coach/anomaly.d.ts.map +1 -0
- package/dist/coach/anomaly.js +119 -0
- package/dist/coach/anomaly.js.map +1 -0
- package/dist/coach/conversation.d.ts +69 -0
- package/dist/coach/conversation.d.ts.map +1 -0
- package/dist/coach/conversation.js +228 -0
- package/dist/coach/conversation.js.map +1 -0
- package/dist/coach/forecast.d.ts +19 -0
- package/dist/coach/forecast.d.ts.map +1 -0
- package/dist/coach/forecast.js +57 -0
- package/dist/coach/forecast.js.map +1 -0
- package/dist/coach/llm-client.d.ts +41 -0
- package/dist/coach/llm-client.d.ts.map +1 -0
- package/dist/coach/llm-client.js +248 -0
- package/dist/coach/llm-client.js.map +1 -0
- package/dist/coach/output.d.ts +41 -0
- package/dist/coach/output.d.ts.map +1 -0
- package/dist/coach/output.js +173 -0
- package/dist/coach/output.js.map +1 -0
- package/dist/coach/system-prompt.d.ts +20 -0
- package/dist/coach/system-prompt.d.ts.map +1 -0
- package/dist/coach/system-prompt.js +177 -0
- package/dist/coach/system-prompt.js.map +1 -0
- package/dist/cost-table.d.ts +11 -36
- package/dist/cost-table.d.ts.map +1 -1
- package/dist/cost-table.js +114 -45
- package/dist/cost-table.js.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -2
- package/dist/index.js.map +1 -1
- package/dist/openrouter-catalog.d.ts +56 -0
- package/dist/openrouter-catalog.d.ts.map +1 -0
- package/dist/openrouter-catalog.js +183 -0
- package/dist/openrouter-catalog.js.map +1 -0
- package/dist/spend-guard.d.ts +38 -55
- package/dist/spend-guard.d.ts.map +1 -1
- package/dist/spend-guard.js +268 -83
- package/dist/spend-guard.js.map +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +52 -21
- package/dist/telemetry.js.map +1 -1
- package/dist/templates/index.d.ts +17 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +100 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/types.d.ts +18 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +39 -4
- package/src/bindings/anthropic.ts +142 -0
- package/src/bindings/bedrock.ts +200 -0
- package/src/cli/auth.ts +145 -0
- package/src/cli/coach.ts +249 -0
- package/src/cli/models.ts +236 -0
- package/src/cli/tips.ts +161 -0
- package/src/cli/wizard.ts +160 -0
- package/src/coach/anomaly.ts +98 -0
- package/src/coach/conversation.ts +248 -0
- package/src/coach/forecast.ts +64 -0
- package/src/coach/llm-client.ts +247 -0
- package/src/coach/output.ts +172 -0
- package/src/coach/system-prompt.ts +181 -0
- package/src/openrouter-catalog.ts +180 -0
- package/src/templates/agent-support.yaml +30 -0
- package/src/templates/chargeback-evidence.yaml +30 -0
- package/src/templates/code-scan.yaml +30 -0
- package/src/templates/index.ts +109 -0
- package/src/templates/payment-approval.yaml +30 -0
- package/src/templates/risk-review.yaml +30 -0
- package/tests/fixtures/openrouter-catalog.json +1 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type OpenRouterModel } from '../openrouter-catalog';
|
|
2
|
+
export interface ModelRow {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
inputCentsPerMtok: number | null;
|
|
6
|
+
outputCentsPerMtok: number | null;
|
|
7
|
+
capability: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function rowsFromCatalog(models: OpenRouterModel[]): ModelRow[];
|
|
10
|
+
export declare function rowsFromCostTable(): ModelRow[];
|
|
11
|
+
export declare function filterRows(rows: ModelRow[], opts: {
|
|
12
|
+
search?: string;
|
|
13
|
+
capability?: string;
|
|
14
|
+
task?: string;
|
|
15
|
+
}): ModelRow[];
|
|
16
|
+
export declare function suggestedAssignments(task: string): Record<string, string[]>;
|
|
17
|
+
export declare function runModels(argv: string[]): Promise<number>;
|
|
18
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/cli/models.ts"],"names":[],"mappings":"AAIA,OAAO,EAA4D,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKvH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,QAAQ,EAAE,CAYrE;AAED,wBAAgB,iBAAiB,IAAI,QAAQ,EAAE,CAQ9C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,QAAQ,EAAE,CAetH;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAQ3E;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA0C/D"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.rowsFromCatalog = rowsFromCatalog;
|
|
37
|
+
exports.rowsFromCostTable = rowsFromCostTable;
|
|
38
|
+
exports.filterRows = filterRows;
|
|
39
|
+
exports.suggestedAssignments = suggestedAssignments;
|
|
40
|
+
exports.runModels = runModels;
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const readline = __importStar(require("readline"));
|
|
44
|
+
const index_1 = require("../index");
|
|
45
|
+
const openrouter_catalog_1 = require("../openrouter-catalog");
|
|
46
|
+
const cost_table_1 = require("../cost-table");
|
|
47
|
+
const templates_1 = require("../templates");
|
|
48
|
+
const colors_1 = require("./colors");
|
|
49
|
+
function rowsFromCatalog(models) {
|
|
50
|
+
return models.map((model) => {
|
|
51
|
+
const input = Number(model.pricing?.prompt);
|
|
52
|
+
const output = Number(model.pricing?.completion);
|
|
53
|
+
return {
|
|
54
|
+
id: model.id,
|
|
55
|
+
name: model.name ?? model.id,
|
|
56
|
+
inputCentsPerMtok: Number.isFinite(input) ? input * 100 * 1_000_000 : null,
|
|
57
|
+
outputCentsPerMtok: Number.isFinite(output) ? output * 100 * 1_000_000 : null,
|
|
58
|
+
capability: capabilityForModel(model.id),
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
function rowsFromCostTable() {
|
|
63
|
+
return Object.entries((0, cost_table_1.knownModelCosts)()).map(([id, cost]) => ({
|
|
64
|
+
id,
|
|
65
|
+
name: id,
|
|
66
|
+
inputCentsPerMtok: cost.inputCentsPerKtok * 1000,
|
|
67
|
+
outputCentsPerMtok: cost.outputCentsPerKtok * 1000,
|
|
68
|
+
capability: capabilityForModel(id),
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
function filterRows(rows, opts) {
|
|
72
|
+
let out = rows;
|
|
73
|
+
if (opts.task) {
|
|
74
|
+
const template = (0, templates_1.getTaskTemplate)(opts.task);
|
|
75
|
+
if (template) {
|
|
76
|
+
const allowed = new Set(template.allowedModels);
|
|
77
|
+
out = out.filter((row) => allowed.has(row.id) || row.capability === template.requiredCapability);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (opts.capability)
|
|
81
|
+
out = out.filter((row) => row.capability === opts.capability);
|
|
82
|
+
if (opts.search) {
|
|
83
|
+
const needle = opts.search.toLowerCase();
|
|
84
|
+
out = out.filter((row) => row.id.toLowerCase().includes(needle) || row.name.toLowerCase().includes(needle));
|
|
85
|
+
}
|
|
86
|
+
return out.sort((a, b) => displayCost(a) - displayCost(b) || a.id.localeCompare(b.id));
|
|
87
|
+
}
|
|
88
|
+
function suggestedAssignments(task) {
|
|
89
|
+
const template = (0, templates_1.getTaskTemplate)(task);
|
|
90
|
+
if (!template)
|
|
91
|
+
return {};
|
|
92
|
+
return {
|
|
93
|
+
primary: [template.primaryModel],
|
|
94
|
+
fallback: [template.fallbackModel],
|
|
95
|
+
allowed: template.allowedModels,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
async function runModels(argv) {
|
|
99
|
+
if (argv.includes('--help') || argv.includes('-h')) {
|
|
100
|
+
console.log('agentguard models [--sync-pricing] [--search <term>] [--capability <tier>] [--task <template>] [--json]');
|
|
101
|
+
return 0;
|
|
102
|
+
}
|
|
103
|
+
const sync = argv.includes('--sync-pricing');
|
|
104
|
+
const json = argv.includes('--json');
|
|
105
|
+
const search = argValue(argv, '--search');
|
|
106
|
+
const capability = argValue(argv, '--capability');
|
|
107
|
+
const task = argValue(argv, '--task');
|
|
108
|
+
if (sync) {
|
|
109
|
+
const result = await (0, openrouter_catalog_1.syncPricingIntoCostTable)({ force: true });
|
|
110
|
+
if (json) {
|
|
111
|
+
console.log(JSON.stringify(result, null, 2));
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
console.log('');
|
|
115
|
+
console.log(' ' + (0, colors_1.banner)(index_1.AGENTGUARD_SPEND_VERSION));
|
|
116
|
+
console.log('');
|
|
117
|
+
console.log(` ${(0, colors_1.green)('applied')} ${result.count} OpenRouter pricing overrides`);
|
|
118
|
+
console.log(` ${(0, colors_1.dim)('saved')} ${(0, colors_1.agentguardHome)()}/cost-overrides.json`);
|
|
119
|
+
console.log('');
|
|
120
|
+
}
|
|
121
|
+
return 0;
|
|
122
|
+
}
|
|
123
|
+
const rows = await loadRows();
|
|
124
|
+
const filtered = filterRows(rows, { search, capability, task });
|
|
125
|
+
if (json) {
|
|
126
|
+
console.log(JSON.stringify({ models: filtered, assignments: task ? suggestedAssignments(task) : undefined }, null, 2));
|
|
127
|
+
return 0;
|
|
128
|
+
}
|
|
129
|
+
if (process.stdin.isTTY && !search && !capability && !task) {
|
|
130
|
+
const selected = await interactivePick(filtered);
|
|
131
|
+
if (selected.length > 0)
|
|
132
|
+
writeSelectedModels(selected);
|
|
133
|
+
return 0;
|
|
134
|
+
}
|
|
135
|
+
printRows(filtered, task);
|
|
136
|
+
return 0;
|
|
137
|
+
}
|
|
138
|
+
async function loadRows() {
|
|
139
|
+
const cached = (0, openrouter_catalog_1.getCachedCatalog)();
|
|
140
|
+
if (cached)
|
|
141
|
+
return rowsFromCatalog(cached.data);
|
|
142
|
+
try {
|
|
143
|
+
const catalog = await (0, openrouter_catalog_1.fetchCatalog)();
|
|
144
|
+
return rowsFromCatalog(catalog.data);
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
return rowsFromCostTable();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
function printRows(rows, task) {
|
|
151
|
+
console.log('');
|
|
152
|
+
console.log(' ' + (0, colors_1.banner)(index_1.AGENTGUARD_SPEND_VERSION));
|
|
153
|
+
console.log('');
|
|
154
|
+
if (task && templates_1.TASK_TEMPLATES[task]) {
|
|
155
|
+
const assignment = suggestedAssignments(task);
|
|
156
|
+
console.log(' ' + (0, colors_1.cyanBold)(`task: ${task}`));
|
|
157
|
+
console.log(` primary: ${assignment.primary?.join(', ') ?? 'n/a'}`);
|
|
158
|
+
console.log(` fallback: ${assignment.fallback?.join(', ') ?? 'n/a'}`);
|
|
159
|
+
console.log('');
|
|
160
|
+
}
|
|
161
|
+
for (const row of rows.slice(0, 80)) {
|
|
162
|
+
console.log(` ${(0, colors_1.green)(row.id.padEnd(38))} ${formatCost(row).padEnd(22)} ${(0, colors_1.dim)(row.capability)}`);
|
|
163
|
+
}
|
|
164
|
+
if (rows.length > 80)
|
|
165
|
+
console.log(` ${(0, colors_1.yellow)(String(rows.length - 80) + ' more')} refine with agentguard models --search <term>`);
|
|
166
|
+
console.log('');
|
|
167
|
+
console.log(' ' + (0, colors_1.statusBar)());
|
|
168
|
+
console.log('');
|
|
169
|
+
}
|
|
170
|
+
async function interactivePick(rows) {
|
|
171
|
+
const selected = new Set();
|
|
172
|
+
let cursor = 0;
|
|
173
|
+
let filtered = rows.slice(0, 80);
|
|
174
|
+
let query = '';
|
|
175
|
+
readline.emitKeypressEvents(process.stdin);
|
|
176
|
+
if (process.stdin.isTTY)
|
|
177
|
+
process.stdin.setRawMode(true);
|
|
178
|
+
const render = () => {
|
|
179
|
+
process.stdout.write('\x1b[2J\x1b[H');
|
|
180
|
+
console.log((0, colors_1.banner)(index_1.AGENTGUARD_SPEND_VERSION));
|
|
181
|
+
console.log('');
|
|
182
|
+
console.log(`Search: ${query || (0, colors_1.dim)('press / to filter')} Selected: ${selected.size}`);
|
|
183
|
+
console.log('');
|
|
184
|
+
filtered.slice(0, 18).forEach((row, index) => {
|
|
185
|
+
const marker = selected.has(row.id) ? '[x]' : '[ ]';
|
|
186
|
+
const pointer = index === cursor ? '>' : ' ';
|
|
187
|
+
console.log(`${pointer} ${marker} ${row.id.padEnd(40)} ${formatCost(row).padEnd(20)} ${row.capability}`);
|
|
188
|
+
});
|
|
189
|
+
console.log('');
|
|
190
|
+
console.log((0, colors_1.dim)('[/] search [space] select [enter] confirm [q] quit'));
|
|
191
|
+
};
|
|
192
|
+
render();
|
|
193
|
+
return new Promise((resolve) => {
|
|
194
|
+
const onKey = (_chunk, key) => {
|
|
195
|
+
if (key.name === 'q' || (key.ctrl && key.name === 'c'))
|
|
196
|
+
finish([]);
|
|
197
|
+
else if (key.name === 'return')
|
|
198
|
+
finish([...selected]);
|
|
199
|
+
else if (key.name === 'down') {
|
|
200
|
+
cursor = Math.min(cursor + 1, Math.max(0, filtered.length - 1));
|
|
201
|
+
render();
|
|
202
|
+
}
|
|
203
|
+
else if (key.name === 'up') {
|
|
204
|
+
cursor = Math.max(cursor - 1, 0);
|
|
205
|
+
render();
|
|
206
|
+
}
|
|
207
|
+
else if (key.name === 'space') {
|
|
208
|
+
const row = filtered[cursor];
|
|
209
|
+
if (row)
|
|
210
|
+
selected.has(row.id) ? selected.delete(row.id) : selected.add(row.id);
|
|
211
|
+
render();
|
|
212
|
+
}
|
|
213
|
+
else if (key.name === 'backspace') {
|
|
214
|
+
query = query.slice(0, -1);
|
|
215
|
+
filtered = filterRows(rows, { search: query });
|
|
216
|
+
cursor = 0;
|
|
217
|
+
render();
|
|
218
|
+
}
|
|
219
|
+
else if (key.sequence && key.sequence.length === 1 && key.sequence !== '/') {
|
|
220
|
+
query += key.sequence;
|
|
221
|
+
filtered = filterRows(rows, { search: query });
|
|
222
|
+
cursor = 0;
|
|
223
|
+
render();
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
const finish = (value) => {
|
|
227
|
+
process.stdin.off('keypress', onKey);
|
|
228
|
+
if (process.stdin.isTTY)
|
|
229
|
+
process.stdin.setRawMode(false);
|
|
230
|
+
process.stdout.write('\n');
|
|
231
|
+
resolve(value);
|
|
232
|
+
};
|
|
233
|
+
process.stdin.on('keypress', onKey);
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
function writeSelectedModels(models) {
|
|
237
|
+
const filePath = path.join((0, colors_1.agentguardHome)(), 'policy.yaml');
|
|
238
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
239
|
+
let existing = '';
|
|
240
|
+
try {
|
|
241
|
+
existing = fs.readFileSync(filePath, 'utf8');
|
|
242
|
+
}
|
|
243
|
+
catch {
|
|
244
|
+
existing = defaultPolicy();
|
|
245
|
+
}
|
|
246
|
+
const block = ['allowedModels:', ...models.map((model) => ` - ${model}`)].join('\n') + '\n';
|
|
247
|
+
const next = existing.match(/^allowedModels:/m)
|
|
248
|
+
? existing.replace(/^allowedModels:\n(?: - .*\n)*/m, block)
|
|
249
|
+
: existing.trimEnd() + '\n' + block;
|
|
250
|
+
fs.writeFileSync(filePath, next);
|
|
251
|
+
console.log(`${(0, colors_1.green)('saved')} ${filePath}`);
|
|
252
|
+
}
|
|
253
|
+
function defaultPolicy() {
|
|
254
|
+
return 'id: local-policy-v1\nname: Local AgentGuard policy\nversion: 1\neffectiveFrom: "' + new Date().toISOString() + '"\nmode: enforce\nscope:\n tenantId: local\ncaps:\n - amountCents: 100\n window: per_call\n action: allow\n';
|
|
255
|
+
}
|
|
256
|
+
function formatCost(row) {
|
|
257
|
+
if (row.inputCentsPerMtok === null || row.outputCentsPerMtok === null)
|
|
258
|
+
return '$n/a per 1M';
|
|
259
|
+
return `$${(row.inputCentsPerMtok / 100).toFixed(2)}/$${(row.outputCentsPerMtok / 100).toFixed(2)} per 1M`;
|
|
260
|
+
}
|
|
261
|
+
function displayCost(row) {
|
|
262
|
+
return row.inputCentsPerMtok ?? Number.MAX_SAFE_INTEGER;
|
|
263
|
+
}
|
|
264
|
+
function capabilityForModel(model) {
|
|
265
|
+
if (model.includes('gpt-5') || model.includes('opus') || model.includes('sonnet'))
|
|
266
|
+
return 'payment_initiate';
|
|
267
|
+
if (model.includes('mini') || model.includes('haiku') || model.includes('flash'))
|
|
268
|
+
return 'read_only';
|
|
269
|
+
if ((0, cost_table_1.getModelCost)(model))
|
|
270
|
+
return 'data_write';
|
|
271
|
+
return 'read_only';
|
|
272
|
+
}
|
|
273
|
+
function argValue(argv, flag) {
|
|
274
|
+
const index = argv.indexOf(flag);
|
|
275
|
+
return index >= 0 ? argv[index + 1] : undefined;
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/cli/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface AgentGuardTip {
|
|
2
|
+
id: string;
|
|
3
|
+
surface: string;
|
|
4
|
+
severity: 'info' | 'warning';
|
|
5
|
+
text: string;
|
|
6
|
+
learn_more_url: string;
|
|
7
|
+
dismissible: boolean;
|
|
8
|
+
}
|
|
9
|
+
interface TipsState {
|
|
10
|
+
seen?: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare const TIPS: AgentGuardTip[];
|
|
13
|
+
export declare function tipsStatePath(): string;
|
|
14
|
+
export declare function readTipsState(filePath?: string): TipsState;
|
|
15
|
+
export declare function writeTipsState(state: TipsState, filePath?: string): void;
|
|
16
|
+
export declare function unseenTips(state?: TipsState): AgentGuardTip[];
|
|
17
|
+
export declare function markTipsSeen(ids: string[], filePath?: string): void;
|
|
18
|
+
export declare function maybeShowStartupTips(force?: boolean): void;
|
|
19
|
+
export declare function runTips(argv: string[]): Promise<number>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=tips.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tips.d.ts","sourceRoot":"","sources":["../../src/cli/tips.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,eAAO,MAAM,IAAI,EAAE,aAAa,EAyE/B,CAAC;AAEF,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,aAAa,CAAC,QAAQ,GAAE,MAAwB,GAAG,SAAS,CAO3E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,GAAE,MAAwB,GAAG,IAAI,CAIzF;AAED,wBAAgB,UAAU,CAAC,KAAK,GAAE,SAA2B,GAAG,aAAa,EAAE,CAG9E;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,QAAQ,GAAE,MAAwB,GAAG,IAAI,CAGpF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,UAAQ,GAAG,IAAI,CASxD;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA2B7D"}
|
package/dist/cli/tips.js
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.TIPS = void 0;
|
|
37
|
+
exports.tipsStatePath = tipsStatePath;
|
|
38
|
+
exports.readTipsState = readTipsState;
|
|
39
|
+
exports.writeTipsState = writeTipsState;
|
|
40
|
+
exports.unseenTips = unseenTips;
|
|
41
|
+
exports.markTipsSeen = markTipsSeen;
|
|
42
|
+
exports.maybeShowStartupTips = maybeShowStartupTips;
|
|
43
|
+
exports.runTips = runTips;
|
|
44
|
+
const fs = __importStar(require("fs"));
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
const index_1 = require("../index");
|
|
47
|
+
const colors_1 = require("./colors");
|
|
48
|
+
exports.TIPS = [
|
|
49
|
+
{
|
|
50
|
+
id: 'cheap-read-only',
|
|
51
|
+
surface: 'models',
|
|
52
|
+
severity: 'info',
|
|
53
|
+
text: "Use 'openai/gpt-4o-mini' for read-only tasks. It is far cheaper than gpt-5 with the same audit guarantees.",
|
|
54
|
+
learn_more_url: 'https://agentguard.run/docs/models',
|
|
55
|
+
dismissible: true,
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: 'openrouter-cfo',
|
|
59
|
+
surface: 'auth',
|
|
60
|
+
severity: 'info',
|
|
61
|
+
text: 'One OpenRouter key gives access to hundreds of models across many providers. Your CFO sees one invoice while AgentGuard enforces who uses what.',
|
|
62
|
+
learn_more_url: 'https://agentguard.run/docs/openrouter',
|
|
63
|
+
dismissible: true,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
id: 'public-verify',
|
|
67
|
+
surface: 'verify',
|
|
68
|
+
severity: 'info',
|
|
69
|
+
text: 'Share https://agentguard.run/verify with your auditor. Paste any receipt and get browser-based cryptographic verification with no install.',
|
|
70
|
+
learn_more_url: 'https://agentguard.run/verify',
|
|
71
|
+
dismissible: true,
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
id: 'weekly-pricing',
|
|
75
|
+
surface: 'models',
|
|
76
|
+
severity: 'info',
|
|
77
|
+
text: "Run 'agentguard models --sync-pricing' weekly to keep cost math current with OpenRouter live prices.",
|
|
78
|
+
learn_more_url: 'https://agentguard.run/docs/pricing',
|
|
79
|
+
dismissible: true,
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: 'payment-attestation',
|
|
83
|
+
surface: 'wizard',
|
|
84
|
+
severity: 'warning',
|
|
85
|
+
text: "Capability tier 'payment_execute' should require a verified attestation. Do not accept caller-supplied claims for real money movement.",
|
|
86
|
+
learn_more_url: 'https://agentguard.run/docs/capabilities',
|
|
87
|
+
dismissible: true,
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
id: 'shadow-rollout',
|
|
91
|
+
surface: 'policy',
|
|
92
|
+
severity: 'info',
|
|
93
|
+
text: "Use mode 'shadow' for the first day of a rollout. You get signed decisions before enforcement changes traffic.",
|
|
94
|
+
learn_more_url: 'https://agentguard.run/docs/policies',
|
|
95
|
+
dismissible: true,
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
id: 'verify-chain',
|
|
99
|
+
surface: 'verify',
|
|
100
|
+
severity: 'info',
|
|
101
|
+
text: "Run 'agentguard verify <log.jsonl> <pubkey>' before sharing an audit packet. Whole-chain verification catches missing entries.",
|
|
102
|
+
learn_more_url: 'https://agentguard.run/docs/verify',
|
|
103
|
+
dismissible: true,
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
id: 'local-overrides',
|
|
107
|
+
surface: 'models',
|
|
108
|
+
severity: 'info',
|
|
109
|
+
text: 'Negotiated rates belong in ~/.agentguard/cost-overrides.json. Keep pricing math local with the rest of the policy state.',
|
|
110
|
+
learn_more_url: 'https://agentguard.run/docs/pricing',
|
|
111
|
+
dismissible: true,
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
id: 'bedrock-routing',
|
|
115
|
+
surface: 'bindings',
|
|
116
|
+
severity: 'info',
|
|
117
|
+
text: 'Use the native Bedrock binding when AWS procurement requires direct provider calls. AgentGuard still signs every local decision.',
|
|
118
|
+
learn_more_url: 'https://agentguard.run/docs/bedrock',
|
|
119
|
+
dismissible: true,
|
|
120
|
+
},
|
|
121
|
+
];
|
|
122
|
+
function tipsStatePath() {
|
|
123
|
+
return path.join((0, colors_1.agentguardHome)(), 'tips-seen.json');
|
|
124
|
+
}
|
|
125
|
+
function readTipsState(filePath = tipsStatePath()) {
|
|
126
|
+
try {
|
|
127
|
+
const parsed = JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
|
128
|
+
return Array.isArray(parsed.seen) ? parsed : { seen: [] };
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
return { seen: [] };
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
function writeTipsState(state, filePath = tipsStatePath()) {
|
|
135
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
136
|
+
fs.writeFileSync(filePath, JSON.stringify({ seen: [...new Set(state.seen ?? [])] }, null, 2) + '\n', { mode: 0o600 });
|
|
137
|
+
try {
|
|
138
|
+
fs.chmodSync(filePath, 0o600);
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
function unseenTips(state = readTipsState()) {
|
|
145
|
+
const seen = new Set(state.seen ?? []);
|
|
146
|
+
return exports.TIPS.filter((tip) => !seen.has(tip.id));
|
|
147
|
+
}
|
|
148
|
+
function markTipsSeen(ids, filePath = tipsStatePath()) {
|
|
149
|
+
const state = readTipsState(filePath);
|
|
150
|
+
writeTipsState({ seen: [...new Set([...(state.seen ?? []), ...ids])] }, filePath);
|
|
151
|
+
}
|
|
152
|
+
function maybeShowStartupTips(force = false) {
|
|
153
|
+
const state = readTipsState();
|
|
154
|
+
const startupIds = ['startup-wizard', 'startup-verify'];
|
|
155
|
+
const seen = new Set(state.seen ?? []);
|
|
156
|
+
if (!force && startupIds.every((id) => seen.has(id)))
|
|
157
|
+
return;
|
|
158
|
+
console.log('');
|
|
159
|
+
console.log(' ' + (0, colors_1.green)("Tip: try 'agentguard wizard' to set up in 90 seconds."));
|
|
160
|
+
console.log(' ' + (0, colors_1.green)('Tip: share https://agentguard.run/verify with your auditor.'));
|
|
161
|
+
markTipsSeen(startupIds);
|
|
162
|
+
}
|
|
163
|
+
async function runTips(argv) {
|
|
164
|
+
if (argv.includes('--help') || argv.includes('-h')) {
|
|
165
|
+
console.log('agentguard tips [--reset] [--json]');
|
|
166
|
+
return 0;
|
|
167
|
+
}
|
|
168
|
+
if (argv.includes('--reset')) {
|
|
169
|
+
writeTipsState({ seen: [] });
|
|
170
|
+
console.log('AgentGuard tips reset.');
|
|
171
|
+
return 0;
|
|
172
|
+
}
|
|
173
|
+
if (argv.includes('--json')) {
|
|
174
|
+
console.log(JSON.stringify(exports.TIPS, null, 2));
|
|
175
|
+
return 0;
|
|
176
|
+
}
|
|
177
|
+
console.log('');
|
|
178
|
+
console.log(' ' + (0, colors_1.banner)(index_1.AGENTGUARD_SPEND_VERSION));
|
|
179
|
+
console.log('');
|
|
180
|
+
for (const tip of exports.TIPS) {
|
|
181
|
+
const label = tip.severity === 'warning' ? 'warning' : 'tip';
|
|
182
|
+
console.log(` ${(0, colors_1.green)(label)} ${tip.text}`);
|
|
183
|
+
console.log(` ${(0, colors_1.dim)(tip.learn_more_url)}`);
|
|
184
|
+
}
|
|
185
|
+
console.log('');
|
|
186
|
+
console.log(' ' + (0, colors_1.statusBar)());
|
|
187
|
+
console.log('');
|
|
188
|
+
markTipsSeen(exports.TIPS.filter((tip) => tip.dismissible).map((tip) => tip.id));
|
|
189
|
+
return 0;
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=tips.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tips.js","sourceRoot":"","sources":["../../src/cli/tips.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface WizardAnswers {
|
|
2
|
+
building: string;
|
|
3
|
+
template: string;
|
|
4
|
+
capability: string;
|
|
5
|
+
allowedModels: string[];
|
|
6
|
+
fallbackModel: string;
|
|
7
|
+
perCallCents: number;
|
|
8
|
+
perDayCents: number;
|
|
9
|
+
perMonthCents: number;
|
|
10
|
+
systemInstructions: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class WizardStateMachine {
|
|
13
|
+
step: number;
|
|
14
|
+
readonly totalSteps = 7;
|
|
15
|
+
next(answer: string): boolean;
|
|
16
|
+
back(): void;
|
|
17
|
+
validate(step: number, answer: string): boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare function runWizard(argv: string[]): Promise<number>;
|
|
20
|
+
export declare function defaultAnswers(templateSlug?: string): WizardAnswers;
|
|
21
|
+
export declare function writeWizardOutputs(answers: WizardAnswers, home?: string): {
|
|
22
|
+
policyPath: string;
|
|
23
|
+
quickstartTsPath: string;
|
|
24
|
+
quickstartPyPath: string;
|
|
25
|
+
snippet: string;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=wizard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../../src/cli/wizard.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,kBAAkB;IAC7B,IAAI,SAAK;IACT,QAAQ,CAAC,UAAU,KAAK;IAExB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAM7B,IAAI,IAAI,IAAI;IAIZ,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;CAShD;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAuB/D;AAED,wBAAgB,cAAc,CAAC,YAAY,SAAgB,GAAG,aAAa,CAe1E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,SAAmB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAY/K"}
|