@bouncesecurity/aghast 0.5.0 → 0.6.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/README.md +8 -3
- package/config/pricing.json +42 -0
- package/config/prompts/false-positive-validation.md +1 -0
- package/config/prompts/general-vuln-discovery.md +1 -0
- package/config/prompts/generic-instructions.md +3 -2
- package/dist/budget.d.ts +62 -0
- package/dist/budget.d.ts.map +1 -0
- package/dist/budget.js +137 -0
- package/dist/budget.js.map +1 -0
- package/dist/check-library.d.ts +1 -0
- package/dist/check-library.d.ts.map +1 -1
- package/dist/check-library.js +22 -6
- package/dist/check-library.js.map +1 -1
- package/dist/claude-code-provider.d.ts +0 -2
- package/dist/claude-code-provider.d.ts.map +1 -1
- package/dist/claude-code-provider.js +66 -16
- package/dist/claude-code-provider.js.map +1 -1
- package/dist/cli.js +11 -1
- package/dist/cli.js.map +1 -1
- package/dist/cost-calculator.d.ts +80 -0
- package/dist/cost-calculator.d.ts.map +1 -0
- package/dist/cost-calculator.js +226 -0
- package/dist/cost-calculator.js.map +1 -0
- package/dist/error-codes.d.ts +1 -0
- package/dist/error-codes.d.ts.map +1 -1
- package/dist/error-codes.js +2 -0
- package/dist/error-codes.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +172 -10
- package/dist/index.js.map +1 -1
- package/dist/logging.d.ts +1 -1
- package/dist/logging.d.ts.map +1 -1
- package/dist/logging.js +25 -33
- package/dist/logging.js.map +1 -1
- package/dist/mock-agent-provider.d.ts +6 -3
- package/dist/mock-agent-provider.d.ts.map +1 -1
- package/dist/mock-agent-provider.js +12 -5
- package/dist/mock-agent-provider.js.map +1 -1
- package/dist/opencode-provider.d.ts +0 -2
- package/dist/opencode-provider.d.ts.map +1 -1
- package/dist/opencode-provider.js +90 -17
- package/dist/opencode-provider.js.map +1 -1
- package/dist/runtime-config.d.ts.map +1 -1
- package/dist/runtime-config.js +92 -0
- package/dist/runtime-config.js.map +1 -1
- package/dist/scan-history.d.ts +82 -0
- package/dist/scan-history.d.ts.map +1 -0
- package/dist/scan-history.js +127 -0
- package/dist/scan-history.js.map +1 -0
- package/dist/scan-runner.d.ts +64 -1
- package/dist/scan-runner.d.ts.map +1 -1
- package/dist/scan-runner.js +173 -14
- package/dist/scan-runner.js.map +1 -1
- package/dist/stats.d.ts +11 -0
- package/dist/stats.d.ts.map +1 -0
- package/dist/stats.js +197 -0
- package/dist/stats.js.map +1 -0
- package/dist/types.d.ts +40 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { DEFAULT_MODEL, FatalProviderError } from './types.js';
|
|
6
6
|
// import { parseAgentResponse } from './response-parser.js';
|
|
7
|
-
import { logProgress, logDebug, logDebugFull, createTimer } from './logging.js';
|
|
7
|
+
import { logProgress, logDebug, logDebugFull, createTimer, getLogLevel } from './logging.js';
|
|
8
8
|
import { OUTPUT_SCHEMA } from './provider-utils.js';
|
|
9
9
|
const TAG = 'agent-provider';
|
|
10
10
|
/** Hit the Anthropic API /v1/models endpoint (full canonical model list). */
|
|
@@ -65,7 +65,6 @@ export class ClaudeCodeProvider {
|
|
|
65
65
|
useLocalClaude = false;
|
|
66
66
|
model = DEFAULT_MODEL;
|
|
67
67
|
_queryFn;
|
|
68
|
-
debugEnabled = false;
|
|
69
68
|
constructor(options) {
|
|
70
69
|
this._queryFn = options?._queryFn;
|
|
71
70
|
}
|
|
@@ -112,9 +111,6 @@ export class ClaudeCodeProvider {
|
|
|
112
111
|
// Tier 2: ask the Claude Code agent SDK for its curated list (works with local Claude auth).
|
|
113
112
|
return await listModelsViaAgentSdk();
|
|
114
113
|
}
|
|
115
|
-
enableDebug() {
|
|
116
|
-
this.debugEnabled = true;
|
|
117
|
-
}
|
|
118
114
|
async executeCheck(instructions, repositoryPath, logPrefix, options) {
|
|
119
115
|
const queryFn = this._queryFn ?? (await import('@anthropic-ai/claude-agent-sdk')).query;
|
|
120
116
|
const timer = createTimer();
|
|
@@ -122,15 +118,13 @@ export class ClaudeCodeProvider {
|
|
|
122
118
|
const effectiveMaxTurns = options?.maxTurns ?? 100;
|
|
123
119
|
const prompt = instructions;
|
|
124
120
|
logDebug(TAG, `${prefix}Starting query: model=${this.model}, cwd=${repositoryPath}, promptLen=${prompt.length}, maxTurns=${effectiveMaxTurns}`);
|
|
125
|
-
|
|
126
|
-
logDebugFull(TAG, `${prefix}Full prompt sent to AI`, prompt);
|
|
127
|
-
}
|
|
121
|
+
logDebugFull(TAG, `${prefix}Full prompt sent to AI`, prompt);
|
|
128
122
|
const conversation = queryFn({
|
|
129
123
|
prompt,
|
|
130
124
|
options: {
|
|
131
125
|
model: this.model,
|
|
132
126
|
cwd: repositoryPath,
|
|
133
|
-
allowedTools: ['Read', 'Glob', 'Grep'
|
|
127
|
+
allowedTools: ['Read', 'Glob', 'Grep'],
|
|
134
128
|
maxTurns: effectiveMaxTurns,
|
|
135
129
|
permissionMode: 'bypassPermissions',
|
|
136
130
|
outputFormat: {
|
|
@@ -149,6 +143,7 @@ export class ClaudeCodeProvider {
|
|
|
149
143
|
let consecutiveApiErrors = 0;
|
|
150
144
|
let currentToolName;
|
|
151
145
|
let lastActivityTime = Date.now();
|
|
146
|
+
const trace = getLogLevel() === 'trace';
|
|
152
147
|
// Background heartbeat timer - logs if no activity for a while
|
|
153
148
|
const heartbeatInterval = setInterval(() => {
|
|
154
149
|
const silentSeconds = Math.round((Date.now() - lastActivityTime) / 1000);
|
|
@@ -181,15 +176,33 @@ export class ClaudeCodeProvider {
|
|
|
181
176
|
const inputStr = JSON.stringify(block.input);
|
|
182
177
|
const inputPreview = inputStr.length > 100 ? inputStr.slice(0, 100) + '...' : inputStr;
|
|
183
178
|
logDebug(TAG, `${prefix}Tool[${toolCallCount}]: ${block.name} ${inputPreview}`);
|
|
179
|
+
if (trace && inputStr.length > 100)
|
|
180
|
+
logDebugFull(TAG, `${prefix}Full tool call input`, inputStr);
|
|
184
181
|
}
|
|
185
182
|
}
|
|
183
|
+
// Log thinking blocks
|
|
184
|
+
const thinkingBlocks = content.filter((c) => c?.type === 'thinking' && typeof c.thinking === 'string').map((c) => c.thinking.trim()).filter(Boolean);
|
|
185
|
+
for (const thinking of thinkingBlocks) {
|
|
186
|
+
logDebug(TAG, `${prefix}Thinking: [${thinking.length} chars] ${thinking.slice(0, 100)}...`);
|
|
187
|
+
if (trace)
|
|
188
|
+
logDebugFull(TAG, `${prefix}Full thinking block`, thinking);
|
|
189
|
+
}
|
|
186
190
|
// Log assistant text at debug level
|
|
187
191
|
const textChunks = content
|
|
188
192
|
.filter((c) => c?.type === 'text' && typeof c.text === 'string')
|
|
189
193
|
.map((c) => c.text.trim())
|
|
190
194
|
.filter(Boolean);
|
|
191
195
|
if (textChunks.length > 0) {
|
|
192
|
-
|
|
196
|
+
for (const chunk of textChunks) {
|
|
197
|
+
if (chunk.length > 200) {
|
|
198
|
+
logDebug(TAG, `${prefix}Assistant: [${chunk.length} chars] ${chunk.slice(0, 100)}...`);
|
|
199
|
+
if (trace)
|
|
200
|
+
logDebugFull(TAG, `${prefix}Full assistant text`, chunk);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
logDebug(TAG, `${prefix}Assistant: ${chunk}`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
193
206
|
// Error detection: only check short text chunks to avoid matching the AI's
|
|
194
207
|
// own analysis text (e.g., a security finding mentioning "rate limiting").
|
|
195
208
|
// SDK/API error messages are typically short (under 200 chars), while AI analysis
|
|
@@ -224,6 +237,20 @@ export class ClaudeCodeProvider {
|
|
|
224
237
|
}
|
|
225
238
|
}
|
|
226
239
|
}
|
|
240
|
+
if (message.type === 'tool_result') {
|
|
241
|
+
const toolResult = message;
|
|
242
|
+
const outputText = toolResult.content?.filter((c) => c.type === 'text').map((c) => c.text).join('\n') ?? '(no output)';
|
|
243
|
+
const isMultiline = outputText.includes('\n');
|
|
244
|
+
const preview = outputText.length > 300 ? outputText.slice(0, 300) + '...' : outputText;
|
|
245
|
+
if (isMultiline || outputText.length > 300) {
|
|
246
|
+
logDebug(TAG, `${prefix}Tool result [${outputText.length} chars]: ${preview}`);
|
|
247
|
+
if (trace)
|
|
248
|
+
logDebugFull(TAG, `${prefix}Full tool result`, outputText);
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
logDebug(TAG, `${prefix}Tool result: ${outputText}`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
227
254
|
if (message.type === 'result') {
|
|
228
255
|
if (message.subtype === 'success') {
|
|
229
256
|
resultText = message.result;
|
|
@@ -235,23 +262,48 @@ export class ClaudeCodeProvider {
|
|
|
235
262
|
}
|
|
236
263
|
// Extract token usage if available.
|
|
237
264
|
// Prefer modelUsage (camelCase, per-model breakdown) over usage (snake_case, raw API).
|
|
265
|
+
// Always use total_cost_usd from the result message as the authoritative cost.
|
|
238
266
|
if (resultMsg.modelUsage && Object.keys(resultMsg.modelUsage).length > 0) {
|
|
239
267
|
let inputTokens = 0;
|
|
240
268
|
let outputTokens = 0;
|
|
269
|
+
let cacheCreationInputTokens;
|
|
270
|
+
let cacheReadInputTokens;
|
|
241
271
|
for (const model of Object.values(resultMsg.modelUsage)) {
|
|
242
272
|
inputTokens += model.inputTokens;
|
|
243
273
|
outputTokens += model.outputTokens;
|
|
274
|
+
if (model.cacheCreationInputTokens !== undefined) {
|
|
275
|
+
cacheCreationInputTokens = (cacheCreationInputTokens ?? 0) + model.cacheCreationInputTokens;
|
|
276
|
+
}
|
|
277
|
+
if (model.cacheReadInputTokens !== undefined) {
|
|
278
|
+
cacheReadInputTokens = (cacheReadInputTokens ?? 0) + model.cacheReadInputTokens;
|
|
279
|
+
}
|
|
244
280
|
}
|
|
245
|
-
tokenUsage = {
|
|
246
|
-
|
|
281
|
+
tokenUsage = {
|
|
282
|
+
inputTokens,
|
|
283
|
+
outputTokens,
|
|
284
|
+
cacheCreationInputTokens,
|
|
285
|
+
cacheReadInputTokens,
|
|
286
|
+
totalTokens: inputTokens + outputTokens,
|
|
287
|
+
...(resultMsg.total_cost_usd !== undefined
|
|
288
|
+
? { reportedCost: { amountUsd: resultMsg.total_cost_usd, source: 'claude-agent-sdk', ...(this.useLocalClaude ? { coveredBySubscription: true } : {}) } }
|
|
289
|
+
: {}),
|
|
290
|
+
};
|
|
291
|
+
logDebug(TAG, `${prefix}Token usage: ${tokenUsage.inputTokens} in, ${tokenUsage.outputTokens} out, ${cacheReadInputTokens ?? 0} cache-read, ${cacheCreationInputTokens ?? 0} cache-write, $${resultMsg.total_cost_usd ?? 0} reported`);
|
|
247
292
|
}
|
|
248
293
|
else if (resultMsg.usage) {
|
|
294
|
+
const cacheCreation = resultMsg.usage.cache_creation_input_tokens;
|
|
295
|
+
const cacheRead = resultMsg.usage.cache_read_input_tokens;
|
|
249
296
|
tokenUsage = {
|
|
250
297
|
inputTokens: resultMsg.usage.input_tokens,
|
|
251
298
|
outputTokens: resultMsg.usage.output_tokens,
|
|
299
|
+
...(cacheCreation !== undefined ? { cacheCreationInputTokens: cacheCreation } : {}),
|
|
300
|
+
...(cacheRead !== undefined ? { cacheReadInputTokens: cacheRead } : {}),
|
|
252
301
|
totalTokens: resultMsg.usage.input_tokens + resultMsg.usage.output_tokens,
|
|
302
|
+
...(resultMsg.total_cost_usd !== undefined
|
|
303
|
+
? { reportedCost: { amountUsd: resultMsg.total_cost_usd, source: 'claude-agent-sdk', ...(this.useLocalClaude ? { coveredBySubscription: true } : {}) } }
|
|
304
|
+
: {}),
|
|
253
305
|
};
|
|
254
|
-
logDebug(TAG, `${prefix}Token usage: ${tokenUsage.inputTokens} in, ${tokenUsage.outputTokens} out, ${
|
|
306
|
+
logDebug(TAG, `${prefix}Token usage: ${tokenUsage.inputTokens} in, ${tokenUsage.outputTokens} out, ${cacheRead ?? 0} cache-read, ${cacheCreation ?? 0} cache-write, $${resultMsg.total_cost_usd ?? 0} reported`);
|
|
255
307
|
}
|
|
256
308
|
logProgress(TAG, `${prefix}Completed in ${timer.elapsedStr()} (${turnCount} turns, ${toolCallCount} tool calls)`);
|
|
257
309
|
}
|
|
@@ -274,9 +326,7 @@ export class ClaudeCodeProvider {
|
|
|
274
326
|
throw new Error('Agent provider returned no result');
|
|
275
327
|
}
|
|
276
328
|
logDebug(TAG, `${prefix}Result: ${resultText.length} chars`);
|
|
277
|
-
|
|
278
|
-
logDebugFull(TAG, `${prefix}Full AI response`, resultText);
|
|
279
|
-
}
|
|
329
|
+
logDebugFull(TAG, `${prefix}Full AI response`, resultText);
|
|
280
330
|
// Structured output from SDK is required - we enforce JSON schema output mode.
|
|
281
331
|
// The response parser (parseAgentResponse) is kept in the codebase as a potential
|
|
282
332
|
// fallback for future use cases (e.g., alternative agent providers that don't support
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-provider.js","sourceRoot":"","sources":["../src/claude-code-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-code-provider.js","sourceRoot":"","sources":["../src/claude-code-provider.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -23,6 +23,7 @@ Commands:
|
|
|
23
23
|
scan Run security checks against a repository
|
|
24
24
|
new-check Scaffold a new security check
|
|
25
25
|
build-config Build or edit a runtime-config.json (interactive or flag-driven)
|
|
26
|
+
stats Print a cost summary from the scan history
|
|
26
27
|
|
|
27
28
|
Options:
|
|
28
29
|
--help Show this help message
|
|
@@ -56,9 +57,13 @@ async function main() {
|
|
|
56
57
|
process.on('SIGTERM', () => {
|
|
57
58
|
process.exit(143);
|
|
58
59
|
});
|
|
59
|
-
printLogo();
|
|
60
60
|
const args = process.argv.slice(2);
|
|
61
61
|
const command = args[0];
|
|
62
|
+
// Skip the logo for `stats --json` so machine-readable output is parseable.
|
|
63
|
+
const isStatsJson = command === 'stats' && args.includes('--json');
|
|
64
|
+
if (!isStatsJson) {
|
|
65
|
+
printLogo();
|
|
66
|
+
}
|
|
62
67
|
if (!command || command === '--help' || command === '-h') {
|
|
63
68
|
console.log(USAGE);
|
|
64
69
|
process.exit(0);
|
|
@@ -84,6 +89,11 @@ async function main() {
|
|
|
84
89
|
await runBuildConfig(subArgs);
|
|
85
90
|
break;
|
|
86
91
|
}
|
|
92
|
+
case 'stats': {
|
|
93
|
+
const { runStats } = await import('./stats.js');
|
|
94
|
+
await runStats(subArgs);
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
87
97
|
default:
|
|
88
98
|
console.error(formatError(ERROR_CODES.E1002, `Unknown command: ${command}`));
|
|
89
99
|
console.error('');
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,6EAA6E;AAC7E,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC;AAE9B,MAAM,KAAK,GAAG
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cost calculator: maps token usage to estimated USD cost using per-model pricing.
|
|
3
|
+
*
|
|
4
|
+
* Pricing is loaded from `config/pricing.json` (built-in defaults) and may be
|
|
5
|
+
* overridden via the runtime config `pricing` section. Prices change over time
|
|
6
|
+
* and are not authoritative — they are estimates for budgeting/dashboarding.
|
|
7
|
+
*/
|
|
8
|
+
import type { TokenUsage } from './types.js';
|
|
9
|
+
/** Per-million-token rates for a single model. */
|
|
10
|
+
export interface ModelPricing {
|
|
11
|
+
inputPerMillion: number;
|
|
12
|
+
outputPerMillion: number;
|
|
13
|
+
cacheReadPerMillion?: number;
|
|
14
|
+
cacheWritePerMillion?: number;
|
|
15
|
+
}
|
|
16
|
+
/** Pricing config (default file or runtime override). */
|
|
17
|
+
export interface PricingConfig {
|
|
18
|
+
currency?: string;
|
|
19
|
+
models: Record<string, ModelPricing>;
|
|
20
|
+
}
|
|
21
|
+
/** Computed cost for a single token-usage record. */
|
|
22
|
+
export interface CostBreakdown {
|
|
23
|
+
inputCost: number;
|
|
24
|
+
outputCost: number;
|
|
25
|
+
cacheReadCost?: number;
|
|
26
|
+
cacheWriteCost?: number;
|
|
27
|
+
totalCost: number;
|
|
28
|
+
currency: string;
|
|
29
|
+
/** How the cost was determined. */
|
|
30
|
+
source: 'reported' | 'estimated' | 'estimated-unpriced' | 'legacy';
|
|
31
|
+
/** When source === 'reported', which provider reported it. */
|
|
32
|
+
reportedBy?: 'claude-agent-sdk' | 'opencode';
|
|
33
|
+
/** true when running with AGHAST_LOCAL_CLAUDE=true — amount is API-equivalent, not billed */
|
|
34
|
+
coveredBySubscription?: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Calculate cost for a TokenUsage value.
|
|
38
|
+
*
|
|
39
|
+
* Priority:
|
|
40
|
+
* 1. tokens.reportedCost — provider-reported amount used verbatim (source='reported').
|
|
41
|
+
* 2. Rate-table fallback — model must exist in pricing.models; includes cache and
|
|
42
|
+
* reasoning tokens. Reasoning is billed at output rate (Decision 5).
|
|
43
|
+
* 3. Rate-table fallback but model unknown → source='estimated-unpriced', cost=$0 + warning.
|
|
44
|
+
* 4. tokens undefined → source='estimated', cost=$0.
|
|
45
|
+
*/
|
|
46
|
+
export declare function calculateCost(tokens: TokenUsage | undefined, model: string, pricing: PricingConfig): CostBreakdown;
|
|
47
|
+
/**
|
|
48
|
+
* Sum a list of CostBreakdowns into one total. Returns zeros if list is empty.
|
|
49
|
+
* Currency is taken from the first non-empty entry (or USD by default).
|
|
50
|
+
*/
|
|
51
|
+
export declare function sumCosts(costs: CostBreakdown[]): CostBreakdown;
|
|
52
|
+
/**
|
|
53
|
+
* Load the built-in pricing.json shipped with aghast.
|
|
54
|
+
*
|
|
55
|
+
* Behaviour:
|
|
56
|
+
* - File missing (ENOENT): return empty pricing silently. This is expected
|
|
57
|
+
* when running from a build that doesn't ship the file.
|
|
58
|
+
* - File present but unreadable / invalid JSON / wrong shape: log a warning
|
|
59
|
+
* and return empty pricing so the scan can still run. The empty pricing
|
|
60
|
+
* means cost is reported as 0 — distinct from a corrupt pricing file
|
|
61
|
+
* producing meaningless costs.
|
|
62
|
+
*/
|
|
63
|
+
export declare function loadDefaultPricing(): Promise<PricingConfig>;
|
|
64
|
+
/**
|
|
65
|
+
* Merge a runtime-config override into a base pricing config.
|
|
66
|
+
* Per-model entries from the override replace those in the base. Unspecified
|
|
67
|
+
* models are inherited from the base.
|
|
68
|
+
*/
|
|
69
|
+
export declare function mergePricing(base: PricingConfig, override?: Partial<PricingConfig>): PricingConfig;
|
|
70
|
+
/**
|
|
71
|
+
* Format a cost as a fixed-precision string with currency suffix.
|
|
72
|
+
* Used for CLI summaries.
|
|
73
|
+
*/
|
|
74
|
+
export declare function formatCost(cost: number, currency?: string): string;
|
|
75
|
+
/**
|
|
76
|
+
* Map a CostBreakdown source (and optional reportedBy) to a human-readable
|
|
77
|
+
* label for banner / stats / JSON output.
|
|
78
|
+
*/
|
|
79
|
+
export declare function formatCostSourceLabel(source: CostBreakdown['source'] | undefined, reportedBy?: CostBreakdown['reportedBy'], coveredBySubscription?: boolean): string;
|
|
80
|
+
//# sourceMappingURL=cost-calculator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-calculator.d.ts","sourceRoot":"","sources":["../src/cost-calculator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,yDAAyD;AACzD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACtC;AAED,qDAAqD;AACrD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,oBAAoB,GAAG,QAAQ,CAAC;IACnE,8DAA8D;IAC9D,UAAU,CAAC,EAAE,kBAAkB,GAAG,UAAU,CAAC;IAC7C,6FAA6F;IAC7F,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAID;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,aAAa,GACrB,aAAa,CA+Cf;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,aAAa,CA8C9D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,aAAa,CAAC,CA8CjE;AA4BD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAMlG;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAyB,GAAG,MAAM,CAGpF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,SAAS,EAC3C,UAAU,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,EACxC,qBAAqB,CAAC,EAAE,OAAO,GAC9B,MAAM,CASR"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cost calculator: maps token usage to estimated USD cost using per-model pricing.
|
|
3
|
+
*
|
|
4
|
+
* Pricing is loaded from `config/pricing.json` (built-in defaults) and may be
|
|
5
|
+
* overridden via the runtime config `pricing` section. Prices change over time
|
|
6
|
+
* and are not authoritative — they are estimates for budgeting/dashboarding.
|
|
7
|
+
*/
|
|
8
|
+
import { readFile } from 'node:fs/promises';
|
|
9
|
+
import { resolve, dirname } from 'node:path';
|
|
10
|
+
import { fileURLToPath } from 'node:url';
|
|
11
|
+
import { logWarn } from './logging.js';
|
|
12
|
+
const TAG = 'pricing';
|
|
13
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
14
|
+
const DEFAULT_CURRENCY = 'USD';
|
|
15
|
+
/**
|
|
16
|
+
* Calculate cost for a TokenUsage value.
|
|
17
|
+
*
|
|
18
|
+
* Priority:
|
|
19
|
+
* 1. tokens.reportedCost — provider-reported amount used verbatim (source='reported').
|
|
20
|
+
* 2. Rate-table fallback — model must exist in pricing.models; includes cache and
|
|
21
|
+
* reasoning tokens. Reasoning is billed at output rate (Decision 5).
|
|
22
|
+
* 3. Rate-table fallback but model unknown → source='estimated-unpriced', cost=$0 + warning.
|
|
23
|
+
* 4. tokens undefined → source='estimated', cost=$0.
|
|
24
|
+
*/
|
|
25
|
+
export function calculateCost(tokens, model, pricing) {
|
|
26
|
+
const currency = pricing.currency ?? DEFAULT_CURRENCY;
|
|
27
|
+
if (tokens?.reportedCost !== undefined) {
|
|
28
|
+
return {
|
|
29
|
+
inputCost: 0,
|
|
30
|
+
outputCost: 0,
|
|
31
|
+
totalCost: tokens.reportedCost.amountUsd,
|
|
32
|
+
currency,
|
|
33
|
+
source: 'reported',
|
|
34
|
+
reportedBy: tokens.reportedCost.source,
|
|
35
|
+
...(tokens.reportedCost.coveredBySubscription ? { coveredBySubscription: true } : {}),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
if (!tokens) {
|
|
39
|
+
return { inputCost: 0, outputCost: 0, totalCost: 0, currency, source: 'estimated' };
|
|
40
|
+
}
|
|
41
|
+
const rates = pricing.models[model];
|
|
42
|
+
if (!rates) {
|
|
43
|
+
logWarn(TAG, `Model "${model}" not in pricing table; cost reported as $0`);
|
|
44
|
+
return { inputCost: 0, outputCost: 0, totalCost: 0, currency, source: 'estimated-unpriced' };
|
|
45
|
+
}
|
|
46
|
+
// Reasoning tokens billed at output rate (Decision 5).
|
|
47
|
+
const billableOutputTokens = tokens.outputTokens + (tokens.reasoningTokens ?? 0);
|
|
48
|
+
const inputCost = (tokens.inputTokens / 1_000_000) * rates.inputPerMillion;
|
|
49
|
+
const outputCost = (billableOutputTokens / 1_000_000) * rates.outputPerMillion;
|
|
50
|
+
const cacheReadCost = rates.cacheReadPerMillion !== undefined && tokens.cacheReadInputTokens !== undefined
|
|
51
|
+
? (tokens.cacheReadInputTokens / 1_000_000) * rates.cacheReadPerMillion
|
|
52
|
+
: undefined;
|
|
53
|
+
const cacheWriteCost = rates.cacheWritePerMillion !== undefined && tokens.cacheCreationInputTokens !== undefined
|
|
54
|
+
? (tokens.cacheCreationInputTokens / 1_000_000) * rates.cacheWritePerMillion
|
|
55
|
+
: undefined;
|
|
56
|
+
return {
|
|
57
|
+
inputCost,
|
|
58
|
+
outputCost,
|
|
59
|
+
cacheReadCost,
|
|
60
|
+
cacheWriteCost,
|
|
61
|
+
totalCost: inputCost + outputCost + (cacheReadCost ?? 0) + (cacheWriteCost ?? 0),
|
|
62
|
+
currency,
|
|
63
|
+
source: 'estimated',
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Sum a list of CostBreakdowns into one total. Returns zeros if list is empty.
|
|
68
|
+
* Currency is taken from the first non-empty entry (or USD by default).
|
|
69
|
+
*/
|
|
70
|
+
export function sumCosts(costs) {
|
|
71
|
+
if (costs.length === 0) {
|
|
72
|
+
return { inputCost: 0, outputCost: 0, totalCost: 0, currency: DEFAULT_CURRENCY, source: 'estimated' };
|
|
73
|
+
}
|
|
74
|
+
let inputCost = 0;
|
|
75
|
+
let outputCost = 0;
|
|
76
|
+
let cacheReadCost = 0;
|
|
77
|
+
let cacheWriteCost = 0;
|
|
78
|
+
// totalCost must be accumulated directly from each entry rather than derived as
|
|
79
|
+
// inputCost+outputCost at the end. Two reasons:
|
|
80
|
+
// 1. For 'reported' breakdowns, calculateCost returns inputCost=0/outputCost=0
|
|
81
|
+
// with the full amount in totalCost — deriving from the sub-fields drops it.
|
|
82
|
+
// 2. For 'estimated' breakdowns, totalCost includes cache costs (cacheReadCost,
|
|
83
|
+
// cacheWriteCost) that are not reflected in inputCost or outputCost.
|
|
84
|
+
let totalCost = 0;
|
|
85
|
+
for (const c of costs) {
|
|
86
|
+
inputCost += c.inputCost;
|
|
87
|
+
outputCost += c.outputCost;
|
|
88
|
+
cacheReadCost += c.cacheReadCost ?? 0;
|
|
89
|
+
cacheWriteCost += c.cacheWriteCost ?? 0;
|
|
90
|
+
totalCost += c.totalCost;
|
|
91
|
+
}
|
|
92
|
+
// Pick the most authoritative source across all summands.
|
|
93
|
+
// Precedence: reported > estimated > estimated-unpriced > legacy.
|
|
94
|
+
const SOURCE_PRIORITY = {
|
|
95
|
+
reported: 3,
|
|
96
|
+
estimated: 2,
|
|
97
|
+
'estimated-unpriced': 1,
|
|
98
|
+
legacy: 0,
|
|
99
|
+
};
|
|
100
|
+
const dominant = costs.reduce((best, c) => SOURCE_PRIORITY[c.source] > SOURCE_PRIORITY[best.source] ? c : best);
|
|
101
|
+
// coveredBySubscription is true only when ALL summands are covered.
|
|
102
|
+
const allCovered = costs.every((c) => c.coveredBySubscription === true);
|
|
103
|
+
return {
|
|
104
|
+
inputCost,
|
|
105
|
+
outputCost,
|
|
106
|
+
...(cacheReadCost > 0 ? { cacheReadCost } : {}),
|
|
107
|
+
...(cacheWriteCost > 0 ? { cacheWriteCost } : {}),
|
|
108
|
+
totalCost,
|
|
109
|
+
currency: costs[0].currency,
|
|
110
|
+
source: dominant.source,
|
|
111
|
+
reportedBy: dominant.reportedBy,
|
|
112
|
+
...(allCovered ? { coveredBySubscription: true } : {}),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Load the built-in pricing.json shipped with aghast.
|
|
117
|
+
*
|
|
118
|
+
* Behaviour:
|
|
119
|
+
* - File missing (ENOENT): return empty pricing silently. This is expected
|
|
120
|
+
* when running from a build that doesn't ship the file.
|
|
121
|
+
* - File present but unreadable / invalid JSON / wrong shape: log a warning
|
|
122
|
+
* and return empty pricing so the scan can still run. The empty pricing
|
|
123
|
+
* means cost is reported as 0 — distinct from a corrupt pricing file
|
|
124
|
+
* producing meaningless costs.
|
|
125
|
+
*/
|
|
126
|
+
export async function loadDefaultPricing() {
|
|
127
|
+
// src/cost-calculator.ts -> ../config/pricing.json
|
|
128
|
+
const pricingPath = resolve(__dirname, '..', 'config', 'pricing.json');
|
|
129
|
+
let content;
|
|
130
|
+
try {
|
|
131
|
+
content = await readFile(pricingPath, 'utf-8');
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
if (err.code !== 'ENOENT') {
|
|
135
|
+
logWarn(TAG, `Could not read pricing file at ${pricingPath} (${err instanceof Error ? err.message : String(err)}); cost estimates will be 0.`);
|
|
136
|
+
}
|
|
137
|
+
return { currency: DEFAULT_CURRENCY, models: {} };
|
|
138
|
+
}
|
|
139
|
+
let parsed;
|
|
140
|
+
try {
|
|
141
|
+
parsed = JSON.parse(content);
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
logWarn(TAG, `Pricing file at ${pricingPath} contains invalid JSON (${err instanceof Error ? err.message : String(err)}); cost estimates will be 0.`);
|
|
145
|
+
return { currency: DEFAULT_CURRENCY, models: {} };
|
|
146
|
+
}
|
|
147
|
+
// JSON parsed, but the shape may still be wrong (e.g., null, an array, or a
|
|
148
|
+
// bare string). Normalize defensively and report shape errors with a
|
|
149
|
+
// distinct message so the user knows it's not a JSON-syntax problem.
|
|
150
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
151
|
+
logWarn(TAG, `Pricing file at ${pricingPath} did not contain a JSON object; cost estimates will be 0.`);
|
|
152
|
+
return { currency: DEFAULT_CURRENCY, models: {} };
|
|
153
|
+
}
|
|
154
|
+
try {
|
|
155
|
+
return normalizePricing(parsed);
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
logWarn(TAG, `Pricing file at ${pricingPath} could not be parsed as a pricing config (${err instanceof Error ? err.message : String(err)}); cost estimates will be 0.`);
|
|
159
|
+
return { currency: DEFAULT_CURRENCY, models: {} };
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Normalize a raw object into a PricingConfig, dropping unknown keys.
|
|
164
|
+
* Tolerant of extra fields (e.g. `_comment`).
|
|
165
|
+
*/
|
|
166
|
+
function normalizePricing(raw) {
|
|
167
|
+
const currency = typeof raw.currency === 'string' ? raw.currency : DEFAULT_CURRENCY;
|
|
168
|
+
const models = {};
|
|
169
|
+
const rawModels = raw.models;
|
|
170
|
+
if (rawModels && typeof rawModels === 'object' && !Array.isArray(rawModels)) {
|
|
171
|
+
for (const [name, def] of Object.entries(rawModels)) {
|
|
172
|
+
if (def && typeof def === 'object' && !Array.isArray(def)) {
|
|
173
|
+
const d = def;
|
|
174
|
+
if (typeof d.inputPerMillion === 'number' && typeof d.outputPerMillion === 'number') {
|
|
175
|
+
models[name] = {
|
|
176
|
+
inputPerMillion: d.inputPerMillion,
|
|
177
|
+
outputPerMillion: d.outputPerMillion,
|
|
178
|
+
...(typeof d.cacheReadPerMillion === 'number' ? { cacheReadPerMillion: d.cacheReadPerMillion } : {}),
|
|
179
|
+
...(typeof d.cacheWritePerMillion === 'number' ? { cacheWritePerMillion: d.cacheWritePerMillion } : {}),
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return { currency, models };
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Merge a runtime-config override into a base pricing config.
|
|
189
|
+
* Per-model entries from the override replace those in the base. Unspecified
|
|
190
|
+
* models are inherited from the base.
|
|
191
|
+
*/
|
|
192
|
+
export function mergePricing(base, override) {
|
|
193
|
+
if (!override)
|
|
194
|
+
return base;
|
|
195
|
+
return {
|
|
196
|
+
currency: override.currency ?? base.currency ?? DEFAULT_CURRENCY,
|
|
197
|
+
models: { ...base.models, ...(override.models ?? {}) },
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Format a cost as a fixed-precision string with currency suffix.
|
|
202
|
+
* Used for CLI summaries.
|
|
203
|
+
*/
|
|
204
|
+
export function formatCost(cost, currency = DEFAULT_CURRENCY) {
|
|
205
|
+
// 4 decimal places preserves sub-cent precision for individual checks.
|
|
206
|
+
return `${cost.toFixed(4)} ${currency}`;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Map a CostBreakdown source (and optional reportedBy) to a human-readable
|
|
210
|
+
* label for banner / stats / JSON output.
|
|
211
|
+
*/
|
|
212
|
+
export function formatCostSourceLabel(source, reportedBy, coveredBySubscription) {
|
|
213
|
+
if (source === 'reported') {
|
|
214
|
+
if (coveredBySubscription)
|
|
215
|
+
return '(covered by subscription — claude-agent-sdk)';
|
|
216
|
+
if (reportedBy === 'opencode')
|
|
217
|
+
return '(reported by opencode — see docs/cost-tracking.md)';
|
|
218
|
+
return '(reported by claude-agent-sdk)';
|
|
219
|
+
}
|
|
220
|
+
if (source === 'estimated-unpriced')
|
|
221
|
+
return '(estimated — model not in pricing table)';
|
|
222
|
+
if (source === 'legacy')
|
|
223
|
+
return '(legacy estimate)';
|
|
224
|
+
return '(estimated from config/pricing.json)';
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=cost-calculator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-calculator.js","sourceRoot":"","sources":["../src/cost-calculator.ts"],"names":[],"mappings":"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"}
|
package/dist/error-codes.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAMD,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAMD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;CAsCd,CAAC;AAEX;;;GAGG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAWzE"}
|
package/dist/error-codes.js
CHANGED
|
@@ -40,6 +40,8 @@ export const ERROR_CODES = {
|
|
|
40
40
|
// E6xxx — OpenAnt
|
|
41
41
|
E6001: ec('E6001', 'OpenAnt not installed'),
|
|
42
42
|
E6002: ec('E6002', 'OpenAnt execution failed'),
|
|
43
|
+
// E7xxx — Budget / cost controls
|
|
44
|
+
E7001: ec('E7001', 'Budget limit exceeded'),
|
|
43
45
|
// E9xxx — Internal
|
|
44
46
|
E9001: ec('E9001', 'Fatal internal error'),
|
|
45
47
|
};
|
package/dist/error-codes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,SAAS,EAAE,CAAC,IAAY,EAAE,KAAa;IACrC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,sBAAsB;IACtB,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,gCAAgC,CAAC;IACpD,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACrC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAE5C,wBAAwB;IACxB,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,gCAAgC,CAAC;IACpD,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,oCAAoC,CAAC;IACxD,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACrC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC9C,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,qBAAqB,CAAC;IAEzC,yBAAyB;IACzB,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACrC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAC5C,yEAAyE;IACzE,wEAAwE;IACxE,qEAAqE;IACrE,oEAAoE;IACpE,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,iCAAiC,CAAC;IACrD,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAE5C,uCAAuC;IACvC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAE/C,kBAAkB;IAClB,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAE3C,kBAAkB;IAClB,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC3C,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAE9C,mBAAmB;IACnB,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,sBAAsB,CAAC;CAClC,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,SAAoB,EAAE,OAAe;IAC/D,OAAO,UAAU,SAAS,CAAC,IAAI,MAAM,OAAO,EAAE,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,OAAe;IAC/D,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,kBAAkB,CAAC,gBAAgB,OAAO,mBAAmB,OAAO,EAAE,CAAC,CAAC;IACrF,MAAM,GAAG,GAAG,6DAA6D,KAAK,SAAS,IAAI,aAAa,CAAC;IACzG,OAAO;QACL,uBAAuB,WAAW,CAAC,KAAK,CAAC,IAAI,MAAM,OAAO,EAAE;QAC5D,YAAY,OAAO,EAAE;QACrB,EAAE;QACF,0CAA0C;QAC1C,KAAK,GAAG,EAAE;KACX,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,SAAS,EAAE,CAAC,IAAY,EAAE,KAAa;IACrC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,sBAAsB;IACtB,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,gCAAgC,CAAC;IACpD,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACrC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAE5C,wBAAwB;IACxB,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,gCAAgC,CAAC;IACpD,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,oCAAoC,CAAC;IACxD,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACrC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC9C,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,qBAAqB,CAAC;IAEzC,yBAAyB;IACzB,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACrC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAC5C,yEAAyE;IACzE,wEAAwE;IACxE,qEAAqE;IACrE,oEAAoE;IACpE,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,iCAAiC,CAAC;IACrD,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAE5C,uCAAuC;IACvC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAE/C,kBAAkB;IAClB,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAE3C,kBAAkB;IAClB,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC3C,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAE9C,iCAAiC;IACjC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAE3C,mBAAmB;IACnB,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,sBAAsB,CAAC;CAClC,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,SAAoB,EAAE,OAAe;IAC/D,OAAO,UAAU,SAAS,CAAC,IAAI,MAAM,OAAO,EAAE,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,OAAe;IAC/D,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,kBAAkB,CAAC,gBAAgB,OAAO,mBAAmB,OAAO,EAAE,CAAC,CAAC;IACrF,MAAM,GAAG,GAAG,6DAA6D,KAAK,SAAS,IAAI,aAAa,CAAC;IACzG,OAAO;QACL,uBAAuB,WAAW,CAAC,KAAK,CAAC,IAAI,MAAM,OAAO,EAAE;QAC5D,YAAY,OAAO,EAAE;QACrB,EAAE;QACF,0CAA0C;QAC1C,KAAK,GAAG,EAAE;KACX,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|