import 'dart:async'; import 'dart:io'; import 'package:desktop_plugin/agent.dart'; /// headless 入口(开发联调用,行为对齐 C# 版控制台助手): /// dart run bin/agent.dart [--mock] [--port 38203] Future main(List args) async { final agent = Agent(AgentOptions.parse(args)); try { await agent.start(); } catch (e) { stderr.writeln('启动失败:$e'); exit(1); } final done = Completer(); final subs = [ ProcessSignal.sigint.watch().listen((_) { if (!done.isCompleted) done.complete(); }), ProcessSignal.sigterm.watch().listen((_) { if (!done.isCompleted) done.complete(); }), ]; await done.future; for (final sub in subs) { await sub.cancel(); } await agent.stop(); exit(0); }