openpencil/apps/web/server/api/mcp
Fini 4a75b53c45 feat(ai): add_date_picker_v0 — date input closed state (62nd tool)
Adds an N-tool for the labeled date input + calendar-icon trigger.
Emits ONLY the CLOSED state; the open month grid lives in
add_calendar_grid_v0 and is typically shown inside a popover,
not stacked directly below. Two visual states:

- placeholder (no value): slate-400 "Select date" + calendar icon
- populated (value): slate-900 date text + calendar icon

`clearable: true` adds a small X affordance to the right of the
value (only when value is present — no-op for the placeholder
state since there's nothing to clear). `required: true` appends
" *" to the label.

Keeping closed + open as separate tools is intentional: AI specs
often ask for only the closed trigger inside a form, and a single
combined tool would either force an unwanted grid or require a
mode flag that splits the parameter surface. Separate narrow tools
compose cleanly via batch_design when a designer DOES want both.

Wired through all 3 paths + parity/contract/design-prompt tests.
Handler test covers 7 cases: placeholder state fills, populated
value fills, clearable X behaviors (both present + absent value),
custom placeholder override, required marker, bogus parent_id
rejection.
2026-04-22 09:45:00 +08:00
..
codegen V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
active-ping.post.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
document.get.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
document.post.ts V0.7.1 (#102) 2026-04-13 21:30:23 +08:00
events.get.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
exec-tool.post.ts feat(ai): add_date_picker_v0 — date input closed state (62nd tool) 2026-04-22 09:45:00 +08:00
read-nodes.post.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
screenshot-response.post.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
screenshot.post.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
selection.get.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
selection.post.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
server.get.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
server.post.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
sync-reset.post.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00