@codeany/open-agent-sdk 0.2.2 → 0.2.4

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 (280) hide show
  1. package/dist/agent.d.ts +113 -0
  2. package/dist/agent.d.ts.map +1 -0
  3. package/dist/agent.js +453 -0
  4. package/dist/agent.js.map +1 -0
  5. package/dist/engine.d.ts +62 -0
  6. package/dist/engine.d.ts.map +1 -0
  7. package/dist/engine.js +496 -0
  8. package/dist/engine.js.map +1 -0
  9. package/dist/hooks.d.ts +111 -0
  10. package/dist/hooks.d.ts.map +1 -0
  11. package/dist/hooks.js +179 -0
  12. package/dist/hooks.js.map +1 -0
  13. package/dist/index.d.ts +66 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +133 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/mcp/client.d.ts +19 -0
  18. package/dist/mcp/client.d.ts.map +1 -0
  19. package/dist/mcp/client.js +126 -0
  20. package/dist/mcp/client.js.map +1 -0
  21. package/dist/providers/anthropic.d.ts +17 -0
  22. package/dist/providers/anthropic.d.ts.map +1 -0
  23. package/dist/providers/anthropic.js +47 -0
  24. package/dist/providers/anthropic.js.map +1 -0
  25. package/dist/providers/index.d.ts +20 -0
  26. package/dist/providers/index.d.ts.map +1 -0
  27. package/dist/providers/index.js +26 -0
  28. package/dist/providers/index.js.map +1 -0
  29. package/dist/providers/openai.d.ts +26 -0
  30. package/dist/providers/openai.d.ts.map +1 -0
  31. package/dist/providers/openai.js +212 -0
  32. package/dist/providers/openai.js.map +1 -0
  33. package/dist/providers/types.d.ts +84 -0
  34. package/dist/providers/types.d.ts.map +1 -0
  35. package/dist/providers/types.js +11 -0
  36. package/dist/providers/types.js.map +1 -0
  37. package/dist/sdk-mcp-server.d.ts +52 -0
  38. package/dist/sdk-mcp-server.d.ts.map +1 -0
  39. package/dist/sdk-mcp-server.js +57 -0
  40. package/dist/sdk-mcp-server.js.map +1 -0
  41. package/dist/session.d.ts +73 -0
  42. package/dist/session.d.ts.map +1 -0
  43. package/dist/session.js +159 -0
  44. package/dist/session.js.map +1 -0
  45. package/dist/skills/bundled/commit.d.ts +7 -0
  46. package/dist/skills/bundled/commit.d.ts.map +1 -0
  47. package/dist/skills/bundled/commit.js +35 -0
  48. package/dist/skills/bundled/commit.js.map +1 -0
  49. package/dist/skills/bundled/debug.d.ts +7 -0
  50. package/dist/skills/bundled/debug.d.ts.map +1 -0
  51. package/{src/skills/bundled/debug.ts → dist/skills/bundled/debug.js} +20 -22
  52. package/dist/skills/bundled/debug.js.map +1 -0
  53. package/dist/skills/bundled/index.d.ts +11 -0
  54. package/dist/skills/bundled/index.d.ts.map +1 -0
  55. package/dist/skills/bundled/index.js +26 -0
  56. package/dist/skills/bundled/index.js.map +1 -0
  57. package/dist/skills/bundled/review.d.ts +7 -0
  58. package/dist/skills/bundled/review.d.ts.map +1 -0
  59. package/{src/skills/bundled/review.ts → dist/skills/bundled/review.js} +18 -21
  60. package/dist/skills/bundled/review.js.map +1 -0
  61. package/dist/skills/bundled/simplify.d.ts +8 -0
  62. package/dist/skills/bundled/simplify.d.ts.map +1 -0
  63. package/{src/skills/bundled/simplify.ts → dist/skills/bundled/simplify.js} +16 -19
  64. package/dist/skills/bundled/simplify.js.map +1 -0
  65. package/dist/skills/bundled/test.d.ts +7 -0
  66. package/dist/skills/bundled/test.d.ts.map +1 -0
  67. package/{src/skills/bundled/test.ts → dist/skills/bundled/test.js} +18 -21
  68. package/dist/skills/bundled/test.js.map +1 -0
  69. package/dist/skills/index.d.ts +7 -0
  70. package/dist/skills/index.d.ts.map +1 -0
  71. package/dist/skills/index.js +8 -0
  72. package/dist/skills/index.js.map +1 -0
  73. package/dist/skills/registry.d.ts +43 -0
  74. package/dist/skills/registry.d.ts.map +1 -0
  75. package/dist/skills/registry.js +111 -0
  76. package/dist/skills/registry.js.map +1 -0
  77. package/dist/skills/types.d.ts +83 -0
  78. package/dist/skills/types.d.ts.map +1 -0
  79. package/dist/skills/types.js +8 -0
  80. package/dist/skills/types.js.map +1 -0
  81. package/dist/tool-helper.d.ts +73 -0
  82. package/dist/tool-helper.d.ts.map +1 -0
  83. package/dist/tool-helper.js +86 -0
  84. package/dist/tool-helper.js.map +1 -0
  85. package/dist/tools/agent-tool.d.ts +17 -0
  86. package/dist/tools/agent-tool.d.ts.map +1 -0
  87. package/dist/tools/agent-tool.js +146 -0
  88. package/dist/tools/agent-tool.js.map +1 -0
  89. package/dist/tools/ask-user.d.ts +18 -0
  90. package/dist/tools/ask-user.d.ts.map +1 -0
  91. package/dist/tools/ask-user.js +72 -0
  92. package/dist/tools/ask-user.js.map +1 -0
  93. package/dist/tools/bash.d.ts +5 -0
  94. package/dist/tools/bash.d.ts.map +1 -0
  95. package/dist/tools/bash.js +67 -0
  96. package/dist/tools/bash.js.map +1 -0
  97. package/dist/tools/config-tool.d.ts +20 -0
  98. package/dist/tools/config-tool.d.ts.map +1 -0
  99. package/dist/tools/config-tool.js +83 -0
  100. package/dist/tools/config-tool.js.map +1 -0
  101. package/dist/tools/cron-tools.d.ts +33 -0
  102. package/dist/tools/cron-tools.d.ts.map +1 -0
  103. package/dist/tools/cron-tools.js +128 -0
  104. package/dist/tools/cron-tools.js.map +1 -0
  105. package/dist/tools/edit.d.ts +5 -0
  106. package/dist/tools/edit.d.ts.map +1 -0
  107. package/dist/tools/edit.js +70 -0
  108. package/dist/tools/edit.js.map +1 -0
  109. package/dist/tools/glob.d.ts +5 -0
  110. package/dist/tools/glob.d.ts.map +1 -0
  111. package/dist/tools/glob.js +75 -0
  112. package/dist/tools/glob.js.map +1 -0
  113. package/dist/tools/grep.d.ts +5 -0
  114. package/dist/tools/grep.d.ts.map +1 -0
  115. package/dist/tools/grep.js +168 -0
  116. package/dist/tools/grep.js.map +1 -0
  117. package/dist/tools/index.d.ts +45 -0
  118. package/dist/tools/index.d.ts.map +1 -0
  119. package/dist/tools/index.js +162 -0
  120. package/dist/tools/index.js.map +1 -0
  121. package/dist/tools/lsp-tool.d.ts +9 -0
  122. package/dist/tools/lsp-tool.d.ts.map +1 -0
  123. package/dist/tools/lsp-tool.js +137 -0
  124. package/dist/tools/lsp-tool.js.map +1 -0
  125. package/dist/tools/mcp-resource-tools.d.ts +14 -0
  126. package/dist/tools/mcp-resource-tools.d.ts.map +1 -0
  127. package/dist/tools/mcp-resource-tools.js +117 -0
  128. package/dist/tools/mcp-resource-tools.js.map +1 -0
  129. package/dist/tools/notebook-edit.d.ts +5 -0
  130. package/dist/tools/notebook-edit.d.ts.map +1 -0
  131. package/dist/tools/notebook-edit.js +85 -0
  132. package/dist/tools/notebook-edit.js.map +1 -0
  133. package/dist/tools/plan-tools.d.ts +12 -0
  134. package/dist/tools/plan-tools.d.ts.map +1 -0
  135. package/dist/tools/plan-tools.js +77 -0
  136. package/dist/tools/plan-tools.js.map +1 -0
  137. package/dist/tools/read.d.ts +5 -0
  138. package/dist/tools/read.d.ts.map +1 -0
  139. package/dist/tools/read.js +66 -0
  140. package/dist/tools/read.js.map +1 -0
  141. package/dist/tools/send-message.d.ts +31 -0
  142. package/dist/tools/send-message.d.ts.map +1 -0
  143. package/dist/tools/send-message.js +77 -0
  144. package/dist/tools/send-message.js.map +1 -0
  145. package/dist/tools/skill-tool.d.ts +9 -0
  146. package/dist/tools/skill-tool.d.ts.map +1 -0
  147. package/dist/tools/skill-tool.js +115 -0
  148. package/dist/tools/skill-tool.js.map +1 -0
  149. package/dist/tools/task-tools.d.ts +48 -0
  150. package/dist/tools/task-tools.d.ts.map +1 -0
  151. package/dist/tools/task-tools.js +242 -0
  152. package/dist/tools/task-tools.js.map +1 -0
  153. package/dist/tools/team-tools.d.ts +34 -0
  154. package/dist/tools/team-tools.d.ts.map +1 -0
  155. package/dist/tools/team-tools.js +103 -0
  156. package/dist/tools/team-tools.js.map +1 -0
  157. package/dist/tools/todo-tool.d.ts +22 -0
  158. package/dist/tools/todo-tool.d.ts.map +1 -0
  159. package/dist/tools/todo-tool.js +93 -0
  160. package/dist/tools/todo-tool.js.map +1 -0
  161. package/dist/tools/tool-search.d.ts +13 -0
  162. package/dist/tools/tool-search.d.ts.map +1 -0
  163. package/dist/tools/tool-search.js +76 -0
  164. package/dist/tools/tool-search.js.map +1 -0
  165. package/dist/tools/types.d.ts +29 -0
  166. package/dist/tools/types.d.ts.map +1 -0
  167. package/dist/tools/types.js +52 -0
  168. package/dist/tools/types.js.map +1 -0
  169. package/dist/tools/web-fetch.d.ts +5 -0
  170. package/dist/tools/web-fetch.d.ts.map +1 -0
  171. package/dist/tools/web-fetch.js +60 -0
  172. package/dist/tools/web-fetch.js.map +1 -0
  173. package/dist/tools/web-search.d.ts +5 -0
  174. package/dist/tools/web-search.d.ts.map +1 -0
  175. package/dist/tools/web-search.js +77 -0
  176. package/dist/tools/web-search.js.map +1 -0
  177. package/dist/tools/worktree-tools.d.ts +10 -0
  178. package/dist/tools/worktree-tools.d.ts.map +1 -0
  179. package/dist/tools/worktree-tools.js +130 -0
  180. package/dist/tools/worktree-tools.js.map +1 -0
  181. package/dist/tools/write.d.ts +5 -0
  182. package/dist/tools/write.d.ts.map +1 -0
  183. package/dist/tools/write.js +40 -0
  184. package/dist/tools/write.js.map +1 -0
  185. package/dist/types.d.ts +432 -0
  186. package/dist/types.d.ts.map +1 -0
  187. package/dist/types.js +5 -0
  188. package/dist/types.js.map +1 -0
  189. package/dist/utils/compact.d.ts +44 -0
  190. package/dist/utils/compact.d.ts.map +1 -0
  191. package/dist/utils/compact.js +162 -0
  192. package/dist/utils/compact.js.map +1 -0
  193. package/dist/utils/context.d.ts +35 -0
  194. package/dist/utils/context.d.ts.map +1 -0
  195. package/dist/utils/context.js +174 -0
  196. package/dist/utils/context.js.map +1 -0
  197. package/dist/utils/fileCache.d.ts +64 -0
  198. package/dist/utils/fileCache.d.ts.map +1 -0
  199. package/dist/utils/fileCache.js +117 -0
  200. package/dist/utils/fileCache.js.map +1 -0
  201. package/dist/utils/messages.d.ts +57 -0
  202. package/dist/utils/messages.d.ts.map +1 -0
  203. package/dist/utils/messages.js +152 -0
  204. package/dist/utils/messages.js.map +1 -0
  205. package/dist/utils/retry.d.ts +48 -0
  206. package/dist/utils/retry.d.ts.map +1 -0
  207. package/dist/utils/retry.js +111 -0
  208. package/dist/utils/retry.js.map +1 -0
  209. package/dist/utils/tokens.d.ts +57 -0
  210. package/dist/utils/tokens.d.ts.map +1 -0
  211. package/dist/utils/tokens.js +134 -0
  212. package/dist/utils/tokens.js.map +1 -0
  213. package/package.json +6 -1
  214. package/.env.example +0 -8
  215. package/examples/01-simple-query.ts +0 -43
  216. package/examples/02-multi-tool.ts +0 -44
  217. package/examples/03-multi-turn.ts +0 -39
  218. package/examples/04-prompt-api.ts +0 -29
  219. package/examples/05-custom-system-prompt.ts +0 -26
  220. package/examples/06-mcp-server.ts +0 -49
  221. package/examples/07-custom-tools.ts +0 -87
  222. package/examples/08-official-api-compat.ts +0 -38
  223. package/examples/09-subagents.ts +0 -48
  224. package/examples/10-permissions.ts +0 -40
  225. package/examples/11-custom-mcp-tools.ts +0 -101
  226. package/examples/12-skills.ts +0 -88
  227. package/examples/13-hooks.ts +0 -88
  228. package/examples/14-openai-compat.ts +0 -71
  229. package/examples/web/index.html +0 -365
  230. package/examples/web/server.ts +0 -157
  231. package/src/agent.ts +0 -516
  232. package/src/engine.ts +0 -633
  233. package/src/hooks.ts +0 -261
  234. package/src/index.ts +0 -426
  235. package/src/mcp/client.ts +0 -150
  236. package/src/providers/anthropic.ts +0 -60
  237. package/src/providers/index.ts +0 -34
  238. package/src/providers/openai.ts +0 -315
  239. package/src/providers/types.ts +0 -85
  240. package/src/sdk-mcp-server.ts +0 -78
  241. package/src/session.ts +0 -227
  242. package/src/skills/bundled/commit.ts +0 -38
  243. package/src/skills/bundled/index.ts +0 -28
  244. package/src/skills/index.ts +0 -25
  245. package/src/skills/registry.ts +0 -133
  246. package/src/skills/types.ts +0 -99
  247. package/src/tool-helper.ts +0 -127
  248. package/src/tools/agent-tool.ts +0 -164
  249. package/src/tools/ask-user.ts +0 -79
  250. package/src/tools/bash.ts +0 -75
  251. package/src/tools/config-tool.ts +0 -89
  252. package/src/tools/cron-tools.ts +0 -153
  253. package/src/tools/edit.ts +0 -74
  254. package/src/tools/glob.ts +0 -77
  255. package/src/tools/grep.ts +0 -168
  256. package/src/tools/index.ts +0 -240
  257. package/src/tools/lsp-tool.ts +0 -163
  258. package/src/tools/mcp-resource-tools.ts +0 -125
  259. package/src/tools/notebook-edit.ts +0 -93
  260. package/src/tools/plan-tools.ts +0 -88
  261. package/src/tools/read.ts +0 -73
  262. package/src/tools/send-message.ts +0 -96
  263. package/src/tools/skill-tool.ts +0 -133
  264. package/src/tools/task-tools.ts +0 -290
  265. package/src/tools/team-tools.ts +0 -128
  266. package/src/tools/todo-tool.ts +0 -112
  267. package/src/tools/tool-search.ts +0 -87
  268. package/src/tools/types.ts +0 -66
  269. package/src/tools/web-fetch.ts +0 -66
  270. package/src/tools/web-search.ts +0 -86
  271. package/src/tools/worktree-tools.ts +0 -140
  272. package/src/tools/write.ts +0 -42
  273. package/src/types.ts +0 -486
  274. package/src/utils/compact.ts +0 -207
  275. package/src/utils/context.ts +0 -191
  276. package/src/utils/fileCache.ts +0 -148
  277. package/src/utils/messages.ts +0 -195
  278. package/src/utils/retry.ts +0 -140
  279. package/src/utils/tokens.ts +0 -145
  280. package/tsconfig.json +0 -19
@@ -0,0 +1,432 @@
1
+ /**
2
+ * Core type definitions for the Agent SDK
3
+ */
4
+ import type { NormalizedMessageParam } from './providers/types.js';
5
+ export type ContentBlockParam = {
6
+ type: 'text';
7
+ text: string;
8
+ } | {
9
+ type: 'image';
10
+ source: any;
11
+ } | {
12
+ type: 'tool_use';
13
+ id: string;
14
+ name: string;
15
+ input: any;
16
+ } | {
17
+ type: 'tool_result';
18
+ tool_use_id: string;
19
+ content: string | any[];
20
+ is_error?: boolean;
21
+ };
22
+ export type ContentBlock = {
23
+ type: 'text';
24
+ text: string;
25
+ } | {
26
+ type: 'tool_use';
27
+ id: string;
28
+ name: string;
29
+ input: any;
30
+ } | {
31
+ type: 'thinking';
32
+ thinking: string;
33
+ };
34
+ export type MessageRole = 'user' | 'assistant';
35
+ export interface ConversationMessage {
36
+ role: MessageRole;
37
+ content: string | ContentBlockParam[];
38
+ }
39
+ export interface UserMessage {
40
+ type: 'user';
41
+ message: ConversationMessage;
42
+ uuid: string;
43
+ timestamp: string;
44
+ }
45
+ export interface AssistantMessage {
46
+ type: 'assistant';
47
+ message: {
48
+ role: 'assistant';
49
+ content: ContentBlock[];
50
+ };
51
+ uuid: string;
52
+ timestamp: string;
53
+ usage?: TokenUsage;
54
+ cost?: number;
55
+ }
56
+ export type Message = UserMessage | AssistantMessage;
57
+ export type SDKMessage = SDKAssistantMessage | SDKToolResultMessage | SDKResultMessage | SDKPartialMessage | SDKSystemMessage | SDKCompactBoundaryMessage | SDKStatusMessage | SDKTaskNotificationMessage | SDKRateLimitEvent;
58
+ export interface SDKAssistantMessage {
59
+ type: 'assistant';
60
+ uuid?: string;
61
+ session_id?: string;
62
+ message: {
63
+ role: 'assistant';
64
+ content: ContentBlock[];
65
+ };
66
+ parent_tool_use_id?: string | null;
67
+ }
68
+ export interface SDKToolResultMessage {
69
+ type: 'tool_result';
70
+ result: {
71
+ tool_use_id: string;
72
+ tool_name: string;
73
+ output: string;
74
+ };
75
+ }
76
+ export interface SDKResultMessage {
77
+ type: 'result';
78
+ subtype: 'success' | 'error_max_turns' | 'error_during_execution' | 'error_max_budget_usd' | string;
79
+ uuid?: string;
80
+ session_id?: string;
81
+ is_error?: boolean;
82
+ num_turns?: number;
83
+ result?: string;
84
+ stop_reason?: string | null;
85
+ total_cost_usd?: number;
86
+ duration_ms?: number;
87
+ duration_api_ms?: number;
88
+ usage?: TokenUsage;
89
+ model_usage?: Record<string, {
90
+ input_tokens: number;
91
+ output_tokens: number;
92
+ }>;
93
+ permission_denials?: Array<{
94
+ tool: string;
95
+ reason: string;
96
+ }>;
97
+ structured_output?: unknown;
98
+ errors?: string[];
99
+ /** @deprecated Use total_cost_usd */
100
+ cost?: number;
101
+ }
102
+ export interface SDKPartialMessage {
103
+ type: 'partial_message';
104
+ partial: {
105
+ type: 'text' | 'tool_use';
106
+ text?: string;
107
+ name?: string;
108
+ input?: string;
109
+ };
110
+ }
111
+ /** Emitted once at session start with initialization info. */
112
+ export interface SDKSystemMessage {
113
+ type: 'system';
114
+ subtype: 'init';
115
+ uuid?: string;
116
+ session_id: string;
117
+ tools: string[];
118
+ model: string;
119
+ cwd: string;
120
+ mcp_servers: Array<{
121
+ name: string;
122
+ status: string;
123
+ }>;
124
+ permission_mode: string;
125
+ }
126
+ /** Marks a compaction boundary in the conversation. */
127
+ export interface SDKCompactBoundaryMessage {
128
+ type: 'system';
129
+ subtype: 'compact_boundary';
130
+ summary?: string;
131
+ }
132
+ /** Status update during long operations. */
133
+ export interface SDKStatusMessage {
134
+ type: 'system';
135
+ subtype: 'status';
136
+ message: string;
137
+ }
138
+ /** Task lifecycle notification. */
139
+ export interface SDKTaskNotificationMessage {
140
+ type: 'system';
141
+ subtype: 'task_notification';
142
+ task_id: string;
143
+ status: string;
144
+ message?: string;
145
+ }
146
+ /** Rate limit event. */
147
+ export interface SDKRateLimitEvent {
148
+ type: 'system';
149
+ subtype: 'rate_limit';
150
+ retry_after_ms?: number;
151
+ message: string;
152
+ }
153
+ export interface TokenUsage {
154
+ input_tokens: number;
155
+ output_tokens: number;
156
+ cache_creation_input_tokens?: number;
157
+ cache_read_input_tokens?: number;
158
+ }
159
+ export interface ToolDefinition {
160
+ name: string;
161
+ description: string;
162
+ inputSchema: ToolInputSchema;
163
+ call: (input: any, context: ToolContext) => Promise<ToolResult>;
164
+ isReadOnly?: () => boolean;
165
+ isConcurrencySafe?: () => boolean;
166
+ isEnabled?: () => boolean;
167
+ prompt?: (context: ToolContext) => Promise<string>;
168
+ }
169
+ export interface ToolInputSchema {
170
+ type: 'object';
171
+ properties: Record<string, any>;
172
+ required?: string[];
173
+ }
174
+ export interface ToolContext {
175
+ cwd: string;
176
+ abortSignal?: AbortSignal;
177
+ /** Parent agent's LLM provider (inherited by subagents) */
178
+ provider?: import('./providers/types.js').LLMProvider;
179
+ /** Parent agent's model ID */
180
+ model?: string;
181
+ /** Parent agent's API type */
182
+ apiType?: import('./providers/types.js').ApiType;
183
+ }
184
+ export interface ToolResult {
185
+ type: 'tool_result';
186
+ tool_use_id: string;
187
+ content: string | any[];
188
+ is_error?: boolean;
189
+ }
190
+ export type PermissionMode = 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'dontAsk' | 'auto';
191
+ export type PermissionBehavior = 'allow' | 'deny';
192
+ export type CanUseToolResult = {
193
+ behavior: PermissionBehavior;
194
+ updatedInput?: unknown;
195
+ message?: string;
196
+ };
197
+ export type CanUseToolFn = (tool: ToolDefinition, input: unknown) => Promise<CanUseToolResult>;
198
+ export type McpServerConfig = McpStdioConfig | McpSseConfig | McpHttpConfig;
199
+ export interface McpStdioConfig {
200
+ type?: 'stdio';
201
+ command: string;
202
+ args?: string[];
203
+ env?: Record<string, string>;
204
+ }
205
+ export interface McpSseConfig {
206
+ type: 'sse';
207
+ url: string;
208
+ headers?: Record<string, string>;
209
+ }
210
+ export interface McpHttpConfig {
211
+ type: 'http';
212
+ url: string;
213
+ headers?: Record<string, string>;
214
+ }
215
+ export interface AgentDefinition {
216
+ description: string;
217
+ prompt: string;
218
+ tools?: string[];
219
+ disallowedTools?: string[];
220
+ model?: 'sonnet' | 'opus' | 'haiku' | 'inherit' | string;
221
+ mcpServers?: Array<string | {
222
+ name: string;
223
+ tools?: string[];
224
+ }>;
225
+ skills?: string[];
226
+ maxTurns?: number;
227
+ criticalSystemReminder_EXPERIMENTAL?: string;
228
+ }
229
+ export interface ThinkingConfig {
230
+ type: 'adaptive' | 'enabled' | 'disabled';
231
+ budgetTokens?: number;
232
+ }
233
+ export interface SandboxSettings {
234
+ enabled?: boolean;
235
+ autoAllowBashIfSandboxed?: boolean;
236
+ excludedCommands?: string[];
237
+ allowUnsandboxedCommands?: boolean;
238
+ network?: SandboxNetworkConfig;
239
+ filesystem?: SandboxFilesystemConfig;
240
+ ignoreViolations?: Record<string, string[]>;
241
+ enableWeakerNestedSandbox?: boolean;
242
+ ripgrep?: {
243
+ command: string;
244
+ args?: string[];
245
+ };
246
+ }
247
+ export interface SandboxNetworkConfig {
248
+ allowedDomains?: string[];
249
+ allowManagedDomainsOnly?: boolean;
250
+ allowLocalBinding?: boolean;
251
+ allowUnixSockets?: string[];
252
+ allowAllUnixSockets?: boolean;
253
+ httpProxyPort?: number;
254
+ socksProxyPort?: number;
255
+ }
256
+ export interface SandboxFilesystemConfig {
257
+ allowWrite?: string[];
258
+ denyWrite?: string[];
259
+ denyRead?: string[];
260
+ }
261
+ export interface OutputFormat {
262
+ type: 'json_schema';
263
+ schema: Record<string, unknown>;
264
+ }
265
+ export type SettingSource = 'user' | 'project' | 'local';
266
+ export interface ModelInfo {
267
+ value: string;
268
+ displayName: string;
269
+ description: string;
270
+ supportsEffort?: boolean;
271
+ supportedEffortLevels?: ('low' | 'medium' | 'high' | 'max')[];
272
+ supportsAdaptiveThinking?: boolean;
273
+ supportsFastMode?: boolean;
274
+ }
275
+ export interface AgentOptions {
276
+ /** LLM model ID */
277
+ model?: string;
278
+ /**
279
+ * API type: 'anthropic-messages' or 'openai-completions'.
280
+ * Falls back to CODEANY_API_TYPE env var. Default: 'anthropic-messages'.
281
+ */
282
+ apiType?: import('./providers/types.js').ApiType;
283
+ /** API key. Falls back to CODEANY_API_KEY env var. */
284
+ apiKey?: string;
285
+ /** API base URL override */
286
+ baseURL?: string;
287
+ /** Working directory for file/shell tools */
288
+ cwd?: string;
289
+ /** System prompt override or preset */
290
+ systemPrompt?: string | {
291
+ type: 'preset';
292
+ preset: 'default';
293
+ append?: string;
294
+ };
295
+ /** Append to default system prompt */
296
+ appendSystemPrompt?: string;
297
+ /** Available tools (ToolDefinition[] or string[] preset) */
298
+ tools?: ToolDefinition[] | string[] | {
299
+ type: 'preset';
300
+ preset: 'default';
301
+ };
302
+ /** Maximum number of agentic turns per query */
303
+ maxTurns?: number;
304
+ /** Maximum USD budget per query */
305
+ maxBudgetUsd?: number;
306
+ /** Extended thinking configuration */
307
+ thinking?: ThinkingConfig;
308
+ /** Maximum thinking tokens (deprecated, use thinking.budgetTokens) */
309
+ maxThinkingTokens?: number;
310
+ /** Structured output JSON schema */
311
+ jsonSchema?: Record<string, unknown>;
312
+ /** Structured output format */
313
+ outputFormat?: OutputFormat;
314
+ /** Permission handler callback */
315
+ canUseTool?: CanUseToolFn;
316
+ /** Permission mode controlling tool approval behavior */
317
+ permissionMode?: PermissionMode;
318
+ /** Abort controller for cancellation */
319
+ abortController?: AbortController;
320
+ /** Abort signal for cancellation */
321
+ abortSignal?: AbortSignal;
322
+ /** Whether to include partial streaming events */
323
+ includePartialMessages?: boolean;
324
+ /** Environment variables */
325
+ env?: Record<string, string | undefined>;
326
+ /** Tool names to pre-approve without prompting */
327
+ allowedTools?: string[];
328
+ /** Tool names to deny */
329
+ disallowedTools?: string[];
330
+ /** MCP server configurations */
331
+ mcpServers?: Record<string, McpServerConfig | any>;
332
+ /** Custom subagent definitions */
333
+ agents?: Record<string, AgentDefinition>;
334
+ /** Maximum tokens for responses */
335
+ maxTokens?: number;
336
+ /** Effort level for reasoning */
337
+ effort?: 'low' | 'medium' | 'high' | 'max';
338
+ /** Fallback model if primary is unavailable */
339
+ fallbackModel?: string;
340
+ /** Continue the most recent session in cwd */
341
+ continue?: boolean;
342
+ /** Resume a specific session by ID */
343
+ resume?: string;
344
+ /** Fork a session instead of continuing it */
345
+ forkSession?: boolean;
346
+ /** Persist session to disk */
347
+ persistSession?: boolean;
348
+ /**
349
+ * Conversation history to start from, instead of loading it from disk.
350
+ *
351
+ * Lets a host keep sessions in its own store (a database, say) and stay
352
+ * stateless: pass the prior turns here with `persistSession: false` and the
353
+ * SDK never touches the session files. Takes precedence over `resume`.
354
+ */
355
+ history?: NormalizedMessageParam[];
356
+ /** Explicit session ID */
357
+ sessionId?: string;
358
+ /** Enable file checkpointing (for rewindFiles) */
359
+ enableFileCheckpointing?: boolean;
360
+ /** Sandbox configuration */
361
+ sandbox?: SandboxSettings;
362
+ /** Load settings from filesystem */
363
+ settingSources?: SettingSource[];
364
+ /** Plugin configurations */
365
+ plugins?: Array<{
366
+ name: string;
367
+ config?: Record<string, unknown>;
368
+ }>;
369
+ /** Additional working directories */
370
+ additionalDirectories?: string[];
371
+ /** Default agent to use */
372
+ agent?: string;
373
+ /** Debug mode */
374
+ debug?: boolean;
375
+ /** Debug log file */
376
+ debugFile?: string;
377
+ /** Tool-specific configuration */
378
+ toolConfig?: Record<string, unknown>;
379
+ /** Enable prompt suggestions */
380
+ promptSuggestions?: boolean;
381
+ /** Strict MCP config validation */
382
+ strictMcpConfig?: boolean;
383
+ /** Extra CLI arguments */
384
+ extraArgs?: Record<string, string | null>;
385
+ /** SDK betas to enable */
386
+ betas?: string[];
387
+ /** Permission prompt tool name override */
388
+ permissionPromptToolName?: string;
389
+ /** Hook configurations */
390
+ hooks?: Record<string, Array<{
391
+ matcher?: string;
392
+ hooks: Array<(input: any, toolUseId: string, context: {
393
+ signal: AbortSignal;
394
+ }) => Promise<any>>;
395
+ timeout?: number;
396
+ }>>;
397
+ }
398
+ export interface QueryResult {
399
+ /** Final text output from the assistant */
400
+ text: string;
401
+ /** Token usage */
402
+ usage: TokenUsage;
403
+ /** Number of agentic turns */
404
+ num_turns: number;
405
+ /** Duration in milliseconds */
406
+ duration_ms: number;
407
+ /** All conversation messages */
408
+ messages: Message[];
409
+ }
410
+ export interface QueryEngineConfig {
411
+ cwd: string;
412
+ model: string;
413
+ /** LLM provider instance (created from apiType) */
414
+ provider: import('./providers/types.js').LLMProvider;
415
+ tools: ToolDefinition[];
416
+ systemPrompt?: string;
417
+ appendSystemPrompt?: string;
418
+ maxTurns: number;
419
+ maxBudgetUsd?: number;
420
+ maxTokens: number;
421
+ thinking?: ThinkingConfig;
422
+ jsonSchema?: Record<string, unknown>;
423
+ canUseTool: CanUseToolFn;
424
+ includePartialMessages: boolean;
425
+ abortSignal?: AbortSignal;
426
+ agents?: Record<string, AgentDefinition>;
427
+ /** Hook registry for lifecycle events */
428
+ hookRegistry?: import('./hooks.js').HookRegistry;
429
+ /** Session ID for hook context */
430
+ sessionId?: string;
431
+ }
432
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAGlE,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAE7F,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAA;AAM1C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,CAAA;AAE9C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAAA;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,mBAAmB,CAAA;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE;QACP,IAAI,EAAE,WAAW,CAAA;QACjB,OAAO,EAAE,YAAY,EAAE,CAAA;KACxB,CAAA;IACD,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,gBAAgB,CAAA;AAMpD,MAAM,MAAM,UAAU,GAClB,mBAAmB,GACnB,oBAAoB,GACpB,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,yBAAyB,GACzB,gBAAgB,GAChB,0BAA0B,GAC1B,iBAAiB,CAAA;AAErB,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE;QACP,IAAI,EAAE,WAAW,CAAA;QACjB,OAAO,EAAE,YAAY,EAAE,CAAA;KACxB,CAAA;IACD,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,aAAa,CAAA;IACnB,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,SAAS,GAAG,iBAAiB,GAAG,wBAAwB,GAAG,sBAAsB,GAAG,MAAM,CAAA;IACnG,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7E,kBAAkB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC5D,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,iBAAiB,CAAA;IACvB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;QACzB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACpD,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,uDAAuD;AACvD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,kBAAkB,CAAA;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,4CAA4C;AAC5C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,QAAQ,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,mCAAmC;AACnC,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,mBAAmB,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAwB;AACxB,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,YAAY,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;CAChB;AAMD,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,uBAAuB,CAAC,EAAE,MAAM,CAAA;CACjC;AAMD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,eAAe,CAAA;IAC5B,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IAC/D,UAAU,CAAC,EAAE,MAAM,OAAO,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAA;IACjC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAA;IACzB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACnD;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAA;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC/B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,sBAAsB,EAAE,WAAW,CAAA;IACrD,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8BAA8B;IAC9B,OAAO,CAAC,EAAE,OAAO,sBAAsB,EAAE,OAAO,CAAA;CACjD;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,aAAa,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,GAAG,GAAG,EAAE,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAMD,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,aAAa,GACb,mBAAmB,GACnB,MAAM,GACN,SAAS,GACT,MAAM,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,MAAM,CAAA;AAEjD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,OAAO,KACX,OAAO,CAAC,gBAAgB,CAAC,CAAA;AAM9B,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,YAAY,GACZ,aAAa,CAAA;AAEjB,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,KAAK,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAMD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;IACxD,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;IAC/D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mCAAmC,CAAC,EAAE,MAAM,CAAA;CAC7C;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;IACzC,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAMD,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,OAAO,CAAC,EAAE,oBAAoB,CAAA;IAC9B,UAAU,CAAC,EAAE,uBAAuB,CAAA;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAC3C,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAC/C;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAMD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,aAAa,CAAA;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC;AAMD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAA;AAMxD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,qBAAqB,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,EAAE,CAAA;IAC7D,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,sBAAsB,EAAE,OAAO,CAAA;IAChD,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,SAAS,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9E,sCAAsC;IACtC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAA;IAC3E,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,+BAA+B;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,kCAAkC;IAClC,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,yDAAyD;IACzD,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,wCAAwC;IACxC,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,oCAAoC;IACpC,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,kDAAkD;IAClD,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IACxC,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,yBAAyB;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,GAAG,CAAC,CAAA;IAClD,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACxC,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iCAAiC;IACjC,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAA;IAC1C,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,8CAA8C;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,8BAA8B;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAClC,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kDAAkD;IAClD,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,4BAA4B;IAC5B,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,oCAAoC;IACpC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAA;IAChC,4BAA4B;IAC5B,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAA;IACnE,qCAAqC;IACrC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAA;IAChC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iBAAiB;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,gCAAgC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,mCAAmC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;IACzC,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,2CAA2C;IAC3C,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;YAAE,MAAM,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;QAC/F,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAC,CAAC,CAAA;CACJ;AAED,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,kBAAkB;IAClB,KAAK,EAAE,UAAU,CAAA;IACjB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,gCAAgC;IAChC,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAMD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,mDAAmD;IACnD,QAAQ,EAAE,OAAO,sBAAsB,EAAE,WAAW,CAAA;IACpD,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,UAAU,EAAE,YAAY,CAAA;IACxB,sBAAsB,EAAE,OAAO,CAAA;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACxC,yCAAyC;IACzC,YAAY,CAAC,EAAE,OAAO,YAAY,EAAE,YAAY,CAAA;IAChD,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Core type definitions for the Agent SDK
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Context Compression / Auto-Compaction
3
+ *
4
+ * Summarizes long conversation histories when context window fills up.
5
+ * Three-tier system:
6
+ * 1. Auto-compact: triggered when tokens exceed threshold
7
+ * 2. Micro-compact: cache-aware per-request optimization
8
+ * 3. Session memory compaction: consolidates across sessions
9
+ */
10
+ import type { LLMProvider } from '../providers/types.js';
11
+ import type { NormalizedMessageParam } from '../providers/types.js';
12
+ /**
13
+ * State for tracking auto-compaction across turns.
14
+ */
15
+ export interface AutoCompactState {
16
+ compacted: boolean;
17
+ turnCounter: number;
18
+ consecutiveFailures: number;
19
+ }
20
+ /**
21
+ * Create initial auto-compact state.
22
+ */
23
+ export declare function createAutoCompactState(): AutoCompactState;
24
+ /**
25
+ * Check if auto-compaction should trigger.
26
+ */
27
+ export declare function shouldAutoCompact(messages: any[], model: string, state: AutoCompactState): boolean;
28
+ /**
29
+ * Compact conversation by summarizing with the LLM.
30
+ *
31
+ * Sends the entire conversation to the LLM for summarization,
32
+ * then replaces the history with a compact summary.
33
+ */
34
+ export declare function compactConversation(provider: LLMProvider, model: string, messages: any[], state: AutoCompactState): Promise<{
35
+ compactedMessages: NormalizedMessageParam[];
36
+ summary: string;
37
+ state: AutoCompactState;
38
+ }>;
39
+ /**
40
+ * Micro-compact: optimize messages by truncating large tool results
41
+ * to fit within token budgets.
42
+ */
43
+ export declare function microCompactMessages(messages: any[], maxToolResultChars?: number): any[];
44
+ //# sourceMappingURL=compact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/utils/compact.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAMnE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,MAAM,CAAA;CAC5B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,CAMzD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,GAAG,EAAE,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAOT;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,GAAG,EAAE,EACf,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC;IACT,iBAAiB,EAAE,sBAAsB,EAAE,CAAA;IAC3C,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,gBAAgB,CAAA;CACxB,CAAC,CAwDD;AAqDD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,GAAG,EAAE,EACf,kBAAkB,GAAE,MAAc,GACjC,GAAG,EAAE,CAsBP"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Context Compression / Auto-Compaction
3
+ *
4
+ * Summarizes long conversation histories when context window fills up.
5
+ * Three-tier system:
6
+ * 1. Auto-compact: triggered when tokens exceed threshold
7
+ * 2. Micro-compact: cache-aware per-request optimization
8
+ * 3. Session memory compaction: consolidates across sessions
9
+ */
10
+ import { estimateMessagesTokens, getAutoCompactThreshold, } from './tokens.js';
11
+ /**
12
+ * Create initial auto-compact state.
13
+ */
14
+ export function createAutoCompactState() {
15
+ return {
16
+ compacted: false,
17
+ turnCounter: 0,
18
+ consecutiveFailures: 0,
19
+ };
20
+ }
21
+ /**
22
+ * Check if auto-compaction should trigger.
23
+ */
24
+ export function shouldAutoCompact(messages, model, state) {
25
+ if (state.consecutiveFailures >= 3)
26
+ return false;
27
+ const estimatedTokens = estimateMessagesTokens(messages);
28
+ const threshold = getAutoCompactThreshold(model);
29
+ return estimatedTokens >= threshold;
30
+ }
31
+ /**
32
+ * Compact conversation by summarizing with the LLM.
33
+ *
34
+ * Sends the entire conversation to the LLM for summarization,
35
+ * then replaces the history with a compact summary.
36
+ */
37
+ export async function compactConversation(provider, model, messages, state) {
38
+ try {
39
+ // Strip images before compacting to save tokens
40
+ const strippedMessages = stripImagesFromMessages(messages);
41
+ // Build compaction prompt
42
+ const compactionPrompt = buildCompactionPrompt(strippedMessages);
43
+ const response = await provider.createMessage({
44
+ model,
45
+ maxTokens: 8192,
46
+ system: 'You are a conversation summarizer. Create a detailed summary of the conversation that preserves all important context, decisions made, files modified, tool outputs, and current state. The summary should allow the conversation to continue seamlessly.',
47
+ messages: [
48
+ {
49
+ role: 'user',
50
+ content: compactionPrompt,
51
+ },
52
+ ],
53
+ });
54
+ const summary = response.content
55
+ .filter((b) => b.type === 'text')
56
+ .map((b) => b.text)
57
+ .join('\n');
58
+ // Replace messages with summary
59
+ const compactedMessages = [
60
+ {
61
+ role: 'user',
62
+ content: `[Previous conversation summary]\n\n${summary}\n\n[End of summary - conversation continues below]`,
63
+ },
64
+ {
65
+ role: 'assistant',
66
+ content: 'I understand the context from the previous conversation. I\'ll continue from where we left off.',
67
+ },
68
+ ];
69
+ return {
70
+ compactedMessages,
71
+ summary,
72
+ state: {
73
+ compacted: true,
74
+ turnCounter: state.turnCounter,
75
+ consecutiveFailures: 0,
76
+ },
77
+ };
78
+ }
79
+ catch (err) {
80
+ return {
81
+ compactedMessages: messages,
82
+ summary: '',
83
+ state: {
84
+ ...state,
85
+ consecutiveFailures: state.consecutiveFailures + 1,
86
+ },
87
+ };
88
+ }
89
+ }
90
+ /**
91
+ * Strip images from messages for compaction safety.
92
+ */
93
+ function stripImagesFromMessages(messages) {
94
+ return messages.map((msg) => {
95
+ if (typeof msg.content === 'string')
96
+ return msg;
97
+ const filtered = msg.content.filter((block) => {
98
+ return block.type !== 'image';
99
+ });
100
+ return { ...msg, content: filtered.length > 0 ? filtered : '[content removed for compaction]' };
101
+ });
102
+ }
103
+ /**
104
+ * Build compaction prompt from messages.
105
+ */
106
+ function buildCompactionPrompt(messages) {
107
+ const parts = ['Please summarize this conversation:\n'];
108
+ for (const msg of messages) {
109
+ const role = msg.role === 'user' ? 'User' : 'Assistant';
110
+ if (typeof msg.content === 'string') {
111
+ parts.push(`${role}: ${msg.content.slice(0, 5000)}`);
112
+ }
113
+ else if (Array.isArray(msg.content)) {
114
+ const texts = [];
115
+ for (const block of msg.content) {
116
+ if (block.type === 'text') {
117
+ texts.push(block.text.slice(0, 3000));
118
+ }
119
+ else if (block.type === 'tool_use') {
120
+ texts.push(`[Tool: ${block.name}]`);
121
+ }
122
+ else if (block.type === 'tool_result') {
123
+ const content = typeof block.content === 'string'
124
+ ? block.content.slice(0, 1000)
125
+ : '[tool result]';
126
+ texts.push(`[Tool Result: ${content}]`);
127
+ }
128
+ }
129
+ if (texts.length > 0) {
130
+ parts.push(`${role}: ${texts.join('\n')}`);
131
+ }
132
+ }
133
+ }
134
+ return parts.join('\n\n');
135
+ }
136
+ /**
137
+ * Micro-compact: optimize messages by truncating large tool results
138
+ * to fit within token budgets.
139
+ */
140
+ export function microCompactMessages(messages, maxToolResultChars = 50000) {
141
+ return messages.map((msg) => {
142
+ if (typeof msg.content === 'string')
143
+ return msg;
144
+ if (!Array.isArray(msg.content))
145
+ return msg;
146
+ const content = msg.content.map((block) => {
147
+ if (block.type === 'tool_result' && typeof block.content === 'string') {
148
+ if (block.content.length > maxToolResultChars) {
149
+ return {
150
+ ...block,
151
+ content: block.content.slice(0, maxToolResultChars / 2) +
152
+ '\n...(truncated)...\n' +
153
+ block.content.slice(-maxToolResultChars / 2),
154
+ };
155
+ }
156
+ }
157
+ return block;
158
+ });
159
+ return { ...msg, content };
160
+ });
161
+ }
162
+ //# sourceMappingURL=compact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/utils/compact.ts"],"names":[],"mappings":"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"}