summaryrefslogtreecommitdiffhomepage
path: root/js/src/tool/tool.ts
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-05-30 20:47:56 -0400
committerDax Raad <[email protected]>2025-05-30 20:48:36 -0400
commitf3da73553c45f17e04b1e77cb13eb0fca714d1bd (patch)
treea24317a19e1ab2a89da50db669dc6894f15d00d1 /js/src/tool/tool.ts
parent9a26b3058ffc1023e5c7e54b6d571c903d15888e (diff)
downloadopencode-f3da73553c45f17e04b1e77cb13eb0fca714d1bd.tar.gz
opencode-f3da73553c45f17e04b1e77cb13eb0fca714d1bd.zip
sync
Diffstat (limited to 'js/src/tool/tool.ts')
-rw-r--r--js/src/tool/tool.ts61
1 files changed, 0 insertions, 61 deletions
diff --git a/js/src/tool/tool.ts b/js/src/tool/tool.ts
deleted file mode 100644
index 0cd65e007..000000000
--- a/js/src/tool/tool.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-import { tool, type Tool as AITool } from "ai";
-import { Log } from "../util/log";
-
-const log = Log.create({ service: "tool" });
-
-export namespace Tool {
- export interface Metadata<
- Properties extends Record<string, any> = Record<string, any>,
- > {
- properties: Properties;
- time: {
- start: number;
- end: number;
- };
- }
- export function define<
- Params,
- Output extends { metadata?: any; output: any },
- Name extends string,
- >(
- input: AITool<Params, Output> & {
- name: Name;
- },
- ) {
- return tool({
- ...input,
- execute: async (params, opts) => {
- log.info("invoking", {
- id: opts.toolCallId,
- name: input.name,
- ...params,
- });
- try {
- const start = Date.now();
- const result = await input.execute!(params, opts);
- const metadata: Metadata<Output["metadata"]> = {
- ...result.metadata,
- time: {
- start,
- end: Date.now(),
- },
- };
- return {
- metadata,
- output: result.output,
- };
- } catch (e: any) {
- log.error("error", {
- msg: e.toString(),
- });
- return {
- metadata: {
- error: true,
- },
- output: "An error occurred: " + e.toString(),
- };
- }
- },
- });
- }
-}