Skip to content

feat(sdk): expose Project.getCanvasLayout and full ScreenData metadata (#365, #138) (3 of 3) - #379

Open
davideast wants to merge 1 commit into
fix/issue-361-edit-screen-freshnessfrom
feat/issue-365-138-canvas-layout-and-screen-metadata
Open

davideast wants to merge 1 commit into
fix/issue-361-edit-screen-freshnessfrom
feat/issue-365-138-canvas-layout-and-screen-metadata

Conversation

@davideast

Copy link
Copy Markdown
Collaborator

Summary (PR 3 of 3 — Tier 3 Issues #365 & #138)

Stacks on #378 (fix/issue-361-edit-screen-freshness).

  1. Resolves feat: Add canvas layout sync API for screenInstances (position, label, add/remove) #365 (get_project binding & Project.getCanvasLayout()):
    • Binds the get_project MCP tool to Project.get() in domain-map.json to hydrate full ProjectData (including screenInstances and designTheme).
    • Adds Project.prototype.getCanvasLayout() (packages/sdk/src/project-ext.ts + packages/sdk/src/spec/canvas.ts) which returns normalized CanvasScreenInstance[] items with extracted screenId, canvas coordinates (x, y), dimensions (width, height), deviceType, label, and hidden state.
  2. Resolves get_screen returns incomplete screen data — missing theme, designMd, screenMetadata #138 (Complete ScreenData schema & getters on Screen):
    • Expands ScreenData in scripts/generate-sdk.ts to include width, height, deviceType, screenType, generatedBy, prompt, theme, designSystem, and screenMetadata, and generates typed getters on Screen (screen.width, screen.height, screen.deviceType, screen.screenType, screen.screenMetadata).

Verification

  • Added packages/sdk/test/unit/issue-365-138-canvas-and-metadata.test.ts (RED -> GREEN).
  • Added Project.get fixture to packages/sdk/test/unit/response-fixtures.test.ts.
  • Verified bun run generate, bun run typecheck, bun run validate:generated, bun run test:scripts, bun run check:skills, and bun run test:coverage (45 test files, 368 tests passing).

Closes #365
Closes #138

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant