Commit graph

13 commits

Author SHA1 Message Date
Danila Poyarkov f90e1400b7 P2P collaboration: cursors, follow mode, cleanup
- Broadcast cursor position from canvas mouse move via awareness
- Broadcast selection changes via reactive watcher on selectedIds
- Follow mode: click peer avatar to track their viewport (pan + zoom)
- Zoom broadcast via watcher on store.state.zoom, not just mouse move
- Figma-style cursor arrows: colored fill, white border, name pill
- Stale cursor cleanup: removeAwarenessStates on peer leave
- MQTT signaling (replace Nostr), STUN + TURN ICE servers
- Collab constants extracted to src/constants.ts
- crypto.getRandomValues() replaces Math.random() everywhere
- Provide/inject for collab composable (COLLAB_KEY)
- Update README (collab section, tech stack), CHANGELOG, AGENTS.md
- AGENTS.md: release process, CI workflows, documentation guidelines
2026-03-01 18:11:07 +03:00
Danila Poyarkov 3849872b32 Unify tool definitions: define once, adapt for AI/CLI/MCP
Move tool logic to @open-pencil/core/tools/schema.ts as framework-agnostic
ToolDef objects. AI adapter generates valibot schemas + Vercel AI tool()
wrappers automatically.

26 tools (was 10): create_shape, render (JSX), set_fill, set_stroke,
set_effects, set_layout, set_constraints, update_node, delete, clone,
rename, reparent, group/ungroup, find_nodes, get_node, get_page_tree,
get_selection, select, list_pages, switch_page, list_variables,
list_collections, create_component, create_instance, eval.

src/ai/tools.ts: 269→28 lines (adapter only).

Tests for all 3 interfaces:
- 26 core tool tests (FigmaAPI directly)
- 11 AI adapter tests (valibot + Vercel AI SDK tool())
- 12 CLI integration tests (eval command on .fig fixture)
323 total, all passing.
2026-03-01 15:02:05 +03:00
Danila Poyarkov 46bb9230d3 Add jscpd for copy-paste detection 2026-03-01 10:49:09 +03:00
Danila Poyarkov 6bc3f7c50d Use git push --no-verify for LFS, drop custom alias 2026-03-01 10:41:16 +03:00
Danila Poyarkov dc602b0731 Document git qpush alias for fast LFS-skipping pushes 2026-03-01 10:39:57 +03:00
Danila Poyarkov cae260c178 Document LFS skipverify setting 2026-03-01 10:36:00 +03:00
Danila Poyarkov 9873580a04 Reference plan.md from AGENTS.md 2026-03-01 10:19:38 +03:00
Danila Poyarkov 36e3f14ac4 CLI: add analyze, node, pages, and variables commands
- analyze colors: color palette usage with clustering
- analyze typography: font/size/weight distribution
- analyze spacing: gap/padding values with grid check
- analyze clusters: repeated patterns (potential components)
- node: detailed properties by ID
- pages: list pages with node counts
- variables: list design variables and collections
2026-03-01 10:19:38 +03:00
Danila Poyarkov 97428949fc Update README and AGENTS.md for monorepo structure and CLI 2026-03-01 01:28:24 +03:00
Danila Poyarkov d1979473c3 Add figma-use reference to AGENTS.md 2026-02-28 23:27:36 +03:00
Danila Poyarkov 7a803772a5 Expand AGENTS.md with lessons from all project sessions
Added from ~/Development sessions: scene graph behaviors,
auto-layout gotchas, section/frame rendering rules, .fig
round-trip testing, Tauri permissions, icon conventions,
ScrubInput cursor handling, culori usage, vueuse hooks.
2026-02-28 23:23:46 +03:00
Danila Poyarkov 199520ae86 Expand AGENTS.md with lessons from all sessions 2026-02-28 23:22:07 +03:00
Danila Poyarkov fdb3fec236 Add AGENTS.md 2026-02-28 23:18:55 +03:00