open-agent-sdk 0.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +284 -0
  3. package/README.zh.md +285 -0
  4. package/dist/agent/agent-definition.d.ts +107 -0
  5. package/dist/agent/agent-definition.d.ts.map +1 -0
  6. package/dist/agent/agent-definition.js +90 -0
  7. package/dist/agent/agent-definition.js.map +1 -0
  8. package/dist/agent/react-loop.d.ts +117 -0
  9. package/dist/agent/react-loop.d.ts.map +1 -0
  10. package/dist/agent/react-loop.js +674 -0
  11. package/dist/agent/react-loop.js.map +1 -0
  12. package/dist/agent/subagent-runner.d.ts +67 -0
  13. package/dist/agent/subagent-runner.d.ts.map +1 -0
  14. package/dist/agent/subagent-runner.js +168 -0
  15. package/dist/agent/subagent-runner.js.map +1 -0
  16. package/dist/hooks/index.d.ts +8 -0
  17. package/dist/hooks/index.d.ts.map +1 -0
  18. package/dist/hooks/index.js +9 -0
  19. package/dist/hooks/index.js.map +1 -0
  20. package/dist/hooks/inputs.d.ts +56 -0
  21. package/dist/hooks/inputs.d.ts.map +1 -0
  22. package/dist/hooks/inputs.js +150 -0
  23. package/dist/hooks/inputs.js.map +1 -0
  24. package/dist/hooks/manager.d.ts +63 -0
  25. package/dist/hooks/manager.d.ts.map +1 -0
  26. package/dist/hooks/manager.js +137 -0
  27. package/dist/hooks/manager.js.map +1 -0
  28. package/dist/hooks/types.d.ts +191 -0
  29. package/dist/hooks/types.d.ts.map +1 -0
  30. package/dist/hooks/types.js +6 -0
  31. package/dist/hooks/types.js.map +1 -0
  32. package/dist/index.d.ts +109 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +218 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/mcp/errors.d.ts +26 -0
  37. package/dist/mcp/errors.d.ts.map +1 -0
  38. package/dist/mcp/errors.js +43 -0
  39. package/dist/mcp/errors.js.map +1 -0
  40. package/dist/mcp/index.d.ts +11 -0
  41. package/dist/mcp/index.d.ts.map +1 -0
  42. package/dist/mcp/index.js +13 -0
  43. package/dist/mcp/index.js.map +1 -0
  44. package/dist/mcp/manager.d.ts +50 -0
  45. package/dist/mcp/manager.d.ts.map +1 -0
  46. package/dist/mcp/manager.js +170 -0
  47. package/dist/mcp/manager.js.map +1 -0
  48. package/dist/mcp/server-registry.d.ts +48 -0
  49. package/dist/mcp/server-registry.d.ts.map +1 -0
  50. package/dist/mcp/server-registry.js +121 -0
  51. package/dist/mcp/server-registry.js.map +1 -0
  52. package/dist/mcp/tool-adapter.d.ts +42 -0
  53. package/dist/mcp/tool-adapter.d.ts.map +1 -0
  54. package/dist/mcp/tool-adapter.js +89 -0
  55. package/dist/mcp/tool-adapter.js.map +1 -0
  56. package/dist/mcp/types.d.ts +74 -0
  57. package/dist/mcp/types.d.ts.map +1 -0
  58. package/dist/mcp/types.js +21 -0
  59. package/dist/mcp/types.js.map +1 -0
  60. package/dist/permissions/index.d.ts +3 -0
  61. package/dist/permissions/index.d.ts.map +1 -0
  62. package/dist/permissions/index.js +4 -0
  63. package/dist/permissions/index.js.map +1 -0
  64. package/dist/permissions/manager.d.ts +40 -0
  65. package/dist/permissions/manager.d.ts.map +1 -0
  66. package/dist/permissions/manager.js +115 -0
  67. package/dist/permissions/manager.js.map +1 -0
  68. package/dist/permissions/types.d.ts +124 -0
  69. package/dist/permissions/types.d.ts.map +1 -0
  70. package/dist/permissions/types.js +25 -0
  71. package/dist/permissions/types.js.map +1 -0
  72. package/dist/providers/anthropic.d.ts +18 -0
  73. package/dist/providers/anthropic.d.ts.map +1 -0
  74. package/dist/providers/anthropic.js +126 -0
  75. package/dist/providers/anthropic.js.map +1 -0
  76. package/dist/providers/base.d.ts +85 -0
  77. package/dist/providers/base.d.ts.map +1 -0
  78. package/dist/providers/base.js +36 -0
  79. package/dist/providers/base.js.map +1 -0
  80. package/dist/providers/google.d.ts +12 -0
  81. package/dist/providers/google.d.ts.map +1 -0
  82. package/dist/providers/google.js +123 -0
  83. package/dist/providers/google.js.map +1 -0
  84. package/dist/providers/openai.d.ts +12 -0
  85. package/dist/providers/openai.d.ts.map +1 -0
  86. package/dist/providers/openai.js +110 -0
  87. package/dist/providers/openai.js.map +1 -0
  88. package/dist/session/factory.d.ts +156 -0
  89. package/dist/session/factory.d.ts.map +1 -0
  90. package/dist/session/factory.js +311 -0
  91. package/dist/session/factory.js.map +1 -0
  92. package/dist/session/index.d.ts +8 -0
  93. package/dist/session/index.d.ts.map +1 -0
  94. package/dist/session/index.js +7 -0
  95. package/dist/session/index.js.map +1 -0
  96. package/dist/session/session.d.ts +144 -0
  97. package/dist/session/session.d.ts.map +1 -0
  98. package/dist/session/session.js +319 -0
  99. package/dist/session/session.js.map +1 -0
  100. package/dist/session/storage.d.ts +105 -0
  101. package/dist/session/storage.d.ts.map +1 -0
  102. package/dist/session/storage.js +148 -0
  103. package/dist/session/storage.js.map +1 -0
  104. package/dist/tools/ask-user-question.d.ts +31 -0
  105. package/dist/tools/ask-user-question.d.ts.map +1 -0
  106. package/dist/tools/ask-user-question.js +66 -0
  107. package/dist/tools/ask-user-question.js.map +1 -0
  108. package/dist/tools/bash-output.d.ts +22 -0
  109. package/dist/tools/bash-output.d.ts.map +1 -0
  110. package/dist/tools/bash-output.js +43 -0
  111. package/dist/tools/bash-output.js.map +1 -0
  112. package/dist/tools/bash.d.ts +36 -0
  113. package/dist/tools/bash.d.ts.map +1 -0
  114. package/dist/tools/bash.js +161 -0
  115. package/dist/tools/bash.js.map +1 -0
  116. package/dist/tools/edit.d.ts +24 -0
  117. package/dist/tools/edit.d.ts.map +1 -0
  118. package/dist/tools/edit.js +83 -0
  119. package/dist/tools/edit.js.map +1 -0
  120. package/dist/tools/glob.d.ts +22 -0
  121. package/dist/tools/glob.d.ts.map +1 -0
  122. package/dist/tools/glob.js +248 -0
  123. package/dist/tools/glob.js.map +1 -0
  124. package/dist/tools/grep.d.ts +39 -0
  125. package/dist/tools/grep.d.ts.map +1 -0
  126. package/dist/tools/grep.js +312 -0
  127. package/dist/tools/grep.js.map +1 -0
  128. package/dist/tools/kill-bash.d.ts +19 -0
  129. package/dist/tools/kill-bash.d.ts.map +1 -0
  130. package/dist/tools/kill-bash.js +64 -0
  131. package/dist/tools/kill-bash.js.map +1 -0
  132. package/dist/tools/read.d.ts +26 -0
  133. package/dist/tools/read.d.ts.map +1 -0
  134. package/dist/tools/read.js +87 -0
  135. package/dist/tools/read.js.map +1 -0
  136. package/dist/tools/registry.d.ts +32 -0
  137. package/dist/tools/registry.d.ts.map +1 -0
  138. package/dist/tools/registry.js +91 -0
  139. package/dist/tools/registry.js.map +1 -0
  140. package/dist/tools/task-create.d.ts +22 -0
  141. package/dist/tools/task-create.d.ts.map +1 -0
  142. package/dist/tools/task-create.js +42 -0
  143. package/dist/tools/task-create.js.map +1 -0
  144. package/dist/tools/task-get.d.ts +19 -0
  145. package/dist/tools/task-get.d.ts.map +1 -0
  146. package/dist/tools/task-get.js +38 -0
  147. package/dist/tools/task-get.js.map +1 -0
  148. package/dist/tools/task-list.d.ts +18 -0
  149. package/dist/tools/task-list.d.ts.map +1 -0
  150. package/dist/tools/task-list.js +27 -0
  151. package/dist/tools/task-list.js.map +1 -0
  152. package/dist/tools/task-storage.d.ts +6 -0
  153. package/dist/tools/task-storage.d.ts.map +1 -0
  154. package/dist/tools/task-storage.js +83 -0
  155. package/dist/tools/task-storage.js.map +1 -0
  156. package/dist/tools/task-update.d.ts +28 -0
  157. package/dist/tools/task-update.d.ts.map +1 -0
  158. package/dist/tools/task-update.js +118 -0
  159. package/dist/tools/task-update.js.map +1 -0
  160. package/dist/tools/task.d.ts +80 -0
  161. package/dist/tools/task.d.ts.map +1 -0
  162. package/dist/tools/task.js +99 -0
  163. package/dist/tools/task.js.map +1 -0
  164. package/dist/tools/web-fetch.d.ts +21 -0
  165. package/dist/tools/web-fetch.d.ts.map +1 -0
  166. package/dist/tools/web-fetch.js +124 -0
  167. package/dist/tools/web-fetch.js.map +1 -0
  168. package/dist/tools/web-search.d.ts +20 -0
  169. package/dist/tools/web-search.d.ts.map +1 -0
  170. package/dist/tools/web-search.js +127 -0
  171. package/dist/tools/web-search.js.map +1 -0
  172. package/dist/tools/write.d.ts +22 -0
  173. package/dist/tools/write.d.ts.map +1 -0
  174. package/dist/tools/write.js +46 -0
  175. package/dist/tools/write.js.map +1 -0
  176. package/dist/types/messages.d.ts +138 -0
  177. package/dist/types/messages.d.ts.map +1 -0
  178. package/dist/types/messages.js +88 -0
  179. package/dist/types/messages.js.map +1 -0
  180. package/dist/types/task.d.ts +29 -0
  181. package/dist/types/task.d.ts.map +1 -0
  182. package/dist/types/task.js +5 -0
  183. package/dist/types/task.js.map +1 -0
  184. package/dist/types/tools.d.ts +56 -0
  185. package/dist/types/tools.d.ts.map +1 -0
  186. package/dist/types/tools.js +25 -0
  187. package/dist/types/tools.js.map +1 -0
  188. package/dist/utils/logger.d.ts +19 -0
  189. package/dist/utils/logger.d.ts.map +1 -0
  190. package/dist/utils/logger.js +46 -0
  191. package/dist/utils/logger.js.map +1 -0
  192. package/dist/utils/uuid.d.ts +3 -0
  193. package/dist/utils/uuid.d.ts.map +1 -0
  194. package/dist/utils/uuid.js +5 -0
  195. package/dist/utils/uuid.js.map +1 -0
  196. package/package.json +38 -0
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Message types for Open Agent SDK
3
+ * Defines the communication protocol between user, agent, and tools
4
+ * Aligned with Claude Agent SDK V2 API
5
+ */
6
+ /** Helper function to create user message */
7
+ export function createUserMessage(content, sessionId, uuid, parentToolUseId = null) {
8
+ return {
9
+ type: 'user',
10
+ uuid,
11
+ session_id: sessionId,
12
+ message: { role: 'user', content },
13
+ parent_tool_use_id: parentToolUseId,
14
+ };
15
+ }
16
+ /** Helper function to create system message (aligned with Claude Agent SDK) */
17
+ export function createSystemMessage(model, provider, tools, cwd, sessionId, uuid, options) {
18
+ return {
19
+ type: 'system',
20
+ subtype: 'init',
21
+ uuid,
22
+ session_id: sessionId,
23
+ model,
24
+ provider,
25
+ tools,
26
+ cwd,
27
+ apiKeySource: options?.apiKeySource,
28
+ mcp_servers: options?.mcp_servers,
29
+ permissionMode: options?.permissionMode,
30
+ slash_commands: options?.slash_commands,
31
+ output_style: options?.output_style,
32
+ };
33
+ }
34
+ /** Helper function to create assistant message */
35
+ export function createAssistantMessage(contentBlocks, sessionId, uuid, parentToolUseId = null, toolCalls) {
36
+ return {
37
+ type: 'assistant',
38
+ uuid,
39
+ session_id: sessionId,
40
+ message: {
41
+ role: 'assistant',
42
+ content: contentBlocks,
43
+ tool_calls: toolCalls,
44
+ },
45
+ parent_tool_use_id: parentToolUseId,
46
+ };
47
+ }
48
+ /** Helper function to create tool result message */
49
+ export function createToolResultMessage(toolUseId, toolName, result, isError, sessionId, uuid) {
50
+ return {
51
+ type: 'tool_result',
52
+ uuid,
53
+ session_id: sessionId,
54
+ tool_use_id: toolUseId,
55
+ tool_name: toolName,
56
+ result,
57
+ is_error: isError,
58
+ };
59
+ }
60
+ /** Helper function to create result message */
61
+ export function createResultMessage(subtype, result, durationMs, durationApiMs, numTurns, usage, sessionId, uuid) {
62
+ return {
63
+ type: 'result',
64
+ subtype,
65
+ uuid,
66
+ session_id: sessionId,
67
+ duration_ms: durationMs,
68
+ duration_api_ms: durationApiMs,
69
+ is_error: subtype !== 'success',
70
+ num_turns: numTurns,
71
+ result,
72
+ usage,
73
+ };
74
+ }
75
+ /** Helper function to create compact boundary message */
76
+ export function createCompactBoundaryMessage(sessionId, uuid, trigger, preTokens) {
77
+ return {
78
+ type: 'system',
79
+ subtype: 'compact_boundary',
80
+ uuid,
81
+ session_id: sessionId,
82
+ compact_metadata: {
83
+ trigger,
84
+ pre_tokens: preTokens,
85
+ },
86
+ };
87
+ }
88
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/types/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiIH,6CAA6C;AAC7C,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,SAAiB,EACjB,IAAU,EACV,kBAAiC,IAAI;IAErC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI;QACJ,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAClC,kBAAkB,EAAE,eAAe;KACpC,CAAC;AACJ,CAAC;AAWD,+EAA+E;AAC/E,MAAM,UAAU,mBAAmB,CACjC,KAAa,EACb,QAAgB,EAChB,KAAe,EACf,GAAW,EACX,SAAiB,EACjB,IAAU,EACV,OAAoC;IAEpC,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,MAAM;QACf,IAAI;QACJ,UAAU,EAAE,SAAS;QACrB,KAAK;QACL,QAAQ;QACR,KAAK;QACL,GAAG;QACH,YAAY,EAAE,OAAO,EAAE,YAAY;QACnC,WAAW,EAAE,OAAO,EAAE,WAAW;QACjC,cAAc,EAAE,OAAO,EAAE,cAAc;QACvC,cAAc,EAAE,OAAO,EAAE,cAAc;QACvC,YAAY,EAAE,OAAO,EAAE,YAAY;KACpC,CAAC;AACJ,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,sBAAsB,CACpC,aAAsC,EACtC,SAAiB,EACjB,IAAU,EACV,kBAAiC,IAAI,EACrC,SAAsB;IAEtB,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,IAAI;QACJ,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE;YACP,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,SAAS;SACtB;QACD,kBAAkB,EAAE,eAAe;KACpC,CAAC;AACJ,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,uBAAuB,CACrC,SAAiB,EACjB,QAAgB,EAChB,MAAe,EACf,OAAgB,EAChB,SAAiB,EACjB,IAAU;IAEV,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,IAAI;QACJ,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,QAAQ;QACnB,MAAM;QACN,QAAQ,EAAE,OAAO;KAClB,CAAC;AACJ,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,mBAAmB,CACjC,OAAiE,EACjE,MAAc,EACd,UAAkB,EAClB,aAAqB,EACrB,QAAgB,EAChB,KAAsD,EACtD,SAAiB,EACjB,IAAU;IAEV,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,OAAO;QACP,IAAI;QACJ,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,UAAU;QACvB,eAAe,EAAE,aAAa;QAC9B,QAAQ,EAAE,OAAO,KAAK,SAAS;QAC/B,SAAS,EAAE,QAAQ;QACnB,MAAM;QACN,KAAK;KACN,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,4BAA4B,CAC1C,SAAiB,EACjB,IAAU,EACV,OAA0B,EAC1B,SAAiB;IAEjB,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,kBAAkB;QAC3B,IAAI;QACJ,UAAU,EAAE,SAAS;QACrB,gBAAgB,EAAE;YAChB,OAAO;YACP,UAAU,EAAE,SAAS;SACtB;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Task type definitions for Task System
3
+ */
4
+ /** Task status values */
5
+ export type TaskStatus = 'pending' | 'in_progress' | 'completed' | 'deleted';
6
+ /** Task data structure */
7
+ export interface Task {
8
+ id: string;
9
+ subject: string;
10
+ description: string;
11
+ status: TaskStatus;
12
+ activeForm?: string;
13
+ owner?: string;
14
+ metadata?: Record<string, unknown>;
15
+ blockedBy?: string[];
16
+ blocks?: string[];
17
+ createdAt: number;
18
+ updatedAt: number;
19
+ }
20
+ /** Task storage interface */
21
+ export interface TaskStorage {
22
+ getAll(): Task[];
23
+ getById(id: string): Task | undefined;
24
+ create(task: Omit<Task, 'id' | 'createdAt' | 'updatedAt'>): Task;
25
+ update(id: string, updates: Partial<Omit<Task, 'id' | 'createdAt'>>): Task | undefined;
26
+ delete(id: string): boolean;
27
+ clear(): void;
28
+ }
29
+ //# sourceMappingURL=task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/types/task.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,yBAAyB;AACzB,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAE7E,0BAA0B;AAC1B,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,6BAA6B;AAC7B,MAAM,WAAW,WAAW;IAC1B,MAAM,IAAI,IAAI,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IACjE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACvF,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,KAAK,IAAI,IAAI,CAAC;CACf"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Task type definitions for Task System
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/types/task.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Tool type definitions for Open Agent SDK
3
+ */
4
+ import { z } from 'zod';
5
+ import type { LLMProvider } from '../providers/base.js';
6
+ /** JSON Schema type for tool parameters */
7
+ export type JSONSchema = {
8
+ type: 'object';
9
+ properties: Record<string, unknown>;
10
+ required?: string[];
11
+ additionalProperties?: boolean;
12
+ };
13
+ /** Tool definition - describes a tool to the LLM */
14
+ export interface ToolDefinition {
15
+ type: 'function';
16
+ function: {
17
+ name: string;
18
+ description: string;
19
+ parameters: JSONSchema;
20
+ };
21
+ }
22
+ /** Tool execution context */
23
+ export interface ToolContext {
24
+ cwd: string;
25
+ env: Record<string, string>;
26
+ abortController?: AbortController;
27
+ /** Provider for LLM operations (used by WebFetch and similar tools) */
28
+ provider?: LLMProvider;
29
+ /** Model identifier for LLM operations */
30
+ model?: string;
31
+ }
32
+ /** Base tool input - any object (validation happens at runtime) */
33
+ export type ToolInput = unknown;
34
+ /** Base tool output - any object */
35
+ export type ToolOutput = unknown;
36
+ /** Tool handler function type */
37
+ export type ToolHandler<TInput = unknown, TOutput = unknown> = (input: TInput, context: ToolContext) => Promise<TOutput> | TOutput;
38
+ /** Complete tool implementation */
39
+ export interface Tool<TInput = unknown, TOutput = unknown> {
40
+ name: string;
41
+ description: string;
42
+ parameters: JSONSchema;
43
+ handler: ToolHandler<TInput, TOutput>;
44
+ }
45
+ /** Helper to create a tool definition */
46
+ export declare function createToolDefinition(name: string, description: string, parameters: JSONSchema): ToolDefinition;
47
+ /** Zod schema helpers for common types */
48
+ export declare const ToolSchemas: {
49
+ filePath: z.ZodString;
50
+ offset: z.ZodOptional<z.ZodNumber>;
51
+ limit: z.ZodOptional<z.ZodNumber>;
52
+ timeout: z.ZodOptional<z.ZodNumber>;
53
+ command: z.ZodString;
54
+ description: z.ZodOptional<z.ZodString>;
55
+ };
56
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,2CAA2C;AAC3C,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,oDAAoD;AACpD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,UAAU,CAAC;KACxB,CAAC;CACH;AAED,6BAA6B;AAC7B,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,uEAAuE;IACvE,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,mEAAmE;AACnE,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC;AAEhC,oCAAoC;AACpC,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;AAEjC,iCAAiC;AACjC,MAAM,MAAM,WAAW,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,CAC7D,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAEhC,mCAAmC;AACnC,MAAM,WAAW,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,yCAAyC;AACzC,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,GACrB,cAAc,CAShB;AAED,0CAA0C;AAC1C,eAAO,MAAM,WAAW;;;;;;;CAOvB,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Tool type definitions for Open Agent SDK
3
+ */
4
+ import { z } from 'zod';
5
+ /** Helper to create a tool definition */
6
+ export function createToolDefinition(name, description, parameters) {
7
+ return {
8
+ type: 'function',
9
+ function: {
10
+ name,
11
+ description,
12
+ parameters,
13
+ },
14
+ };
15
+ }
16
+ /** Zod schema helpers for common types */
17
+ export const ToolSchemas = {
18
+ filePath: z.string().describe('Absolute or relative file path'),
19
+ offset: z.number().int().min(1).optional().describe('Starting line number (1-indexed)'),
20
+ limit: z.number().int().min(1).optional().describe('Maximum number of lines to read'),
21
+ timeout: z.number().int().min(0).max(600000).optional().describe('Timeout in milliseconds (max 600000)'),
22
+ command: z.string().describe('Shell command to execute'),
23
+ description: z.string().max(100).optional().describe('Brief description (5-10 words)'),
24
+ };
25
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoDxB,yCAAyC;AACzC,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,WAAmB,EACnB,UAAsB;IAEtB,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,IAAI;YACJ,WAAW;YACX,UAAU;SACX;KACF,CAAC;AACJ,CAAC;AAED,0CAA0C;AAC1C,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC/D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACrF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACxG,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACxD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CACvF,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Logger utility for SDK
3
+ * Supports configurable log levels: debug, info, warn, error, silent
4
+ */
5
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
6
+ declare class Logger {
7
+ private level;
8
+ private prefix;
9
+ setLevel(level: LogLevel): void;
10
+ getLevel(): LogLevel;
11
+ private shouldLog;
12
+ debug(...args: unknown[]): void;
13
+ info(...args: unknown[]): void;
14
+ warn(...args: unknown[]): void;
15
+ error(...args: unknown[]): void;
16
+ }
17
+ export declare const logger: Logger;
18
+ export {};
19
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAUtE,cAAM,MAAM;IACV,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,MAAM,CAAoB;IAElC,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI/B,QAAQ,IAAI,QAAQ;IAIpB,OAAO,CAAC,SAAS;IAIjB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM9B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM9B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;CAKhC;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Logger utility for SDK
3
+ * Supports configurable log levels: debug, info, warn, error, silent
4
+ */
5
+ const LOG_LEVEL_PRIORITY = {
6
+ debug: 0,
7
+ info: 1,
8
+ warn: 2,
9
+ error: 3,
10
+ silent: 4,
11
+ };
12
+ class Logger {
13
+ level = 'info';
14
+ prefix = '[OpenAgentSDK]';
15
+ setLevel(level) {
16
+ this.level = level;
17
+ }
18
+ getLevel() {
19
+ return this.level;
20
+ }
21
+ shouldLog(level) {
22
+ return LOG_LEVEL_PRIORITY[level] >= LOG_LEVEL_PRIORITY[this.level];
23
+ }
24
+ debug(...args) {
25
+ if (this.shouldLog('debug')) {
26
+ console.log(this.prefix, '[debug]', ...args);
27
+ }
28
+ }
29
+ info(...args) {
30
+ if (this.shouldLog('info')) {
31
+ console.log(this.prefix, '[info]', ...args);
32
+ }
33
+ }
34
+ warn(...args) {
35
+ if (this.shouldLog('warn')) {
36
+ console.warn(this.prefix, '[warn]', ...args);
37
+ }
38
+ }
39
+ error(...args) {
40
+ if (this.shouldLog('error')) {
41
+ console.error(this.prefix, '[error]', ...args);
42
+ }
43
+ }
44
+ }
45
+ export const logger = new Logger();
46
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,kBAAkB,GAA6B;IACnD,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,MAAM,MAAM;IACF,KAAK,GAAa,MAAM,CAAC;IACzB,MAAM,GAAG,gBAAgB,CAAC;IAElC,QAAQ,CAAC,KAAe;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEO,SAAS,CAAC,KAAe;QAC/B,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,IAAe;QACrB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,IAAe;QACrB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { UUID } from '../types/messages.js';
2
+ export declare function generateUUID(): UUID;
3
+ //# sourceMappingURL=uuid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../src/utils/uuid.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD,wBAAgB,YAAY,IAAI,IAAI,CAEnC"}
@@ -0,0 +1,5 @@
1
+ import { v4 as uuidv4 } from 'uuid';
2
+ export function generateUUID() {
3
+ return uuidv4();
4
+ }
5
+ //# sourceMappingURL=uuid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../src/utils/uuid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAGpC,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,EAAE,CAAC;AAClB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "open-agent-sdk",
3
+ "version": "0.1.0-alpha.0",
4
+ "description": "Open source agent SDK compatible with Claude Agent SDK",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "scripts": {
11
+ "build": "cd packages/core && bun run build && mkdir -p ../../dist && cp -r dist/* ../../dist/",
12
+ "test": "bun test",
13
+ "test:coverage": "bun test --coverage",
14
+ "typecheck": "cd packages/core && npx tsc --noEmit",
15
+ "prepare": "husky install",
16
+ "prepublishOnly": "bun run build"
17
+ },
18
+ "workspaces": [
19
+ "packages/*",
20
+ "examples/*"
21
+ ],
22
+ "devDependencies": {
23
+ "@types/bun": "^1.3.8",
24
+ "@types/node": "^20.0.0",
25
+ "husky": "^8.0.3",
26
+ "typescript": "^5.3.0"
27
+ },
28
+ "engines": {
29
+ "bun": ">=1.0.0"
30
+ },
31
+ "dependencies": {
32
+ "@ai-sdk/google": "^3.0.21",
33
+ "ai": "^6.0.70"
34
+ },
35
+ "publishConfig": {
36
+ "access": "public"
37
+ }
38
+ }