Create the Tool Broker service skeleton as a Cargo workspace member: - Tonic gRPC server with DiscoverTools, ExecuteTool, ValidateCall stubs - TOML config loading (host, port, manifest_dir, audit/secrets addrs) - Server-streaming support for ExecuteTool via ReceiverStream - 8 tests (5 config, 3 service stub) passing, clippy clean Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.3 KiB
1.3 KiB
Implementation Plan — Issue #51: Scaffold Tool Broker Rust project
Metadata
| Field | Value |
|---|---|
| Issue | #51 |
| Title | Scaffold Tool Broker Rust project |
| Milestone | Phase 7: Tool Broker |
| Labels | — |
| Status | COMPLETED |
| Language | Rust |
| Related Plans | issue-014.md, issue-016.md |
| Blocked by | #16 |
Acceptance Criteria
- Cargo workspace member created (
services/tool-broker/) - Dependency on proto-gen crate
- Tonic gRPC server boilerplate compiles
- Configuration loading (address, port, manifest paths, enforcement config)
- Health check endpoint responds (stub endpoints respond with Unimplemented)
Files to Create/Modify
| File | Action | Purpose |
|---|---|---|
services/tool-broker/Cargo.toml |
Create | Package manifest |
services/tool-broker/src/main.rs |
Create | Server bootstrap |
services/tool-broker/src/lib.rs |
Create | Module exports |
services/tool-broker/src/config.rs |
Create | TOML config loading |
services/tool-broker/src/service.rs |
Create | gRPC trait impl stubs |
Cargo.toml |
Modify | Add workspace member |
Deviation Log
| Deviation | Reason |
|---|---|
| Port 50057 chosen | Follows convention: audit=50052, secrets=50053, memory=50054, model-gateway=50055, search=50056 |