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 @@
1
+ {"version":3,"file":"agent-definition.d.ts","sourceRoot":"","sources":["../../src/agent/agent-definition.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,aAAa,GAAG,mBAAmB,GAAG,MAAM,CAAC;AAEtF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,qBAAqB;IAChC,6DAA6D;;IAG7D,8DAA8D;;IAG9D,kCAAkC;;IAGlC,6DAA6D;;IAG7D,kEAAkE;;IAGlE,4DAA4D;;;;;;;;;;;;;;;;EAE5D,CAAC;AAEH;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAE/D;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,OAAO,GAAG,eAAe,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,OAAO,GAClB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAA;CAAE,CAOlF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,eAAe,CAKjB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAElE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAE5E"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * AgentDefinition types and validation
3
+ * Aligned with Claude Agent SDK
4
+ */
5
+ import { z } from 'zod';
6
+ /**
7
+ * Zod schema for AgentDefinition validation
8
+ */
9
+ export const AgentDefinitionSchema = z.object({
10
+ /** Natural language description of when to use this agent */
11
+ description: z.string().min(1, 'description is required'),
12
+ /** List of allowed tools (omit to inherit all from parent) */
13
+ tools: z.array(z.string()).optional(),
14
+ /** System prompt for the agent */
15
+ prompt: z.string().min(1, 'prompt is required'),
16
+ /** Model to use ('inherit' or omit to use parent's model) */
17
+ model: z.enum(['sonnet', 'opus', 'haiku', 'inherit']).optional(),
18
+ /** Maximum turns for the agent (omit to use parent's maxTurns) */
19
+ maxTurns: z.number().int().positive().optional(),
20
+ /** Permission mode (omit to use parent's permissionMode) */
21
+ permissionMode: z.enum(['default', 'acceptEdits', 'bypassPermissions', 'plan']).optional(),
22
+ });
23
+ /**
24
+ * Validate an agent definition
25
+ * @param definition The definition to validate
26
+ * @returns The validated definition
27
+ * @throws ZodError if validation fails
28
+ */
29
+ export function validateAgentDefinition(definition) {
30
+ return AgentDefinitionSchema.parse(definition);
31
+ }
32
+ /**
33
+ * Safely validate an agent definition
34
+ * @param definition The definition to validate
35
+ * @returns Object with success flag and data or error
36
+ */
37
+ export function safeValidateAgentDefinition(definition) {
38
+ const result = AgentDefinitionSchema.safeParse(definition);
39
+ if (result.success) {
40
+ return { success: true, data: result.data };
41
+ }
42
+ else {
43
+ return { success: false, error: result.error };
44
+ }
45
+ }
46
+ /**
47
+ * Create a minimal agent definition with required fields
48
+ * @param description When to use this agent
49
+ * @param prompt System prompt for the agent
50
+ * @returns AgentDefinition with required fields
51
+ */
52
+ export function createAgentDefinition(description, prompt) {
53
+ return {
54
+ description,
55
+ prompt,
56
+ };
57
+ }
58
+ /**
59
+ * Check if an agent definition has custom tools
60
+ * @param definition The agent definition
61
+ * @returns true if tools are explicitly defined
62
+ */
63
+ export function hasCustomTools(definition) {
64
+ return definition.tools !== undefined;
65
+ }
66
+ /**
67
+ * Check if an agent definition inherits parent's model
68
+ * @param definition The agent definition
69
+ * @returns true if model is 'inherit' or undefined
70
+ */
71
+ export function inheritsModel(definition) {
72
+ return definition.model === undefined || definition.model === 'inherit';
73
+ }
74
+ /**
75
+ * Check if an agent definition has custom maxTurns
76
+ * @param definition The agent definition
77
+ * @returns true if maxTurns is explicitly defined
78
+ */
79
+ export function hasCustomMaxTurns(definition) {
80
+ return definition.maxTurns !== undefined;
81
+ }
82
+ /**
83
+ * Check if an agent definition has custom permission mode
84
+ * @param definition The agent definition
85
+ * @returns true if permissionMode is explicitly defined
86
+ */
87
+ export function hasCustomPermissionMode(definition) {
88
+ return definition.permissionMode !== undefined;
89
+ }
90
+ //# sourceMappingURL=agent-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-definition.js","sourceRoot":"","sources":["../../src/agent/agent-definition.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,6DAA6D;IAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;IAEzD,8DAA8D;IAC9D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAErC,kCAAkC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC;IAE/C,6DAA6D;IAC7D,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IAEhE,kEAAkE;IAClE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAEhD,4DAA4D;IAC5D,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC3F,CAAC,CAAC;AAcH;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAmB;IACzD,OAAO,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CACzC,UAAmB;IAEnB,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACjD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,WAAmB,EACnB,MAAc;IAEd,OAAO;QACL,WAAW;QACX,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,UAA2B;IACxD,OAAO,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,UAA2B;IACvD,OAAO,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC;AAC1E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAA2B;IAC3D,OAAO,UAAU,CAAC,QAAQ,KAAK,SAAS,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAA2B;IACjE,OAAO,UAAU,CAAC,cAAc,KAAK,SAAS,CAAC;AACjD,CAAC"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * ReAct (Reasoning + Acting) loop implementation
3
+ * Core agent logic for tool use and reasoning
4
+ */
5
+ import type { LLMProvider } from '../providers/base';
6
+ import type { ToolRegistry } from '../tools/registry';
7
+ import { type SDKMessage, type SDKAssistantMessage, type SDKToolResultMessage } from '../types/messages';
8
+ import { HookManager } from '../hooks/manager';
9
+ import type { HooksConfig } from '../hooks/types';
10
+ import { PermissionManager } from '../permissions/manager';
11
+ import type { PermissionMode, CanUseTool } from '../permissions/types';
12
+ export interface ReActLoopConfig {
13
+ maxTurns: number;
14
+ systemPrompt?: string;
15
+ allowedTools?: string[];
16
+ cwd?: string;
17
+ env?: Record<string, string>;
18
+ abortController?: AbortController;
19
+ apiKeySource?: 'env' | 'keychain' | 'custom';
20
+ /** Permission mode for tool execution (default: 'default') */
21
+ permissionMode?: PermissionMode;
22
+ /** Required to be true when using bypassPermissions mode */
23
+ allowDangerouslySkipPermissions?: boolean;
24
+ /** Custom callback for tool permission checks */
25
+ canUseTool?: CanUseTool;
26
+ /** MCP servers configuration */
27
+ mcpServers?: Record<string, unknown>;
28
+ /** Hooks manager or config */
29
+ hooks?: HookManager | HooksConfig;
30
+ /** Auto-compact threshold (token count), undefined means no auto-compaction */
31
+ autoCompactThreshold?: number;
32
+ /** Number of recent conversation rounds to preserve during compaction (default: 2) */
33
+ preserveRecentRounds?: number;
34
+ }
35
+ export interface ReActResult {
36
+ result: string;
37
+ messages: SDKMessage[];
38
+ turnCount: number;
39
+ usage: {
40
+ input_tokens: number;
41
+ output_tokens: number;
42
+ };
43
+ /** Whether the execution resulted in an error or was aborted */
44
+ isError?: boolean;
45
+ }
46
+ /** Stream event types for ReActLoop.runStream() */
47
+ export type ReActStreamEvent = {
48
+ type: 'assistant';
49
+ message: SDKAssistantMessage;
50
+ } | {
51
+ type: 'tool_result';
52
+ message: SDKToolResultMessage;
53
+ } | {
54
+ type: 'usage';
55
+ usage: {
56
+ input_tokens: number;
57
+ output_tokens: number;
58
+ };
59
+ } | {
60
+ type: 'done';
61
+ result: string;
62
+ };
63
+ export declare class ReActLoop {
64
+ private provider;
65
+ private toolRegistry;
66
+ private config;
67
+ private sessionId;
68
+ private hookManager;
69
+ private permissionManager;
70
+ constructor(provider: LLMProvider, toolRegistry: ToolRegistry, config: ReActLoopConfig, sessionId?: string);
71
+ /**
72
+ * Get the permission manager instance
73
+ * Used for testing and inspection
74
+ */
75
+ getPermissionManager(): PermissionManager;
76
+ run(userPrompt: string): Promise<ReActResult>;
77
+ /**
78
+ * Run the ReAct loop with streaming output
79
+ * Yields events for assistant messages, tool results, usage stats, and completion
80
+ * @param userPrompt - The current user message content
81
+ * @param history - Previous conversation messages (optional)
82
+ */
83
+ runStream(userPrompt: string, history?: SDKMessage[]): AsyncGenerator<ReActStreamEvent>;
84
+ /**
85
+ * Get the hook manager instance
86
+ * Used for testing and inspection
87
+ */
88
+ getHookManager(): HookManager;
89
+ /**
90
+ * Compact conversation history to reduce token usage.
91
+ * Generates a summary of older messages and preserves recent rounds.
92
+ *
93
+ * @param messages - Current conversation messages
94
+ * @param trigger - What triggered the compaction ('manual' or 'auto')
95
+ * @param preTokens - Token count before compaction
96
+ * @returns Compacted messages and metadata
97
+ */
98
+ compact(messages: SDKMessage[], trigger: 'manual' | 'auto', preTokens: number): Promise<{
99
+ messages: SDKMessage[];
100
+ preTokens: number;
101
+ trigger: 'manual' | 'auto';
102
+ preservedRounds: number;
103
+ summaryGenerated: boolean;
104
+ }>;
105
+ /**
106
+ * Generate a summary of conversation messages using the LLM.
107
+ */
108
+ private generateSummary;
109
+ /**
110
+ * Emit the Stop hook and check if any handler requests continuation.
111
+ * Returns true if the loop should continue (hook returned { continue: true }).
112
+ */
113
+ private emitStopHook;
114
+ private callLLM;
115
+ private executeTool;
116
+ }
117
+ //# sourceMappingURL=react-loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-loop.d.ts","sourceRoot":"","sources":["../../src/agent/react-loop.ts"],"names":[],"mappings":"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"}