mirror of
https://github.com/harivansh-afk/clanker-agent.git
synced 2026-04-15 17:00:58 +00:00
- Copy all pi-mono source into apps/companion-os/ - Update Dockerfile to COPY pre-built binary instead of downloading from GitHub Releases - Update deploy-staging.yml to build pi from source (bun compile) before Docker build - Add apps/companion-os/** to path triggers - No more cross-repo dispatch needed Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import { type Static, Type } from "@sinclair/typebox";
|
|
import type { AgentTool, AgentToolResult } from "../../src/types.js";
|
|
|
|
export interface CalculateResult extends AgentToolResult<undefined> {
|
|
content: Array<{ type: "text"; text: string }>;
|
|
details: undefined;
|
|
}
|
|
|
|
export function calculate(expression: string): CalculateResult {
|
|
try {
|
|
const result = new Function(`return ${expression}`)();
|
|
return {
|
|
content: [{ type: "text", text: `${expression} = ${result}` }],
|
|
details: undefined,
|
|
};
|
|
} catch (e: any) {
|
|
throw new Error(e.message || String(e));
|
|
}
|
|
}
|
|
|
|
const calculateSchema = Type.Object({
|
|
expression: Type.String({
|
|
description: "The mathematical expression to evaluate",
|
|
}),
|
|
});
|
|
|
|
type CalculateParams = Static<typeof calculateSchema>;
|
|
|
|
export const calculateTool: AgentTool<typeof calculateSchema, undefined> = {
|
|
label: "Calculator",
|
|
name: "calculate",
|
|
description: "Evaluate mathematical expressions",
|
|
parameters: calculateSchema,
|
|
execute: async (_toolCallId: string, args: CalculateParams) => {
|
|
return calculate(args.expression);
|
|
},
|
|
};
|