Closes six verified gaps from the 2026-05-17 TS-vs-Rust gap analysis, each build- and test-green: - editor: SetNodeFlip + SetEllipseArc commands (+ set_node_flip / set_ellipse_arc MCP tools) — schema already had the fields, only the command path was missing. - export: export_node_raster crops a raster to one node's bbox; File -> Export is now selection-aware (single selection -> layer). - editor: SVG import — hand-rolled parser (shapes + path M/L/H/V/ C/S/Q/T/Z) in svg_import.rs; cubic curves flatten to dense straight anchors at import time so the renderer/pen-tool stay on their 1:1 straight-segment model. + EditorCommand::ImportSvg + import_svg tool. - mcp: HTTP transport — mcp_serve::run_http serves MCP over a TcpListener (--mcp-http <port> <path>); process_message is shared with the stdio path. - cli: new op-cli crate (binary `op`) — a dependency-free HTTP MCP client driving every tool via `op <tool> key=value...`. - ai: ChatRequest gains thinking/effort fields (ThinkingMode / EffortLevel, defaults Adaptive/Low to match the TS runtime config). MCP tool catalog 77 -> 80. Oversized files split to honour the 800-line cap (svg_import, export, mcp_serve, adapter). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
18 lines
536 B
TOML
18 lines
536 B
TOML
[package]
|
|
name = "op-cli"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
description = "OpenPencil `op` CLI — drives the editor via the HTTP MCP transport"
|
|
|
|
# The binary is `op` (the command users type); the crate is `op-cli`.
|
|
[[bin]]
|
|
name = "op"
|
|
path = "src/main.rs"
|
|
|
|
# Dependency-free: the CLI hand-rolls the HTTP/1.1 request + JSON-RPC
|
|
# body the same way `op-mcp` hand-rolls its wire layer, so `op` builds
|
|
# fast and pulls nothing into the workspace graph.
|
|
[dependencies]
|