Files
ask262/.opencode/tools/ask262-evaluate-in-engine262.ts
T

34 lines
1.3 KiB
TypeScript

/**
* OpenCode custom tool: ask262_evaluate_in_engine262
* Executes JavaScript code in the engine262 engine and captures spec sections.
*/
import { tool } from "@opencode-ai/plugin";
import { createEvaluateInEngine262Tool } from "../../src/agent-tools";
export default tool({
description:
"Executes JavaScript code in the engine262 JavaScript engine and captures which ECMAScript specification sections are hit during execution. " +
"Returns JSON with importantSections and otherSections arrays. " +
"Use this to understand how specific JavaScript operations map to the ECMAScript spec. " +
"ask262Debug is available globally in the execution context (no import needed). " +
"Use ask262Debug.startImportant() and ask262Debug.stopImportant() to mark important sections. " +
"Example: ask262Debug.startImportant(); let x = 1 + 2; ask262Debug.stopImportant();",
args: {
code: tool.schema
.string()
.describe(
"JavaScript code to execute in engine262 (e.g., '[1,2,3].map(x => x * 2)')",
),
},
async execute(args) {
const { code } = args;
// Create and execute tool (no external dependencies needed)
const evaluateTool = createEvaluateInEngine262Tool();
const result = await evaluateTool.func({ code });
return result;
},
});