@codeany/open-agent-sdk 0.1.0 → 0.2.1
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/README.md +144 -31
- package/dist/agent.d.ts +113 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +446 -0
- package/dist/agent.js.map +1 -0
- package/dist/engine.d.ts +62 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +494 -0
- package/dist/engine.js.map +1 -0
- package/dist/hooks.d.ts +111 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +179 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +66 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +133 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/client.d.ts +19 -0
- package/dist/mcp/client.d.ts.map +1 -0
- package/dist/mcp/client.js +126 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/providers/anthropic.d.ts +17 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +47 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/index.d.ts +20 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +26 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/openai.d.ts +26 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +212 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/types.d.ts +84 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +11 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/sdk-mcp-server.d.ts +52 -0
- package/dist/sdk-mcp-server.d.ts.map +1 -0
- package/dist/sdk-mcp-server.js +57 -0
- package/dist/sdk-mcp-server.js.map +1 -0
- package/dist/session.d.ts +73 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +159 -0
- package/dist/session.js.map +1 -0
- package/dist/skills/bundled/commit.d.ts +7 -0
- package/dist/skills/bundled/commit.d.ts.map +1 -0
- package/dist/skills/bundled/commit.js +35 -0
- package/dist/skills/bundled/commit.js.map +1 -0
- package/dist/skills/bundled/debug.d.ts +7 -0
- package/dist/skills/bundled/debug.d.ts.map +1 -0
- package/dist/skills/bundled/debug.js +46 -0
- package/dist/skills/bundled/debug.js.map +1 -0
- package/dist/skills/bundled/index.d.ts +11 -0
- package/dist/skills/bundled/index.d.ts.map +1 -0
- package/dist/skills/bundled/index.js +26 -0
- package/dist/skills/bundled/index.js.map +1 -0
- package/dist/skills/bundled/review.d.ts +7 -0
- package/dist/skills/bundled/review.d.ts.map +1 -0
- package/dist/skills/bundled/review.js +38 -0
- package/dist/skills/bundled/review.js.map +1 -0
- package/dist/skills/bundled/simplify.d.ts +8 -0
- package/dist/skills/bundled/simplify.d.ts.map +1 -0
- package/dist/skills/bundled/simplify.js +48 -0
- package/dist/skills/bundled/simplify.js.map +1 -0
- package/dist/skills/bundled/test.d.ts +7 -0
- package/dist/skills/bundled/test.d.ts.map +1 -0
- package/dist/skills/bundled/test.js +40 -0
- package/dist/skills/bundled/test.js.map +1 -0
- package/dist/skills/index.d.ts +7 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +8 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/registry.d.ts +43 -0
- package/dist/skills/registry.d.ts.map +1 -0
- package/dist/skills/registry.js +111 -0
- package/dist/skills/registry.js.map +1 -0
- package/dist/skills/types.d.ts +83 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +8 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/tool-helper.d.ts +73 -0
- package/dist/tool-helper.d.ts.map +1 -0
- package/dist/tool-helper.js +86 -0
- package/dist/tool-helper.js.map +1 -0
- package/dist/tools/agent-tool.d.ts +17 -0
- package/dist/tools/agent-tool.d.ts.map +1 -0
- package/dist/tools/agent-tool.js +146 -0
- package/dist/tools/agent-tool.js.map +1 -0
- package/dist/tools/ask-user.d.ts +18 -0
- package/dist/tools/ask-user.d.ts.map +1 -0
- package/dist/tools/ask-user.js +72 -0
- package/dist/tools/ask-user.js.map +1 -0
- package/dist/tools/bash.d.ts +5 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +67 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/config-tool.d.ts +20 -0
- package/dist/tools/config-tool.d.ts.map +1 -0
- package/dist/tools/config-tool.js +83 -0
- package/dist/tools/config-tool.js.map +1 -0
- package/dist/tools/cron-tools.d.ts +33 -0
- package/dist/tools/cron-tools.d.ts.map +1 -0
- package/dist/tools/cron-tools.js +128 -0
- package/dist/tools/cron-tools.js.map +1 -0
- package/dist/tools/edit.d.ts +5 -0
- package/dist/tools/edit.d.ts.map +1 -0
- package/dist/tools/edit.js +70 -0
- package/dist/tools/edit.js.map +1 -0
- package/dist/tools/glob.d.ts +5 -0
- package/dist/tools/glob.d.ts.map +1 -0
- package/dist/tools/glob.js +75 -0
- package/dist/tools/glob.js.map +1 -0
- package/dist/tools/grep.d.ts +5 -0
- package/dist/tools/grep.d.ts.map +1 -0
- package/dist/tools/grep.js +168 -0
- package/dist/tools/grep.js.map +1 -0
- package/dist/tools/index.d.ts +45 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +162 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/lsp-tool.d.ts +9 -0
- package/dist/tools/lsp-tool.d.ts.map +1 -0
- package/dist/tools/lsp-tool.js +137 -0
- package/dist/tools/lsp-tool.js.map +1 -0
- package/dist/tools/mcp-resource-tools.d.ts +14 -0
- package/dist/tools/mcp-resource-tools.d.ts.map +1 -0
- package/dist/tools/mcp-resource-tools.js +117 -0
- package/dist/tools/mcp-resource-tools.js.map +1 -0
- package/dist/tools/notebook-edit.d.ts +5 -0
- package/dist/tools/notebook-edit.d.ts.map +1 -0
- package/dist/tools/notebook-edit.js +85 -0
- package/dist/tools/notebook-edit.js.map +1 -0
- package/dist/tools/plan-tools.d.ts +12 -0
- package/dist/tools/plan-tools.d.ts.map +1 -0
- package/dist/tools/plan-tools.js +77 -0
- package/dist/tools/plan-tools.js.map +1 -0
- package/dist/tools/read.d.ts +5 -0
- package/dist/tools/read.d.ts.map +1 -0
- package/dist/tools/read.js +66 -0
- package/dist/tools/read.js.map +1 -0
- package/dist/tools/send-message.d.ts +31 -0
- package/dist/tools/send-message.d.ts.map +1 -0
- package/dist/tools/send-message.js +77 -0
- package/dist/tools/send-message.js.map +1 -0
- package/dist/tools/skill-tool.d.ts +9 -0
- package/dist/tools/skill-tool.d.ts.map +1 -0
- package/dist/tools/skill-tool.js +115 -0
- package/dist/tools/skill-tool.js.map +1 -0
- package/dist/tools/task-tools.d.ts +48 -0
- package/dist/tools/task-tools.d.ts.map +1 -0
- package/dist/tools/task-tools.js +242 -0
- package/dist/tools/task-tools.js.map +1 -0
- package/dist/tools/team-tools.d.ts +34 -0
- package/dist/tools/team-tools.d.ts.map +1 -0
- package/dist/tools/team-tools.js +103 -0
- package/dist/tools/team-tools.js.map +1 -0
- package/dist/tools/todo-tool.d.ts +22 -0
- package/dist/tools/todo-tool.d.ts.map +1 -0
- package/dist/tools/todo-tool.js +93 -0
- package/dist/tools/todo-tool.js.map +1 -0
- package/dist/tools/tool-search.d.ts +13 -0
- package/dist/tools/tool-search.d.ts.map +1 -0
- package/dist/tools/tool-search.js +76 -0
- package/dist/tools/tool-search.js.map +1 -0
- package/dist/tools/types.d.ts +29 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +52 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/web-fetch.d.ts +5 -0
- package/dist/tools/web-fetch.d.ts.map +1 -0
- package/dist/tools/web-fetch.js +60 -0
- package/dist/tools/web-fetch.js.map +1 -0
- package/dist/tools/web-search.d.ts +5 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +77 -0
- package/dist/tools/web-search.js.map +1 -0
- package/dist/tools/worktree-tools.d.ts +10 -0
- package/dist/tools/worktree-tools.d.ts.map +1 -0
- package/dist/tools/worktree-tools.js +130 -0
- package/dist/tools/worktree-tools.js.map +1 -0
- package/dist/tools/write.d.ts +5 -0
- package/dist/tools/write.d.ts.map +1 -0
- package/dist/tools/write.js +40 -0
- package/dist/tools/write.js.map +1 -0
- package/dist/types.d.ts +423 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/compact.d.ts +44 -0
- package/dist/utils/compact.d.ts.map +1 -0
- package/dist/utils/compact.js +162 -0
- package/dist/utils/compact.js.map +1 -0
- package/dist/utils/context.d.ts +35 -0
- package/dist/utils/context.d.ts.map +1 -0
- package/dist/utils/context.js +174 -0
- package/dist/utils/context.js.map +1 -0
- package/dist/utils/fileCache.d.ts +64 -0
- package/dist/utils/fileCache.d.ts.map +1 -0
- package/dist/utils/fileCache.js +117 -0
- package/dist/utils/fileCache.js.map +1 -0
- package/dist/utils/messages.d.ts +57 -0
- package/dist/utils/messages.d.ts.map +1 -0
- package/dist/utils/messages.js +152 -0
- package/dist/utils/messages.js.map +1 -0
- package/dist/utils/retry.d.ts +48 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +111 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/tokens.d.ts +57 -0
- package/dist/utils/tokens.d.ts.map +1 -0
- package/dist/utils/tokens.js +134 -0
- package/dist/utils/tokens.js.map +1 -0
- package/package.json +7 -1
- package/src/agent.ts +106 -15
- package/src/engine.ts +169 -59
- package/src/index.ts +51 -1
- package/src/providers/anthropic.ts +60 -0
- package/src/providers/index.ts +34 -0
- package/src/providers/openai.ts +315 -0
- package/src/providers/types.ts +85 -0
- package/src/session.ts +5 -5
- package/src/skills/bundled/commit.ts +38 -0
- package/src/skills/bundled/debug.ts +48 -0
- package/src/skills/bundled/index.ts +28 -0
- package/src/skills/bundled/review.ts +41 -0
- package/src/skills/bundled/simplify.ts +51 -0
- package/src/skills/bundled/test.ts +43 -0
- package/src/skills/index.ts +25 -0
- package/src/skills/registry.ts +133 -0
- package/src/skills/types.ts +99 -0
- package/src/tools/agent-tool.ts +13 -2
- package/src/tools/index.ts +8 -0
- package/src/tools/skill-tool.ts +133 -0
- package/src/tools/types.ts +7 -3
- package/src/types.ts +35 -8
- package/src/utils/compact.ts +18 -17
- package/src/utils/messages.ts +12 -13
- package/src/utils/tokens.ts +29 -6
- package/.env.example +0 -8
- package/examples/01-simple-query.ts +0 -43
- package/examples/02-multi-tool.ts +0 -44
- package/examples/03-multi-turn.ts +0 -39
- package/examples/04-prompt-api.ts +0 -29
- package/examples/05-custom-system-prompt.ts +0 -26
- package/examples/06-mcp-server.ts +0 -49
- package/examples/07-custom-tools.ts +0 -87
- package/examples/08-official-api-compat.ts +0 -38
- package/examples/09-subagents.ts +0 -48
- package/examples/10-permissions.ts +0 -40
- package/examples/11-custom-mcp-tools.ts +0 -101
- package/examples/web/index.html +0 -365
- package/examples/web/server.ts +0 -157
- package/tsconfig.json +0 -19
package/dist/hooks.js
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook System
|
|
3
|
+
*
|
|
4
|
+
* Lifecycle hooks for intercepting agent behavior.
|
|
5
|
+
* Supports pre/post tool use, session lifecycle, and custom events.
|
|
6
|
+
*
|
|
7
|
+
* Hook events:
|
|
8
|
+
* - PreToolUse: before tool execution
|
|
9
|
+
* - PostToolUse: after tool execution
|
|
10
|
+
* - PostToolUseFailure: after tool failure
|
|
11
|
+
* - SessionStart: session initialization
|
|
12
|
+
* - SessionEnd: session cleanup
|
|
13
|
+
* - Stop: when turn completes
|
|
14
|
+
* - SubagentStart: subagent spawned
|
|
15
|
+
* - SubagentStop: subagent completed
|
|
16
|
+
* - UserPromptSubmit: user sends message
|
|
17
|
+
* - PermissionRequest: permission check triggered
|
|
18
|
+
* - TaskCreated: task created
|
|
19
|
+
* - TaskCompleted: task finished
|
|
20
|
+
* - ConfigChange: settings changed
|
|
21
|
+
* - CwdChanged: working directory changed
|
|
22
|
+
* - FileChanged: file modified
|
|
23
|
+
* - Notification: system notification
|
|
24
|
+
*/
|
|
25
|
+
import { spawn } from 'child_process';
|
|
26
|
+
/**
|
|
27
|
+
* All supported hook events.
|
|
28
|
+
*/
|
|
29
|
+
export const HOOK_EVENTS = [
|
|
30
|
+
'PreToolUse',
|
|
31
|
+
'PostToolUse',
|
|
32
|
+
'PostToolUseFailure',
|
|
33
|
+
'SessionStart',
|
|
34
|
+
'SessionEnd',
|
|
35
|
+
'Stop',
|
|
36
|
+
'SubagentStart',
|
|
37
|
+
'SubagentStop',
|
|
38
|
+
'UserPromptSubmit',
|
|
39
|
+
'PermissionRequest',
|
|
40
|
+
'PermissionDenied',
|
|
41
|
+
'TaskCreated',
|
|
42
|
+
'TaskCompleted',
|
|
43
|
+
'ConfigChange',
|
|
44
|
+
'CwdChanged',
|
|
45
|
+
'FileChanged',
|
|
46
|
+
'Notification',
|
|
47
|
+
'PreCompact',
|
|
48
|
+
'PostCompact',
|
|
49
|
+
'TeammateIdle',
|
|
50
|
+
];
|
|
51
|
+
/**
|
|
52
|
+
* Hook registry for managing and executing hooks.
|
|
53
|
+
*/
|
|
54
|
+
export class HookRegistry {
|
|
55
|
+
hooks = new Map();
|
|
56
|
+
/**
|
|
57
|
+
* Register hooks from configuration.
|
|
58
|
+
*/
|
|
59
|
+
registerFromConfig(config) {
|
|
60
|
+
for (const [event, definitions] of Object.entries(config)) {
|
|
61
|
+
const hookEvent = event;
|
|
62
|
+
if (!HOOK_EVENTS.includes(hookEvent))
|
|
63
|
+
continue;
|
|
64
|
+
const existing = this.hooks.get(hookEvent) || [];
|
|
65
|
+
this.hooks.set(hookEvent, [...existing, ...definitions]);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Register a single hook.
|
|
70
|
+
*/
|
|
71
|
+
register(event, definition) {
|
|
72
|
+
const existing = this.hooks.get(event) || [];
|
|
73
|
+
existing.push(definition);
|
|
74
|
+
this.hooks.set(event, existing);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Execute hooks for an event.
|
|
78
|
+
*/
|
|
79
|
+
async execute(event, input) {
|
|
80
|
+
const definitions = this.hooks.get(event) || [];
|
|
81
|
+
const results = [];
|
|
82
|
+
for (const def of definitions) {
|
|
83
|
+
// Check matcher for tool-specific hooks
|
|
84
|
+
if (def.matcher && input.toolName) {
|
|
85
|
+
const regex = new RegExp(def.matcher);
|
|
86
|
+
if (!regex.test(input.toolName))
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
let output = undefined;
|
|
91
|
+
if (def.handler) {
|
|
92
|
+
// Function handler
|
|
93
|
+
output = await Promise.race([
|
|
94
|
+
def.handler(input),
|
|
95
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error('Hook timeout')), def.timeout || 30000)),
|
|
96
|
+
]);
|
|
97
|
+
}
|
|
98
|
+
else if (def.command) {
|
|
99
|
+
// Shell command handler
|
|
100
|
+
output = await executeShellHook(def.command, input, def.timeout || 30000);
|
|
101
|
+
}
|
|
102
|
+
if (output) {
|
|
103
|
+
results.push(output);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
// Log but don't fail on hook errors
|
|
108
|
+
console.error(`[Hook] ${event} hook failed: ${err.message}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return results;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Check if any hooks are registered for an event.
|
|
115
|
+
*/
|
|
116
|
+
hasHooks(event) {
|
|
117
|
+
return (this.hooks.get(event)?.length || 0) > 0;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Clear all hooks.
|
|
121
|
+
*/
|
|
122
|
+
clear() {
|
|
123
|
+
this.hooks.clear();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Execute a shell command as a hook.
|
|
128
|
+
*/
|
|
129
|
+
async function executeShellHook(command, input, timeout) {
|
|
130
|
+
return new Promise((resolve) => {
|
|
131
|
+
const proc = spawn('bash', ['-c', command], {
|
|
132
|
+
timeout,
|
|
133
|
+
env: {
|
|
134
|
+
...process.env,
|
|
135
|
+
HOOK_EVENT: input.event,
|
|
136
|
+
HOOK_TOOL_NAME: input.toolName || '',
|
|
137
|
+
HOOK_SESSION_ID: input.sessionId || '',
|
|
138
|
+
HOOK_CWD: input.cwd || '',
|
|
139
|
+
},
|
|
140
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
141
|
+
});
|
|
142
|
+
// Send input as JSON on stdin
|
|
143
|
+
proc.stdin?.write(JSON.stringify(input));
|
|
144
|
+
proc.stdin?.end();
|
|
145
|
+
const chunks = [];
|
|
146
|
+
proc.stdout?.on('data', (d) => chunks.push(d));
|
|
147
|
+
proc.on('close', (code) => {
|
|
148
|
+
if (code !== 0) {
|
|
149
|
+
resolve(undefined);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const stdout = Buffer.concat(chunks).toString('utf-8').trim();
|
|
153
|
+
if (!stdout) {
|
|
154
|
+
resolve(undefined);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
try {
|
|
158
|
+
const output = JSON.parse(stdout);
|
|
159
|
+
resolve(output);
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
// Non-JSON output treated as message
|
|
163
|
+
resolve({ message: stdout });
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
proc.on('error', () => resolve(undefined));
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Create a default hook registry.
|
|
171
|
+
*/
|
|
172
|
+
export function createHookRegistry(config) {
|
|
173
|
+
const registry = new HookRegistry();
|
|
174
|
+
if (config) {
|
|
175
|
+
registry.registerFromConfig(config);
|
|
176
|
+
}
|
|
177
|
+
return registry;
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @codeany/open-agent-sdk
|
|
3
|
+
*
|
|
4
|
+
* Open-source Agent SDK by CodeAny (https://codeany.ai).
|
|
5
|
+
* Runs the full agent loop in-process without spawning subprocesses.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - 30+ built-in tools (file I/O, shell, web, agents, tasks, teams, etc.)
|
|
9
|
+
* - Skill system (reusable prompt templates with bundled skills)
|
|
10
|
+
* - MCP server integration (stdio, SSE, HTTP)
|
|
11
|
+
* - Context compression (auto-compact, micro-compact)
|
|
12
|
+
* - Retry with exponential backoff
|
|
13
|
+
* - Git status & project context injection
|
|
14
|
+
* - Multi-turn session persistence
|
|
15
|
+
* - Permission system (allow/deny/bypass modes)
|
|
16
|
+
* - Subagent spawning & team coordination
|
|
17
|
+
* - Task management & scheduling
|
|
18
|
+
* - Hook system with lifecycle integration (pre/post tool use, session, compact)
|
|
19
|
+
* - Token estimation & cost tracking
|
|
20
|
+
* - File state LRU caching
|
|
21
|
+
* - Plan mode for structured workflows
|
|
22
|
+
*/
|
|
23
|
+
export { Agent, createAgent, query } from './agent.js';
|
|
24
|
+
export { tool, sdkToolToToolDefinition } from './tool-helper.js';
|
|
25
|
+
export type { ToolAnnotations, CallToolResult, SdkMcpToolDefinition, } from './tool-helper.js';
|
|
26
|
+
export { createSdkMcpServer, isSdkServerConfig } from './sdk-mcp-server.js';
|
|
27
|
+
export type { McpSdkServerConfig } from './sdk-mcp-server.js';
|
|
28
|
+
export { QueryEngine } from './engine.js';
|
|
29
|
+
export { createProvider, AnthropicProvider, OpenAIProvider, } from './providers/index.js';
|
|
30
|
+
export type { ApiType, LLMProvider, CreateMessageParams, CreateMessageResponse, NormalizedMessageParam, NormalizedContentBlock, NormalizedTool, NormalizedResponseBlock, } from './providers/index.js';
|
|
31
|
+
export { getAllBaseTools, filterTools, assembleToolPool, defineTool, toApiTool, BashTool, FileReadTool, FileWriteTool, FileEditTool, GlobTool, GrepTool, NotebookEditTool, WebFetchTool, WebSearchTool, AgentTool, SendMessageTool, TeamCreateTool, TeamDeleteTool, TaskCreateTool, TaskListTool, TaskUpdateTool, TaskGetTool, TaskStopTool, TaskOutputTool, EnterWorktreeTool, ExitWorktreeTool, EnterPlanModeTool, ExitPlanModeTool, AskUserQuestionTool, ToolSearchTool, ListMcpResourcesTool, ReadMcpResourceTool, CronCreateTool, CronDeleteTool, CronListTool, RemoteTriggerTool, LSPTool, ConfigTool, TodoWriteTool, SkillTool, } from './tools/index.js';
|
|
32
|
+
export { connectMCPServer, closeAllConnections } from './mcp/client.js';
|
|
33
|
+
export type { MCPConnection } from './mcp/client.js';
|
|
34
|
+
export { registerSkill, getSkill, getAllSkills, getUserInvocableSkills, hasSkill, unregisterSkill, clearSkills, formatSkillsForPrompt, initBundledSkills, } from './skills/index.js';
|
|
35
|
+
export type { SkillDefinition, SkillContentBlock, SkillResult, } from './skills/index.js';
|
|
36
|
+
export { HookRegistry, createHookRegistry, HOOK_EVENTS, } from './hooks.js';
|
|
37
|
+
export type { HookEvent, HookDefinition, HookInput, HookOutput, HookConfig, } from './hooks.js';
|
|
38
|
+
export { saveSession, loadSession, listSessions, forkSession, getSessionMessages, getSessionInfo, renameSession, tagSession, appendToSession, deleteSession, } from './session.js';
|
|
39
|
+
export type { SessionMetadata, SessionData } from './session.js';
|
|
40
|
+
export { getSystemContext, getUserContext, getGitStatus, readProjectContextContent, discoverProjectContextFiles, clearContextCache, } from './utils/context.js';
|
|
41
|
+
export { createUserMessage, createAssistantMessage, normalizeMessagesForAPI, stripImagesFromMessages, extractTextFromContent, createCompactBoundaryMessage, truncateText, } from './utils/messages.js';
|
|
42
|
+
export { estimateTokens, estimateMessagesTokens, estimateSystemPromptTokens, getTokenCountFromUsage, getContextWindowSize, getAutoCompactThreshold, estimateCost, MODEL_PRICING, AUTOCOMPACT_BUFFER_TOKENS, } from './utils/tokens.js';
|
|
43
|
+
export { shouldAutoCompact, compactConversation, microCompactMessages, createAutoCompactState, } from './utils/compact.js';
|
|
44
|
+
export type { AutoCompactState } from './utils/compact.js';
|
|
45
|
+
export { withRetry, isRetryableError, isPromptTooLongError, isAuthError, isRateLimitError, formatApiError, getRetryDelay, DEFAULT_RETRY_CONFIG, } from './utils/retry.js';
|
|
46
|
+
export type { RetryConfig } from './utils/retry.js';
|
|
47
|
+
export { FileStateCache, createFileStateCache, } from './utils/fileCache.js';
|
|
48
|
+
export type { FileState } from './utils/fileCache.js';
|
|
49
|
+
export { getAllTasks, getTask, clearTasks, } from './tools/task-tools.js';
|
|
50
|
+
export type { Task, TaskStatus } from './tools/task-tools.js';
|
|
51
|
+
export { getAllTeams, getTeam, clearTeams, } from './tools/team-tools.js';
|
|
52
|
+
export type { Team } from './tools/team-tools.js';
|
|
53
|
+
export { readMailbox, writeToMailbox, clearMailboxes, } from './tools/send-message.js';
|
|
54
|
+
export type { AgentMessage } from './tools/send-message.js';
|
|
55
|
+
export { isPlanModeActive, getCurrentPlan, } from './tools/plan-tools.js';
|
|
56
|
+
export { registerAgents, clearAgents, } from './tools/agent-tool.js';
|
|
57
|
+
export { setQuestionHandler, clearQuestionHandler, } from './tools/ask-user.js';
|
|
58
|
+
export { setDeferredTools, } from './tools/tool-search.js';
|
|
59
|
+
export { setMcpConnections, } from './tools/mcp-resource-tools.js';
|
|
60
|
+
export { getAllCronJobs, clearCronJobs, } from './tools/cron-tools.js';
|
|
61
|
+
export type { CronJob } from './tools/cron-tools.js';
|
|
62
|
+
export { getConfig, setConfig, clearConfig, } from './tools/config-tool.js';
|
|
63
|
+
export { getTodos, clearTodos, } from './tools/todo-tool.js';
|
|
64
|
+
export type { TodoItem } from './tools/todo-tool.js';
|
|
65
|
+
export type { Message, UserMessage, AssistantMessage, ConversationMessage, MessageRole, SDKMessage, SDKAssistantMessage, SDKToolResultMessage, SDKResultMessage, SDKPartialMessage, ToolDefinition, ToolInputSchema, ToolContext, ToolResult, PermissionMode, PermissionBehavior, CanUseToolFn, CanUseToolResult, McpServerConfig, McpStdioConfig, McpSseConfig, McpHttpConfig, AgentOptions, AgentDefinition, QueryResult, ThinkingConfig, TokenUsage, QueryEngineConfig, ContentBlockParam, ContentBlock, SandboxSettings, SandboxNetworkConfig, SandboxFilesystemConfig, OutputFormat, SettingSource, ModelInfo, } from './types.js';
|
|
66
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @codeany/open-agent-sdk
|
|
3
|
+
*
|
|
4
|
+
* Open-source Agent SDK by CodeAny (https://codeany.ai).
|
|
5
|
+
* Runs the full agent loop in-process without spawning subprocesses.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - 30+ built-in tools (file I/O, shell, web, agents, tasks, teams, etc.)
|
|
9
|
+
* - Skill system (reusable prompt templates with bundled skills)
|
|
10
|
+
* - MCP server integration (stdio, SSE, HTTP)
|
|
11
|
+
* - Context compression (auto-compact, micro-compact)
|
|
12
|
+
* - Retry with exponential backoff
|
|
13
|
+
* - Git status & project context injection
|
|
14
|
+
* - Multi-turn session persistence
|
|
15
|
+
* - Permission system (allow/deny/bypass modes)
|
|
16
|
+
* - Subagent spawning & team coordination
|
|
17
|
+
* - Task management & scheduling
|
|
18
|
+
* - Hook system with lifecycle integration (pre/post tool use, session, compact)
|
|
19
|
+
* - Token estimation & cost tracking
|
|
20
|
+
* - File state LRU caching
|
|
21
|
+
* - Plan mode for structured workflows
|
|
22
|
+
*/
|
|
23
|
+
// --------------------------------------------------------------------------
|
|
24
|
+
// High-level Agent API
|
|
25
|
+
// --------------------------------------------------------------------------
|
|
26
|
+
export { Agent, createAgent, query } from './agent.js';
|
|
27
|
+
// --------------------------------------------------------------------------
|
|
28
|
+
// Tool Helper (Zod-based tool creation, compatible with official SDK)
|
|
29
|
+
// --------------------------------------------------------------------------
|
|
30
|
+
export { tool, sdkToolToToolDefinition } from './tool-helper.js';
|
|
31
|
+
// --------------------------------------------------------------------------
|
|
32
|
+
// In-Process MCP Server
|
|
33
|
+
// --------------------------------------------------------------------------
|
|
34
|
+
export { createSdkMcpServer, isSdkServerConfig } from './sdk-mcp-server.js';
|
|
35
|
+
// --------------------------------------------------------------------------
|
|
36
|
+
// Core Engine
|
|
37
|
+
// --------------------------------------------------------------------------
|
|
38
|
+
export { QueryEngine } from './engine.js';
|
|
39
|
+
// --------------------------------------------------------------------------
|
|
40
|
+
// LLM Providers (Anthropic + OpenAI)
|
|
41
|
+
// --------------------------------------------------------------------------
|
|
42
|
+
export { createProvider, AnthropicProvider, OpenAIProvider, } from './providers/index.js';
|
|
43
|
+
// --------------------------------------------------------------------------
|
|
44
|
+
// Tool System (30+ tools)
|
|
45
|
+
// --------------------------------------------------------------------------
|
|
46
|
+
export {
|
|
47
|
+
// Registry
|
|
48
|
+
getAllBaseTools, filterTools, assembleToolPool,
|
|
49
|
+
// Helpers
|
|
50
|
+
defineTool, toApiTool,
|
|
51
|
+
// Core file I/O & execution
|
|
52
|
+
BashTool, FileReadTool, FileWriteTool, FileEditTool, GlobTool, GrepTool, NotebookEditTool,
|
|
53
|
+
// Web
|
|
54
|
+
WebFetchTool, WebSearchTool,
|
|
55
|
+
// Agent & Multi-agent
|
|
56
|
+
AgentTool, SendMessageTool, TeamCreateTool, TeamDeleteTool,
|
|
57
|
+
// Tasks
|
|
58
|
+
TaskCreateTool, TaskListTool, TaskUpdateTool, TaskGetTool, TaskStopTool, TaskOutputTool,
|
|
59
|
+
// Worktree
|
|
60
|
+
EnterWorktreeTool, ExitWorktreeTool,
|
|
61
|
+
// Planning
|
|
62
|
+
EnterPlanModeTool, ExitPlanModeTool,
|
|
63
|
+
// User interaction
|
|
64
|
+
AskUserQuestionTool,
|
|
65
|
+
// Discovery
|
|
66
|
+
ToolSearchTool,
|
|
67
|
+
// MCP Resources
|
|
68
|
+
ListMcpResourcesTool, ReadMcpResourceTool,
|
|
69
|
+
// Scheduling
|
|
70
|
+
CronCreateTool, CronDeleteTool, CronListTool, RemoteTriggerTool,
|
|
71
|
+
// LSP
|
|
72
|
+
LSPTool,
|
|
73
|
+
// Config
|
|
74
|
+
ConfigTool,
|
|
75
|
+
// Todo
|
|
76
|
+
TodoWriteTool,
|
|
77
|
+
// Skill
|
|
78
|
+
SkillTool, } from './tools/index.js';
|
|
79
|
+
// --------------------------------------------------------------------------
|
|
80
|
+
// MCP Client
|
|
81
|
+
// --------------------------------------------------------------------------
|
|
82
|
+
export { connectMCPServer, closeAllConnections } from './mcp/client.js';
|
|
83
|
+
// --------------------------------------------------------------------------
|
|
84
|
+
// Skill System
|
|
85
|
+
// --------------------------------------------------------------------------
|
|
86
|
+
export { registerSkill, getSkill, getAllSkills, getUserInvocableSkills, hasSkill, unregisterSkill, clearSkills, formatSkillsForPrompt, initBundledSkills, } from './skills/index.js';
|
|
87
|
+
// --------------------------------------------------------------------------
|
|
88
|
+
// Hook System
|
|
89
|
+
// --------------------------------------------------------------------------
|
|
90
|
+
export { HookRegistry, createHookRegistry, HOOK_EVENTS, } from './hooks.js';
|
|
91
|
+
// --------------------------------------------------------------------------
|
|
92
|
+
// Session Management
|
|
93
|
+
// --------------------------------------------------------------------------
|
|
94
|
+
export { saveSession, loadSession, listSessions, forkSession, getSessionMessages, getSessionInfo, renameSession, tagSession, appendToSession, deleteSession, } from './session.js';
|
|
95
|
+
// --------------------------------------------------------------------------
|
|
96
|
+
// Context Utilities
|
|
97
|
+
// --------------------------------------------------------------------------
|
|
98
|
+
export { getSystemContext, getUserContext, getGitStatus, readProjectContextContent, discoverProjectContextFiles, clearContextCache, } from './utils/context.js';
|
|
99
|
+
// --------------------------------------------------------------------------
|
|
100
|
+
// Message Utilities
|
|
101
|
+
// --------------------------------------------------------------------------
|
|
102
|
+
export { createUserMessage, createAssistantMessage, normalizeMessagesForAPI, stripImagesFromMessages, extractTextFromContent, createCompactBoundaryMessage, truncateText, } from './utils/messages.js';
|
|
103
|
+
// --------------------------------------------------------------------------
|
|
104
|
+
// Token Estimation & Cost
|
|
105
|
+
// --------------------------------------------------------------------------
|
|
106
|
+
export { estimateTokens, estimateMessagesTokens, estimateSystemPromptTokens, getTokenCountFromUsage, getContextWindowSize, getAutoCompactThreshold, estimateCost, MODEL_PRICING, AUTOCOMPACT_BUFFER_TOKENS, } from './utils/tokens.js';
|
|
107
|
+
// --------------------------------------------------------------------------
|
|
108
|
+
// Context Compression
|
|
109
|
+
// --------------------------------------------------------------------------
|
|
110
|
+
export { shouldAutoCompact, compactConversation, microCompactMessages, createAutoCompactState, } from './utils/compact.js';
|
|
111
|
+
// --------------------------------------------------------------------------
|
|
112
|
+
// Retry Logic
|
|
113
|
+
// --------------------------------------------------------------------------
|
|
114
|
+
export { withRetry, isRetryableError, isPromptTooLongError, isAuthError, isRateLimitError, formatApiError, getRetryDelay, DEFAULT_RETRY_CONFIG, } from './utils/retry.js';
|
|
115
|
+
// --------------------------------------------------------------------------
|
|
116
|
+
// File State Cache
|
|
117
|
+
// --------------------------------------------------------------------------
|
|
118
|
+
export { FileStateCache, createFileStateCache, } from './utils/fileCache.js';
|
|
119
|
+
// --------------------------------------------------------------------------
|
|
120
|
+
// Task & Team State (for advanced usage)
|
|
121
|
+
// --------------------------------------------------------------------------
|
|
122
|
+
export { getAllTasks, getTask, clearTasks, } from './tools/task-tools.js';
|
|
123
|
+
export { getAllTeams, getTeam, clearTeams, } from './tools/team-tools.js';
|
|
124
|
+
export { readMailbox, writeToMailbox, clearMailboxes, } from './tools/send-message.js';
|
|
125
|
+
export { isPlanModeActive, getCurrentPlan, } from './tools/plan-tools.js';
|
|
126
|
+
export { registerAgents, clearAgents, } from './tools/agent-tool.js';
|
|
127
|
+
export { setQuestionHandler, clearQuestionHandler, } from './tools/ask-user.js';
|
|
128
|
+
export { setDeferredTools, } from './tools/tool-search.js';
|
|
129
|
+
export { setMcpConnections, } from './tools/mcp-resource-tools.js';
|
|
130
|
+
export { getAllCronJobs, clearCronJobs, } from './tools/cron-tools.js';
|
|
131
|
+
export { getConfig, setConfig, clearConfig, } from './tools/config-tool.js';
|
|
132
|
+
export { getTodos, clearTodos, } from './tools/todo-tool.js';
|
|
133
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Client - Connect to Model Context Protocol servers
|
|
3
|
+
*/
|
|
4
|
+
import type { ToolDefinition, McpServerConfig } from '../types.js';
|
|
5
|
+
export interface MCPConnection {
|
|
6
|
+
name: string;
|
|
7
|
+
status: 'connected' | 'disconnected' | 'error';
|
|
8
|
+
tools: ToolDefinition[];
|
|
9
|
+
close: () => Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Connect to an MCP server and fetch its tools.
|
|
13
|
+
*/
|
|
14
|
+
export declare function connectMCPServer(name: string, config: McpServerConfig): Promise<MCPConnection>;
|
|
15
|
+
/**
|
|
16
|
+
* Close all MCP connections.
|
|
17
|
+
*/
|
|
18
|
+
export declare function closeAllConnections(connections: MCPConnection[]): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAA2B,MAAM,aAAa,CAAA;AAE3F,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,OAAO,CAAA;IAC9C,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,CAAC,CAgExB;AA6DD;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAErF"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Client - Connect to Model Context Protocol servers
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Connect to an MCP server and fetch its tools.
|
|
6
|
+
*/
|
|
7
|
+
export async function connectMCPServer(name, config) {
|
|
8
|
+
try {
|
|
9
|
+
const { Client } = await import('@modelcontextprotocol/sdk/client/index.js');
|
|
10
|
+
let transport;
|
|
11
|
+
if (!config.type || config.type === 'stdio') {
|
|
12
|
+
const stdioConfig = config;
|
|
13
|
+
const { StdioClientTransport } = await import('@modelcontextprotocol/sdk/client/stdio.js');
|
|
14
|
+
transport = new StdioClientTransport({
|
|
15
|
+
command: stdioConfig.command,
|
|
16
|
+
args: stdioConfig.args || [],
|
|
17
|
+
env: { ...process.env, ...stdioConfig.env },
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
else if (config.type === 'sse') {
|
|
21
|
+
const sseConfig = config;
|
|
22
|
+
const { SSEClientTransport } = await import('@modelcontextprotocol/sdk/client/sse.js');
|
|
23
|
+
transport = new SSEClientTransport(new URL(sseConfig.url), {
|
|
24
|
+
requestInit: sseConfig.headers ? { headers: sseConfig.headers } : undefined,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
else if (config.type === 'http') {
|
|
28
|
+
const httpConfig = config;
|
|
29
|
+
const { StreamableHTTPClientTransport } = await import('@modelcontextprotocol/sdk/client/streamableHttp.js');
|
|
30
|
+
transport = new StreamableHTTPClientTransport(new URL(httpConfig.url), {
|
|
31
|
+
requestInit: httpConfig.headers ? { headers: httpConfig.headers } : undefined,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
throw new Error(`Unsupported MCP transport type: ${config.type}`);
|
|
36
|
+
}
|
|
37
|
+
const client = new Client({ name: `agent-sdk-${name}`, version: '1.0.0' }, { capabilities: {} });
|
|
38
|
+
await client.connect(transport);
|
|
39
|
+
// Fetch available tools
|
|
40
|
+
const toolList = await client.listTools();
|
|
41
|
+
const tools = (toolList.tools || []).map((mcpTool) => createMCPToolDefinition(name, mcpTool, client));
|
|
42
|
+
return {
|
|
43
|
+
name,
|
|
44
|
+
status: 'connected',
|
|
45
|
+
tools,
|
|
46
|
+
async close() {
|
|
47
|
+
try {
|
|
48
|
+
await client.close();
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// ignore close errors
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
console.error(`[MCP] Failed to connect to "${name}": ${err.message}`);
|
|
58
|
+
return {
|
|
59
|
+
name,
|
|
60
|
+
status: 'error',
|
|
61
|
+
tools: [],
|
|
62
|
+
async close() { },
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Create a ToolDefinition wrapping an MCP server tool.
|
|
68
|
+
*/
|
|
69
|
+
function createMCPToolDefinition(serverName, mcpTool, client) {
|
|
70
|
+
const toolName = `mcp__${serverName}__${mcpTool.name}`;
|
|
71
|
+
return {
|
|
72
|
+
name: toolName,
|
|
73
|
+
description: mcpTool.description || `MCP tool: ${mcpTool.name} from ${serverName}`,
|
|
74
|
+
inputSchema: mcpTool.inputSchema || { type: 'object', properties: {} },
|
|
75
|
+
isReadOnly: () => false,
|
|
76
|
+
isConcurrencySafe: () => false,
|
|
77
|
+
isEnabled: () => true,
|
|
78
|
+
async prompt() {
|
|
79
|
+
return mcpTool.description || '';
|
|
80
|
+
},
|
|
81
|
+
async call(input) {
|
|
82
|
+
try {
|
|
83
|
+
const result = await client.callTool({
|
|
84
|
+
name: mcpTool.name,
|
|
85
|
+
arguments: input,
|
|
86
|
+
});
|
|
87
|
+
// Extract text content from MCP result
|
|
88
|
+
let output = '';
|
|
89
|
+
if (result.content) {
|
|
90
|
+
for (const block of result.content) {
|
|
91
|
+
if (block.type === 'text') {
|
|
92
|
+
output += block.text;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
output += JSON.stringify(block);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
output = JSON.stringify(result);
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
type: 'tool_result',
|
|
104
|
+
tool_use_id: '',
|
|
105
|
+
content: output,
|
|
106
|
+
is_error: result.isError || false,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
return {
|
|
111
|
+
type: 'tool_result',
|
|
112
|
+
tool_use_id: '',
|
|
113
|
+
content: `MCP tool error: ${err.message}`,
|
|
114
|
+
is_error: true,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Close all MCP connections.
|
|
122
|
+
*/
|
|
123
|
+
export async function closeAllConnections(connections) {
|
|
124
|
+
await Promise.allSettled(connections.map((c) => c.close()));
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic Messages API Provider
|
|
3
|
+
*
|
|
4
|
+
* Wraps the @anthropic-ai/sdk client. Since our internal format is
|
|
5
|
+
* Anthropic-like, this is mostly a thin pass-through.
|
|
6
|
+
*/
|
|
7
|
+
import type { LLMProvider, CreateMessageParams, CreateMessageResponse } from './types.js';
|
|
8
|
+
export declare class AnthropicProvider implements LLMProvider {
|
|
9
|
+
readonly apiType: "anthropic-messages";
|
|
10
|
+
private client;
|
|
11
|
+
constructor(opts: {
|
|
12
|
+
apiKey?: string;
|
|
13
|
+
baseURL?: string;
|
|
14
|
+
});
|
|
15
|
+
createMessage(params: CreateMessageParams): Promise<CreateMessageResponse>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,YAAY,CAAA;AAEnB,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,OAAO,EAAG,oBAAoB,CAAS;IAChD,OAAO,CAAC,MAAM,CAAW;gBAEb,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAOjD,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAkCjF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic Messages API Provider
|
|
3
|
+
*
|
|
4
|
+
* Wraps the @anthropic-ai/sdk client. Since our internal format is
|
|
5
|
+
* Anthropic-like, this is mostly a thin pass-through.
|
|
6
|
+
*/
|
|
7
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
8
|
+
export class AnthropicProvider {
|
|
9
|
+
apiType = 'anthropic-messages';
|
|
10
|
+
client;
|
|
11
|
+
constructor(opts) {
|
|
12
|
+
this.client = new Anthropic({
|
|
13
|
+
apiKey: opts.apiKey,
|
|
14
|
+
baseURL: opts.baseURL,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
async createMessage(params) {
|
|
18
|
+
const requestParams = {
|
|
19
|
+
model: params.model,
|
|
20
|
+
max_tokens: params.maxTokens,
|
|
21
|
+
system: params.system,
|
|
22
|
+
messages: params.messages,
|
|
23
|
+
tools: params.tools
|
|
24
|
+
? params.tools
|
|
25
|
+
: undefined,
|
|
26
|
+
};
|
|
27
|
+
// Add extended thinking if configured
|
|
28
|
+
if (params.thinking?.type === 'enabled' && params.thinking.budget_tokens) {
|
|
29
|
+
requestParams.thinking = {
|
|
30
|
+
type: 'enabled',
|
|
31
|
+
budget_tokens: params.thinking.budget_tokens,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const response = await this.client.messages.create(requestParams);
|
|
35
|
+
return {
|
|
36
|
+
content: response.content,
|
|
37
|
+
stopReason: response.stop_reason || 'end_turn',
|
|
38
|
+
usage: {
|
|
39
|
+
input_tokens: response.usage.input_tokens,
|
|
40
|
+
output_tokens: response.usage.output_tokens,
|
|
41
|
+
cache_creation_input_tokens: response.usage.cache_creation_input_tokens,
|
|
42
|
+
cache_read_input_tokens: response.usage.cache_read_input_tokens,
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=anthropic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,SAAS,MAAM,mBAAmB,CAAA;AAOzC,MAAM,OAAO,iBAAiB;IACnB,OAAO,GAAG,oBAA6B,CAAA;IACxC,MAAM,CAAW;IAEzB,YAAY,IAA2C;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAA2B;QAC7C,MAAM,aAAa,GAA8C;YAC/D,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAoC;YACrD,KAAK,EAAE,MAAM,CAAC,KAAK;gBACjB,CAAC,CAAE,MAAM,CAAC,KAA0B;gBACpC,CAAC,CAAC,SAAS;SACd,CAAA;QAED,sCAAsC;QACtC,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YACxE,aAAqB,CAAC,QAAQ,GAAG;gBAChC,IAAI,EAAE,SAAS;gBACf,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa;aAC7C,CAAA;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAEjE,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAA2C;YAC7D,UAAU,EAAE,QAAQ,CAAC,WAAW,IAAI,UAAU;YAC9C,KAAK,EAAE;gBACL,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;gBACzC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;gBAC3C,2BAA2B,EACxB,QAAQ,CAAC,KAAa,CAAC,2BAA2B;gBACrD,uBAAuB,EACpB,QAAQ,CAAC,KAAa,CAAC,uBAAuB;aAClD;SACF,CAAA;IACH,CAAC;CACF"}
|