Cursor Agent
commited on
Commit
·
073aa17
1
Parent(s):
24755ba
Deploy viewer for DynamicIntelligence/humanoid-robots-training-dataset
Browse files- Dockerfile +1 -1
- README.md +2 -2
- next.config.ts +2 -0
- src/app/api/test-token/route.ts +37 -0
- src/app/page.tsx +1 -1
Dockerfile
CHANGED
|
@@ -20,7 +20,7 @@ COPY . .
|
|
| 20 |
|
| 21 |
# Environment configuration for our dataset + Hugging Face Space port
|
| 22 |
ENV PORT=7860
|
| 23 |
-
ENV REPO_ID="
|
| 24 |
|
| 25 |
# Build the Next.js app
|
| 26 |
RUN npm run build
|
|
|
|
| 20 |
|
| 21 |
# Environment configuration for our dataset + Hugging Face Space port
|
| 22 |
ENV PORT=7860
|
| 23 |
+
ENV REPO_ID="DynamicIntelligence/humanoid-robots-training-dataset"
|
| 24 |
|
| 25 |
# Build the Next.js app
|
| 26 |
RUN npm run build
|
README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
---
|
| 2 |
-
title:
|
| 3 |
emoji: 🎥
|
| 4 |
colorFrom: blue
|
| 5 |
colorTo: indigo
|
|
@@ -8,7 +8,7 @@ license: mit
|
|
| 8 |
pinned: false
|
| 9 |
---
|
| 10 |
|
| 11 |
-
#
|
| 12 |
|
| 13 |
This Space embeds the official **LeRobot Dataset Visualizer** so we get the exact same UI/UX as the `lerobot/visualize_dataset` Space, but it is pre-configured to load our dataset `raffaelkultyshev/mini_tug_tape_to_bowl`. Videos, language instructions, and 6DoF plots all stream directly from the dataset repository—no local cache required.
|
| 14 |
|
|
|
|
| 1 |
---
|
| 2 |
+
title: Mini-TUG Hand Pose Viewer
|
| 3 |
emoji: 🎥
|
| 4 |
colorFrom: blue
|
| 5 |
colorTo: indigo
|
|
|
|
| 8 |
pinned: false
|
| 9 |
---
|
| 10 |
|
| 11 |
+
# Mini-TUG Hand Pose Viewer (LeRobot UI)
|
| 12 |
|
| 13 |
This Space embeds the official **LeRobot Dataset Visualizer** so we get the exact same UI/UX as the `lerobot/visualize_dataset` Space, but it is pre-configured to load our dataset `raffaelkultyshev/mini_tug_tape_to_bowl`. Videos, language instructions, and 6DoF plots all stream directly from the dataset repository—no local cache required.
|
| 14 |
|
next.config.ts
CHANGED
|
@@ -5,6 +5,8 @@ const nextConfig: NextConfig = {
|
|
| 5 |
env: {
|
| 6 |
REPO_ID: process.env.REPO_ID,
|
| 7 |
EPISODES: process.env.EPISODES,
|
|
|
|
|
|
|
| 8 |
},
|
| 9 |
typescript: {
|
| 10 |
ignoreBuildErrors: true,
|
|
|
|
| 5 |
env: {
|
| 6 |
REPO_ID: process.env.REPO_ID,
|
| 7 |
EPISODES: process.env.EPISODES,
|
| 8 |
+
// Note: HF_TOKEN should be available at runtime via process.env in API routes
|
| 9 |
+
// We don't expose it to client-side via NEXT_PUBLIC_ for security
|
| 10 |
},
|
| 11 |
typescript: {
|
| 12 |
ignoreBuildErrors: true,
|
src/app/api/test-token/route.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { NextRequest, NextResponse } from 'next/server';
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
* Test endpoint to check if HF_TOKEN is available
|
| 5 |
+
* Useful for debugging token configuration
|
| 6 |
+
*/
|
| 7 |
+
export async function GET(request: NextRequest) {
|
| 8 |
+
const token =
|
| 9 |
+
process.env.HF_TOKEN ||
|
| 10 |
+
process.env.HUGGINGFACE_TOKEN ||
|
| 11 |
+
process.env.HF_API_TOKEN ||
|
| 12 |
+
process.env.HUGGING_FACE_HUB_TOKEN ||
|
| 13 |
+
null;
|
| 14 |
+
|
| 15 |
+
const envKeys = Object.keys(process.env).filter(k =>
|
| 16 |
+
k.includes('HF') || k.includes('TOKEN') || k.includes('HUGGING')
|
| 17 |
+
);
|
| 18 |
+
|
| 19 |
+
return NextResponse.json({
|
| 20 |
+
tokenFound: !!token,
|
| 21 |
+
tokenLength: token ? token.length : 0,
|
| 22 |
+
tokenPrefix: token ? token.substring(0, 10) + '...' : null,
|
| 23 |
+
checkedVariables: [
|
| 24 |
+
'HF_TOKEN',
|
| 25 |
+
'HUGGINGFACE_TOKEN',
|
| 26 |
+
'HF_API_TOKEN',
|
| 27 |
+
'HUGGING_FACE_HUB_TOKEN'
|
| 28 |
+
],
|
| 29 |
+
availableEnvVars: envKeys,
|
| 30 |
+
allEnvVarsCount: Object.keys(process.env).length,
|
| 31 |
+
}, {
|
| 32 |
+
headers: {
|
| 33 |
+
'Cache-Control': 'no-store',
|
| 34 |
+
}
|
| 35 |
+
});
|
| 36 |
+
}
|
| 37 |
+
|
src/app/page.tsx
CHANGED
|
@@ -19,7 +19,7 @@ function HomeInner() {
|
|
| 19 |
// Handle redirects with useEffect instead of direct redirect
|
| 20 |
useEffect(() => {
|
| 21 |
// Redirect to our dataset directly
|
| 22 |
-
const REPO_ID = "
|
| 23 |
router.push(`/${REPO_ID}/episode_0`);
|
| 24 |
|
| 25 |
// legacy sync with hf.co/spaces URL params
|
|
|
|
| 19 |
// Handle redirects with useEffect instead of direct redirect
|
| 20 |
useEffect(() => {
|
| 21 |
// Redirect to our dataset directly
|
| 22 |
+
const REPO_ID = "DynamicIntelligence/humanoid-robots-training-dataset";
|
| 23 |
router.push(`/${REPO_ID}/episode_0`);
|
| 24 |
|
| 25 |
// legacy sync with hf.co/spaces URL params
|