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>
34 lines
956 B
Dart
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);
|
|
}
|
|
}
|