agentic-kit 1.2.0 → 1.3.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.
package/esm/index.js CHANGED
@@ -2,7 +2,7 @@ import { ANTHROPIC_MODELS, AnthropicAdapter } from '@agentic-kit/anthropic';
2
2
  import { OLLAMA_MODELS, OllamaAdapter, OllamaClient } from '@agentic-kit/ollama';
3
3
  import { OPENAI_COMPATIBLE_MODELS, OpenAIAdapter, } from '@agentic-kit/openai';
4
4
  import { createAssistantMessageEventStream, EventStream } from './event-stream.js';
5
- import { getMessageText, normalizeContext } from './messages.js';
5
+ import { createEmptyUsage, getMessageText, normalizeContext } from './messages.js';
6
6
  import { clearModels, getModel, getModels, getProviders as getModelProviders, registerModel, registerModels, } from './model-registry.js';
7
7
  import { clearProviders, getProvider as getRegisteredProvider, getProviders as getRegisteredProviders, registerProvider, unregisterProviders, } from './provider-registry.js';
8
8
  import { transformMessages } from './transform-messages.js';
@@ -128,14 +128,7 @@ function legacyInputToContext(input) {
128
128
  provider: 'legacy',
129
129
  model: input.model,
130
130
  content: [{ type: 'text', text: message.content }],
131
- usage: {
132
- input: 0,
133
- output: 0,
134
- cacheRead: 0,
135
- cacheWrite: 0,
136
- totalTokens: 0,
137
- cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
138
- },
131
+ usage: createEmptyUsage(),
139
132
  stopReason: 'stop',
140
133
  timestamp: Date.now(),
141
134
  }
package/esm/messages.js CHANGED
@@ -2,6 +2,7 @@ export function createEmptyUsage() {
2
2
  return {
3
3
  input: 0,
4
4
  output: 0,
5
+ reasoning: 0,
5
6
  cacheRead: 0,
6
7
  cacheWrite: 0,
7
8
  totalTokens: 0,
@@ -22,7 +23,23 @@ export function calculateUsageCost(model, usage) {
22
23
  usage.cost.cacheWrite = ((schedule?.cacheWrite ?? 0) / 1_000_000) * usage.cacheWrite;
23
24
  usage.cost.total =
24
25
  usage.cost.input + usage.cost.output + usage.cost.cacheRead + usage.cost.cacheWrite;
25
- return usage.cost;
26
+ }
27
+ export function snapshotUsage(usage) {
28
+ return { ...usage, cost: { ...usage.cost } };
29
+ }
30
+ export function addUsage(target, delta) {
31
+ target.input += delta.input;
32
+ target.output += delta.output;
33
+ target.reasoning += delta.reasoning;
34
+ target.cacheRead += delta.cacheRead;
35
+ target.cacheWrite += delta.cacheWrite;
36
+ target.totalTokens += delta.totalTokens;
37
+ target.cost.input += delta.cost.input;
38
+ target.cost.output += delta.cost.output;
39
+ target.cost.cacheRead += delta.cost.cacheRead;
40
+ target.cost.cacheWrite += delta.cost.cacheWrite;
41
+ target.cost.total += delta.cost.total;
42
+ return target;
26
43
  }
27
44
  export function createAssistantMessage(model) {
28
45
  return {
package/index.js CHANGED
@@ -167,14 +167,7 @@ function legacyInputToContext(input) {
167
167
  provider: 'legacy',
168
168
  model: input.model,
169
169
  content: [{ type: 'text', text: message.content }],
170
- usage: {
171
- input: 0,
172
- output: 0,
173
- cacheRead: 0,
174
- cacheWrite: 0,
175
- totalTokens: 0,
176
- cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
177
- },
170
+ usage: (0, messages_js_1.createEmptyUsage)(),
178
171
  stopReason: 'stop',
179
172
  timestamp: Date.now(),
180
173
  }
package/messages.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import type { AssistantMessage, Context, ImageContent, Message, ModelDescriptor, TextContent, ToolCallContent, ToolResultMessage, Usage, UserMessage } from './types.js';
2
2
  export declare function createEmptyUsage(): Usage;
3
- export declare function calculateUsageCost(model: ModelDescriptor, usage: Usage): Usage['cost'];
3
+ export declare function calculateUsageCost(model: ModelDescriptor, usage: Usage): void;
4
+ export declare function snapshotUsage(usage: Usage): Usage;
5
+ export declare function addUsage(target: Usage, delta: Usage): Usage;
4
6
  export declare function createAssistantMessage(model: ModelDescriptor): AssistantMessage;
5
7
  export declare function createTextContent(text?: string): TextContent;
6
8
  export declare function createImageContent(data: string, mimeType: string): ImageContent;
package/messages.js CHANGED
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createEmptyUsage = createEmptyUsage;
4
4
  exports.calculateUsageCost = calculateUsageCost;
5
+ exports.snapshotUsage = snapshotUsage;
6
+ exports.addUsage = addUsage;
5
7
  exports.createAssistantMessage = createAssistantMessage;
6
8
  exports.createTextContent = createTextContent;
7
9
  exports.createImageContent = createImageContent;
@@ -16,6 +18,7 @@ function createEmptyUsage() {
16
18
  return {
17
19
  input: 0,
18
20
  output: 0,
21
+ reasoning: 0,
19
22
  cacheRead: 0,
20
23
  cacheWrite: 0,
21
24
  totalTokens: 0,
@@ -36,7 +39,23 @@ function calculateUsageCost(model, usage) {
36
39
  usage.cost.cacheWrite = ((schedule?.cacheWrite ?? 0) / 1_000_000) * usage.cacheWrite;
37
40
  usage.cost.total =
38
41
  usage.cost.input + usage.cost.output + usage.cost.cacheRead + usage.cost.cacheWrite;
39
- return usage.cost;
42
+ }
43
+ function snapshotUsage(usage) {
44
+ return { ...usage, cost: { ...usage.cost } };
45
+ }
46
+ function addUsage(target, delta) {
47
+ target.input += delta.input;
48
+ target.output += delta.output;
49
+ target.reasoning += delta.reasoning;
50
+ target.cacheRead += delta.cacheRead;
51
+ target.cacheWrite += delta.cacheWrite;
52
+ target.totalTokens += delta.totalTokens;
53
+ target.cost.input += delta.cost.input;
54
+ target.cost.output += delta.cost.output;
55
+ target.cost.cacheRead += delta.cost.cacheRead;
56
+ target.cost.cacheWrite += delta.cost.cacheWrite;
57
+ target.cost.total += delta.cost.total;
58
+ return target;
40
59
  }
41
60
  function createAssistantMessage(model) {
42
61
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-kit",
3
- "version": "1.2.0",
3
+ "version": "1.3.1",
4
4
  "author": "Dan Lynch <pyramation@gmail.com>",
5
5
  "description": "Provider-agnostic LLM adapter with streaming and multi-turn support",
6
6
  "main": "index.js",
@@ -37,10 +37,10 @@
37
37
  "test:watch": "jest --watch"
38
38
  },
39
39
  "dependencies": {
40
- "@agentic-kit/anthropic": "1.2.0",
41
- "@agentic-kit/ollama": "1.2.0",
42
- "@agentic-kit/openai": "1.2.0"
40
+ "@agentic-kit/anthropic": "1.2.1",
41
+ "@agentic-kit/ollama": "2.0.0",
42
+ "@agentic-kit/openai": "1.2.1"
43
43
  },
44
44
  "keywords": [],
45
- "gitHead": "d4f3f660be621267efe12671c22db202ccdb3f0b"
45
+ "gitHead": "c2b13e65b26f14c9983e9b7cc4eafbe4919b13d4"
46
46
  }
package/types.d.ts CHANGED
@@ -84,6 +84,7 @@ export interface ToolCallContent {
84
84
  export interface Usage {
85
85
  input: number;
86
86
  output: number;
87
+ reasoning: number;
87
88
  cacheRead: number;
88
89
  cacheWrite: number;
89
90
  totalTokens: number;