@anthropic-ai/sdk
Version:
The official TypeScript library for the Anthropic API
29 lines (24 loc) • 904 B
text/typescript
import { BetaRunnableTool, Promisable } from '../../lib/tools/BetaRunnableTool';
import { BetaMemoryTool20250818Command, BetaToolResultContentBlockParam } from '../../resources/beta';
type Command = BetaMemoryTool20250818Command['command'];
export type MemoryToolHandlers = {
[K in Command]: (
command: Extract<BetaMemoryTool20250818Command, { command: K }>,
) => Promisable<string | Array<BetaToolResultContentBlockParam>>;
};
export function betaMemoryTool(
handlers: MemoryToolHandlers,
): BetaRunnableTool<BetaMemoryTool20250818Command> {
return {
type: 'memory_20250818',
name: 'memory',
parse: (content) => content as BetaMemoryTool20250818Command,
run: (args) => {
const handler = handlers[args.command];
if (!handler) {
throw new Error(`${args.command} not implemented`);
}
return handler.bind(handlers)(args as any);
},
};
}