[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-94771":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":14,"stars30d":14,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":15,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":16,"fork":16,"defaultBranch":17,"hasWiki":18,"hasPages":16,"topics":19,"createdAt":9,"pushedAt":9,"updatedAt":20,"readmeContent":21,"aiSummary":22,"trendingCount":14,"starSnapshotCount":14,"syncStatus":12,"lastSyncTime":23,"discoverSource":24},94771,"pose-studio","kutaaimaterial-byte\u002Fpose-studio","kutaaimaterial-byte","A browser-based pose reference tool built with Codex",null,"TypeScript",71,2,1,0,38.43,false,"main",true,[],"2026-08-24 04:01:22","# vinext-starter\n\nA clean full-stack starter running on\n[vinext](https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fvinext), with optional Cloudflare D1 and\nDrizzle support.\n\n## Prerequisites\n\n- Node.js `>=22.13.0`\n\n## Quick Start\n\n```bash\nnpm install\nnpm run dev\nnpm run build\n```\n\nThis starter does not use `wrangler.jsonc`.\n\n## Included Shape\n\n- edit site code under `app\u002F`\n- `.openai\u002Fhosting.json` declares optional Sites D1 and R2 bindings\n- `vite.config.ts` simulates declared bindings for local development\n- `db\u002Fschema.ts` starts intentionally empty\n- `examples\u002Fd1\u002F` contains an optional D1 example surface\n- `drizzle.config.ts` supports local migration generation when needed\n\n## Workspace Auth Headers\n\nSigned-in visitors receive both `oai-authenticated-user-id` and `oai-authenticated-user-email`. Private Sites require every visitor to sign in; public Sites may also have anonymous visitors, for whom neither header is present.\n\nThe user ID is stable for the same user on the same Site and different across Sites. Email and name are intended for display or contact purposes.\n\nSIWC-authenticated workspace sites may also receive\n`oai-authenticated-user-full-name` when the user's SIWC profile has a non-empty\n`name` claim. The full-name value is percent-encoded UTF-8 and is accompanied by\n`oai-authenticated-user-full-name-encoding: percent-encoded-utf-8`.\n\nTreat the full name as optional and fall back to email when it is absent:\n\n```tsx\nimport { headers } from \"next\u002Fheaders\";\n\nexport default async function Home() {\n  const requestHeaders = await headers();\n  const userId = requestHeaders.get(\"oai-authenticated-user-id\");\n  const email = requestHeaders.get(\"oai-authenticated-user-email\");\n  const encodedFullName = requestHeaders.get(\"oai-authenticated-user-full-name\");\n  const fullName =\n    encodedFullName &&\n    requestHeaders.get(\"oai-authenticated-user-full-name-encoding\") ===\n      \"percent-encoded-utf-8\"\n      ? decodeURIComponent(encodedFullName)\n      : null;\n\n  const displayName = fullName ?? email;\n  \u002F\u002F ...\n}\n```\n\n## Optional Dispatch-Owned ChatGPT Sign-In\n\nImport the ready-to-use helpers from `app\u002Fchatgpt-auth.ts` when the site needs\noptional or required ChatGPT sign-in:\n\n- Use `getChatGPTUser()` for optional signed-in UI.\n- Use `requireChatGPTUser(returnTo)` for server-rendered pages that should send\n  anonymous visitors through Sign in with ChatGPT.\n- Use `chatGPTSignInPath(returnTo)` and `chatGPTSignOutPath(returnTo)` for\n  browser links or actions.\n- Pass a same-origin relative `returnTo` path for the destination after sign-in\n  or sign-out. The helper validates and safely encodes it.\n- Mark protected pages with `export const dynamic = \"force-dynamic\"` because\n  they depend on per-request identity headers.\n\nDispatch owns `\u002Fsignin-with-chatgpt`, `\u002Fsignout-with-chatgpt`, `\u002Fcallback`, the\nOAuth cookies, and identity header injection. Do not implement app routes for\nthose reserved paths. Routes that do not import and call the helper remain\nanonymous-compatible.\n\nSIWC establishes identity only; it does not prove workspace membership. Use the\nSites hosting platform's access policy controls for workspace-wide restrictions,\nor enforce explicit server-side membership or allowlist checks.\n\nUse SIWC for account pages, user-specific dashboards, saved records, and write\nactions tied to the current ChatGPT user. Leave public content anonymous.\n\n## Useful Commands\n\n- `npm run dev`: start local development\n- `npm run build`: verify the vinext build output\n- `npm test`: build the starter and verify its rendered loading skeleton\n- `npm run db:generate`: generate Drizzle migrations after schema changes\n\n## Learn More\n\n- [vinext Documentation](https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fvinext)\n- [Drizzle D1 Guide](https:\u002F\u002Form.drizzle.team\u002Fdocs\u002Fget-started\u002Fd1-new)\n","这是一个基于浏览器的姿势参考工具，用于辅助数字绘画、3D建模或动画制作中的角色姿态构思与比对。项目采用TypeScript开发，依托Codex框架构建轻量级Web应用，支持本地运行与快速部署，无需后端依赖；提供姿态图像上传、网格叠加、镜像翻转、角度标注等核心功能，并具备响应式界面与离线可用性。适用于插画师、概念设计师、动画师及美术学习者在创作过程中实时调用多角度人体\u002F角色姿态参考。","2026-08-15 02:30:13","CREATED_QUERY"]