dew/packages/mcp/lib/src/commands/serve_command.dart
Chris Hendrickson 0ad1fae213 chore: 1.0 release prep
Metadata:
- Bump dew CLI version 0.0.1 → 1.0.0
- Add repository + issue_tracker URLs to all pubspec.yaml files
- Switch inter-package path deps to versioned deps (^1.0.0)
- Remove publish_to: none from all packages
- Add MIT LICENSE to root and all packages
- Confirm all four pub.dev names available (dew, dew_core, dew_kanban, dew_mcp)

Documentation:
- Add CHANGELOG.md (Keep a Changelog format, full 1.0.0 feature history)
- Overhaul README.md (pitch, pub.dev badge, quick-start, feature sections)
- Add TUI section + full keybinding tables to docs/features/kanban.md
- Add CONTRIBUTING.md (setup, test, lint, branch strategy, command guide)

Tests:
- Add packages/cli/test/cli_test.dart (6 smoke tests)
- Add packages/kanban/test/integration_test.dart (6 TicketStore e2e tests)
- Expand packages/mcp/test/mcp_test.dart (5 tool registration tests)
- Add dew_kanban as dev dependency in packages/mcp/pubspec.yaml
- 57/57 tests passing

Code quality:
- dart format applied across all 23 changed source files
- dart analyze: zero errors, zero warnings

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-25 15:58:54 -04:00

34 lines
956 B
Dart

import 'dart:io' as io;
import 'package:dart_mcp/stdio.dart';
import 'package:dew_core/dew_core.dart';
import '../dew_mcp_server.dart';
class ServeCommand extends DewCommand {
final CommandRegistry _commandRegistry;
ServeCommand(this._commandRegistry);
@override
final String name = 'serve';
@override
final String description =
'Start the Dew MCP server on stdio. '
'Connect your MCP client to this process.';
@override
Future<void> run() async {
// Resolve tools at serve time so all feature packages are already registered.
final tools = _commandRegistry.mcpTools;
io.stderr.writeln(
'Dew MCP server starting — ${tools.length} tool(s) registered.',
);
// stdioChannel subscribes to stdin; do not touch stdin after this point.
// The Dart event loop keeps the process alive until the client disconnects.
DewMcpServer(stdioChannel(input: io.stdin, output: io.stdout), tools);
}
}