@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,113 @@
1
+ /**
2
+ * Agent - High-level API
3
+ *
4
+ * Provides createAgent() and query() interfaces compatible with
5
+ * open-agent-sdk.
6
+ *
7
+ * Usage:
8
+ * import { createAgent } from 'open-agent-sdk'
9
+ * const agent = createAgent({ model: 'claude-sonnet-4-6' })
10
+ * for await (const event of agent.query('Hello')) { ... }
11
+ *
12
+ * // OpenAI-compatible models
13
+ * const agent = createAgent({
14
+ * apiType: 'openai-completions',
15
+ * model: 'gpt-4o',
16
+ * apiKey: 'sk-...',
17
+ * baseURL: 'https://api.openai.com/v1',
18
+ * })
19
+ */
20
+ import type { AgentOptions, QueryResult, SDKMessage, Message, PermissionMode } from './types.js';
21
+ import { type ApiType } from './providers/index.js';
22
+ export declare class Agent {
23
+ private cfg;
24
+ private toolPool;
25
+ private modelId;
26
+ private apiType;
27
+ private apiCredentials;
28
+ private provider;
29
+ private mcpLinks;
30
+ private history;
31
+ private messageLog;
32
+ private setupDone;
33
+ private sid;
34
+ private abortCtrl;
35
+ private currentEngine;
36
+ private hookRegistry;
37
+ constructor(options?: AgentOptions);
38
+ /**
39
+ * Resolve API type from options, env, or model name heuristic.
40
+ */
41
+ private resolveApiType;
42
+ /** Pick API key and base URL from options or CODEANY_* env vars. */
43
+ private pickCredentials;
44
+ /** Read a value from process.env (returns undefined if missing). */
45
+ private readEnv;
46
+ /** Assemble the available tool set based on options. */
47
+ private buildToolPool;
48
+ /**
49
+ * Async initialization: connect MCP servers, register agents, resume sessions.
50
+ */
51
+ private setup;
52
+ /**
53
+ * Run a query with streaming events.
54
+ */
55
+ query(prompt: string, overrides?: Partial<AgentOptions>): AsyncGenerator<SDKMessage, void>;
56
+ /**
57
+ * Convenience method: send a prompt and collect the final answer as a single object.
58
+ * Internally iterates through the streaming query and aggregates the outcome.
59
+ */
60
+ prompt(text: string, overrides?: Partial<AgentOptions>): Promise<QueryResult>;
61
+ /**
62
+ * Get conversation messages.
63
+ */
64
+ getMessages(): Message[];
65
+ /**
66
+ * Reset conversation history.
67
+ */
68
+ clear(): void;
69
+ /**
70
+ * Interrupt the current query.
71
+ */
72
+ interrupt(): Promise<void>;
73
+ /**
74
+ * Change the model during a session.
75
+ */
76
+ setModel(model?: string): Promise<void>;
77
+ /**
78
+ * Change the permission mode during a session.
79
+ */
80
+ setPermissionMode(mode: PermissionMode): Promise<void>;
81
+ /**
82
+ * Set maximum thinking tokens.
83
+ */
84
+ setMaxThinkingTokens(maxThinkingTokens: number | null): Promise<void>;
85
+ /**
86
+ * Get the session ID.
87
+ */
88
+ getSessionId(): string;
89
+ /**
90
+ * Get the current API type.
91
+ */
92
+ getApiType(): ApiType;
93
+ /**
94
+ * Stop a background task.
95
+ */
96
+ stopTask(taskId: string): Promise<void>;
97
+ /**
98
+ * Close MCP connections and clean up.
99
+ * Optionally persist session to disk.
100
+ */
101
+ close(): Promise<void>;
102
+ }
103
+ /** Factory: shorthand for `new Agent(options)`. */
104
+ export declare function createAgent(options?: AgentOptions): Agent;
105
+ /**
106
+ * Execute a single agentic query without managing an Agent instance.
107
+ * The agent is created, used, and cleaned up automatically.
108
+ */
109
+ export declare function query(params: {
110
+ prompt: string;
111
+ options?: AgentOptions;
112
+ }): AsyncGenerator<SDKMessage, void>;
113
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EAGV,OAAO,EACP,cAAc,EACf,MAAM,YAAY,CAAA;AAYnB,OAAO,EAAoC,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAOrF,qBAAa,KAAK;IAChB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,YAAY,CAAc;gBAEtB,OAAO,GAAE,YAAiB;IAkDtC;;OAEG;IACH,OAAO,CAAC,cAAc;IAgCtB,oEAAoE;IACpE,OAAO,CAAC,eAAe;IAgBvB,oEAAoE;IACpE,OAAO,CAAC,OAAO;IAIf,wDAAwD;IACxD,OAAO,CAAC,aAAa;IAerB;;OAEG;YACW,KAAK;IA2CnB;;OAEG;IACI,KAAK,CACV,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC;IAqHnC;;;OAGG;IACG,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,OAAO,CAAC,WAAW,CAAC;IA+BvB;;OAEG;IACH,WAAW,IAAI,OAAO,EAAE;IAIxB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC;;OAEG;IACG,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO7C;;OAEG;IACG,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D;;OAEG;IACG,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3E;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB7B;AAMD,mDAAmD;AACnD,wBAAgB,WAAW,CAAC,OAAO,GAAE,YAAiB,GAAG,KAAK,CAE7D;AAMD;;;GAGG;AACH,wBAAuB,KAAK,CAAC,MAAM,EAAE;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAOnC"}
package/dist/agent.js ADDED
@@ -0,0 +1,453 @@
1
+ /**
2
+ * Agent - High-level API
3
+ *
4
+ * Provides createAgent() and query() interfaces compatible with
5
+ * open-agent-sdk.
6
+ *
7
+ * Usage:
8
+ * import { createAgent } from 'open-agent-sdk'
9
+ * const agent = createAgent({ model: 'claude-sonnet-4-6' })
10
+ * for await (const event of agent.query('Hello')) { ... }
11
+ *
12
+ * // OpenAI-compatible models
13
+ * const agent = createAgent({
14
+ * apiType: 'openai-completions',
15
+ * model: 'gpt-4o',
16
+ * apiKey: 'sk-...',
17
+ * baseURL: 'https://api.openai.com/v1',
18
+ * })
19
+ */
20
+ import { QueryEngine } from './engine.js';
21
+ import { getAllBaseTools, filterTools } from './tools/index.js';
22
+ import { connectMCPServer } from './mcp/client.js';
23
+ import { isSdkServerConfig } from './sdk-mcp-server.js';
24
+ import { registerAgents } from './tools/agent-tool.js';
25
+ import { saveSession, loadSession, } from './session.js';
26
+ import { createHookRegistry } from './hooks.js';
27
+ import { initBundledSkills } from './skills/index.js';
28
+ import { createProvider } from './providers/index.js';
29
+ // --------------------------------------------------------------------------
30
+ // Agent class
31
+ // --------------------------------------------------------------------------
32
+ export class Agent {
33
+ cfg;
34
+ toolPool;
35
+ modelId;
36
+ apiType;
37
+ apiCredentials;
38
+ provider;
39
+ mcpLinks = [];
40
+ history = [];
41
+ messageLog = [];
42
+ setupDone;
43
+ sid;
44
+ abortCtrl = null;
45
+ currentEngine = null;
46
+ hookRegistry;
47
+ constructor(options = {}) {
48
+ // Shallow copy to avoid mutating caller's object
49
+ this.cfg = { ...options };
50
+ // Merge credentials from options.env map, direct options, and process.env
51
+ this.apiCredentials = this.pickCredentials();
52
+ this.modelId = this.cfg.model ?? this.readEnv('CODEANY_MODEL') ?? 'claude-sonnet-4-6';
53
+ this.sid = this.cfg.sessionId ?? crypto.randomUUID();
54
+ // Resolve API type
55
+ this.apiType = this.resolveApiType();
56
+ // Create LLM provider
57
+ this.provider = createProvider(this.apiType, {
58
+ apiKey: this.apiCredentials.key,
59
+ baseURL: this.apiCredentials.baseUrl,
60
+ });
61
+ // Initialize bundled skills
62
+ initBundledSkills();
63
+ // Build hook registry from options
64
+ this.hookRegistry = createHookRegistry();
65
+ if (this.cfg.hooks) {
66
+ // Convert AgentOptions hooks format to HookConfig
67
+ for (const [event, defs] of Object.entries(this.cfg.hooks)) {
68
+ for (const def of defs) {
69
+ for (const handler of def.hooks) {
70
+ this.hookRegistry.register(event, {
71
+ matcher: def.matcher,
72
+ timeout: def.timeout,
73
+ handler: async (input) => {
74
+ const result = await handler(input, input.toolUseId || '', {
75
+ signal: this.abortCtrl?.signal || new AbortController().signal,
76
+ });
77
+ return result || undefined;
78
+ },
79
+ });
80
+ }
81
+ }
82
+ }
83
+ }
84
+ // Build tool pool from options (supports ToolDefinition[], string[], or preset)
85
+ this.toolPool = this.buildToolPool();
86
+ // Kick off async setup (MCP connections, agent registration, session resume)
87
+ this.setupDone = this.setup();
88
+ }
89
+ /**
90
+ * Resolve API type from options, env, or model name heuristic.
91
+ */
92
+ resolveApiType() {
93
+ // Explicit option
94
+ if (this.cfg.apiType)
95
+ return this.cfg.apiType;
96
+ // Env var
97
+ const envType = this.cfg.env?.CODEANY_API_TYPE ??
98
+ this.readEnv('CODEANY_API_TYPE');
99
+ if (envType === 'openai-completions' || envType === 'anthropic-messages') {
100
+ return envType;
101
+ }
102
+ // Heuristic from model name
103
+ const model = this.modelId.toLowerCase();
104
+ if (model.includes('gpt-') ||
105
+ model.includes('o1') ||
106
+ model.includes('o3') ||
107
+ model.includes('o4') ||
108
+ model.includes('deepseek') ||
109
+ model.includes('qwen') ||
110
+ model.includes('yi-') ||
111
+ model.includes('glm') ||
112
+ model.includes('mistral') ||
113
+ model.includes('gemma')) {
114
+ return 'openai-completions';
115
+ }
116
+ return 'anthropic-messages';
117
+ }
118
+ /** Pick API key and base URL from options or CODEANY_* env vars. */
119
+ pickCredentials() {
120
+ const envMap = this.cfg.env;
121
+ return {
122
+ key: this.cfg.apiKey ??
123
+ envMap?.CODEANY_API_KEY ??
124
+ envMap?.CODEANY_AUTH_TOKEN ??
125
+ this.readEnv('CODEANY_API_KEY') ??
126
+ this.readEnv('CODEANY_AUTH_TOKEN'),
127
+ baseUrl: this.cfg.baseURL ??
128
+ envMap?.CODEANY_BASE_URL ??
129
+ this.readEnv('CODEANY_BASE_URL'),
130
+ };
131
+ }
132
+ /** Read a value from process.env (returns undefined if missing). */
133
+ readEnv(key) {
134
+ return process.env[key] || undefined;
135
+ }
136
+ /** Assemble the available tool set based on options. */
137
+ buildToolPool() {
138
+ const raw = this.cfg.tools;
139
+ let pool;
140
+ if (!raw || (typeof raw === 'object' && !Array.isArray(raw) && 'type' in raw)) {
141
+ pool = getAllBaseTools();
142
+ }
143
+ else if (Array.isArray(raw) && raw.length > 0 && typeof raw[0] === 'string') {
144
+ pool = filterTools(getAllBaseTools(), raw);
145
+ }
146
+ else {
147
+ pool = raw;
148
+ }
149
+ return filterTools(pool, this.cfg.allowedTools, this.cfg.disallowedTools);
150
+ }
151
+ /**
152
+ * Async initialization: connect MCP servers, register agents, resume sessions.
153
+ */
154
+ async setup() {
155
+ // Register custom agent definitions
156
+ if (this.cfg.agents) {
157
+ registerAgents(this.cfg.agents);
158
+ }
159
+ // Connect MCP servers (supports stdio, SSE, HTTP, and in-process SDK servers)
160
+ if (this.cfg.mcpServers) {
161
+ for (const [name, config] of Object.entries(this.cfg.mcpServers)) {
162
+ try {
163
+ if (isSdkServerConfig(config)) {
164
+ // In-process SDK MCP server - directly add tools
165
+ this.toolPool = [...this.toolPool, ...config.tools];
166
+ }
167
+ else {
168
+ // External MCP server
169
+ const connection = await connectMCPServer(name, config);
170
+ this.mcpLinks.push(connection);
171
+ if (connection.status === 'connected' && connection.tools.length > 0) {
172
+ this.toolPool = [...this.toolPool, ...connection.tools];
173
+ }
174
+ }
175
+ }
176
+ catch (err) {
177
+ console.error(`[MCP] Failed to connect to "${name}": ${err.message}`);
178
+ }
179
+ }
180
+ }
181
+ // Resume or continue session. An explicitly supplied history wins: hosts
182
+ // that keep sessions in their own store (a database) pass it here and the
183
+ // session files are never read.
184
+ if (this.cfg.history?.length) {
185
+ this.history = [...this.cfg.history];
186
+ if (this.cfg.resume)
187
+ this.sid = this.cfg.resume;
188
+ }
189
+ else if (this.cfg.resume) {
190
+ const sessionData = await loadSession(this.cfg.resume);
191
+ if (sessionData) {
192
+ this.history = sessionData.messages;
193
+ this.sid = this.cfg.resume;
194
+ }
195
+ }
196
+ }
197
+ /**
198
+ * Run a query with streaming events.
199
+ */
200
+ async *query(prompt, overrides) {
201
+ await this.setupDone;
202
+ const opts = { ...this.cfg, ...overrides };
203
+ const cwd = opts.cwd || process.cwd();
204
+ // Create abort controller for this query
205
+ this.abortCtrl = opts.abortController || new AbortController();
206
+ if (opts.abortSignal) {
207
+ opts.abortSignal.addEventListener('abort', () => this.abortCtrl?.abort(), { once: true });
208
+ }
209
+ // Resolve systemPrompt (handle preset object)
210
+ let systemPrompt;
211
+ let appendSystemPrompt = opts.appendSystemPrompt;
212
+ if (typeof opts.systemPrompt === 'object' && opts.systemPrompt?.type === 'preset') {
213
+ systemPrompt = undefined; // Use engine default (default style)
214
+ if (opts.systemPrompt.append) {
215
+ appendSystemPrompt = (appendSystemPrompt || '') + '\n' + opts.systemPrompt.append;
216
+ }
217
+ }
218
+ else {
219
+ systemPrompt = opts.systemPrompt;
220
+ }
221
+ // Build canUseTool based on permission mode
222
+ const permMode = opts.permissionMode ?? 'bypassPermissions';
223
+ const canUseTool = opts.canUseTool ?? (async (_tool, _input) => {
224
+ if (permMode === 'bypassPermissions' || permMode === 'dontAsk' || permMode === 'auto') {
225
+ return { behavior: 'allow' };
226
+ }
227
+ if (permMode === 'acceptEdits') {
228
+ return { behavior: 'allow' };
229
+ }
230
+ return { behavior: 'allow' };
231
+ });
232
+ // Resolve tools with overrides
233
+ let tools = this.toolPool;
234
+ if (overrides?.allowedTools || overrides?.disallowedTools) {
235
+ tools = filterTools(tools, overrides.allowedTools, overrides.disallowedTools);
236
+ }
237
+ if (overrides?.tools) {
238
+ const ot = overrides.tools;
239
+ if (Array.isArray(ot) && ot.length > 0 && typeof ot[0] === 'string') {
240
+ tools = filterTools(this.toolPool, ot);
241
+ }
242
+ else if (Array.isArray(ot)) {
243
+ tools = ot;
244
+ }
245
+ }
246
+ // Recreate provider if overrides change credentials or apiType
247
+ let provider = this.provider;
248
+ if (overrides?.apiType || overrides?.apiKey || overrides?.baseURL) {
249
+ const resolvedApiType = overrides.apiType ?? this.apiType;
250
+ provider = createProvider(resolvedApiType, {
251
+ apiKey: overrides.apiKey ?? this.apiCredentials.key,
252
+ baseURL: overrides.baseURL ?? this.apiCredentials.baseUrl,
253
+ });
254
+ }
255
+ // Create query engine with current conversation state
256
+ const engine = new QueryEngine({
257
+ cwd,
258
+ model: opts.model || this.modelId,
259
+ provider,
260
+ tools,
261
+ systemPrompt,
262
+ appendSystemPrompt,
263
+ maxTurns: opts.maxTurns ?? 10,
264
+ maxBudgetUsd: opts.maxBudgetUsd,
265
+ maxTokens: opts.maxTokens ?? 16384,
266
+ thinking: opts.thinking,
267
+ jsonSchema: opts.jsonSchema,
268
+ canUseTool,
269
+ includePartialMessages: opts.includePartialMessages ?? false,
270
+ abortSignal: this.abortCtrl.signal,
271
+ agents: opts.agents,
272
+ hookRegistry: this.hookRegistry,
273
+ sessionId: this.sid,
274
+ });
275
+ this.currentEngine = engine;
276
+ // Inject existing conversation history
277
+ for (const msg of this.history) {
278
+ engine.messages.push(msg);
279
+ }
280
+ // Run the engine
281
+ for await (const event of engine.submitMessage(prompt)) {
282
+ yield event;
283
+ // Track assistant messages for multi-turn persistence
284
+ if (event.type === 'assistant') {
285
+ const uuid = crypto.randomUUID();
286
+ const timestamp = new Date().toISOString();
287
+ this.messageLog.push({
288
+ type: 'assistant',
289
+ message: event.message,
290
+ uuid,
291
+ timestamp,
292
+ });
293
+ }
294
+ }
295
+ // Persist conversation state for multi-turn
296
+ this.history = engine.getMessages();
297
+ // Add user message to tracked messages
298
+ const userUuid = crypto.randomUUID();
299
+ this.messageLog.push({
300
+ type: 'user',
301
+ message: { role: 'user', content: prompt },
302
+ uuid: userUuid,
303
+ timestamp: new Date().toISOString(),
304
+ });
305
+ }
306
+ /**
307
+ * Convenience method: send a prompt and collect the final answer as a single object.
308
+ * Internally iterates through the streaming query and aggregates the outcome.
309
+ */
310
+ async prompt(text, overrides) {
311
+ const t0 = performance.now();
312
+ const collected = { text: '', turns: 0, tokens: { in: 0, out: 0 } };
313
+ for await (const ev of this.query(text, overrides)) {
314
+ switch (ev.type) {
315
+ case 'assistant': {
316
+ // Extract the last assistant text (multi-turn: only final answer matters)
317
+ const fragments = ev.message.content
318
+ .filter((c) => c.type === 'text')
319
+ .map((c) => c.text);
320
+ if (fragments.length)
321
+ collected.text = fragments.join('');
322
+ break;
323
+ }
324
+ case 'result':
325
+ collected.turns = ev.num_turns ?? 0;
326
+ collected.tokens.in = ev.usage?.input_tokens ?? 0;
327
+ collected.tokens.out = ev.usage?.output_tokens ?? 0;
328
+ break;
329
+ }
330
+ }
331
+ return {
332
+ text: collected.text,
333
+ usage: { input_tokens: collected.tokens.in, output_tokens: collected.tokens.out },
334
+ num_turns: collected.turns,
335
+ duration_ms: Math.round(performance.now() - t0),
336
+ messages: [...this.messageLog],
337
+ };
338
+ }
339
+ /**
340
+ * Get conversation messages.
341
+ */
342
+ getMessages() {
343
+ return [...this.messageLog];
344
+ }
345
+ /**
346
+ * Reset conversation history.
347
+ */
348
+ clear() {
349
+ this.history = [];
350
+ this.messageLog = [];
351
+ }
352
+ /**
353
+ * Interrupt the current query.
354
+ */
355
+ async interrupt() {
356
+ this.abortCtrl?.abort();
357
+ }
358
+ /**
359
+ * Change the model during a session.
360
+ */
361
+ async setModel(model) {
362
+ if (model) {
363
+ this.modelId = model;
364
+ this.cfg.model = model;
365
+ }
366
+ }
367
+ /**
368
+ * Change the permission mode during a session.
369
+ */
370
+ async setPermissionMode(mode) {
371
+ this.cfg.permissionMode = mode;
372
+ }
373
+ /**
374
+ * Set maximum thinking tokens.
375
+ */
376
+ async setMaxThinkingTokens(maxThinkingTokens) {
377
+ if (maxThinkingTokens === null) {
378
+ this.cfg.thinking = { type: 'disabled' };
379
+ }
380
+ else {
381
+ this.cfg.thinking = { type: 'enabled', budgetTokens: maxThinkingTokens };
382
+ }
383
+ }
384
+ /**
385
+ * Get the session ID.
386
+ */
387
+ getSessionId() {
388
+ return this.sid;
389
+ }
390
+ /**
391
+ * Get the current API type.
392
+ */
393
+ getApiType() {
394
+ return this.apiType;
395
+ }
396
+ /**
397
+ * Stop a background task.
398
+ */
399
+ async stopTask(taskId) {
400
+ const { getTask } = await import('./tools/task-tools.js');
401
+ const task = getTask(taskId);
402
+ if (task) {
403
+ task.status = 'cancelled';
404
+ }
405
+ }
406
+ /**
407
+ * Close MCP connections and clean up.
408
+ * Optionally persist session to disk.
409
+ */
410
+ async close() {
411
+ // Persist session if enabled
412
+ if (this.cfg.persistSession !== false && this.history.length > 0) {
413
+ try {
414
+ await saveSession(this.sid, this.history, {
415
+ cwd: this.cfg.cwd || process.cwd(),
416
+ model: this.modelId,
417
+ summary: undefined,
418
+ });
419
+ }
420
+ catch {
421
+ // Session persistence is best-effort
422
+ }
423
+ }
424
+ for (const conn of this.mcpLinks) {
425
+ await conn.close();
426
+ }
427
+ this.mcpLinks = [];
428
+ }
429
+ }
430
+ // --------------------------------------------------------------------------
431
+ // Factory function
432
+ // --------------------------------------------------------------------------
433
+ /** Factory: shorthand for `new Agent(options)`. */
434
+ export function createAgent(options = {}) {
435
+ return new Agent(options);
436
+ }
437
+ // --------------------------------------------------------------------------
438
+ // Standalone query — one-shot convenience wrapper
439
+ // --------------------------------------------------------------------------
440
+ /**
441
+ * Execute a single agentic query without managing an Agent instance.
442
+ * The agent is created, used, and cleaned up automatically.
443
+ */
444
+ export async function* query(params) {
445
+ const ephemeral = createAgent(params.options);
446
+ try {
447
+ yield* ephemeral.query(params.prompt);
448
+ }
449
+ finally {
450
+ await ephemeral.close();
451
+ }
452
+ }
453
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * QueryEngine - Core agentic loop
3
+ *
4
+ * Manages the full conversation lifecycle:
5
+ * 1. Take user prompt
6
+ * 2. Build system prompt with context (git status, project context, tools)
7
+ * 3. Call LLM API with tools (via provider abstraction)
8
+ * 4. Stream response
9
+ * 5. Execute tool calls (concurrent for read-only, serial for mutations)
10
+ * 6. Send results back, repeat until done
11
+ * 7. Auto-compact when context exceeds threshold
12
+ * 8. Retry with exponential backoff on transient errors
13
+ */
14
+ import type { SDKMessage, QueryEngineConfig, TokenUsage } from './types.js';
15
+ import type { NormalizedMessageParam } from './providers/types.js';
16
+ export declare class QueryEngine {
17
+ private config;
18
+ private provider;
19
+ messages: NormalizedMessageParam[];
20
+ private totalUsage;
21
+ private totalCost;
22
+ private turnCount;
23
+ private compactState;
24
+ private sessionId;
25
+ private apiTimeMs;
26
+ private hookRegistry?;
27
+ constructor(config: QueryEngineConfig);
28
+ /**
29
+ * Execute hooks for a lifecycle event.
30
+ * Returns hook outputs; never throws.
31
+ */
32
+ private executeHooks;
33
+ /**
34
+ * Submit a user message and run the agentic loop.
35
+ * Yields SDKMessage events as the agent works.
36
+ */
37
+ submitMessage(prompt: string | any[]): AsyncGenerator<SDKMessage>;
38
+ /**
39
+ * Execute tool calls with concurrency control.
40
+ *
41
+ * Read-only tools run concurrently (up to 10 at a time).
42
+ * Mutation tools run sequentially.
43
+ */
44
+ private executeTools;
45
+ /**
46
+ * Execute a single tool with permission checking.
47
+ */
48
+ private executeSingleTool;
49
+ /**
50
+ * Get current messages for session persistence.
51
+ */
52
+ getMessages(): NormalizedMessageParam[];
53
+ /**
54
+ * Get total usage across all turns.
55
+ */
56
+ getUsage(): TokenUsage;
57
+ /**
58
+ * Get total cost.
59
+ */
60
+ getCost(): number;
61
+ }
62
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EAIjB,UAAU,EACX,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAGV,sBAAsB,EAEvB,MAAM,sBAAsB,CAAA;AAkH7B,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,QAAQ,CAAa;IACtB,QAAQ,EAAE,sBAAsB,EAAE,CAAK;IAC9C,OAAO,CAAC,UAAU,CAAoD;IACtE,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,YAAY,CAAC,CAAc;gBAEvB,MAAM,EAAE,iBAAiB;IAQrC;;;OAGG;YACW,YAAY;IAiB1B;;;OAGG;IACI,aAAa,CAClB,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,GACrB,cAAc,CAAC,UAAU,CAAC;IAsQ7B;;;;;OAKG;YACW,YAAY;IAkD1B;;OAEG;YACW,iBAAiB;IAuG/B;;OAEG;IACH,WAAW,IAAI,sBAAsB,EAAE;IAIvC;;OAEG;IACH,QAAQ,IAAI,UAAU;IAItB;;OAEG;IACH,OAAO,IAAI,MAAM;CAGlB"}