#!/usr/bin/env node /** * Dry-run Cursor executor launch plan via Tool Gateway (no agent spawn). * * Usage: * MEMIND_CURSOR_EXECUTOR_ENABLED=1 \ * MEMIND_TOOL_GATEWAY_ENABLED=1 \ * MEMIND_TOOL_GATEWAY_DRY_RUN=1 \ * node scripts/test-cursor-executor-dry-run.mjs */ import { buildCursorExecutorLaunchPlan } from '../cursor-agent-launch.mjs'; import { createToolGateway } from '../tool-gateway.mjs'; const cwd = process.argv[2] ?? process.cwd(); const instruction = process.argv[3] ?? '写一首春日诗,生成精美 HTML 页面 public/spring-poem.html'; process.env.MEMIND_CURSOR_EXECUTOR_ENABLED = process.env.MEMIND_CURSOR_EXECUTOR_ENABLED ?? '1'; process.env.MEMIND_TOOL_GATEWAY_ENABLED = process.env.MEMIND_TOOL_GATEWAY_ENABLED ?? '1'; process.env.MEMIND_TOOL_GATEWAY_DRY_RUN = process.env.MEMIND_TOOL_GATEWAY_DRY_RUN ?? '1'; const gateway = createToolGateway({ env: process.env, llmProviderService: { async getExecutorLaunchPlan(executor, options) { return buildCursorExecutorLaunchPlan({ cwd: options.cwd, instruction: options.instruction, env: process.env, }); }, }, }); const status = gateway.getStatus(); console.log('[cursor-executor-dry-run] gateway status:', JSON.stringify(status, null, 2)); const result = await gateway.executeJob({ runId: 'dry-run-cursor', requestId: 'dry-run-req', userId: 'local-user', cwd, taskType: 'h5_chat_code_task', userMessage: { content: [{ type: 'text', text: instruction }], metadata: { memindRun: { executor: 'cursor', toolMode: 'code', taskType: 'h5_chat_code_task', validation: { expectedFile: { path: 'public/spring-poem.html' }, }, }, }, }, }); console.log('[cursor-executor-dry-run] result:', JSON.stringify(result, null, 2)); if (!result?.ok || result.executor !== 'cursor') { process.exitCode = 1; }