{"id":"3783dfcd-92f6-4e2e-b61c-9dbf5d1dddb8","entityType":"agent","slug":"clawhub-xiaohao17501671450-lgtm-aholo-3dgs-recon-global","name":"Aholo 3DGS reconstruction and generation","canonicalUrl":"https://www.xpersona.co/agent/clawhub-xiaohao17501671450-lgtm-aholo-3dgs-recon-global","canonicalPath":"/agent/clawhub-xiaohao17501671450-lgtm-aholo-3dgs-recon-global","generatedAt":"2026-10-11T14:18:02.562Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T10:24:22.681Z","emptyReason":null},"description":"Aholo OpenAPI v1 global 3D tasks (reconstruction/generation): upload, create (worldId), poll/status. Gateway api.aholo3d.com, /global/world/v1. Default one create per single intent; multiple creates allowed when user explicitly chooses separate 3DGS per video. Not for 2D.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s171wqydbqtnq088xdcr8bz1v587221z:aholo-3dgs-recon-global","sourceUrl":"https://clawhub.ai/xiaohao17501671450-lgtm/aholo-3dgs-recon-global","homepage":"https://clawhub.ai/xiaohao17501671450-lgtm/skills/aholo-3dgs-recon-global","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/xiaohao17501671450-lgtm/aholo-3dgs-recon-global","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/xiaohao17501671450-lgtm/skills/aholo-3dgs-recon-global","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Aholo 3DGS reconstruction and generation technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T10:24:22.681Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T10:24:22.681Z","emptyReason":null},"stars":null,"forks":null,"downloads":1088,"packageName":null,"latestVersion":"1.0.7","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T10:24:22.620Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T10:24:22.681Z","lastCrawledAt":"2026-10-11T10:24:22.620Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T10:24:22.620Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.7","createdAt":"2026-07-03T07:39:47.370Z","changelog":"aholo-3dgs-recon-global 1.0.7 - Added compiled Python bytecode file (__pycache__/aholo_reconstruct.cpython-310.pyc). - Removed documentation file (skill-card.md). - SKILL.md updated to clarify TLS/SSL handling: now enables SSL verification by default; added instructions for using enterprise CA certs or disabling verification only when needed. - No functional changes to core logic.","fileCount":5,"zipByteSize":16949},{"version":"1.0.6","createdAt":"2026-06-30T11:21:43.923Z","changelog":"No user-facing changes. - No file changes detected in this release. - Documentation, API, and behavior remain as in the previous version.","fileCount":5,"zipByteSize":16953},{"version":"1.0.5","createdAt":"2026-06-30T09:51:17.610Z","changelog":"aholo-3dgs-recon-global 1.0.5 - No visible user-facing or file changes detected in this version. - Skill documentation, API usage, user flows, and agent constraints remain unchanged.","fileCount":5,"zipByteSize":16804},{"version":"1.0.4","createdAt":"2026-06-30T08:40:58.286Z","changelog":"- Added metadata and documentation files: .clawhub/origin.json, _meta.json, and skill-card.md. - No changes to core logic or functionality. - Documentation and packaging improvements only.","fileCount":5,"zipByteSize":16820},{"version":"1.0.3","createdAt":"2026-06-30T04:38:09.850Z","changelog":"**Add TLS, error, and multi-param updates; improve 3D intent and prompt flow.** - Added files: .clawhub/origin.json, _meta.json (infrastructure/metadata). - Extended 2D vs 3D intent clarification, with concrete prompt examples. - Introduced `useMask` option for reconstruction; must confirm `scene`, `taskQuality`, and `useMask` together initially. - Clarified TLS/SSL script defaults and new environment variables for verification control. - Updated user prompts: all reconstruction parameters are asked in one simultaneous round (not split). - Changed credits error link to www.aholo3d.com/pricing. - Described OpenAPI response format and error codes in detail. - Minor clarifications: multi-video flow, parameter guarding (`forbidCreate`), and filetype rules.","fileCount":5,"zipByteSize":16840},{"version":"1.0.2","createdAt":"2026-05-21T11:39:45.570Z","changelog":"- Initial requirements.txt added to manage Python dependencies. - Documentation (SKILL.md) streamlined: updated usage instructions, emphasized distinction between 2D and 3D tasks, clarified user prompts and API interaction. - Added explicit rules and user flow for handling multiple video uploads (single 3DGS vs separate per video), including agent behavior for avoiding duplicate or unwanted create operations. - Refined instructions for when and how to confirm parameters (scene, taskQuality) and clarified polling, linking, and error messaging procedures. - Clarified API endpoint details, authentication, and credit/limit handling.","fileCount":5,"zipByteSize":13846},{"version":"1.0.1","createdAt":"2026-05-20T11:25:23.295Z","changelog":"- Initial release — support for global 3D reconstruction and generation tasks via Aholo OpenAPI v1. - Added script execution flow for uploading assets, creating tasks (reconstruction/generation), polling status, and fetching model files (PLY/SPZ/SOG). - Uses global API gateway (api.aholo3d.com) and /global/world/v1 routes. - Clarified skill restrictions: not for 2D image-only tasks; 3D intent confirmation required before creation. - Agent guidance: ensures only one task creation per user order, requires explicit user choices for parameters, and polling is strictly user-directed. - No logic or behavior changes; only a compiled Python file (.pyc) was added in this version.","fileCount":3,"zipByteSize":13604},{"version":"1.0.0","createdAt":"2026-05-20T08:42:37.954Z","changelog":"aholo-reconstruct v1.0.0 - Initial release for global 3D reconstruction tasks using Aholo OpenAPI v1. - Supports uploading assets, creating tasks (reconstruction/generation), polling status, and fetching model files (PLY/SPZ/SOG) via api.aholo3d.com and /global prefix routes. - Explicitly separated from China site; defaults to global endpoints and region. - Enforces strict parameters and user confirmations for scene, taskQuality, and site choice. - Designed only for 3D tasks (worldId-based); not for 2D image generation or use with China region.","fileCount":3,"zipByteSize":12523}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s171wqydbqtnq088xdcr8bz1v587221z:aholo-3dgs-recon-global","setupComplexity":"medium","setupSteps":["Install using `clawhub skill install s171wqydbqtnq088xdcr8bz1v587221z:aholo-3dgs-recon-global` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/xiaohao17501671450-lgtm/aholo-3dgs-recon-global before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-xiaohao17501671450-lgtm-aholo-3dgs-recon-global/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-xiaohao17501671450-lgtm-aholo-3dgs-recon-global/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-xiaohao17501671450-lgtm-aholo-3dgs-recon-global/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-xiaohao17501671450-lgtm-aholo-3dgs-recon-global/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-xiaohao17501671450-lgtm-aholo-3dgs-recon-global/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-xiaohao17501671450-lgtm-aholo-3dgs-recon-global/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T14:18:02.560Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-xiaohao17501671450-lgtm-aholo-3dgs-recon-global/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-xiaohao17501671450-lgtm-aholo-3dgs-recon-global/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-xiaohao17501671450-lgtm-aholo-3dgs-recon-global/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-xiaohao17501671450-lgtm-aholo-3dgs-recon-global/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T10:24:22.681Z","emptyReason":null},"readme":"Skill: Aholo 3DGS reconstruction and generation\n\nOwner: xiaohao17501671450-lgtm\n\nSummary: Aholo OpenAPI v1 global 3D tasks (reconstruction/generation): upload, create (worldId), poll/status. Gateway api.aholo3d.com, /global/world/v1. Default one create per single intent; multiple creates allowed when user explicitly chooses separate 3DGS per video. Not for 2D.\n\nTags: latest:1.0.7\n\nVersion history:\n\nv1.0.7 | 2026-07-03T07:39:47.370Z | user\n\naholo-3dgs-recon-global 1.0.7\n\n- Added compiled Python bytecode file (__pycache__/aholo_reconstruct.cpython-310.pyc).\n- Removed documentation file (skill-card.md).\n- SKILL.md updated to clarify TLS/SSL handling: now enables SSL verification by default; added instructions for using enterprise CA certs or disabling verification only when needed.\n- No functional changes to core logic.\n\nv1.0.6 | 2026-06-30T11:21:43.923Z | user\n\nNo user-facing changes.\n\n- No file changes detected in this release.\n- Documentation, API, and behavior remain as in the previous version.\n\nv1.0.5 | 2026-06-30T09:51:17.610Z | user\n\naholo-3dgs-recon-global 1.0.5\n\n- No visible user-facing or file changes detected in this version.\n- Skill documentation, API usage, user flows, and agent constraints remain unchanged.\n\nv1.0.4 | 2026-06-30T08:40:58.286Z | user\n\n- Added metadata and documentation files: .clawhub/origin.json, _meta.json, and skill-card.md.\n- No changes to core logic or functionality.\n- Documentation and packaging improvements only.\n\nv1.0.3 | 2026-06-30T04:38:09.850Z | user\n\n**Add TLS, error, and multi-param updates; improve 3D intent and prompt flow.**\n\n- Added files: .clawhub/origin.json, _meta.json (infrastructure/metadata).\n- Extended 2D vs 3D intent clarification, with concrete prompt examples.\n- Introduced `useMask` option for reconstruction; must confirm `scene`, `taskQuality`, and `useMask` together initially.\n- Clarified TLS/SSL script defaults and new environment variables for verification control.\n- Updated user prompts: all reconstruction parameters are asked in one simultaneous round (not split).\n- Changed credits error link to www.aholo3d.com/pricing.\n- Described OpenAPI response format and error codes in detail.\n- Minor clarifications: multi-video flow, parameter guarding (`forbidCreate`), and filetype rules.\n\nv1.0.2 | 2026-05-21T11:39:45.570Z | user\n\n- Initial requirements.txt added to manage Python dependencies.\n- Documentation (SKILL.md) streamlined: updated usage instructions, emphasized distinction between 2D and 3D tasks, clarified user prompts and API interaction.\n- Added explicit rules and user flow for handling multiple video uploads (single 3DGS vs separate per video), including agent behavior for avoiding duplicate or unwanted create operations.\n- Refined instructions for when and how to confirm parameters (scene, taskQuality) and clarified polling, linking, and error messaging procedures.\n- Clarified API endpoint details, authentication, and credit/limit handling.\n\nv1.0.1 | 2026-05-20T11:25:23.295Z | user\n\n- Initial release — support for global 3D reconstruction and generation tasks via Aholo OpenAPI v1.\n- Added script execution flow for uploading assets, creating tasks (reconstruction/generation), polling status, and fetching model files (PLY/SPZ/SOG).\n- Uses global API gateway (api.aholo3d.com) and /global/world/v1 routes.\n- Clarified skill restrictions: not for 2D image-only tasks; 3D intent confirmation required before creation.\n- Agent guidance: ensures only one task creation per user order, requires explicit user choices for parameters, and polling is strictly user-directed.\n- No logic or behavior changes; only a compiled Python file (.pyc) was added in this version.\n\nv1.0.0 | 2026-05-20T08:42:37.954Z | user\n\naholo-reconstruct v1.0.0\n\n- Initial release for global 3D reconstruction tasks using Aholo OpenAPI v1.\n- Supports uploading assets, creating tasks (reconstruction/generation), polling status, and fetching model files (PLY/SPZ/SOG) via api.aholo3d.com and /global prefix routes.\n- Explicitly separated from China site; defaults to global endpoints and region.\n- Enforces strict parameters and user confirmations for scene, taskQuality, and site choice.\n- Designed only for 3D tasks (worldId-based); not for 2D image generation or use with China region.\n\nArchive index:\n\nArchive v1.0.7: 5 files, 16949 bytes\n\nFiles: aholo_reconstruct.py (44431b), requirements.txt (34b), skill-card.md (2944b), SKILL.md (11205b), _meta.json (142b)\n\nFile v1.0.7:SKILL.md\n\n---\r\nname: aholo-3dgs-reconstruction-global\r\ndescription: \"Aholo OpenAPI v1 global 3D tasks (reconstruction/generation): upload, create (worldId), poll/status. Gateway api.aholo3d.com, /global/world/v1. Default one create per single intent; multiple creates allowed when user explicitly chooses separate 3DGS per video. Not for 2D.\"\r\n---\r\n\r\n# Aholo 3D Reconstruction Skill — Global (OpenAPI v1)\r\n\r\n> **Aholo global Open Platform** (`api.aholo3d.com`). Agent runs `aholo_reconstruct.py`; user sets `AHOLO_API_KEY` only.\r\n\r\n## 1. When to use\r\n\r\n**Use:** 3D reconstruction, 3D generation, `worldId` status/poll, PLY/SPZ/SOG.\r\n\r\n**Do not use:** 2D renders only; no 3D outcome requested.\r\n\r\n**Ambiguous requests:** Clarify 2D single image vs 3D task (worldId + poll). Example: \"generate a room from a reference image\" → ask whether the user wants a 2D single render or a 3D task (worldId, pollable). Enter this skill only if user picks 3D.\r\n\r\n## 2. Prerequisites & API\r\n\r\n| Item | Detail |\r\n|------|--------|\r\n| Env | `AHOLO_API_KEY` — [api-keys](https://labs.aholo3d.com/api-keys) |\r\n| Auth | `Authorization: <API Key>`, no `Bearer` |\r\n| Create header | `x-source: skills` → platform `OPEN_API_SKILL` |\r\n| Gateway | `https://api.aholo3d.com`; upload token `GET /global/asset/v1/token`; world tasks `/global/world/v1/*` |\r\n| Viewer | `https://studio.aholo3d.com/3dgs-model/{worldId}` |\r\n| Actions | `create` / `create-reconstruction` / `create-generation` / `status` / `poll` / `list` |\r\n| Create success | `WorldAsyncOperation` contains `worldId` only |\r\n| Credits `11003` | Say insufficient credits; link [www.aholo3d.com/pricing](https://www.aholo3d.com/pricing); no invented URLs; **no** `create*` retry for **same video / same intent** |\r\n\r\n**Missing API key:** Tell user to set env and reply **continue**; agent runs script — do not make manual `python` the main path.\r\n\r\n### TLS (script default behavior)\r\n\r\n- Script **enables** SSL verification by default (secure by default).\r\n- Corporate/self-signed certs: set `AHOLO_INSECURE_SKIP_VERIFY=1` (or `true` / `yes` / `on`) to explicitly disable verification; prefer `REQUESTS_CA_BUNDLE` to point at your enterprise CA.\r\n- On `CERTIFICATE_VERIFY_FAILED`, configure CA certs first; use `AHOLO_INSECURE_SKIP_VERIFY` only when you accept the risk.\r\n\r\n### Responses & errors\r\n\r\n- **OpenAPI success:** HTTP 200; create returns JSON `WorldAsyncOperation` with `worldId` only.\r\n- **OpenAPI failure:** HTTP 4xx/5xx, body is `ApiError`: `code`, `message`, `status`, `details.metaData.bizCode` (e.g. `10004` not authenticated, `11003` insufficient credits).\r\n- **OUS upload:** asset upload uses the upload domain returned by the token endpoint.\r\n\r\n## 3. Agent hard constraints (mandatory)\r\n\r\n| # | Rule |\r\n|---|------|\r\n| 0 | 2D-only → **no** create/status/poll from this skill |\r\n| 7 | Unclear 3D intent → 2D/3D clarify first (§1) |\r\n| 1–3 | **Reconstruction only:** need confirmed `scene` (`model`/`space`) + `taskQuality` (`low`/`normal`/`high`) before create; **no** defaults (e.g. `high`/`model`) placed on behalf of the user |\r\n| 1–4 | **Reconstruction only:** the initial `AskQuestion` round **must simultaneously include** the `useMask` option (note: \"only effective when `scene=model`; ignored when `scene=space`\"); **never** default to `false` silently; **never** defer to a second round |\r\n| 4 | **Generation:** do **not** ask `scene`/`taskQuality`; create when `prompt`/image ready |\r\n| 8 | Image folder → use **`imageDir`** for all images; never upload a subset only |\r\n| 11 | **Multiple videos:** ask before create (**do not** choose for user): **A** one 3DGS (one create, all in `videoPaths`); **B** one 3DGS per video (see #9). Only 1 video → skip question |\r\n| 9 | **Create POST (high cost)** — **Default:** one user **single** 3D intent → at most **one** create per conversation round; no retry on same intent after fail/timeout/missing `worldId` unless user **explicitly re-orders**. **Pre-upload failure** (POST not sent) → one first create after fix. **Charged but no worldId** → task list / status/list, not another create. **Multi-video B:** user chose separate 3DGS → create **per video** (`videoPaths` one each), warn N tasks/charges upfront; **no** duplicate create for same video; failed video → no retry, continue with remaining. Use `forbidCreate` only to block accidental **duplicate for the same completed task**, not the next video in B |\r\n| 10 | `projectName` only if user explicitly asks; never invent from folder name or timestamp |\r\n| 5–6 | After each `worldId` → **ask** wait or not; if wait → **sync** `poll` (`intervalSeconds=60`, `timeoutSeconds=14400`); if not → link only. **No** background poll + \"I'll notify you\"; **no** poll without asking |\r\n\r\n### `taskQuality` display names (API values unchanged)\r\n\r\n| Value | Display |\r\n|-------|---------|\r\n| `low` | Fast Preview (极速预览) |\r\n| `normal` | Standard (标准) |\r\n| `high` | Professional — recommended (专业，推荐) |\r\n\r\n## 4. Standard flow\r\n\r\n1. Applicability + 2D/3D (§1).\r\n2. `reconstruction` vs `generation`.\r\n3. **Reconstruction:** `AskQuestion` first — **confirm `scene`, `taskQuality`, and `useMask` in one round** (§5 table); normalize free text before confirming; **do not split into two rounds**.\r\n4. **Multiple videos (2+):** A merge vs B separate (§5 template).\r\n5. token → upload → create (§3 #9, #11).\r\n6. Record `worldId`; ask wait (§5 template).\r\n7. Wait → sync `poll`; else link only.\r\n8. No further create same round except **new order** or **next video** in B (§3 #9).\r\n\r\n## 5. User prompts\r\n\r\n**Reconstruction — initial confirm (scene, taskQuality, useMask — one round, do not split):**\r\n\r\nUse `AskQuestion` with all three questions simultaneously:\r\n\r\n| Question | Options |\r\n|----------|---------|\r\n| scene | `model` (object) / `space` (scene) |\r\n| taskQuality | `low` Fast Preview / `normal` Standard / `high` Professional (recommended) |\r\n| useMask | Enable (auto background removal, best for plain backgrounds) / Disable (keep original background, default) — **only effective when `scene=model`; ignored when `scene=space`** |\r\n\r\n**Multiple videos:**\r\n\r\n```text\r\nYou provided N videos. Choose (I will not choose for you):\r\nA) One 3DGS — one worldId\r\nB) Separate 3DGS per video — N worldIds (N tasks, processed one video at a time)\r\n```\r\n\r\n**After create:**\r\n\r\n```text\r\nTask created, worldId: {worldId}\r\nView when ready: https://studio.aholo3d.com/3dgs-model/{worldId}\r\n(Link may not be accessible until the task completes)\r\n\r\nWait until complete?\r\n- wait / yes — sync poll in this session\r\n- no — poll later or open the link yourself\r\n```\r\n\r\n## 6. Task rules & parameters\r\n\r\n### reconstruction\r\n\r\n- `videoPaths` (no fixed limit) **or** `imagePaths`/`imageDir` (≥20 images), pick one\r\n  - `.mp4` / `.mov` → `type=video`; `.insv` (Insta360 panoramic video) → `type=insv`; detected automatically from extension\r\n- Required: `scene`, `taskQuality`\r\n- Optional: `useMask` (boolean; auto background removal; **only effective when `scene=model`**; default `false`; ignored when `scene=space`)\r\n- `imageDir` scans jpg/jpeg/png/webp only (excludes bmp/gif)\r\n\r\n### generation\r\n\r\n- ≤1 image; `prompt` and image not both empty; no `videoPaths`; no `scene`/`taskQuality`\r\n\r\n### Key params\r\n\r\n| Param | Description |\r\n|-------|-------------|\r\n| `action` / `workflow` | see §2 actions |\r\n| `imageDir` | preferred for image-folder reconstruction |\r\n| `videoPaths` | no fixed limit; `.insv` auto-detected as `type=insv`, others as `type=video` |\r\n| `useMask` | boolean, background removal (optional; **reconstruction + `scene=model` only**; default `false`) |\r\n| `worldId` | for `status` / `poll` |\r\n| `pageNum` / `pageSize` / `statusList` | `list` pagination params |\r\n| `forbidCreate` | guard against accidental duplicate create for **same task**; do not set for next video in multi-video B |\r\n\r\n### Examples (agent runs with `python -u`)\r\n\r\nJSON argument on a **single line** as the second argv. See Windows/PowerShell section below for Windows-specific rules.\r\n\r\n```bash\r\n# Reconstruction (image directory)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create\",\"workflow\":\"reconstruction\",\"imageDir\":\"D:/images\",\"scene\":\"space\",\"taskQuality\":\"high\"}'\r\n\r\n# Reconstruction (Insta360 panoramic video, auto-detected as type=insv)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create\",\"workflow\":\"reconstruction\",\"videoPaths\":[\"D:/room.insv\"],\"scene\":\"space\",\"taskQuality\":\"high\"}'\r\n\r\n# Reconstruction (with background removal)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create\",\"workflow\":\"reconstruction\",\"videoPaths\":[\"D:/obj.mp4\"],\"scene\":\"model\",\"taskQuality\":\"normal\",\"useMask\":true}'\r\n\r\n# Generation\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create-generation\",\"imagePaths\":[\"D:/seed.jpg\"],\"prompt\":\"modern minimal interior\"}'\r\n\r\n# Poll\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"poll\",\"worldId\":\"xxx\",\"intervalSeconds\":60,\"timeoutSeconds\":14400}'\r\n\r\n# List (running + succeeded)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"list\",\"pageNum\":0,\"pageSize\":20,\"statusList\":[\"RUNNING\",\"SUCCEEDED\"]}'\r\n```\r\n\r\n### Windows / PowerShell (agent must read)\r\n\r\nWhen the user is on **Windows**, the agent must follow these rules:\r\n\r\n- **Shell:** Use **PowerShell** by default; **no** bash syntax (e.g. `&&` chaining); use `;` to separate commands, or issue one `python -u ...` at a time.\r\n- **JSON arg:** Put the entire JSON on a **single line** wrapped in **single quotes** as the second argument; **never** break it across multiple lines (PowerShell will split arguments).\r\n- **Paths:** Use forward slashes in Windows paths, e.g. `D:/images/0001.jpg`, to avoid unescaped backslash issues.\r\n- **Working directory:** Run from the repo root or the directory containing `.cursor/skills/aholo-3dgs-reconstruction-global/`.\r\n- **Output:** Always include `-u` so create/upload/poll progress streams in real time.\r\n- **User self-debug (optional):** `$env:AHOLO_API_KEY=\"...\"` then the same single-line `python -u ...`; agent-run is still the preferred path.\r\n\r\n## 7. Appendix\r\n\r\n**API paths:** `GET /global/asset/v1/token` · `POST /global/world/v1/reconstructions` · `POST /global/world/v1/generations` · `GET /global/world/v1/{worldId}` · `POST /global/world/v1/list` · OUS upload uses domain from token response (no `/global` prefix on OUS)\r\n\r\n**Terminal states:** `SUCCEEDED` · `FAILED` · `CANCELED` · `TIMEOUT` · `REJECTED`\r\n\r\n**Output fields (after SUCCEEDED):** `plyPath` · `spzPath` · `lodMetaPath` (LOD chunk metadata, optional) · `panoUrl` (AI panorama, generation only)\r\n\r\n### Local debug (optional)\r\n\r\n```powershell\r\n$env:AHOLO_API_KEY=\"your_api_key\"\r\n# Self-signed certs (not recommended): $env:AHOLO_INSECURE_SKIP_VERIFY=\"1\"\r\n# Or set CA bundle: $env:REQUESTS_CA_BUNDLE=\"D:/certs/corp-ca.pem\"\r\n```\r\n\r\nAgent-run is preferred; user sets the key and replies **continue**.\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn79z5qcbhp8zdzp8q08rc46fh873564\",\n  \"slug\": \"aholo-3dgs-recon-global\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1783064387370\n}\n\nFile v1.0.7:skill-card.md\n\n## Description:\n\nRuns Aholo OpenAPI v1 global 3D reconstruction and generation workflows, including media upload, world creation, status checks, and polling for 3DGS outputs.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[xiaohao17501671450-lgtm](https://clawhub.ai/user/xiaohao17501671450-lgtm)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agents use this skill to submit confirmed 3D reconstruction or generation jobs to Aholo, upload images or videos, create a worldId, and poll for PLY, SPZ, SOG, or panorama outputs.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Authenticated requests send the Aholo API key, task metadata, prompts, and selected images or videos to Aholo infrastructure.\n\nMitigation: Use the skill only for content that is approved for Aholo processing, and avoid submitting sensitive prompts or media unless that transfer is acceptable.\n\nRisk: The security scan reports use of an undeclared beta world API endpoint.\n\nMitigation: Review endpoint use before deployment and prefer a release that documents the beta endpoint or uses the declared production endpoint for world tasks.\n\nRisk: The security scan reports that server-provided upload destinations are trusted too broadly.\n\nMitigation: Run in a controlled environment and prefer a version that validates allowed upload domains before sending media.\n\nRisk: TLS verification can be disabled with AHOLO_INSECURE_SKIP_VERIFY.\n\nMitigation: Keep TLS verification enabled; for enterprise certificates, set REQUESTS_CA_BUNDLE instead of disabling verification except during controlled testing.\n\nRisk: Dependencies are version-ranged rather than pinned.\n\nMitigation: Deploy with a lockfile or pinned package versions and review dependency updates before use.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/xiaohao17501671450-lgtm/skills/aholo-3dgs-recon-global)\n- [Aholo API keys](https://labs.aholo3d.com/api-keys)\n- [Aholo global API gateway](https://api.aholo3d.com)\n- [Aholo beta world API endpoint](https://api-beta.aholo3d.com)\n- [Aholo Studio 3DGS viewer](https://studio.aholo3d.com/3dgs-model/{worldId})\n- [Aholo pricing](https://www.aholo3d.com/pricing)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and JSON command arguments]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May call Aholo APIs and return worldId, status, polling progress, viewer links, and output asset paths when available.]\n\n## Skill Version(s):\n\n1.0.7 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.7:requirements.txt\n\nrequests>=2.28.0\r\nurllib3>=2.0.0\n\nArchive v1.0.6: 5 files, 16953 bytes\n\nFiles: aholo_reconstruct.py (44651b), requirements.txt (34b), skill-card.md (3009b), SKILL.md (11092b), _meta.json (142b)\n\nFile v1.0.6:SKILL.md\n\n---\r\nname: aholo-3dgs-reconstruction-global\r\ndescription: \"Aholo OpenAPI v1 global 3D tasks (reconstruction/generation): upload, create (worldId), poll/status. Gateway api.aholo3d.com, /global/world/v1. Default one create per single intent; multiple creates allowed when user explicitly chooses separate 3DGS per video. Not for 2D.\"\r\n---\r\n\r\n# Aholo 3D Reconstruction Skill — Global (OpenAPI v1)\r\n\r\n> **Aholo global Open Platform** (`api.aholo3d.com`). Agent runs `aholo_reconstruct.py`; user sets `AHOLO_API_KEY` only.\r\n\r\n## 1. When to use\r\n\r\n**Use:** 3D reconstruction, 3D generation, `worldId` status/poll, PLY/SPZ/SOG.\r\n\r\n**Do not use:** 2D renders only; no 3D outcome requested.\r\n\r\n**Ambiguous requests:** Clarify 2D single image vs 3D task (worldId + poll). Example: \"generate a room from a reference image\" → ask whether the user wants a 2D single render or a 3D task (worldId, pollable). Enter this skill only if user picks 3D.\r\n\r\n## 2. Prerequisites & API\r\n\r\n| Item | Detail |\r\n|------|--------|\r\n| Env | `AHOLO_API_KEY` — [api-keys](https://labs.aholo3d.com/api-keys) |\r\n| Auth | `Authorization: <API Key>`, no `Bearer` |\r\n| Create header | `x-source: skills` → platform `OPEN_API_SKILL` |\r\n| Gateway | `https://api.aholo3d.com`; upload token `GET /global/asset/v1/token`; world tasks `/global/world/v1/*` |\r\n| Viewer | `https://studio.aholo3d.com/3dgs-model/{worldId}` |\r\n| Actions | `create` / `create-reconstruction` / `create-generation` / `status` / `poll` / `list` |\r\n| Create success | `WorldAsyncOperation` contains `worldId` only |\r\n| Credits `11003` | Say insufficient credits; link [www.aholo3d.com/pricing](https://www.aholo3d.com/pricing); no invented URLs; **no** `create*` retry for **same video / same intent** |\r\n\r\n**Missing API key:** Tell user to set env and reply **continue**; agent runs script — do not make manual `python` the main path.\r\n\r\n### TLS (script default behavior)\r\n\r\n- Script **disables** SSL verification by default to avoid `CERTIFICATE_VERIFY_FAILED` on corporate/self-signed networks.\r\n- Force enable: set `AHOLO_FORCE_SSL_VERIFY=1` (or `true` / `yes` / `on`).\r\n- Compat var `AHOLO_INSECURE_SKIP_VERIFY`: verification is enabled only when explicitly set to `0` / `false` / `no` / `off`; any other value or unset keeps default bypass.\r\n\r\n### Responses & errors\r\n\r\n- **OpenAPI success:** HTTP 200; create returns JSON `WorldAsyncOperation` with `worldId` only.\r\n- **OpenAPI failure:** HTTP 4xx/5xx, body is `ApiError`: `code`, `message`, `status`, `details.metaData.bizCode` (e.g. `10004` not authenticated, `11003` insufficient credits).\r\n- **OUS upload:** asset upload uses the upload domain returned by the token endpoint.\r\n\r\n## 3. Agent hard constraints (mandatory)\r\n\r\n| # | Rule |\r\n|---|------|\r\n| 0 | 2D-only → **no** create/status/poll from this skill |\r\n| 7 | Unclear 3D intent → 2D/3D clarify first (§1) |\r\n| 1–3 | **Reconstruction only:** need confirmed `scene` (`model`/`space`) + `taskQuality` (`low`/`normal`/`high`) before create; **no** defaults (e.g. `high`/`model`) placed on behalf of the user |\r\n| 1–4 | **Reconstruction only:** the initial `AskQuestion` round **must simultaneously include** the `useMask` option (note: \"only effective when `scene=model`; ignored when `scene=space`\"); **never** default to `false` silently; **never** defer to a second round |\r\n| 4 | **Generation:** do **not** ask `scene`/`taskQuality`; create when `prompt`/image ready |\r\n| 8 | Image folder → use **`imageDir`** for all images; never upload a subset only |\r\n| 11 | **Multiple videos:** ask before create (**do not** choose for user): **A** one 3DGS (one create, all in `videoPaths`); **B** one 3DGS per video (see #9). Only 1 video → skip question |\r\n| 9 | **Create POST (high cost)** — **Default:** one user **single** 3D intent → at most **one** create per conversation round; no retry on same intent after fail/timeout/missing `worldId` unless user **explicitly re-orders**. **Pre-upload failure** (POST not sent) → one first create after fix. **Charged but no worldId** → task list / status/list, not another create. **Multi-video B:** user chose separate 3DGS → create **per video** (`videoPaths` one each), warn N tasks/charges upfront; **no** duplicate create for same video; failed video → no retry, continue with remaining. Use `forbidCreate` only to block accidental **duplicate for the same completed task**, not the next video in B |\r\n| 10 | `projectName` only if user explicitly asks; never invent from folder name or timestamp |\r\n| 5–6 | After each `worldId` → **ask** wait or not; if wait → **sync** `poll` (`intervalSeconds=60`, `timeoutSeconds=14400`); if not → link only. **No** background poll + \"I'll notify you\"; **no** poll without asking |\r\n\r\n### `taskQuality` display names (API values unchanged)\r\n\r\n| Value | Display |\r\n|-------|---------|\r\n| `low` | Fast Preview (极速预览) |\r\n| `normal` | Standard (标准) |\r\n| `high` | Professional — recommended (专业，推荐) |\r\n\r\n## 4. Standard flow\r\n\r\n1. Applicability + 2D/3D (§1).\r\n2. `reconstruction` vs `generation`.\r\n3. **Reconstruction:** `AskQuestion` first — **confirm `scene`, `taskQuality`, and `useMask` in one round** (§5 table); normalize free text before confirming; **do not split into two rounds**.\r\n4. **Multiple videos (2+):** A merge vs B separate (§5 template).\r\n5. token → upload → create (§3 #9, #11).\r\n6. Record `worldId`; ask wait (§5 template).\r\n7. Wait → sync `poll`; else link only.\r\n8. No further create same round except **new order** or **next video** in B (§3 #9).\r\n\r\n## 5. User prompts\r\n\r\n**Reconstruction — initial confirm (scene, taskQuality, useMask — one round, do not split):**\r\n\r\nUse `AskQuestion` with all three questions simultaneously:\r\n\r\n| Question | Options |\r\n|----------|---------|\r\n| scene | `model` (object) / `space` (scene) |\r\n| taskQuality | `low` Fast Preview / `normal` Standard / `high` Professional (recommended) |\r\n| useMask | Enable (auto background removal, best for plain backgrounds) / Disable (keep original background, default) — **only effective when `scene=model`; ignored when `scene=space`** |\r\n\r\n**Multiple videos:**\r\n\r\n```text\r\nYou provided N videos. Choose (I will not choose for you):\r\nA) One 3DGS — one worldId\r\nB) Separate 3DGS per video — N worldIds (N tasks, processed one video at a time)\r\n```\r\n\r\n**After create:**\r\n\r\n```text\r\nTask created, worldId: {worldId}\r\nView when ready: https://studio.aholo3d.com/3dgs-model/{worldId}\r\n(Link may not be accessible until the task completes)\r\n\r\nWait until complete?\r\n- wait / yes — sync poll in this session\r\n- no — poll later or open the link yourself\r\n```\r\n\r\n## 6. Task rules & parameters\r\n\r\n### reconstruction\r\n\r\n- `videoPaths` (no fixed limit) **or** `imagePaths`/`imageDir` (≥20 images), pick one\r\n  - `.mp4` / `.mov` → `type=video`; `.insv` (Insta360 panoramic video) → `type=insv`; detected automatically from extension\r\n- Required: `scene`, `taskQuality`\r\n- Optional: `useMask` (boolean; auto background removal; **only effective when `scene=model`**; default `false`; ignored when `scene=space`)\r\n- `imageDir` scans jpg/jpeg/png/webp only (excludes bmp/gif)\r\n\r\n### generation\r\n\r\n- ≤1 image; `prompt` and image not both empty; no `videoPaths`; no `scene`/`taskQuality`\r\n\r\n### Key params\r\n\r\n| Param | Description |\r\n|-------|-------------|\r\n| `action` / `workflow` | see §2 actions |\r\n| `imageDir` | preferred for image-folder reconstruction |\r\n| `videoPaths` | no fixed limit; `.insv` auto-detected as `type=insv`, others as `type=video` |\r\n| `useMask` | boolean, background removal (optional; **reconstruction + `scene=model` only**; default `false`) |\r\n| `worldId` | for `status` / `poll` |\r\n| `pageNum` / `pageSize` / `statusList` | `list` pagination params |\r\n| `forbidCreate` | guard against accidental duplicate create for **same task**; do not set for next video in multi-video B |\r\n\r\n### Examples (agent runs with `python -u`)\r\n\r\nJSON argument on a **single line** as the second argv. See Windows/PowerShell section below for Windows-specific rules.\r\n\r\n```bash\r\n# Reconstruction (image directory)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create\",\"workflow\":\"reconstruction\",\"imageDir\":\"D:/images\",\"scene\":\"space\",\"taskQuality\":\"high\"}'\r\n\r\n# Reconstruction (Insta360 panoramic video, auto-detected as type=insv)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create\",\"workflow\":\"reconstruction\",\"videoPaths\":[\"D:/room.insv\"],\"scene\":\"space\",\"taskQuality\":\"high\"}'\r\n\r\n# Reconstruction (with background removal)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create\",\"workflow\":\"reconstruction\",\"videoPaths\":[\"D:/obj.mp4\"],\"scene\":\"model\",\"taskQuality\":\"normal\",\"useMask\":true}'\r\n\r\n# Generation\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create-generation\",\"imagePaths\":[\"D:/seed.jpg\"],\"prompt\":\"modern minimal interior\"}'\r\n\r\n# Poll\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"poll\",\"worldId\":\"xxx\",\"intervalSeconds\":60,\"timeoutSeconds\":14400}'\r\n\r\n# List (running + succeeded)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"list\",\"pageNum\":0,\"pageSize\":20,\"statusList\":[\"RUNNING\",\"SUCCEEDED\"]}'\r\n```\r\n\r\n### Windows / PowerShell (agent must read)\r\n\r\nWhen the user is on **Windows**, the agent must follow these rules:\r\n\r\n- **Shell:** Use **PowerShell** by default; **no** bash syntax (e.g. `&&` chaining); use `;` to separate commands, or issue one `python -u ...` at a time.\r\n- **JSON arg:** Put the entire JSON on a **single line** wrapped in **single quotes** as the second argument; **never** break it across multiple lines (PowerShell will split arguments).\r\n- **Paths:** Use forward slashes in Windows paths, e.g. `D:/images/0001.jpg`, to avoid unescaped backslash issues.\r\n- **Working directory:** Run from the repo root or the directory containing `.cursor/skills/aholo-3dgs-reconstruction-global/`.\r\n- **Output:** Always include `-u` so create/upload/poll progress streams in real time.\r\n- **User self-debug (optional):** `$env:AHOLO_API_KEY=\"...\"` then the same single-line `python -u ...`; agent-run is still the preferred path.\r\n\r\n## 7. Appendix\r\n\r\n**API paths:** `GET /global/asset/v1/token` · `POST /global/world/v1/reconstructions` · `POST /global/world/v1/generations` · `GET /global/world/v1/{worldId}` · `POST /global/world/v1/list` · OUS upload uses domain from token response (no `/global` prefix on OUS)\r\n\r\n**Terminal states:** `SUCCEEDED` · `FAILED` · `CANCELED` · `TIMEOUT` · `REJECTED`\r\n\r\n**Output fields (after SUCCEEDED):** `plyPath` · `spzPath` · `lodMetaPath` (LOD chunk metadata, optional) · `panoUrl` (AI panorama, generation only)\r\n\r\n### Local debug (optional)\r\n\r\n```powershell\r\n$env:AHOLO_API_KEY=\"your_api_key\"\r\n# Optional: $env:AHOLO_FORCE_SSL_VERIFY=\"1\"\r\n```\r\n\r\nAgent-run is preferred; user sets the key and replies **continue**.\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn79z5qcbhp8zdzp8q08rc46fh873564\",\n  \"slug\": \"aholo-3dgs-recon-global\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1782818503923\n}\n\nFile v1.0.6:skill-card.md\n\n## Description: <br>\nAholo OpenAPI v1 global 3D tasks (reconstruction/generation): upload, create (worldId), poll/status. Gateway api.aholo3d.com, /global/world/v1. Default one create per single intent; multiple creates allowed when user explicitly chooses separate 3DGS per video. Not for 2D. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[xiaohao17501671450-lgtm](https://clawhub.ai/user/xiaohao17501671450-lgtm) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and external users use this skill to run Aholo global 3D reconstruction or generation workflows: upload media, create a world task, check status, poll completion, list tasks, and retrieve output links. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Default insecure TLS behavior can expose the Aholo API key and uploaded media to unnecessary risk. <br>\nMitigation: Review before installing, set AHOLO_FORCE_SSL_VERIFY=1 before use, and prefer current requests/urllib3 versions. <br>\nRisk: The skill sends selected media and the Aholo API key to Aholo services. <br>\nMitigation: Use the skill only with media and credentials that are appropriate to send to Aholo services. <br>\nRisk: Create operations can consume Aholo credits and duplicate creates may produce duplicate charges. <br>\nMitigation: Confirm reconstruction parameters and multi-video handling before create, and use status/list rather than retrying a charged task that returned no worldId. <br>\nRisk: The security guidance calls out api-beta.aholo3d.com as an endpoint to confirm before use. <br>\nMitigation: Confirm that api-beta.aholo3d.com is the intended world-task endpoint for this release before production use. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/xiaohao17501671450-lgtm/skills/aholo-3dgs-recon-global) <br>\n- [Aholo API keys](https://labs.aholo3d.com/api-keys) <br>\n- [Aholo global API gateway](https://api.aholo3d.com) <br>\n- [Aholo 3DGS viewer](https://studio.aholo3d.com/3dgs-model/{worldId}) <br>\n- [Aholo pricing](https://www.aholo3d.com/pricing) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with inline shell commands and JSON arguments; script output includes task status text and links to generated 3D assets when available.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires AHOLO_API_KEY and sends selected media to Aholo services; completed tasks may expose PLY, SPZ, LOD metadata, or panorama URLs.] <br>\n\n## Skill Version(s): <br>\n1.0.6 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.6:requirements.txt\n\nrequests>=2.28.0\r\nurllib3>=2.0.0\n\nArchive v1.0.5: 5 files, 16804 bytes\n\nFiles: aholo_reconstruct.py (44657b), requirements.txt (34b), skill-card.md (2566b), SKILL.md (11049b), _meta.json (142b)\n\nFile v1.0.5:SKILL.md\n\n---\r\nname: aholo-3dgs-reconstruction-global\r\ndescription: \"Aholo OpenAPI v1 global 3D tasks (reconstruction/generation): upload, create (worldId), poll/status. Gateway api.aholo3d.com, /global/world/v1. Default one create per single intent; multiple creates allowed when user explicitly chooses separate 3DGS per video. Not for 2D.\"\r\n---\r\n\r\n# Aholo 3D Reconstruction Skill — Global (OpenAPI v1)\r\n\r\n> **Aholo global Open Platform** (`api.aholo3d.com`). Agent runs `aholo_reconstruct.py`; user sets `AHOLO_API_KEY` only.\r\n\r\n## 1. When to use\r\n\r\n**Use:** 3D reconstruction, 3D generation, `worldId` status/poll, PLY/SPZ/SOG.\r\n\r\n**Do not use:** 2D renders only; no 3D outcome requested.\r\n\r\n**Ambiguous requests:** Clarify 2D single image vs 3D task (worldId + poll). Example: \"generate a room from a reference image\" → ask whether the user wants a 2D single render or a 3D task (worldId, pollable). Enter this skill only if user picks 3D.\r\n\r\n## 2. Prerequisites & API\r\n\r\n| Item | Detail |\r\n|------|--------|\r\n| Env | `AHOLO_API_KEY` — [api-keys](https://labs.aholo3d.com/api-keys) |\r\n| Auth | `Authorization: <API Key>`, no `Bearer` |\r\n| Create header | `x-source: skills` → platform `OPEN_API_SKILL` |\r\n| Gateway | `https://api.aholo3d.com`; paths `/global/world/v1/*` |\r\n| Viewer | `https://studio.aholo3d.com/3dgs-model/{worldId}` |\r\n| Actions | `create` / `create-reconstruction` / `create-generation` / `status` / `poll` / `list` |\r\n| Create success | `WorldAsyncOperation` contains `worldId` only |\r\n| Credits `11003` | Say insufficient credits; link [www.aholo3d.com/pricing](https://www.aholo3d.com/pricing); no invented URLs; **no** `create*` retry for **same video / same intent** |\r\n\r\n**Missing API key:** Tell user to set env and reply **continue**; agent runs script — do not make manual `python` the main path.\r\n\r\n### TLS (script default behavior)\r\n\r\n- Script **disables** SSL verification by default to avoid `CERTIFICATE_VERIFY_FAILED` on corporate/self-signed networks.\r\n- Force enable: set `AHOLO_FORCE_SSL_VERIFY=1` (or `true` / `yes` / `on`).\r\n- Compat var `AHOLO_INSECURE_SKIP_VERIFY`: verification is enabled only when explicitly set to `0` / `false` / `no` / `off`; any other value or unset keeps default bypass.\r\n\r\n### Responses & errors\r\n\r\n- **OpenAPI success:** HTTP 200; create returns JSON `WorldAsyncOperation` with `worldId` only.\r\n- **OpenAPI failure:** HTTP 4xx/5xx, body is `ApiError`: `code`, `message`, `status`, `details.metaData.bizCode` (e.g. `10004` not authenticated, `11003` insufficient credits).\r\n- **OUS upload:** asset upload uses the upload domain returned by the token endpoint.\r\n\r\n## 3. Agent hard constraints (mandatory)\r\n\r\n| # | Rule |\r\n|---|------|\r\n| 0 | 2D-only → **no** create/status/poll from this skill |\r\n| 7 | Unclear 3D intent → 2D/3D clarify first (§1) |\r\n| 1–3 | **Reconstruction only:** need confirmed `scene` (`model`/`space`) + `taskQuality` (`low`/`normal`/`high`) before create; **no** defaults (e.g. `high`/`model`) placed on behalf of the user |\r\n| 1–4 | **Reconstruction only:** the initial `AskQuestion` round **must simultaneously include** the `useMask` option (note: \"only effective when `scene=model`; ignored when `scene=space`\"); **never** default to `false` silently; **never** defer to a second round |\r\n| 4 | **Generation:** do **not** ask `scene`/`taskQuality`; create when `prompt`/image ready |\r\n| 8 | Image folder → use **`imageDir`** for all images; never upload a subset only |\r\n| 11 | **Multiple videos:** ask before create (**do not** choose for user): **A** one 3DGS (one create, all in `videoPaths`); **B** one 3DGS per video (see #9). Only 1 video → skip question |\r\n| 9 | **Create POST (high cost)** — **Default:** one user **single** 3D intent → at most **one** create per conversation round; no retry on same intent after fail/timeout/missing `worldId` unless user **explicitly re-orders**. **Pre-upload failure** (POST not sent) → one first create after fix. **Charged but no worldId** → task list / status/list, not another create. **Multi-video B:** user chose separate 3DGS → create **per video** (`videoPaths` one each), warn N tasks/charges upfront; **no** duplicate create for same video; failed video → no retry, continue with remaining. Use `forbidCreate` only to block accidental **duplicate for the same completed task**, not the next video in B |\r\n| 10 | `projectName` only if user explicitly asks; never invent from folder name or timestamp |\r\n| 5–6 | After each `worldId` → **ask** wait or not; if wait → **sync** `poll` (`intervalSeconds=60`, `timeoutSeconds=14400`); if not → link only. **No** background poll + \"I'll notify you\"; **no** poll without asking |\r\n\r\n### `taskQuality` display names (API values unchanged)\r\n\r\n| Value | Display |\r\n|-------|---------|\r\n| `low` | Fast Preview (极速预览) |\r\n| `normal` | Standard (标准) |\r\n| `high` | Professional — recommended (专业，推荐) |\r\n\r\n## 4. Standard flow\r\n\r\n1. Applicability + 2D/3D (§1).\r\n2. `reconstruction` vs `generation`.\r\n3. **Reconstruction:** `AskQuestion` first — **confirm `scene`, `taskQuality`, and `useMask` in one round** (§5 table); normalize free text before confirming; **do not split into two rounds**.\r\n4. **Multiple videos (2+):** A merge vs B separate (§5 template).\r\n5. token → upload → create (§3 #9, #11).\r\n6. Record `worldId`; ask wait (§5 template).\r\n7. Wait → sync `poll`; else link only.\r\n8. No further create same round except **new order** or **next video** in B (§3 #9).\r\n\r\n## 5. User prompts\r\n\r\n**Reconstruction — initial confirm (scene, taskQuality, useMask — one round, do not split):**\r\n\r\nUse `AskQuestion` with all three questions simultaneously:\r\n\r\n| Question | Options |\r\n|----------|---------|\r\n| scene | `model` (object) / `space` (scene) |\r\n| taskQuality | `low` Fast Preview / `normal` Standard / `high` Professional (recommended) |\r\n| useMask | Enable (auto background removal, best for plain backgrounds) / Disable (keep original background, default) — **only effective when `scene=model`; ignored when `scene=space`** |\r\n\r\n**Multiple videos:**\r\n\r\n```text\r\nYou provided N videos. Choose (I will not choose for you):\r\nA) One 3DGS — one worldId\r\nB) Separate 3DGS per video — N worldIds (N tasks, processed one video at a time)\r\n```\r\n\r\n**After create:**\r\n\r\n```text\r\nTask created, worldId: {worldId}\r\nView when ready: https://studio.aholo3d.com/3dgs-model/{worldId}\r\n(Link may not be accessible until the task completes)\r\n\r\nWait until complete?\r\n- wait / yes — sync poll in this session\r\n- no — poll later or open the link yourself\r\n```\r\n\r\n## 6. Task rules & parameters\r\n\r\n### reconstruction\r\n\r\n- `videoPaths` (no fixed limit) **or** `imagePaths`/`imageDir` (≥20 images), pick one\r\n  - `.mp4` / `.mov` → `type=video`; `.insv` (Insta360 panoramic video) → `type=insv`; detected automatically from extension\r\n- Required: `scene`, `taskQuality`\r\n- Optional: `useMask` (boolean; auto background removal; **only effective when `scene=model`**; default `false`; ignored when `scene=space`)\r\n- `imageDir` scans jpg/jpeg/png/webp only (excludes bmp/gif)\r\n\r\n### generation\r\n\r\n- ≤1 image; `prompt` and image not both empty; no `videoPaths`; no `scene`/`taskQuality`\r\n\r\n### Key params\r\n\r\n| Param | Description |\r\n|-------|-------------|\r\n| `action` / `workflow` | see §2 actions |\r\n| `imageDir` | preferred for image-folder reconstruction |\r\n| `videoPaths` | no fixed limit; `.insv` auto-detected as `type=insv`, others as `type=video` |\r\n| `useMask` | boolean, background removal (optional; **reconstruction + `scene=model` only**; default `false`) |\r\n| `worldId` | for `status` / `poll` |\r\n| `pageNum` / `pageSize` / `statusList` | `list` pagination params |\r\n| `forbidCreate` | guard against accidental duplicate create for **same task**; do not set for next video in multi-video B |\r\n\r\n### Examples (agent runs with `python -u`)\r\n\r\nJSON argument on a **single line** as the second argv. See Windows/PowerShell section below for Windows-specific rules.\r\n\r\n```bash\r\n# Reconstruction (image directory)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create\",\"workflow\":\"reconstruction\",\"imageDir\":\"D:/images\",\"scene\":\"space\",\"taskQuality\":\"high\"}'\r\n\r\n# Reconstruction (Insta360 panoramic video, auto-detected as type=insv)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create\",\"workflow\":\"reconstruction\",\"videoPaths\":[\"D:/room.insv\"],\"scene\":\"space\",\"taskQuality\":\"high\"}'\r\n\r\n# Reconstruction (with background removal)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create\",\"workflow\":\"reconstruction\",\"videoPaths\":[\"D:/obj.mp4\"],\"scene\":\"model\",\"taskQuality\":\"normal\",\"useMask\":true}'\r\n\r\n# Generation\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create-generation\",\"imagePaths\":[\"D:/seed.jpg\"],\"prompt\":\"modern minimal interior\"}'\r\n\r\n# Poll\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"poll\",\"worldId\":\"xxx\",\"intervalSeconds\":60,\"timeoutSeconds\":14400}'\r\n\r\n# List (running + succeeded)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"list\",\"pageNum\":0,\"pageSize\":20,\"statusList\":[\"RUNNING\",\"SUCCEEDED\"]}'\r\n```\r\n\r\n### Windows / PowerShell (agent must read)\r\n\r\nWhen the user is on **Windows**, the agent must follow these rules:\r\n\r\n- **Shell:** Use **PowerShell** by default; **no** bash syntax (e.g. `&&` chaining); use `;` to separate commands, or issue one `python -u ...` at a time.\r\n- **JSON arg:** Put the entire JSON on a **single line** wrapped in **single quotes** as the second argument; **never** break it across multiple lines (PowerShell will split arguments).\r\n- **Paths:** Use forward slashes in Windows paths, e.g. `D:/images/0001.jpg`, to avoid unescaped backslash issues.\r\n- **Working directory:** Run from the repo root or the directory containing `.cursor/skills/aholo-3dgs-reconstruction-global/`.\r\n- **Output:** Always include `-u` so create/upload/poll progress streams in real time.\r\n- **User self-debug (optional):** `$env:AHOLO_API_KEY=\"...\"` then the same single-line `python -u ...`; agent-run is still the preferred path.\r\n\r\n## 7. Appendix\r\n\r\n**API paths:** `GET /global/world/v1/asset/token` · `POST /global/world/v1/reconstructions` · `POST /global/world/v1/generations` · `GET /global/world/v1/{worldId}` · `POST /global/world/v1/list` · OUS upload uses domain from token response (no `/global` prefix on OUS)\r\n\r\n**Terminal states:** `SUCCEEDED` · `FAILED` · `CANCELED` · `TIMEOUT` · `REJECTED`\r\n\r\n**Output fields (after SUCCEEDED):** `plyPath` · `spzPath` · `lodMetaPath` (LOD chunk metadata, optional) · `panoUrl` (AI panorama, generation only)\r\n\r\n### Local debug (optional)\r\n\r\n```powershell\r\n$env:AHOLO_API_KEY=\"your_api_key\"\r\n# Optional: $env:AHOLO_FORCE_SSL_VERIFY=\"1\"\r\n```\r\n\r\nAgent-run is preferred; user sets the key and replies **continue**.\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn79z5qcbhp8zdzp8q08rc46fh873564\",\n  \"slug\": \"aholo-3dgs-recon-global\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1782813077610\n}\n\nFile v1.0.5:skill-card.md\n\n## Description: <br>\nAholo OpenAPI v1 global 3D tasks (reconstruction/generation): upload, create (worldId), poll/status. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[xiaohao17501671450-lgtm](https://clawhub.ai/user/xiaohao17501671450-lgtm) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agents use this skill to submit Aholo 3D reconstruction or generation jobs, upload media, track worldId status, and retrieve generated 3DGS asset links. It is intended for 3D outcomes such as PLY, SPZ, SOG, LOD metadata, and panorama URLs, not 2D-only image rendering. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: API keys and uploaded media may be exposed to network interception because the script disables TLS certificate verification by default. <br>\nMitigation: Set AHOLO_FORCE_SSL_VERIFY=1 before running the skill and avoid sending sensitive media unless the Aholo and OUS endpoints are trusted. <br>\nRisk: Create actions may consume Aholo credits or start paid processing jobs. <br>\nMitigation: Follow the skill's confirmation flow for reconstruction settings, multi-video handling, and duplicate-create avoidance before submitting create requests. <br>\nRisk: The release has no server-resolved GitHub provenance for this version. <br>\nMitigation: Review the bundled artifact files and ClawHub release evidence before installation or deployment. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/xiaohao17501671450-lgtm/skills/aholo-3dgs-recon-global) <br>\n- [Aholo API keys](https://labs.aholo3d.com/api-keys) <br>\n- [Aholo 3DGS viewer](https://studio.aholo3d.com/3dgs-model/{worldId}) <br>\n- [Aholo pricing](https://www.aholo3d.com/pricing) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, API calls, guidance] <br>\n**Output Format:** [Markdown status messages with inline shell commands and JSON arguments] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include worldId values, viewer URLs, polling summaries, task status, and generated asset links when Aholo returns them.] <br>\n\n## Skill Version(s): <br>\n1.0.5 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.5:requirements.txt\n\nrequests>=2.28.0\r\nurllib3>=2.0.0\n\nArchive v1.0.4: 5 files, 16820 bytes\n\nFiles: aholo_reconstruct.py (44663b), requirements.txt (34b), skill-card.md (2633b), SKILL.md (11049b), _meta.json (142b)\n\nFile v1.0.4:SKILL.md\n\n---\r\nname: aholo-3dgs-reconstruction-global\r\ndescription: \"Aholo OpenAPI v1 global 3D tasks (reconstruction/generation): upload, create (worldId), poll/status. Gateway api.aholo3d.com, /global/world/v1. Default one create per single intent; multiple creates allowed when user explicitly chooses separate 3DGS per video. Not for 2D.\"\r\n---\r\n\r\n# Aholo 3D Reconstruction Skill — Global (OpenAPI v1)\r\n\r\n> **Aholo global Open Platform** (`api.aholo3d.com`). Agent runs `aholo_reconstruct.py`; user sets `AHOLO_API_KEY` only.\r\n\r\n## 1. When to use\r\n\r\n**Use:** 3D reconstruction, 3D generation, `worldId` status/poll, PLY/SPZ/SOG.\r\n\r\n**Do not use:** 2D renders only; no 3D outcome requested.\r\n\r\n**Ambiguous requests:** Clarify 2D single image vs 3D task (worldId + poll). Example: \"generate a room from a reference image\" → ask whether the user wants a 2D single render or a 3D task (worldId, pollable). Enter this skill only if user picks 3D.\r\n\r\n## 2. Prerequisites & API\r\n\r\n| Item | Detail |\r\n|------|--------|\r\n| Env | `AHOLO_API_KEY` — [api-keys](https://labs.aholo3d.com/api-keys) |\r\n| Auth | `Authorization: <API Key>`, no `Bearer` |\r\n| Create header | `x-source: skills` → platform `OPEN_API_SKILL` |\r\n| Gateway | `https://api.aholo3d.com`; paths `/global/world/v1/*` |\r\n| Viewer | `https://studio.aholo3d.com/3dgs-model/{worldId}` |\r\n| Actions | `create` / `create-reconstruction` / `create-generation` / `status` / `poll` / `list` |\r\n| Create success | `WorldAsyncOperation` contains `worldId` only |\r\n| Credits `11003` | Say insufficient credits; link [www.aholo3d.com/pricing](https://www.aholo3d.com/pricing); no invented URLs; **no** `create*` retry for **same video / same intent** |\r\n\r\n**Missing API key:** Tell user to set env and reply **continue**; agent runs script — do not make manual `python` the main path.\r\n\r\n### TLS (script default behavior)\r\n\r\n- Script **disables** SSL verification by default to avoid `CERTIFICATE_VERIFY_FAILED` on corporate/self-signed networks.\r\n- Force enable: set `AHOLO_FORCE_SSL_VERIFY=1` (or `true` / `yes` / `on`).\r\n- Compat var `AHOLO_INSECURE_SKIP_VERIFY`: verification is enabled only when explicitly set to `0` / `false` / `no` / `off`; any other value or unset keeps default bypass.\r\n\r\n### Responses & errors\r\n\r\n- **OpenAPI success:** HTTP 200; create returns JSON `WorldAsyncOperation` with `worldId` only.\r\n- **OpenAPI failure:** HTTP 4xx/5xx, body is `ApiError`: `code`, `message`, `status`, `details.metaData.bizCode` (e.g. `10004` not authenticated, `11003` insufficient credits).\r\n- **OUS upload:** asset upload uses the upload domain returned by the token endpoint.\r\n\r\n## 3. Agent hard constraints (mandatory)\r\n\r\n| # | Rule |\r\n|---|------|\r\n| 0 | 2D-only → **no** create/status/poll from this skill |\r\n| 7 | Unclear 3D intent → 2D/3D clarify first (§1) |\r\n| 1–3 | **Reconstruction only:** need confirmed `scene` (`model`/`space`) + `taskQuality` (`low`/`normal`/`high`) before create; **no** defaults (e.g. `high`/`model`) placed on behalf of the user |\r\n| 1–4 | **Reconstruction only:** the initial `AskQuestion` round **must simultaneously include** the `useMask` option (note: \"only effective when `scene=model`; ignored when `scene=space`\"); **never** default to `false` silently; **never** defer to a second round |\r\n| 4 | **Generation:** do **not** ask `scene`/`taskQuality`; create when `prompt`/image ready |\r\n| 8 | Image folder → use **`imageDir`** for all images; never upload a subset only |\r\n| 11 | **Multiple videos:** ask before create (**do not** choose for user): **A** one 3DGS (one create, all in `videoPaths`); **B** one 3DGS per video (see #9). Only 1 video → skip question |\r\n| 9 | **Create POST (high cost)** — **Default:** one user **single** 3D intent → at most **one** create per conversation round; no retry on same intent after fail/timeout/missing `worldId` unless user **explicitly re-orders**. **Pre-upload failure** (POST not sent) → one first create after fix. **Charged but no worldId** → task list / status/list, not another create. **Multi-video B:** user chose separate 3DGS → create **per video** (`videoPaths` one each), warn N tasks/charges upfront; **no** duplicate create for same video; failed video → no retry, continue with remaining. Use `forbidCreate` only to block accidental **duplicate for the same completed task**, not the next video in B |\r\n| 10 | `projectName` only if user explicitly asks; never invent from folder name or timestamp |\r\n| 5–6 | After each `worldId` → **ask** wait or not; if wait → **sync** `poll` (`intervalSeconds=60`, `timeoutSeconds=14400`); if not → link only. **No** background poll + \"I'll notify you\"; **no** poll without asking |\r\n\r\n### `taskQuality` display names (API values unchanged)\r\n\r\n| Value | Display |\r\n|-------|---------|\r\n| `low` | Fast Preview (极速预览) |\r\n| `normal` | Standard (标准) |\r\n| `high` | Professional — recommended (专业，推荐) |\r\n\r\n## 4. Standard flow\r\n\r\n1. Applicability + 2D/3D (§1).\r\n2. `reconstruction` vs `generation`.\r\n3. **Reconstruction:** `AskQuestion` first — **confirm `scene`, `taskQuality`, and `useMask` in one round** (§5 table); normalize free text before confirming; **do not split into two rounds**.\r\n4. **Multiple videos (2+):** A merge vs B separate (§5 template).\r\n5. token → upload → create (§3 #9, #11).\r\n6. Record `worldId`; ask wait (§5 template).\r\n7. Wait → sync `poll`; else link only.\r\n8. No further create same round except **new order** or **next video** in B (§3 #9).\r\n\r\n## 5. User prompts\r\n\r\n**Reconstruction — initial confirm (scene, taskQuality, useMask — one round, do not split):**\r\n\r\nUse `AskQuestion` with all three questions simultaneously:\r\n\r\n| Question | Options |\r\n|----------|---------|\r\n| scene | `model` (object) / `space` (scene) |\r\n| taskQuality | `low` Fast Preview / `normal` Standard / `high` Professional (recommended) |\r\n| useMask | Enable (auto background removal, best for plain backgrounds) / Disable (keep original background, default) — **only effective when `scene=model`; ignored when `scene=space`** |\r\n\r\n**Multiple videos:**\r\n\r\n```text\r\nYou provided N videos. Choose (I will not choose for you):\r\nA) One 3DGS — one worldId\r\nB) Separate 3DGS per video — N worldIds (N tasks, processed one video at a time)\r\n```\r\n\r\n**After create:**\r\n\r\n```text\r\nTask created, worldId: {worldId}\r\nView when ready: https://studio.aholo3d.com/3dgs-model/{worldId}\r\n(Link may not be accessible until the task completes)\r\n\r\nWait until complete?\r\n- wait / yes — sync poll in this session\r\n- no — poll later or open the link yourself\r\n```\r\n\r\n## 6. Task rules & parameters\r\n\r\n### reconstruction\r\n\r\n- `videoPaths` (no fixed limit) **or** `imagePaths`/`imageDir` (≥20 images), pick one\r\n  - `.mp4` / `.mov` → `type=video`; `.insv` (Insta360 panoramic video) → `type=insv`; detected automatically from extension\r\n- Required: `scene`, `taskQuality`\r\n- Optional: `useMask` (boolean; auto background removal; **only effective when `scene=model`**; default `false`; ignored when `scene=space`)\r\n- `imageDir` scans jpg/jpeg/png/webp only (excludes bmp/gif)\r\n\r\n### generation\r\n\r\n- ≤1 image; `prompt` and image not both empty; no `videoPaths`; no `scene`/`taskQuality`\r\n\r\n### Key params\r\n\r\n| Param | Description |\r\n|-------|-------------|\r\n| `action` / `workflow` | see §2 actions |\r\n| `imageDir` | preferred for image-folder reconstruction |\r\n| `videoPaths` | no fixed limit; `.insv` auto-detected as `type=insv`, others as `type=video` |\r\n| `useMask` | boolean, background removal (optional; **reconstruction + `scene=model` only**; default `false`) |\r\n| `worldId` | for `status` / `poll` |\r\n| `pageNum` / `pageSize` / `statusList` | `list` pagination params |\r\n| `forbidCreate` | guard against accidental duplicate create for **same task**; do not set for next video in multi-video B |\r\n\r\n### Examples (agent runs with `python -u`)\r\n\r\nJSON argument on a **single line** as the second argv. See Windows/PowerShell section below for Windows-specific rules.\r\n\r\n```bash\r\n# Reconstruction (image directory)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create\",\"workflow\":\"reconstruction\",\"imageDir\":\"D:/images\",\"scene\":\"space\",\"taskQuality\":\"high\"}'\r\n\r\n# Reconstruction (Insta360 panoramic video, auto-detected as type=insv)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create\",\"workflow\":\"reconstruction\",\"videoPaths\":[\"D:/room.insv\"],\"scene\":\"space\",\"taskQuality\":\"high\"}'\r\n\r\n# Reconstruction (with background removal)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create\",\"workflow\":\"reconstruction\",\"videoPaths\":[\"D:/obj.mp4\"],\"scene\":\"model\",\"taskQuality\":\"normal\",\"useMask\":true}'\r\n\r\n# Generation\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create-generation\",\"imagePaths\":[\"D:/seed.jpg\"],\"prompt\":\"modern minimal interior\"}'\r\n\r\n# Poll\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"poll\",\"worldId\":\"xxx\",\"intervalSeconds\":60,\"timeoutSeconds\":14400}'\r\n\r\n# List (running + succeeded)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"list\",\"pageNum\":0,\"pageSize\":20,\"statusList\":[\"RUNNING\",\"SUCCEEDED\"]}'\r\n```\r\n\r\n### Windows / PowerShell (agent must read)\r\n\r\nWhen the user is on **Windows**, the agent must follow these rules:\r\n\r\n- **Shell:** Use **PowerShell** by default; **no** bash syntax (e.g. `&&` chaining); use `;` to separate commands, or issue one `python -u ...` at a time.\r\n- **JSON arg:** Put the entire JSON on a **single line** wrapped in **single quotes** as the second argument; **never** break it across multiple lines (PowerShell will split arguments).\r\n- **Paths:** Use forward slashes in Windows paths, e.g. `D:/images/0001.jpg`, to avoid unescaped backslash issues.\r\n- **Working directory:** Run from the repo root or the directory containing `.cursor/skills/aholo-3dgs-reconstruction-global/`.\r\n- **Output:** Always include `-u` so create/upload/poll progress streams in real time.\r\n- **User self-debug (optional):** `$env:AHOLO_API_KEY=\"...\"` then the same single-line `python -u ...`; agent-run is still the preferred path.\r\n\r\n## 7. Appendix\r\n\r\n**API paths:** `GET /global/world/v1/asset/token` · `POST /global/world/v1/reconstructions` · `POST /global/world/v1/generations` · `GET /global/world/v1/{worldId}` · `POST /global/world/v1/list` · OUS upload uses domain from token response (no `/global` prefix on OUS)\r\n\r\n**Terminal states:** `SUCCEEDED` · `FAILED` · `CANCELED` · `TIMEOUT` · `REJECTED`\r\n\r\n**Output fields (after SUCCEEDED):** `plyPath` · `spzPath` · `lodMetaPath` (LOD chunk metadata, optional) · `panoUrl` (AI panorama, generation only)\r\n\r\n### Local debug (optional)\r\n\r\n```powershell\r\n$env:AHOLO_API_KEY=\"your_api_key\"\r\n# Optional: $env:AHOLO_FORCE_SSL_VERIFY=\"1\"\r\n```\r\n\r\nAgent-run is preferred; user sets the key and replies **continue**.\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn79z5qcbhp8zdzp8q08rc46fh873564\",\n  \"slug\": \"aholo-3dgs-recon-global\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1782808858286\n}\n\nFile v1.0.4:skill-card.md\n\n## Description: <br>\nRuns Aholo OpenAPI v1 global 3D reconstruction and generation tasks by uploading media, creating world tasks, and polling or listing task status. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[xiaohao17501671450-lgtm](https://clawhub.ai/user/xiaohao17501671450-lgtm) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agents use this skill to create Aholo 3DGS reconstruction or generation jobs from videos or images, retrieve world IDs, and check or poll for output assets such as PLY, SPZ, SOG, LOD metadata, and panorama URLs. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill uploads user media and sends an Aholo API key to external Aholo services. <br>\nMitigation: Use only media intended for Aholo processing, keep AHOLO_API_KEY in the environment, and avoid pasting credentials into prompts or files. <br>\nRisk: TLS certificate verification is disabled by default in the script, which can weaken transport security. <br>\nMitigation: Set AHOLO_FORCE_SSL_VERIFY=1 before running the skill whenever the network environment supports normal certificate validation. <br>\nRisk: The security scan notes that create, status, and list actions target an under-documented beta Aholo API host. <br>\nMitigation: Review behavior before installing and prefer status or list checks rather than duplicate create requests when a task may already have been charged. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/xiaohao17501671450-lgtm/skills/aholo-3dgs-recon-global) <br>\n- [Aholo API keys](https://labs.aholo3d.com/api-keys) <br>\n- [Aholo global API gateway](https://api.aholo3d.com) <br>\n- [Aholo Studio 3DGS viewer](https://studio.aholo3d.com/3dgs-model/{worldId}) <br>\n- [Aholo pricing](https://www.aholo3d.com/pricing) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown status messages and single-line Python command examples with JSON parameters] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires AHOLO_API_KEY and may upload user-provided media to Aholo before task creation.] <br>\n\n## Skill Version(s): <br>\n1.0.4 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.4:requirements.txt\n\nrequests>=2.28.0\r\nurllib3>=2.0.0\n\nArchive v1.0.3: 5 files, 16840 bytes\n\nFiles: aholo_reconstruct.py (44663b), requirements.txt (34b), skill-card.md (2680b), SKILL.md (11049b), _meta.json (142b)\n\nFile v1.0.3:SKILL.md\n\n---\r\nname: aholo-3dgs-reconstruction-global\r\ndescription: \"Aholo OpenAPI v1 global 3D tasks (reconstruction/generation): upload, create (worldId), poll/status. Gateway api.aholo3d.com, /global/world/v1. Default one create per single intent; multiple creates allowed when user explicitly chooses separate 3DGS per video. Not for 2D.\"\r\n---\r\n\r\n# Aholo 3D Reconstruction Skill — Global (OpenAPI v1)\r\n\r\n> **Aholo global Open Platform** (`api.aholo3d.com`). Agent runs `aholo_reconstruct.py`; user sets `AHOLO_API_KEY` only.\r\n\r\n## 1. When to use\r\n\r\n**Use:** 3D reconstruction, 3D generation, `worldId` status/poll, PLY/SPZ/SOG.\r\n\r\n**Do not use:** 2D renders only; no 3D outcome requested.\r\n\r\n**Ambiguous requests:** Clarify 2D single image vs 3D task (worldId + poll). Example: \"generate a room from a reference image\" → ask whether the user wants a 2D single render or a 3D task (worldId, pollable). Enter this skill only if user picks 3D.\r\n\r\n## 2. Prerequisites & API\r\n\r\n| Item | Detail |\r\n|------|--------|\r\n| Env | `AHOLO_API_KEY` — [api-keys](https://labs.aholo3d.com/api-keys) |\r\n| Auth | `Authorization: <API Key>`, no `Bearer` |\r\n| Create header | `x-source: skills` → platform `OPEN_API_SKILL` |\r\n| Gateway | `https://api.aholo3d.com`; paths `/global/world/v1/*` |\r\n| Viewer | `https://studio.aholo3d.com/3dgs-model/{worldId}` |\r\n| Actions | `create` / `create-reconstruction` / `create-generation` / `status` / `poll` / `list` |\r\n| Create success | `WorldAsyncOperation` contains `worldId` only |\r\n| Credits `11003` | Say insufficient credits; link [www.aholo3d.com/pricing](https://www.aholo3d.com/pricing); no invented URLs; **no** `create*` retry for **same video / same intent** |\r\n\r\n**Missing API key:** Tell user to set env and reply **continue**; agent runs script — do not make manual `python` the main path.\r\n\r\n### TLS (script default behavior)\r\n\r\n- Script **disables** SSL verification by default to avoid `CERTIFICATE_VERIFY_FAILED` on corporate/self-signed networks.\r\n- Force enable: set `AHOLO_FORCE_SSL_VERIFY=1` (or `true` / `yes` / `on`).\r\n- Compat var `AHOLO_INSECURE_SKIP_VERIFY`: verification is enabled only when explicitly set to `0` / `false` / `no` / `off`; any other value or unset keeps default bypass.\r\n\r\n### Responses & errors\r\n\r\n- **OpenAPI success:** HTTP 200; create returns JSON `WorldAsyncOperation` with `worldId` only.\r\n- **OpenAPI failure:** HTTP 4xx/5xx, body is `ApiError`: `code`, `message`, `status`, `details.metaData.bizCode` (e.g. `10004` not authenticated, `11003` insufficient credits).\r\n- **OUS upload:** asset upload uses the upload domain returned by the token endpoint.\r\n\r\n## 3. Agent hard constraints (mandatory)\r\n\r\n| # | Rule |\r\n|---|------|\r\n| 0 | 2D-only → **no** create/status/poll from this skill |\r\n| 7 | Unclear 3D intent → 2D/3D clarify first (§1) |\r\n| 1–3 | **Reconstruction only:** need confirmed `scene` (`model`/`space`) + `taskQuality` (`low`/`normal`/`high`) before create; **no** defaults (e.g. `high`/`model`) placed on behalf of the user |\r\n| 1–4 | **Reconstruction only:** the initial `AskQuestion` round **must simultaneously include** the `useMask` option (note: \"only effective when `scene=model`; ignored when `scene=space`\"); **never** default to `false` silently; **never** defer to a second round |\r\n| 4 | **Generation:** do **not** ask `scene`/`taskQuality`; create when `prompt`/image ready |\r\n| 8 | Image folder → use **`imageDir`** for all images; never upload a subset only |\r\n| 11 | **Multiple videos:** ask before create (**do not** choose for user): **A** one 3DGS (one create, all in `videoPaths`); **B** one 3DGS per video (see #9). Only 1 video → skip question |\r\n| 9 | **Create POST (high cost)** — **Default:** one user **single** 3D intent → at most **one** create per conversation round; no retry on same intent after fail/timeout/missing `worldId` unless user **explicitly re-orders**. **Pre-upload failure** (POST not sent) → one first create after fix. **Charged but no worldId** → task list / status/list, not another create. **Multi-video B:** user chose separate 3DGS → create **per video** (`videoPaths` one each), warn N tasks/charges upfront; **no** duplicate create for same video; failed video → no retry, continue with remaining. Use `forbidCreate` only to block accidental **duplicate for the same completed task**, not the next video in B |\r\n| 10 | `projectName` only if user explicitly asks; never invent from folder name or timestamp |\r\n| 5–6 | After each `worldId` → **ask** wait or not; if wait → **sync** `poll` (`intervalSeconds=60`, `timeoutSeconds=14400`); if not → link only. **No** background poll + \"I'll notify you\"; **no** poll without asking |\r\n\r\n### `taskQuality` display names (API values unchanged)\r\n\r\n| Value | Display |\r\n|-------|---------|\r\n| `low` | Fast Preview (极速预览) |\r\n| `normal` | Standard (标准) |\r\n| `high` | Professional — recommended (专业，推荐) |\r\n\r\n## 4. Standard flow\r\n\r\n1. Applicability + 2D/3D (§1).\r\n2. `reconstruction` vs `generation`.\r\n3. **Reconstruction:** `AskQuestion` first — **confirm `scene`, `taskQuality`, and `useMask` in one round** (§5 table); normalize free text before confirming; **do not split into two rounds**.\r\n4. **Multiple videos (2+):** A merge vs B separate (§5 template).\r\n5. token → upload → create (§3 #9, #11).\r\n6. Record `worldId`; ask wait (§5 template).\r\n7. Wait → sync `poll`; else link only.\r\n8. No further create same round except **new order** or **next video** in B (§3 #9).\r\n\r\n## 5. User prompts\r\n\r\n**Reconstruction — initial confirm (scene, taskQuality, useMask — one round, do not split):**\r\n\r\nUse `AskQuestion` with all three questions simultaneously:\r\n\r\n| Question | Options |\r\n|----------|---------|\r\n| scene | `model` (object) / `space` (scene) |\r\n| taskQuality | `low` Fast Preview / `normal` Standard / `high` Professional (recommended) |\r\n| useMask | Enable (auto background removal, best for plain backgrounds) / Disable (keep original background, default) — **only effective when `scene=model`; ignored when `scene=space`** |\r\n\r\n**Multiple videos:**\r\n\r\n```text\r\nYou provided N videos. Choose (I will not choose for you):\r\nA) One 3DGS — one worldId\r\nB) Separate 3DGS per video — N worldIds (N tasks, processed one video at a time)\r\n```\r\n\r\n**After create:**\r\n\r\n```text\r\nTask created, worldId: {worldId}\r\nView when ready: https://studio.aholo3d.com/3dgs-model/{worldId}\r\n(Link may not be accessible until the task completes)\r\n\r\nWait until complete?\r\n- wait / yes — sync poll in this session\r\n- no — poll later or open the link yourself\r\n```\r\n\r\n## 6. Task rules & parameters\r\n\r\n### reconstruction\r\n\r\n- `videoPaths` (no fixed limit) **or** `imagePaths`/`imageDir` (≥20 images), pick one\r\n  - `.mp4` / `.mov` → `type=video`; `.insv` (Insta360 panoramic video) → `type=insv`; detected automatically from extension\r\n- Required: `scene`, `taskQuality`\r\n- Optional: `useMask` (boolean; auto background removal; **only effective when `scene=model`**; default `false`; ignored when `scene=space`)\r\n- `imageDir` scans jpg/jpeg/png/webp only (excludes bmp/gif)\r\n\r\n### generation\r\n\r\n- ≤1 image; `prompt` and image not both empty; no `videoPaths`; no `scene`/`taskQuality`\r\n\r\n### Key params\r\n\r\n| Param | Description |\r\n|-------|-------------|\r\n| `action` / `workflow` | see §2 actions |\r\n| `imageDir` | preferred for image-folder reconstruction |\r\n| `videoPaths` | no fixed limit; `.insv` auto-detected as `type=insv`, others as `type=video` |\r\n| `useMask` | boolean, background removal (optional; **reconstruction + `scene=model` only**; default `false`) |\r\n| `worldId` | for `status` / `poll` |\r\n| `pageNum` / `pageSize` / `statusList` | `list` pagination params |\r\n| `forbidCreate` | guard against accidental duplicate create for **same task**; do not set for next video in multi-video B |\r\n\r\n### Examples (agent runs with `python -u`)\r\n\r\nJSON argument on a **single line** as the second argv. See Windows/PowerShell section below for Windows-specific rules.\r\n\r\n```bash\r\n# Reconstruction (image directory)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create\",\"workflow\":\"reconstruction\",\"imageDir\":\"D:/images\",\"scene\":\"space\",\"taskQuality\":\"high\"}'\r\n\r\n# Reconstruction (Insta360 panoramic video, auto-detected as type=insv)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create\",\"workflow\":\"reconstruction\",\"videoPaths\":[\"D:/room.insv\"],\"scene\":\"space\",\"taskQuality\":\"high\"}'\r\n\r\n# Reconstruction (with background removal)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create\",\"workflow\":\"reconstruction\",\"videoPaths\":[\"D:/obj.mp4\"],\"scene\":\"model\",\"taskQuality\":\"normal\",\"useMask\":true}'\r\n\r\n# Generation\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create-generation\",\"imagePaths\":[\"D:/seed.jpg\"],\"prompt\":\"modern minimal interior\"}'\r\n\r\n# Poll\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"poll\",\"worldId\":\"xxx\",\"intervalSeconds\":60,\"timeoutSeconds\":14400}'\r\n\r\n# List (running + succeeded)\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"list\",\"pageNum\":0,\"pageSize\":20,\"statusList\":[\"RUNNING\",\"SUCCEEDED\"]}'\r\n```\r\n\r\n### Windows / PowerShell (agent must read)\r\n\r\nWhen the user is on **Windows**, the agent must follow these rules:\r\n\r\n- **Shell:** Use **PowerShell** by default; **no** bash syntax (e.g. `&&` chaining); use `;` to separate commands, or issue one `python -u ...` at a time.\r\n- **JSON arg:** Put the entire JSON on a **single line** wrapped in **single quotes** as the second argument; **never** break it across multiple lines (PowerShell will split arguments).\r\n- **Paths:** Use forward slashes in Windows paths, e.g. `D:/images/0001.jpg`, to avoid unescaped backslash issues.\r\n- **Working directory:** Run from the repo root or the directory containing `.cursor/skills/aholo-3dgs-reconstruction-global/`.\r\n- **Output:** Always include `-u` so create/upload/poll progress streams in real time.\r\n- **User self-debug (optional):** `$env:AHOLO_API_KEY=\"...\"` then the same single-line `python -u ...`; agent-run is still the preferred path.\r\n\r\n## 7. Appendix\r\n\r\n**API paths:** `GET /global/world/v1/asset/token` · `POST /global/world/v1/reconstructions` · `POST /global/world/v1/generations` · `GET /global/world/v1/{worldId}` · `POST /global/world/v1/list` · OUS upload uses domain from token response (no `/global` prefix on OUS)\r\n\r\n**Terminal states:** `SUCCEEDED` · `FAILED` · `CANCELED` · `TIMEOUT` · `REJECTED`\r\n\r\n**Output fields (after SUCCEEDED):** `plyPath` · `spzPath` · `lodMetaPath` (LOD chunk metadata, optional) · `panoUrl` (AI panorama, generation only)\r\n\r\n### Local debug (optional)\r\n\r\n```powershell\r\n$env:AHOLO_API_KEY=\"your_api_key\"\r\n# Optional: $env:AHOLO_FORCE_SSL_VERIFY=\"1\"\r\n```\r\n\r\nAgent-run is preferred; user sets the key and replies **continue**.\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn79z5qcbhp8zdzp8q08rc46fh873564\",\n  \"slug\": \"aholo-3dgs-recon-global\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1782794289850\n}\n\nFile v1.0.3:skill-card.md\n\n## Description: <br>\nGuides agents through Aholo OpenAPI v1 global 3D reconstruction and generation tasks, including media upload, create, status, poll, and list workflows for worldId-based 3DGS outputs. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[xiaohao17501671450-lgtm](https://clawhub.ai/user/xiaohao17501671450-lgtm) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal developers and 3D content operators use this skill to create Aholo 3DGS reconstruction or generation tasks from media, track worldId status, and retrieve model output links. It is intended for 3D outcomes, not 2D-only rendering requests. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: API keys and local media are sent through the skill while TLS certificate verification is disabled by default. <br>\nMitigation: Set AHOLO_FORCE_SSL_VERIFY=1 before use and verify the intended Aholo endpoints before submitting media or credentials. <br>\nRisk: The skill uploads user-provided media to an external Aholo service. <br>\nMitigation: Use only media approved for Aholo processing and keep AHOLO_API_KEY in the environment rather than embedding it in prompts or files. <br>\nRisk: Create operations can consume credits, and duplicate create calls for the same intent may create unintended charges. <br>\nMitigation: Follow the skill's single-create and ask-before-multiple-video rules, and do not retry the same create intent unless the user explicitly re-orders it. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/xiaohao17501671450-lgtm/skills/aholo-3dgs-recon-global) <br>\n- [Aholo API keys](https://labs.aholo3d.com/api-keys) <br>\n- [Aholo OpenAPI gateway](https://api.aholo3d.com) <br>\n- [Aholo Studio 3DGS viewer](https://studio.aholo3d.com/3dgs-model/{worldId}) <br>\n- [Aholo pricing](https://www.aholo3d.com/pricing) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with inline shell commands and JSON command arguments] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include worldId values, task status, viewer URLs, and PLY/SPZ/SOG output paths after successful tasks.] <br>\n\n## Skill Version(s): <br>\n1.0.3 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.3:requirements.txt\n\nrequests>=2.28.0\r\nurllib3>=2.0.0\n\nArchive v1.0.2: 5 files, 13846 bytes\n\nFiles: aholo_reconstruct.py (40505b), requirements.txt (34b), skill-card.md (2438b), SKILL.md (5957b), _meta.json (142b)\n\nFile v1.0.2:SKILL.md\n\n---\r\nname: aholo-3dgs-reconstruction-global\r\ndescription: \"Aholo OpenAPI v1 global 3D tasks (reconstruction/generation): upload, create (worldId), poll/status. Gateway api.aholo3d.com, /global/world/v1. Default one create per single intent; multiple creates allowed when user explicitly chooses separate 3DGS per video. Not for 2D.\"\r\n---\r\n\r\n# Aholo 3D Reconstruction Skill — Global (OpenAPI v1)\r\n\r\n> **Aholo global Open Platform** (`api.aholo3d.com`). Agent runs `aholo_reconstruct.py`; user sets `AHOLO_API_KEY` only.\r\n\r\n## 1. When to use\r\n\r\n**Use:** 3D reconstruction, 3D generation, `worldId` status/poll, PLY/SPZ/SOG.\r\n\r\n**Do not use:** 2D renders only; no 3D outcome requested.\r\n\r\n**Ambiguous requests:** Clarify 2D single image vs 3D task (worldId + poll). Enter flow only if user picks 3D.\r\n\r\n## 2. Prerequisites & API\r\n\r\n| Item | Detail |\r\n|------|--------|\r\n| Env | `AHOLO_API_KEY` — [api-keys](https://labs.aholo3d.com/api-keys) |\r\n| Auth | `Authorization: <API Key>`, no `Bearer` |\r\n| Create header | `x-source: skills` → platform `OPEN_API_SKILL` |\r\n| Gateway | `https://api.aholo3d.com`; paths `/global/world/v1/*` |\r\n| Viewer | `https://studio.aholo3d.com/3dgs-model/{worldId}` |\r\n| Actions | `create` / `create-reconstruction` / `create-generation` / `status` / `poll` |\r\n| Credits `11003` | Say insufficient credits; link [labs.aholo3d.com/quickstart](https://labs.aholo3d.com/quickstart); no invented URLs; no `create*` retry for **same video / same intent** |\r\n\r\n**Missing API key:** Tell user to set env and reply **continue**; agent runs script — do not make manual `python` the main path.\r\n\r\n**TLS:** Verification off by default; `AHOLO_FORCE_SSL_VERIFY=1` to enable.\r\n\r\n## 3. Agent hard constraints (mandatory)\r\n\r\n| # | Rule |\r\n|---|------|\r\n| 0 | 2D-only → no create/status/poll from this skill |\r\n| 7 | Unclear 3D intent → 2D/3D clarify first (§1) |\r\n| 1–3 | **Reconstruction only:** need confirmed `scene` + `taskQuality`; **no** defaults (e.g. `high`/`model`) |\r\n| 4 | **Generation:** do **not** ask `scene`/`taskQuality`; create when `prompt`/image ready |\r\n| 8 | Image folder → **`imageDir`** for all images; never upload a subset only |\r\n| 11 | **2–3 videos:** ask before create (**do not** choose): **A** one 3DGS (one create, all in `videoPaths`); **B** one 3DGS per video (see #9). One video → skip |\r\n| 9 | **Create POST (high cost)** — **Default:** one user **single** 3D intent → at most **one** create per conversation round; no retry on same intent after fail/timeout/missing `worldId` unless user **explicitly re-orders**. **Pre-upload failure** → one first create after fix. **Charged but no worldId** → task list / status/list, not another create. **Multi-video B:** user chose separate 3DGS → create **per video** (`videoPaths` length 1 each), N creates for N videos (N≤3); warn N tasks/charges upfront; **no** duplicate create for same video; failed video → no retry, continue with remaining. Use `forbidCreate` only to block accidental **duplicate for the same task**, not the next video in B |\r\n| 10 | `projectName` only if user explicitly asks |\r\n| 5–6 | After each `worldId` → **ask** wait or not; if wait → **sync** `poll`; if not → link only. **No** background poll + “I'll notify you”; **no** poll without asking |\r\n\r\n### `taskQuality` display (API values unchanged)\r\n\r\n| Value | Display |\r\n|-------|---------|\r\n| `low` | Fast Preview (极速预览) |\r\n| `normal` | Standard (标准) |\r\n| `high` | Professional (专业) |\r\n\r\n## 4. Standard flow\r\n\r\n1. Applicability + 2D/3D (§1).\r\n2. `reconstruction` vs `generation`.\r\n3. **Reconstruction:** confirm `scene` × `taskQuality` (§5 table); normalize free text first.\r\n4. **2–3 videos:** A merge vs B separate (§5).\r\n5. token → upload → create (§3 #9, #11).\r\n6. Record `worldId`; ask wait (§5).\r\n7. Wait → sync `poll` (`intervalSeconds=60`, `timeoutSeconds=14400`); else link only.\r\n8. No further create same round except **new order** or **next video** in B (§3 #9).\r\n\r\n## 5. User prompts\r\n\r\n**Reconstruction — pick one of 6 (or split questions):**\r\n\r\n| # | scene | taskQuality |\r\n|---|-------|-------------|\r\n| 1–3 | model | low / normal / high |\r\n| 4–6 | space | low / normal / high |\r\n\r\n**Multiple videos:**\r\n\r\n```text\r\nYou provided N videos. Choose (I will not choose for you):\r\nA) One 3DGS — one worldId\r\nB) Separate 3DGS per video — N worldIds (N tasks, processed one video at a time)\r\n```\r\n\r\n**After create:**\r\n\r\n```text\r\nTask created, worldId: {worldId}\r\nView when ready: https://studio.aholo3d.com/3dgs-model/{worldId}\r\n\r\nWait until complete?\r\n- wait / yes — sync poll in this session\r\n- no — poll later or open the link\r\n```\r\n\r\n## 6. Task rules & parameters\r\n\r\n### reconstruction\r\n\r\n- `videoPaths` (1–3) **or** `imagePaths`/`imageDir` (≥20)\r\n- Required: `scene`, `taskQuality`\r\n\r\n### generation\r\n\r\n- ≤1 image; prompt and image not both empty; no video; no scene/quality\r\n\r\n### Key params\r\n\r\n`imageDir` · `videoPaths` (one per create in mode B) · `worldId` · `forbidCreate` (same-task guard only)\r\n\r\n### Examples (agent runs with `python -u`)\r\n\r\n```bash\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create\",\"workflow\":\"reconstruction\",\"imageDir\":\"D:/images\",\"scene\":\"space\",\"taskQuality\":\"high\"}'\r\n\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"create-generation\",\"imagePaths\":[\"D:/seed.jpg\"],\"prompt\":\"modern minimal interior\"}'\r\n\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\"action\":\"poll\",\"worldId\":\"xxx\",\"intervalSeconds\":60,\"timeoutSeconds\":14400}'\r\n```\r\n\r\n## 7. Appendix\r\n\r\n**Paths:** `GET /global/world/v1/asset/token` · `POST .../reconstructions` · `POST .../generations` · `GET .../{worldId}` · OUS on `globalDomain` (no `/global` on OUS)\r\n\r\n**Terminal status:** `SUCCEEDED` | `FAILED` | `CANCELED` | `TIMEOUT` | `REJECTED`\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn79z5qcbhp8zdzp8q08rc46fh873564\",\n  \"slug\": \"aholo-3dgs-recon-global\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1779363585570\n}\n\nFile v1.0.2:skill-card.md\n\n## Description: <br>\nAholo OpenAPI v1 global 3D tasks for reconstruction and generation: upload media, create a world task, and check or poll worldId status. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[xiaohao17501671450-lgtm](https://clawhub.ai/user/xiaohao17501671450-lgtm) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and 3D content teams use this skill to submit videos or image sets to Aholo services for 3DGS reconstruction, create prompt or image based 3D generation tasks, and retrieve task status and result links. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill sends selected images, videos, and an Aholo API key to Aholo services. <br>\nMitigation: Use only media and credentials approved for Aholo processing, and confirm the account and destination before creating tasks. <br>\nRisk: The release evidence reports that HTTPS certificate verification is disabled by default. <br>\nMitigation: Enable TLS verification before running, for example with AHOLO_FORCE_SSL_VERIFY=1. <br>\nRisk: The release evidence reports use of a beta API endpoint that does not match the documented gateway. <br>\nMitigation: Confirm that api-beta.aholo3d.com is an intended endpoint for the account before uploading sensitive media. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/xiaohao17501671450-lgtm/aholo-3dgs-recon-global) <br>\n- [Aholo API keys](https://labs.aholo3d.com/api-keys) <br>\n- [Aholo quickstart](https://labs.aholo3d.com/quickstart) <br>\n- [Aholo Studio 3DGS viewer](https://studio.aholo3d.com/3dgs-model/{worldId}) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown status messages with inline shell commands and JSON command arguments] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Returns worldId values, viewer links, polling summaries, result file links, and actionable error messages.] <br>\n\n## Skill Version(s): <br>\n1.0.2 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.2:requirements.txt\n\nrequests>=2.28.0\r\nurllib3>=2.0.0\n\nArchive v1.0.1: 3 files, 13604 bytes\n\nFiles: aholo_reconstruct.py (38536b), SKILL.md (10882b), _meta.json (142b)\n\nFile v1.0.1:SKILL.md\n\n---\r\nname: aholo-3dgs-reconstruction-global\r\ndescription: \"Aholo OpenAPI v1 global 3D tasks (reconstruction/generation): upload assets, create task (WorldAsyncOperation / worldId), poll status and fetch PLY/SPZ/SOG; gateway api.aholo3d.com, world APIs under /global/world/v1. One POST create per user task round. Not for 2D image output.\"\r\n---\r\n\r\n# Aholo 3D Reconstruction Skill — Global (OpenAPI v1)\r\n\r\n> **Scope:** **Aholo global Open Platform** (`api.aholo3d.com`) 3D tasks — not 2D text-to-image.\r\n\r\n## When to use / not use (decide first)\r\n\r\n### Use this skill when\r\n\r\n- The user wants **3D reconstruction** (model / space)\r\n- The user wants a **3D world** (`worldId`, online preview, PLY / SPZ / SOG downloads)\r\n- The user asks to **query `worldId` status or keep polling**\r\n\r\n### Do not use this skill when\r\n\r\n- The user only wants **2D renders / concept art / still images**\r\n- The user did not ask for a **3D outcome** (worldId, model files, online 3D preview)\r\n- The user wants general image editing or text-to-image (use image-generation capabilities)\r\n\r\n### Ambiguous requests (clarify first)\r\n\r\nWhen the user says something like “generate a room in this style from a reference image”, ask:\r\n\r\n```text\r\nWhich do you want?\r\n1) 2D room render (single image)\r\n2) 3D room task (returns worldId and can be polled)\r\n```\r\n\r\nEnter this skill’s flow only after the user clearly picks **2)**.\r\n\r\nUpload images or video and create 3D tasks:\r\n\r\n- **reconstruction**\r\n- **generation** / spatial gen\r\n\r\nWhen complete, model download URLs (PLY / SPZ / SOG) may be returned.\r\n\r\n## Prerequisites\r\n\r\nEnvironment variable:\r\n\r\n- `AHOLO_API_KEY` — API Key from [labs.aholo3d.com/api-keys](https://labs.aholo3d.com/api-keys)\r\n\r\nAuth header: `Authorization: <API Key>` (**no** `Bearer` prefix).\r\n\r\n### When `AHOLO_API_KEY` is missing (agent behavior)\r\n\r\n- Tell the user to set `AHOLO_API_KEY` in the terminal or system environment, then reply **“continue”** or describe the same 3D task again.\r\n- **Do not** ask the user to run `python ... aholo_reconstruct.py` as the main path; the agent runs the script by default.\r\n- Local debugging by the user is optional.\r\n\r\n## TLS verification (skipped by default)\r\n\r\n- SSL verification is off by default to avoid `CERTIFICATE_VERIFY_FAILED` on corporate/self-signed networks.\r\n- Set `AHOLO_FORCE_SSL_VERIFY=1` to force verification on.\r\n- `AHOLO_INSECURE_SKIP_VERIFY` still skips verify unless explicitly `0` / `false` / `no` / `off`.\r\n\r\n## Service endpoints\r\n\r\n- API gateway: `https://api.aholo3d.com`\r\n- Upload host: from `GET /global/world/v1/asset/token` → `globalDomain` (OUS direct upload; response uses OUS V2 `c` / `m` / `d` envelope)\r\n- Typical `globalDomain` example: `https://ous-sg.kujiale.com` (always use the token response value)\r\n\r\n## Open Platform APIs\r\n\r\n| Method | Path | Success body |\r\n|--------|------|--------------|\r\n| GET | `/global/world/v1/asset/token` | `ousToken`, `globalDomain`, `blockSize` |\r\n| POST | `/global/world/v1/reconstructions` | `WorldAsyncOperation`: `{\"worldId\":\"<encrypted id>\"}` |\r\n| POST | `/global/world/v1/generations` | Same as above |\r\n| GET | `/global/world/v1/{worldId}` | World detail (`status`, `assets`, etc.) |\r\n| POST | `/global/world/v1/list` | Paginated list (not wrapped in script) |\r\n\r\nOUS upload paths remain `/ous/api/...` (no `/global` prefix on OUS).\r\n\r\n## Response conventions\r\n\r\n- **Success:** HTTP 200, business object returned directly (not OUS `c` / `m` / `d`).\r\n  - Create: JSON `WorldAsyncOperation` with field **`worldId`** only. Script also accepts legacy plain-text `worldId` if present.\r\n- **Failure:** HTTP 4xx/5xx, **`ApiError`**: `code`, `message`, `status`, `details.metaData.bizCode` (e.g. auth **401**, bizCode **10004**).\r\n\r\n## Supported actions\r\n\r\n| Action | Purpose |\r\n|--------|---------|\r\n| `create` | Unified entry; set `workflow` to `reconstruction` or `generation` |\r\n| `create-reconstruction` | Reconstruction only |\r\n| `create-generation` | Generation only |\r\n| `poll` | Poll by `worldId` until terminal state (recommended) |\r\n| `status` | Single status query |\r\n\r\n## Agent hard constraints (must follow)\r\n\r\n0. 2D image requests → **do not** call create / status / poll from this skill.\r\n1. Reconstruction without confirmed `scene` and `taskQuality` → **no** create.\r\n2. Confirm with the user first:\r\n   - `scene`: `model` or `space`\r\n   - `taskQuality`: `low` / `normal` / `high`\r\n3. **Do not** substitute defaults (e.g. `model` or `high`) without user choice.\r\n4. Call create only after explicit user choice (and obey rule 9).\r\n5. After `worldId`, **ask** whether to wait for polling:\r\n   - **Will wait:** run synchronous `poll` in-session until done\r\n   - **Will not wait:** return `worldId` and viewer link only\r\n6. **Do not** background-poll and promise “notify when done” — the session cannot notify later.\r\n7. If 3D intent is unclear, clarify 2D vs 3D before creating.\r\n8. **Image directories:** when the user points at a folder of images, use **`imageDir`** so all images upload — **never** upload only a subset (e.g. first 20).\r\n9. **One create POST per user task round** (high cost):\r\n   - At most **one** `POST /global/world/v1/reconstructions` or `POST /global/world/v1/generations` per user’s stated order in this conversation round.\r\n   - On failure, timeout, or missing `worldId` locally, **do not** create again unless the user explicitly starts a **new** order.\r\n   - Exception: if create POST was **never sent** (auth, missing assets, etc.), one first create is allowed after fixes.\r\n   - If the server may have charged but `worldId` is missing: guide the user to the platform task list or use `status` / `list` — **not** another create.\r\n   - If create was already sent this round, pass `forbidCreate: true` or skip create actions.\r\n10. **`projectName`:** omit unless the user explicitly requests a project name.\r\n\r\n## Required parameter interaction\r\n\r\n1. Prefer `AskQuestion` for `scene` × `taskQuality` (six combinations).\r\n2. Ask both in one step when possible.\r\n3. No create until the user has chosen.\r\n4. If the user writes free text (e.g. “high quality space”), normalize, confirm once, then proceed.\r\n\r\n### Recommended options\r\n\r\n| Option | scene | taskQuality | Note |\r\n|--------|-------|-------------|------|\r\n| 1 | model | low | Object, faster |\r\n| 2 | model | normal | Object, balanced |\r\n| 3 | model | high | Object, recommended |\r\n| 4 | space | low | Scene, faster |\r\n| 5 | space | normal | Scene, balanced |\r\n| 6 | space | high | Scene, recommended |\r\n\r\n**After create — ask whether to wait:**\r\n\r\n```text\r\nTask created, worldId: {worldId}\r\n\r\nWhen complete, view at: https://www.aholo3d.com/3dgs-model/{worldId}\r\n(Link may not work until the task finishes.)\r\n\r\nReconstruction usually takes minutes to tens of minutes.\r\n\r\nWait until complete?\r\n- \"wait\" / \"yes\" — I poll in this session until done\r\n- \"no\" — use the link later or ask me to poll/status\r\n```\r\n\r\n## Recommended flow\r\n\r\n1. Confirm `reconstruction` vs `generation`.\r\n2. For reconstruction: confirm `scene`, `taskQuality`.\r\n3. **One** create for the whole round.\r\n4. Record `worldId`; ask whether to poll.\r\n5. Afterwards only `poll` / `status` / `list` unless the user starts a new task.\r\n\r\n## Execution logging (default on)\r\n\r\nEach step should log: start, end, duration (seconds). Suggested steps: token, upload, create, status, each poll tick.\r\n\r\n## Polling strategy\r\n\r\nAfter `worldId`, **ask** before polling.\r\n\r\n**User will wait** — synchronous poll (use `-u`):\r\n\r\n```bash\r\npython -u aholo_reconstruct.py '{\"action\":\"poll\",\"worldId\":\"xxx\",\"intervalSeconds\":60,\"timeoutSeconds\":14400}'\r\n```\r\n\r\n**User will not wait** — return `worldId` and `https://www.aholo3d.com/3dgs-model/{worldId}`.\r\n\r\nSuggested: `intervalSeconds=60`, `timeoutSeconds=14400`.\r\n\r\n**Forbidden:** background poll with a promise to notify later; polling without asking.\r\n\r\n## Task type rules\r\n\r\n### reconstruction\r\n\r\n- Input: `videoPaths` **or** `imagePaths` / `imageDir` (one of)\r\n- `videoPaths`: 1–3 files\r\n- `imagePaths` / `imageDir`: at least 20 images\r\n- Required: `scene` (`model` / `space`), `taskQuality` (`low` / `normal` / `high`)\r\n\r\n### generation\r\n\r\n- `imagePaths` only, at most 1 image\r\n- `prompt` and `imagePaths` cannot both be empty\r\n- No `videoPaths`\r\n\r\n## Parameters\r\n\r\n### General\r\n\r\n| Parameter | Type | Description |\r\n|-----------|------|-------------|\r\n| `action` | enum | `create` / `create-reconstruction` / `create-generation` / `status` / `poll` |\r\n| `workflow` | enum | For `create` only: `reconstruction` or `generation` |\r\n| `projectName` | string | Optional → request `name`; omit unless user asked |\r\n| `coverPath` | string | Local cover image (optional) |\r\n| `cover` | string | Existing cover URL (optional) |\r\n| `worldId` | string | Required for `status` / `poll` |\r\n| `forbidCreate` | bool | If `true`, block any `create*` in this run |\r\n\r\n### reconstruction\r\n\r\n| Parameter | Type | Rule |\r\n|-----------|------|------|\r\n| `videoPaths` | string[] | 1–3 video paths |\r\n| `imagePaths` | string[] | ≥20 image paths |\r\n| `imageDir` | string | **Preferred** for folders — scans all images |\r\n| `scene` | enum | `model` / `space` (required) |\r\n| `taskQuality` | enum | `low` / `normal` / `high` (required) |\r\n\r\n### generation\r\n\r\n| Parameter | Type | Rule |\r\n|-----------|------|------|\r\n| `imagePaths` | string[] | At most 1 |\r\n| `prompt` | string | Optional; cannot be empty together with images |\r\n\r\n## Examples\r\n\r\nAgent should run the script; users only need `AHOLO_API_KEY` set.\r\n\r\n```bash\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\r\n  \"action\": \"create\",\r\n  \"workflow\": \"reconstruction\",\r\n  \"imageDir\": \"D:/images\",\r\n  \"scene\": \"space\",\r\n  \"taskQuality\": \"high\"\r\n}'\r\n\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\r\n  \"action\": \"create-reconstruction\",\r\n  \"videoPaths\": [\"D:/videos/angle1.mp4\"],\r\n  \"scene\": \"model\",\r\n  \"taskQuality\": \"high\"\r\n}'\r\n\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\r\n  \"action\": \"create-generation\",\r\n  \"imagePaths\": [\"D:/images/seed.jpg\"],\r\n  \"prompt\": \"modern minimal interior\"\r\n}'\r\n\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\r\n  \"action\": \"status\",\r\n  \"worldId\": \"A1b2C3d4E5\"\r\n}'\r\n\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\r\n  \"action\": \"poll\",\r\n  \"worldId\": \"A1b2C3d4E5\",\r\n  \"intervalSeconds\": 60,\r\n  \"timeoutSeconds\": 14400\r\n}'\r\n```\r\n\r\n## Windows PowerShell (optional local debug)\r\n\r\n```powershell\r\n$env:AHOLO_API_KEY=\"your_api_key\"\r\n```\r\n\r\n```powershell\r\n$env:AHOLO_FORCE_SSL_VERIFY=\"1\"\r\n```\r\n\r\n## Terminal status values\r\n\r\n`SUCCEEDED` | `FAILED` | `CANCELED` | `TIMEOUT` | `REJECTED`\r\n\r\n## Viewer URL after successful create\r\n\r\n`https://www.aholo3d.com/3dgs-model/{worldId}`\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn79z5qcbhp8zdzp8q08rc46fh873564\",\n  \"slug\": \"aholo-3dgs-recon-global\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1779276323295\n}\n\nArchive v1.0.0: 3 files, 12523 bytes\n\nFiles: aholo_reconstruct.py (39328b), SKILL.md (7539b), _meta.json (142b)\n\nFile v1.0.0:SKILL.md\n\n---\r\nname: aholo-3dgs-reconstruction-global\r\ndescription: Aholo OpenAPI v1 global 3D tasks (reconstruction/generation): upload assets, create task (WorldAsyncOperation / worldId), poll status and fetch PLY/SPZ/SOG; gateway api.aholo3d.com, world APIs under /global prefix. One POST create per user task round. Not for 2D image output. For China site use aholo-3dgs-reconstruction.\r\n---\r\n\r\n# Aholo 3D Reconstruction Skill — Global (OpenAPI v1)\r\n\r\n> **Scope:** This skill drives **global-site 3D tasks**, not 2D text-to-image. The flow matches `aholo-3dgs-reconstruction`, but the gateway, path prefix, and OUS region differ.\r\n\r\n## Differences vs China site (required reading)\r\n\r\n| Item | China (`aholo-3dgs-reconstruction`) | Global (this skill) |\r\n|------|--------------------------------------|---------------------|\r\n| API gateway | `https://api.aholo3d.cn` | `https://api.aholo3d.com` |\r\n| World API paths | `/world/v1/...` | `/global/world/v1/...` |\r\n| OUS upload paths | `/ous/api/...` (unchanged) | `/ous/api/...` (unchanged) |\r\n| `globalDomain` example | `https://ous-cos.kujiale.com` | `https://ous-sg.kujiale.com` (use token response) |\r\n| API Key signup | [labs.aholo3d.cn/api-keys](https://labs.aholo3d.cn/api-keys) | [labs.aholo3d.com/api-keys](https://labs.aholo3d.com/api-keys) |\r\n| Online viewer | `https://www.aholo3d.cn/3dgs-model/{worldId}` | `https://www.aholo3d.com/3dgs-model/{worldId}` |\r\n\r\nThe script defaults to `AHOLO_REGION=global` (set in this directory’s `aholo_reconstruct.py`). To switch regions on the same script, set `AHOLO_REGION=cn` or `global` explicitly.\r\n\r\n## When to use / not use (decide first)\r\n\r\n### Use this skill when\r\n\r\n- The user wants **3D reconstruction** (model / space) and explicitly uses the **global / overseas API**\r\n- The user wants a **3D world** (`worldId`, PLY/SPZ/SOG) via the global gateway\r\n- The user asks to **query `worldId` status or keep polling** on the global site\r\n\r\n### Do not use this skill when\r\n\r\n- The user only wants **2D renders / concept art / still images**\r\n- The user did not ask for a **3D outcome** (worldId, model files, online 3D preview)\r\n- The user explicitly wants the **China site** (`api.aholo3d.cn`, no `/global` prefix) → use `aholo-3dgs-reconstruction`\r\n\r\n### Ambiguous requests (clarify first)\r\n\r\nIf the user did not specify China vs global, ask:\r\n\r\n```text\r\nWhich Open Platform should we use?\r\n1) China (api.aholo3d.cn, paths /world/v1/...)\r\n2) Global (api.aholo3d.com, paths /global/world/v1/...)\r\n```\r\n\r\nUse this skill only when the user picks **2)** or context already confirms the global site.\r\n\r\n## Prerequisites\r\n\r\n- `AHOLO_API_KEY` — API Key from [labs.aholo3d.com/api-keys](https://labs.aholo3d.com/api-keys)\r\n- Auth header: `Authorization: <API Key>` (**no** `Bearer` prefix)\r\n\r\n### When `AHOLO_API_KEY` is missing (agent behavior)\r\n\r\n- Tell the user to set `AHOLO_API_KEY`, then reply **“continue”**.\r\n- **Do not** ask the user to repeatedly run create commands for the main flow; the agent runs the script.\r\n- Local debugging by the user is fine; default is agent-run.\r\n\r\n## TLS verification (skipped by default)\r\n\r\n- SSL verification is off by default (`AHOLO_FORCE_SSL_VERIFY=1` to force on).\r\n- `AHOLO_INSECURE_SKIP_VERIFY` still skips verify unless explicitly `0/false/no/off`.\r\n\r\n## Service endpoints (global)\r\n\r\n- API gateway: `https://api.aholo3d.com`\r\n- Upload token: `GET /global/world/v1/asset/token` → OUS direct upload via returned `globalDomain` (OUS still uses `c`/`m`/`d` envelope)\r\n\r\n## Open Platform APIs (global paths)\r\n\r\n| Method | Path | Success body |\r\n|--------|------|--------------|\r\n| GET | `/global/world/v1/asset/token` | `ousToken`, `globalDomain`, `blockSize` |\r\n| POST | `/global/world/v1/reconstructions` | `WorldAsyncOperation`: `{\"worldId\":\"<encrypted id>\"}` |\r\n| POST | `/global/world/v1/generations` | Same as above |\r\n| GET | `/global/world/v1/{worldId}` | World detail (`status`, `assets`, etc.) |\r\n| POST | `/global/world/v1/list` | Paginated list (not wrapped in script) |\r\n\r\n## Response conventions\r\n\r\n- **Success:** HTTP 200, business object returned directly (not OUS `c`/`m`/`d`).\r\n  - Create: JSON `WorldAsyncOperation` with **`worldId`**.\r\n- **Failure:** HTTP 4xx/5xx, **`ApiError`** (`code`, `message`, `status`, `details.metaData.bizCode`).\r\n  - Auth failures often: **401** + `bizCode` **10004** (`NOT_LOGGED_IN`).\r\n\r\n## Supported actions\r\n\r\n| Action | Purpose |\r\n|--------|---------|\r\n| `create` | Requires `workflow`: `reconstruction` or `generation` |\r\n| `create-reconstruction` | Reconstruction only |\r\n| `create-generation` | Generation only |\r\n| `poll` | Poll until terminal state (recommended) |\r\n| `status` | Single status query |\r\n\r\n## Agent hard constraints (must follow)\r\n\r\n0. 2D image requests → **do not** use create/status/poll from this skill.\r\n1. Reconstruction without confirmed `scene` / `taskQuality` → **no** create.\r\n2. Confirm `scene` (`model`/`space`) and `taskQuality` (`low`/`normal`/`high`) first.\r\n3. **Do not** submit with default values without user choice.\r\n4. Create only after explicit user choice (one create per round).\r\n5. After `worldId`, **ask** whether to wait for polling.\r\n6. **Do not** background-poll and promise “notify when done”.\r\n7. If 3D is unclear, clarify 2D vs 3D; if region is unclear, clarify site.\r\n8. Multi-image folders must use **`imageDir`**; do not upload only a subset.\r\n9. **One create POST per user task round** (high cost); do not auto-retry create on failure unless the user starts a new order. Use `forbidCreate: true` to block accidental create.\r\n10. **`projectName`:** omit unless the user explicitly wants a name.\r\n\r\n## Required parameter interaction\r\n\r\nSame as the China skill: prefer `AskQuestion` for `scene` × `taskQuality` (6 combinations).\r\n\r\nAfter create succeeds, ask whether to wait; viewer URL: **`https://www.aholo3d.com/3dgs-model/{worldId}`**.\r\n\r\n## Recommended flow\r\n\r\n1. Confirm global site + `reconstruction` / `generation`.\r\n2. For reconstruction: confirm `scene`, `taskQuality`.\r\n3. **One** create for the whole round.\r\n4. Record `worldId`, ask whether to poll.\r\n5. Only poll/status/list unless the user starts a new task.\r\n\r\n## Polling strategy\r\n\r\n- User will wait: synchronous `poll`, `intervalSeconds=60`, `timeoutSeconds=14400`, with `-u`.\r\n- User will not wait: return `worldId` and global viewer link.\r\n\r\n## Task type rules\r\n\r\nSame as the China skill:\r\n\r\n- **reconstruction:** `videoPaths` (1–3) or `imagePaths`/`imageDir` (≥20 images); `scene`, `taskQuality` required.\r\n- **generation:** at most 1 image in `imagePaths`; `prompt` and image cannot both be empty; no video.\r\n\r\n## Examples (global)\r\n\r\nScript path: `.cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py`\r\n\r\n```bash\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\r\n  \"action\": \"create\",\r\n  \"workflow\": \"reconstruction\",\r\n  \"imageDir\": \"D:/images\",\r\n  \"scene\": \"space\",\r\n  \"taskQuality\": \"high\"\r\n}'\r\n```\r\n\r\n```bash\r\npython -u .cursor/skills/aholo-3dgs-reconstruction-global/aholo_reconstruct.py '{\r\n  \"action\": \"poll\",\r\n  \"worldId\": \"A1b2C3d4E5\",\r\n  \"intervalSeconds\": 60,\r\n  \"timeoutSeconds\": 14400\r\n}'\r\n```\r\n\r\n## Windows PowerShell\r\n\r\n```powershell\r\n$env:AHOLO_API_KEY=\"your_api_key\"\r\n$env:AHOLO_REGION=\"global\"   # default in this skill’s script; usually omit\r\n```\r\n\r\n## Terminal status values\r\n\r\n`SUCCEEDED` | `FAILED` | `CANCELED` | `TIMEOUT` | `REJECTED`\r\n\r\n## Viewer URL after successful create\r\n\r\n`https://www.aholo3d.com/3dgs-model/{worldId}`\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn79z5qcbhp8zdzp8q08rc46fh873564\",\n  \"slug\": \"aholo-3dgs-recon-global\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1779266557954\n}","readmeExcerpt":"Skill: Aholo 3DGS reconstruction and generation Owner: xiaohao17501671450-lgtm Summary: Aholo OpenAPI v1 global 3D tasks (reconstruction/generation): upload, create (worldId), poll/status. Gateway api.aholo3d.com, /global/world/v1. Default one create per single intent; multiple creates allowed when user explicitly chooses separate 3DGS per video. Not for 2D. Tags: latest:1.0.7 Version history: v1.0.7 | 2026-07-03T07:","codeSnippets":[],"executableExamples":[],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\r\nname: aholo-3dgs-reconstruction-global\r\ndescription: \"Aholo OpenAPI v1 global 3D tasks (reconstruction/generation): upload, create (worldId), poll/status. Gateway api.aholo3d.com, /global/world/v1. Default one create per single intent; multiple creates allowed when user explicitly chooses separate 3DGS per video. Not for 2D.\"\r\n---\r\n\r\n# Aholo 3D Reconstruction Skill — Global (OpenAPI v1)\r\n\r\n> **Aholo global Open Platform** (`api.aholo3d.com`). Agent runs `aholo_reconstruct.py`; user sets `AHOLO_API_KEY` only.\r\n\r\n## 1. When to use\r\n\r\n**Use:** 3D reconstruction, 3D generation, `worldId` status/poll, PLY/SPZ/SOG.\r\n\r\n**Do not use:** 2D renders only; no 3D outcome requested.\r\n\r\n**Ambiguous requests:** Clarify 2D single image vs 3D task (worldId + poll). Example: \"generate a room from a reference image\" → ask whether the user wants a 2D single render or a 3D task (worldId, pollable). Enter this skill only if user picks 3D.\r\n\r\n## 2. Prerequisites & API\r\n\r\n| Item | Detail |\r\n|------|--------|\r\n| Env | `AHOLO_API_KEY` — [api-keys](https://labs.aholo3d.com/api-keys) |\r\n| Auth | `Authorization: <API Key>`, no `Bearer` |\r\n| Create header | `x-source: skills` → platform `OPEN_API_SKILL` |\r\n| Gateway | `https://api.aholo3d.com`; upload token `GET /global/asset/v1/token`; world tasks `/global/world/v1/*` |\r\n| Viewer | `https://studio.aholo3d.com/3dgs-model/{worldId}` |\r\n| Actions | `create` / `create-reconstruction` / `create-generation` / `status` / `poll` / `list` |\r\n| Create success | `WorldAsyncOperation` contains `worldId` only |\r\n| Credits `11003` | Say insufficient credits; link [www.aholo3d.com/pricing](https://www.aholo3d.com/pricing); no invented URLs; **no** `create*` retry for **same video / same intent** |\r\n\r\n**Missing API key:** Tell user to set env and reply **continue**; agent runs script — do not make manual `python` the main path.\r\n\r\n### TLS (script default behavior)\r\n\r\n- Script **enables** SSL verification by default (secure by default).\r\n- Corporate/self-signed certs: set `AHOLO_INSECURE_SKIP_VERIFY=1` (or `true` / `yes` / `on`) to explicitly disable verification; prefer `REQUESTS_CA_BUNDLE` to point at your enterprise CA.\r\n- On `CERTIFICATE_VERIFY_FAILED`, configure CA certs first; use `AHOLO_INSECURE_SKIP_VERIFY` only when you accept the risk.\r\n\r\n### Responses & errors\r\n\r\n- **OpenAPI success:** HTTP 200; create returns JSON `WorldAsyncOperation` with `worldId` only.\r\n- **OpenAPI failure:** HTTP 4xx/5xx, body is `ApiError`: `code`, `message`, `status`, `details.metaData.bizCode` (e.g. `10004` not authenticated, `11003` insufficient credits).\r\n- **OUS upload:** asset upload uses the upload domain returned by the token endpoint.\r\n\r\n## 3. Agent hard constraints (mandatory)\r\n\r\n| # | Rule |\r\n|---|------|\r\n| 0 | 2D-only → **no** create/status/poll from this skill |\r\n| 7 | Unclear 3D intent → 2D/3D clarify first (§1) |\r\n| 1–3 | **Reconstruction only:** need confirmed `scene` (`model`/`space`) + `taskQuality` (`low`/`normal`/`high`) before crea"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn79z5qcbhp8zdzp8q08rc46fh873564\",\n  \"slug\": \"aholo-3dgs-recon-global\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1783064387370\n}"},{"path":"skill-card.md","content":"## Description:\n\nRuns Aholo OpenAPI v1 global 3D reconstruction and generation workflows, including media upload, world creation, status checks, and polling for 3DGS outputs.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[xiaohao17501671450-lgtm](https://clawhub.ai/user/xiaohao17501671450-lgtm)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agents use this skill to submit confirmed 3D reconstruction or generation jobs to Aholo, upload images or videos, create a worldId, and poll for PLY, SPZ, SOG, or panorama outputs.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Authenticated requests send the Aholo API key, task metadata, prompts, and selected images or videos to Aholo infrastructure.\n\nMitigation: Use the skill only for content that is approved for Aholo processing, and avoid submitting sensitive prompts or media unless that transfer is acceptable.\n\nRisk: The security scan reports use of an undeclared beta world API endpoint.\n\nMitigation: Review endpoint use before deployment and prefer a release that documents the beta endpoint or uses the declared production endpoint for world tasks.\n\nRisk: The security scan reports that server-provided upload destinations are trusted too broadly.\n\nMitigation: Run in a controlled environment and prefer a version that validates allowed upload domains before sending media.\n\nRisk: TLS verification can be disabled with AHOLO_INSECURE_SKIP_VERIFY.\n\nMitigation: Keep TLS verification enabled; for enterprise certificates, set REQUESTS_CA_BUNDLE instead of disabling verification except during controlled testing.\n\nRisk: Dependencies are version-ranged rather than pinned.\n\nMitigation: Deploy with a lockfile or pinned package versions and review dependency updates before use.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/xiaohao17501671450-lgtm/skills/aholo-3dgs-recon-global)\n- [Aholo API keys](https://labs.aholo3d.com/api-keys)\n- [Aholo global API gateway](https://api.aholo3d.com)\n- [Aholo beta world API endpoint](https://api-beta.aholo3d.com)\n- [Aholo Studio 3DGS viewer](https://studio.aholo3d.com/3dgs-model/{worldId})\n- [Aholo pricing](https://www.aholo3d.com/pricing)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and JSON command arguments]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May call Aholo APIs and return worldId, status, polling progress, viewer links, and output asset paths when available.]\n\n## Skill Version(s):\n\n1.0.7 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."},{"path":"requirements.txt","content":"requests>=2.28.0\r\nurllib3>=2.0.0"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1695,"uniquenessScore":43,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T10:24:22.681Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T10:24:22.681Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T14:18:02.562Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}