shotops-mcp 0.9.4 → 0.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -74,7 +74,7 @@ The key is never copied, printed, or sent to ShotOps, and no release tool is ins
74
74
  - **`panelPresetId`** — App Store size: `r69` (default, 6.9″ iPhone 1290×2796), `r65`, `r55`.
75
75
  **iPhone sizes only** — the iPad presets are deliberately not offered, because no iPad device
76
76
  model exists yet and rendering one would put an iPhone body in an iPad-shaped canvas. The
77
- accepted set is `RENDERABLE_PANEL_PRESET_IDS` in `shotops-mcp/src/panelCatalog.ts`, a subset of
77
+ accepted set is `RENDERABLE_PANEL_PRESET_IDS` in `shotops-mcp/src/render/panelCatalog.ts`, a subset of
78
78
  the hand-kept `PANEL_PRESET_IDS` copy of `mockup-engine/appstore.ts`'s `PANEL_PRESETS` — when
79
79
  Apple revises required sizes, add the preset in the engine first, then mirror it here.
80
80
  - **`style`** — the structured styling input. On both the hosted MCP and the local
@@ -630,29 +630,18 @@ point — connect directly to the hosted server (above) for those.
630
630
  ```
631
631
  shotops-mcp/
632
632
  src/
633
- app.ts the Express app as a pure factory (OAuth AS router + /oauth/callback +
634
- /mcp's per-request auth gate + stateless transport) — driveable in tests
635
- with injected deps; server.ts calls it with the real Supabase-backed ones
636
- server.ts wires app.ts's real deps (Supabase-backed auth/looks/oauth) + listens
637
- auth.ts thin wrapper over the verifyApiToken substrate (covers both shotops_ tokens
638
- and OAuth-minted tokens — both are api_tokens rows)
639
- oauthProvider.ts the OAuth 2.1 Authorization Server (DCR + PKCE + token mint) the SDK's
640
- mcpAuthRouter drives; delegates human login to Supabase Google sign-in
641
- oauthStore.ts OAuth AS persistence (mcp_oauth_clients / mcp_oauth_auth_codes), raw
642
- service-role PostgREST, RLS-on-no-policies like api_tokens/share_links
643
- supabaseLogin.ts the Supabase Google-login leg (server-side PKCE, /oauth/callback)
644
- tools.ts render/bundle/project/look/upload/import/delete handlers + registrar
645
- schemas.ts zod input schemas incl. the structured `style` (no store-credential field exists) + panel presets
646
- renderer.ts StripRenderer — boots Vite (hosted) or the static harness (local) + Chromium once, exposes render(input)
647
- staticServer.ts the tiny node:http static server for harness-dist/ (local mode's serve path)
648
- lookStore.ts per-PROJECT looks + projects resolver (ownership enforced in code; D1 record/pinned_record pair)
649
- shareEmit.ts emit_bundle's server-side share-link creation (reuses Phase-2 modules)
650
- uploads.ts Phase 10 — upload slots, ref ownership check, output:'urls' storage
651
- screenshotInput.ts Phase 10 — resolves screenshots[] (inline/ref/url/path) to base64
652
- env.ts loads ../.env.local; MCP_PORT / STUDIO_ORIGIN / SHOTOPS_AUTH_ORIGIN / MCP_PUBLIC_URL
653
- local.ts the LOCAL npx entry point — stdio transport, no auth required to preview
654
- localDeps.ts the local ToolDeps fork — static-serve renderer, no-op/bridged persistence
655
- hostedBridge.ts local→hosted bridge (a real MCP client using your shotops_ token)
633
+ server.ts hosted HTTP entry point
634
+ local.ts local stdio server and release CLI entry point
635
+ nitroApp.ts Nitro adapter for the hosted app
636
+ packagePaths.ts stable runtime asset anchor for source and bundled execution
637
+ tools/ registration and tool handlers; shared dependency contract
638
+ contracts/ schemas, instructions, result envelopes and tool metadata
639
+ project/ project/Look resolution, persistence and refinement adapters
640
+ render/ screenshot intake, rendering and output delivery
641
+ production/ authorization, charging and durable production workflows
642
+ release/ local release preparation, review, commit and recovery
643
+ auth/ OAuth, caller authentication, consent and anonymous access
644
+ runtime/ server/dependency wiring, process state, environment and widgets
656
645
  harness/ the browser render page Chromium loads (render.js exposes window.renderStrip)
657
646
  vite.config.mjs hosted (Vite dev server) harness config — mirrors mockup-mcp's headless-render setup
658
647
  vite.harness.config.mjs the STATIC harness build (local mode's publish prerequisite) → harness-dist/
@@ -663,3 +652,7 @@ shotops-mcp/
663
652
  static-parity.ts pixel-diffs the static-serve render against the Vite-dev render (must be 0)
664
653
  pack-smoke.ts THE publish gate — npm pack, install OUTSIDE the repo, drive a real render
665
654
  ```
655
+
656
+ Tests and fixtures live beside their subjects. Shared services import each other directly;
657
+ `tools/tools.ts` only registers handlers. Folder placement rules live in
658
+ [the file-moves skill](../.claude/skills/file-moves/SKILL.md#mcp-source-folder-placement).