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.
- package/LICENSE +21 -0
- package/README.md +284 -0
- package/README.zh.md +285 -0
- package/dist/agent/agent-definition.d.ts +107 -0
- package/dist/agent/agent-definition.d.ts.map +1 -0
- package/dist/agent/agent-definition.js +90 -0
- package/dist/agent/agent-definition.js.map +1 -0
- package/dist/agent/react-loop.d.ts +117 -0
- package/dist/agent/react-loop.d.ts.map +1 -0
- package/dist/agent/react-loop.js +674 -0
- package/dist/agent/react-loop.js.map +1 -0
- package/dist/agent/subagent-runner.d.ts +67 -0
- package/dist/agent/subagent-runner.d.ts.map +1 -0
- package/dist/agent/subagent-runner.js +168 -0
- package/dist/agent/subagent-runner.js.map +1 -0
- package/dist/hooks/index.d.ts +8 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +9 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/inputs.d.ts +56 -0
- package/dist/hooks/inputs.d.ts.map +1 -0
- package/dist/hooks/inputs.js +150 -0
- package/dist/hooks/inputs.js.map +1 -0
- package/dist/hooks/manager.d.ts +63 -0
- package/dist/hooks/manager.d.ts.map +1 -0
- package/dist/hooks/manager.js +137 -0
- package/dist/hooks/manager.js.map +1 -0
- package/dist/hooks/types.d.ts +191 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +6 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +109 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +218 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/errors.d.ts +26 -0
- package/dist/mcp/errors.d.ts.map +1 -0
- package/dist/mcp/errors.js +43 -0
- package/dist/mcp/errors.js.map +1 -0
- package/dist/mcp/index.d.ts +11 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +13 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/manager.d.ts +50 -0
- package/dist/mcp/manager.d.ts.map +1 -0
- package/dist/mcp/manager.js +170 -0
- package/dist/mcp/manager.js.map +1 -0
- package/dist/mcp/server-registry.d.ts +48 -0
- package/dist/mcp/server-registry.d.ts.map +1 -0
- package/dist/mcp/server-registry.js +121 -0
- package/dist/mcp/server-registry.js.map +1 -0
- package/dist/mcp/tool-adapter.d.ts +42 -0
- package/dist/mcp/tool-adapter.d.ts.map +1 -0
- package/dist/mcp/tool-adapter.js +89 -0
- package/dist/mcp/tool-adapter.js.map +1 -0
- package/dist/mcp/types.d.ts +74 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +21 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/permissions/index.d.ts +3 -0
- package/dist/permissions/index.d.ts.map +1 -0
- package/dist/permissions/index.js +4 -0
- package/dist/permissions/index.js.map +1 -0
- package/dist/permissions/manager.d.ts +40 -0
- package/dist/permissions/manager.d.ts.map +1 -0
- package/dist/permissions/manager.js +115 -0
- package/dist/permissions/manager.js.map +1 -0
- package/dist/permissions/types.d.ts +124 -0
- package/dist/permissions/types.d.ts.map +1 -0
- package/dist/permissions/types.js +25 -0
- package/dist/permissions/types.js.map +1 -0
- package/dist/providers/anthropic.d.ts +18 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +126 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/base.d.ts +85 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +36 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/google.d.ts +12 -0
- package/dist/providers/google.d.ts.map +1 -0
- package/dist/providers/google.js +123 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/openai.d.ts +12 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +110 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/session/factory.d.ts +156 -0
- package/dist/session/factory.d.ts.map +1 -0
- package/dist/session/factory.js +311 -0
- package/dist/session/factory.js.map +1 -0
- package/dist/session/index.d.ts +8 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +7 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/session.d.ts +144 -0
- package/dist/session/session.d.ts.map +1 -0
- package/dist/session/session.js +319 -0
- package/dist/session/session.js.map +1 -0
- package/dist/session/storage.d.ts +105 -0
- package/dist/session/storage.d.ts.map +1 -0
- package/dist/session/storage.js +148 -0
- package/dist/session/storage.js.map +1 -0
- package/dist/tools/ask-user-question.d.ts +31 -0
- package/dist/tools/ask-user-question.d.ts.map +1 -0
- package/dist/tools/ask-user-question.js +66 -0
- package/dist/tools/ask-user-question.js.map +1 -0
- package/dist/tools/bash-output.d.ts +22 -0
- package/dist/tools/bash-output.d.ts.map +1 -0
- package/dist/tools/bash-output.js +43 -0
- package/dist/tools/bash-output.js.map +1 -0
- package/dist/tools/bash.d.ts +36 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +161 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/edit.d.ts +24 -0
- package/dist/tools/edit.d.ts.map +1 -0
- package/dist/tools/edit.js +83 -0
- package/dist/tools/edit.js.map +1 -0
- package/dist/tools/glob.d.ts +22 -0
- package/dist/tools/glob.d.ts.map +1 -0
- package/dist/tools/glob.js +248 -0
- package/dist/tools/glob.js.map +1 -0
- package/dist/tools/grep.d.ts +39 -0
- package/dist/tools/grep.d.ts.map +1 -0
- package/dist/tools/grep.js +312 -0
- package/dist/tools/grep.js.map +1 -0
- package/dist/tools/kill-bash.d.ts +19 -0
- package/dist/tools/kill-bash.d.ts.map +1 -0
- package/dist/tools/kill-bash.js +64 -0
- package/dist/tools/kill-bash.js.map +1 -0
- package/dist/tools/read.d.ts +26 -0
- package/dist/tools/read.d.ts.map +1 -0
- package/dist/tools/read.js +87 -0
- package/dist/tools/read.js.map +1 -0
- package/dist/tools/registry.d.ts +32 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +91 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/task-create.d.ts +22 -0
- package/dist/tools/task-create.d.ts.map +1 -0
- package/dist/tools/task-create.js +42 -0
- package/dist/tools/task-create.js.map +1 -0
- package/dist/tools/task-get.d.ts +19 -0
- package/dist/tools/task-get.d.ts.map +1 -0
- package/dist/tools/task-get.js +38 -0
- package/dist/tools/task-get.js.map +1 -0
- package/dist/tools/task-list.d.ts +18 -0
- package/dist/tools/task-list.d.ts.map +1 -0
- package/dist/tools/task-list.js +27 -0
- package/dist/tools/task-list.js.map +1 -0
- package/dist/tools/task-storage.d.ts +6 -0
- package/dist/tools/task-storage.d.ts.map +1 -0
- package/dist/tools/task-storage.js +83 -0
- package/dist/tools/task-storage.js.map +1 -0
- package/dist/tools/task-update.d.ts +28 -0
- package/dist/tools/task-update.d.ts.map +1 -0
- package/dist/tools/task-update.js +118 -0
- package/dist/tools/task-update.js.map +1 -0
- package/dist/tools/task.d.ts +80 -0
- package/dist/tools/task.d.ts.map +1 -0
- package/dist/tools/task.js +99 -0
- package/dist/tools/task.js.map +1 -0
- package/dist/tools/web-fetch.d.ts +21 -0
- package/dist/tools/web-fetch.d.ts.map +1 -0
- package/dist/tools/web-fetch.js +124 -0
- package/dist/tools/web-fetch.js.map +1 -0
- package/dist/tools/web-search.d.ts +20 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +127 -0
- package/dist/tools/web-search.js.map +1 -0
- package/dist/tools/write.d.ts +22 -0
- package/dist/tools/write.d.ts.map +1 -0
- package/dist/tools/write.js +46 -0
- package/dist/tools/write.js.map +1 -0
- package/dist/types/messages.d.ts +138 -0
- package/dist/types/messages.d.ts.map +1 -0
- package/dist/types/messages.js +88 -0
- package/dist/types/messages.js.map +1 -0
- package/dist/types/task.d.ts +29 -0
- package/dist/types/task.d.ts.map +1 -0
- package/dist/types/task.js +5 -0
- package/dist/types/task.js.map +1 -0
- package/dist/types/tools.d.ts +56 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +25 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/utils/logger.d.ts +19 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +46 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/uuid.d.ts +3 -0
- package/dist/utils/uuid.d.ts.map +1 -0
- package/dist/utils/uuid.js +5 -0
- package/dist/utils/uuid.js.map +1 -0
- 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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"}
|