klaus-agent 0.2.0 → 0.2.2

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 (47) hide show
  1. package/README.md +37 -11
  2. package/README.zh-CN.md +709 -0
  3. package/dist/core/agent-loop.d.ts +2 -1
  4. package/dist/core/agent-loop.js +5 -1
  5. package/dist/core/agent-loop.js.map +1 -1
  6. package/dist/core/agent.js +1 -0
  7. package/dist/core/agent.js.map +1 -1
  8. package/dist/index.d.ts +3 -4
  9. package/dist/index.js +2 -3
  10. package/dist/index.js.map +1 -1
  11. package/dist/llm/provider.js +5 -11
  12. package/dist/llm/provider.js.map +1 -1
  13. package/dist/llm/types.d.ts +17 -0
  14. package/dist/providers/index.d.ts +1 -0
  15. package/dist/providers/index.js +1 -0
  16. package/dist/providers/index.js.map +1 -1
  17. package/dist/providers/openai-codex.d.ts +8 -0
  18. package/dist/providers/openai-codex.js +334 -0
  19. package/dist/providers/openai-codex.js.map +1 -0
  20. package/dist/providers/openai-responses-shared.d.ts +36 -0
  21. package/dist/providers/openai-responses-shared.js +74 -0
  22. package/dist/providers/openai-responses-shared.js.map +1 -0
  23. package/dist/providers/openai-responses.d.ts +7 -0
  24. package/dist/providers/openai-responses.js +128 -0
  25. package/dist/providers/openai-responses.js.map +1 -0
  26. package/dist/providers/openai.js +1 -10
  27. package/dist/providers/openai.js.map +1 -1
  28. package/dist/providers/shared.d.ts +5 -1
  29. package/dist/providers/shared.js +21 -0
  30. package/dist/providers/shared.js.map +1 -1
  31. package/dist/types.d.ts +2 -2
  32. package/package.json +1 -1
  33. package/src/core/agent-loop.ts +6 -1
  34. package/src/core/agent.ts +1 -0
  35. package/src/index.ts +4 -3
  36. package/src/llm/provider.ts +5 -12
  37. package/src/llm/types.ts +19 -0
  38. package/src/providers/openai-codex.ts +399 -0
  39. package/src/providers/openai-responses-shared.ts +97 -0
  40. package/src/providers/openai-responses.ts +152 -0
  41. package/src/providers/openai.ts +1 -8
  42. package/src/providers/shared.ts +20 -1
  43. package/src/types.ts +4 -0
  44. package/src/providers/index.ts +0 -6
  45. package/src/providers/kimi.ts +0 -12
  46. package/src/providers/minimax.ts +0 -12
  47. package/src/providers/volcengine.ts +0 -12
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Universal agent framework SDK. Inject tools, skills, and systemPrompt to build your agent — no wrapper needed.
4
4
 
5
- 通用 Agent 框架 SDK。注入 tools、skills、systemPrompt 即可构建 agent,无需再包一层。
5
+ [中文文档](./README.zh-CN.md)
6
6
 
7
7
  ## Install
8
8
 
@@ -47,12 +47,11 @@ const messages = await agent.prompt("Say hello");
47
47
 
48
48
  Single package, 14 modules, zero wrappers. All capabilities are built-in and opt-in via config.
49
49
 
50
- 单包架构,14 个模块,零包装层。所有能力内置,通过 config 按需启用。
51
-
52
50
  ```
53
51
  src/
54
52
  ├── core/ Agent + AgentLoop (nested dual-loop runtime)
55
- ├── llm/ Provider abstraction + Anthropic implementation
53
+ ├── llm/ Provider registry + abstraction
54
+ ├── providers/ 5 built-in protocol providers (Anthropic, OpenAI, OpenAI Responses, OpenAI Codex, Gemini)
56
55
  ├── tools/ Tool executor (sequential/parallel) + MCP adapter
57
56
  ├── approval/ Queue-based approval system
58
57
  ├── session/ JSONL tree persistence with branching
@@ -106,19 +105,26 @@ await agent.dispose();
106
105
 
107
106
  ### LLM Provider
108
107
 
109
- Provider-agnostic abstraction. Built-in Anthropic provider with streaming, retry (3 attempts, exponential backoff), and extended thinking support.
110
-
111
- ```typescript
112
- import { registerProvider, resolveProvider } from "@klaus-ai/agent";
108
+ Provider-agnostic abstraction with 5 built-in protocol providers. All providers support streaming, retry (3 attempts, exponential backoff), and extended thinking. Connect any compatible service by providing a custom `baseUrl`.
113
109
 
114
- // Register a custom provider
115
- registerProvider("openai", (config) => new MyOpenAIProvider(config.apiKey));
110
+ Built-in providers: `anthropic`, `openai`, `openai-responses`, `openai-codex`, `google`
116
111
 
117
- // Use it
112
+ ```typescript
113
+ // Use any built-in provider
118
114
  const agent = createAgent({
119
115
  model: { provider: "openai", model: "gpt-4", maxContextTokens: 128000 },
120
116
  ...
121
117
  });
118
+
119
+ // Connect a compatible service via custom baseUrl
120
+ const agent2 = createAgent({
121
+ model: { provider: "openai", model: "my-model", maxContextTokens: 128000, baseUrl: "https://my-service/v1" },
122
+ ...
123
+ });
124
+
125
+ // Register a fully custom provider
126
+ import { registerProvider } from "@klaus-ai/agent";
127
+ registerProvider("my-provider", (config) => new MyProvider(config.apiKey, config.baseUrl));
122
128
  ```
123
129
 
124
130
  Provider interface:
@@ -131,6 +137,26 @@ interface LLMProvider {
131
137
  // Stream events: text | tool_call_start | tool_call_delta | thinking | done | error
132
138
  ```
133
139
 
140
+ Cost tracking — provide per-million-token pricing via `ModelConfig.cost`, and the agent automatically calculates actual dollar costs on each `message_end` event:
141
+
142
+ ```typescript
143
+ const agent = createAgent({
144
+ model: {
145
+ provider: "anthropic",
146
+ model: "claude-sonnet-4-20250514",
147
+ maxContextTokens: 200000,
148
+ cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
149
+ },
150
+ ...
151
+ });
152
+
153
+ agent.subscribe((event) => {
154
+ if (event.type === "message_end" && event.usage?.cost) {
155
+ console.log(`Request cost: $${event.usage.cost.total.toFixed(6)}`);
156
+ }
157
+ });
158
+ ```
159
+
134
160
  ### Canonical Message Format
135
161
 
136
162
  Provider-agnostic message types used throughout the framework: