@codehz/ai 0.1.8 → 0.2.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codehz/ai",
3
- "version": "0.1.8",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "module": "dist/index.mjs",
6
6
  "exports": {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Provider usage → canonical Usage 映射
3
3
  *
4
- * best-effort 提取 reasoning / cache / billable 等扩展字段。
4
+ * best-effort 提取 reasoning / cache 等扩展字段。
5
5
  */
6
6
 
7
7
  import type { Usage } from "../types/index.js";
@@ -20,27 +20,6 @@ function record(obj: Record<string, number | undefined>): Partial<Usage> {
20
20
  return out;
21
21
  }
22
22
 
23
- function billableFromOpenAIStyle(
24
- inputTokens: number | undefined,
25
- outputTokens: number | undefined,
26
- cachedInputTokens: number | undefined,
27
- reasoningTokens: number | undefined,
28
- ): Pick<Usage, "billableInputTokens" | "billableOutputTokens"> {
29
- let billableInputTokens: number | undefined;
30
- if (inputTokens !== undefined) {
31
- billableInputTokens =
32
- cachedInputTokens !== undefined ? Math.max(0, inputTokens - cachedInputTokens) : inputTokens;
33
- }
34
-
35
- let billableOutputTokens: number | undefined;
36
- if (outputTokens !== undefined) {
37
- billableOutputTokens =
38
- reasoningTokens !== undefined ? Math.max(0, outputTokens - reasoningTokens) : outputTokens;
39
- }
40
-
41
- return record({ billableInputTokens, billableOutputTokens });
42
- }
43
-
44
23
  /** OpenAI Chat Completions `usage` */
45
24
  export function usageFromChatCompletions(raw: {
46
25
  prompt_tokens?: number;
@@ -63,7 +42,6 @@ export function usageFromChatCompletions(raw: {
63
42
  totalTokens,
64
43
  cachedInputTokens,
65
44
  reasoningTokens,
66
- ...billableFromOpenAIStyle(inputTokens, outputTokens, cachedInputTokens, reasoningTokens),
67
45
  });
68
46
  }
69
47
 
@@ -90,7 +68,6 @@ export function usageFromOpenAIResponses(raw: {
90
68
  totalTokens,
91
69
  cachedInputTokens,
92
70
  reasoningTokens,
93
- ...billableFromOpenAIStyle(inputTokens, outputTokens, cachedInputTokens, reasoningTokens),
94
71
  });
95
72
  }
96
73
 
@@ -114,23 +91,16 @@ export function usageFromAnthropicMessages(raw: {
114
91
  const totalTokens =
115
92
  inputTokens !== undefined && outputTokens !== undefined ? inputTokens + outputTokens : undefined;
116
93
 
117
- let billableInputTokens: number | undefined;
118
- if (uncachedInputTokens !== undefined || cacheWriteInputTokens !== undefined) {
119
- billableInputTokens = (uncachedInputTokens ?? 0) + (cacheWriteInputTokens ?? 0);
120
- }
121
-
122
94
  return record({
123
95
  inputTokens,
124
96
  outputTokens,
125
97
  totalTokens,
126
98
  cachedInputTokens,
127
99
  cacheWriteInputTokens,
128
- billableInputTokens,
129
- billableOutputTokens: outputTokens,
130
100
  });
131
101
  }
132
102
 
133
- /** Ollama 流式 chunk(无 cache / reasoning 细分时仅填基础与 billable 镜像) */
103
+ /** Ollama 流式 chunk */
134
104
  export function usageFromOllama(raw: {
135
105
  prompt_eval_count?: number;
136
106
  eval_count?: number;
@@ -144,7 +114,5 @@ export function usageFromOllama(raw: {
144
114
  inputTokens,
145
115
  outputTokens,
146
116
  totalTokens,
147
- billableInputTokens: inputTokens,
148
- billableOutputTokens: outputTokens,
149
117
  });
150
118
  }
@@ -24,10 +24,7 @@ export type Usage = {
24
24
  cachedInputTokens?: number;
25
25
  /** Tokens written to prompt cache (Anthropic cache_creation_input_tokens) */
26
26
  cacheWriteInputTokens?: number;
27
- /** Best-effort billable input (full-rate input; excludes discounted cache reads where known) */
28
- billableInputTokens?: number;
29
- /** Best-effort billable output (non-reasoning slice when provider gives reasoning breakdown) */
30
- billableOutputTokens?: number;
27
+
31
28
  };
32
29
 
33
30
  export type BillingInfo = {