diff --git a/ROADMAP.md b/ROADMAP.md index 35cc209..f64935b 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -16281,3 +16281,23 @@ fn pricing_for_model_returns_none_for_video_generation() { **Status:** Open. No code changed. Filed 2026-04-26 04:08 KST. Branch: feat/jobdori-168c-emission-routing. HEAD: 897055a (post-#226). Sibling-shape cluster: 26 pinpoints. Wire-format-parity cluster: 17 members. Capability-parity cluster: 9 members. Multimodal-IO cluster: 5 members (#220 image-input + #224 embedding-output + #225 audio-bidirectional + #226 image-output + #227 video-output). Cross-cutting-data-pipeline cluster: 4 members. Multipart-transport cluster: 4 members. Provider-asymmetric-delegation cluster: 4 members (the largest partner-set yet at twelve-plus partners for #227). **Nine-layer-fusion-shape-with-async-task-polling-primitive** matches #225's nine-layer-count but with the novel async-task-polling-primitive axis replacing the symmetric-input-output content-block axis — the largest fusion-shape gap catalogued so far, the upstream prerequisite of every visual-temporal-output coding-agent affordance, and the first cluster member where async-task-polling-primitive becomes a structural prerequisite of the dispatch layer. Distinct from prior cluster members; novel and applies to follow-on candidate 3D-asset-generation API typed taxonomy (#228 candidate inheriting same nine-axis shape with mesh-modality and per-asset-pricing). 🪨 + +--- + +## Pinpoint #228 — 3D-asset-generation API typed taxonomy is structurally absent + +**Branch:** feat/jobdori-168c-emission-routing +**Filed:** 2026-04-26 04:17 KST (Jobdori cycle #379) +**Extends:** #168c emission-routing audit / explicit follow-on from #227's nine-layer-fusion-shape-with-async-task-polling-primitive + +**Summary:** Zero `/v1/3d/generations` endpoint surface across both Anthropic-native and OpenAI-compat lanes. Zero `ThreeDGenerationRequest` / `ThreeDGenerationResponse` / `ThreeDObject` / `MeshFormat` / `MeshQuality` / `TextureDensity` / `ThreeDTaskStatus` / `ThreeDTaskId` typed model in `rust/crates/api/src/types.rs`. Zero `ThreeDAsset` variant on `OutputContentBlock` (4-arm exhaustive: Text/ToolUse/Thinking/RedactedThinking — the mesh-modality extension of #227's video-output axis). Zero `generate_3d_asset` / `retrieve_3d_task` methods on `Provider` trait (only `send_message` + `stream_message` exist). Zero 3D-asset-generation dispatch on `ProviderClient` enum (three variants Anthropic/Xai/OpenAi; zero Shap-E / Meshy-AI / Tripo-AI / CSM / StablePoint3D / Luma-Genie / Point-E / GET3D / One-2-3-45 partner-routing variants). Zero async-task-polling-primitive in the runtime (#227's novel shape-axis, required because mesh generation takes 10-180+ seconds). Zero `claw 3d` / `claw mesh` / `claw generate-3d` CLI subcommand. Zero `/3d` / `/mesh` / `/generate-3d` slash command in `SlashCommandSpec` table. Zero `mesh_per_asset_cost_usd` / `mesh_per_polygon_cost_usd` / `texture_resolution_cost_multiplier` fields in `ModelPricing` struct (text-token-only fields only). Zero 3D model entries in `MODEL_REGISTRY`. + +**Shape:** Same nine-layer fusion shape as #227 (endpoint-URL-set + async-task-polling-primitive + data-model-with-output-content-block-only + request-side opt-in for format/quality/texture + Provider-trait-method-set-with-Unsupported-fallback + ProviderClient-enum-dispatch-with-partner-lanes + CLI-subcommand-surface + pricing-tier + async-task-polling-primitive-with-timeout-and-resume) but with mesh-modality replacing video-modality: GLB/GLTF/USDZ/OBJ/FBX binary output instead of MP4, per-3D-asset pricing instead of per-second-of-video, and mesh-polygon-density as the key quality axis replacing video-fps-and-duration. + +**Key distinction from #227:** Output is binary-spatial-geometry (mesh + textures) not binary-temporal-media (video frames). Polling shape is identical (async-task-id-based two-phase request/poll) because mesh generation also exceeds typical HTTP timeout windows. Provider-asymmetric: Anthropic does not offer 3D generation at all; OpenAI has no GA 3D-gen endpoint; primary providers are Meshy AI, Tripo AI, CSM (Common Sense Machines), Luma Genie, Stability 3D, Point-E/Shap-E (Meta open-weight), GET3D (NVIDIA). + +**Clusters:** Sibling-shape cluster grows to 27. Wire-format-parity cluster grows to 18. Capability-parity cluster grows to 10. Multimodal-IO cluster grows to 6 (#220 image-input + #224 embedding-output + #225 audio-bidirectional + #226 image-output + #227 video-output + #228 mesh-output). Multipart-transport cluster: 4 (mesh-edits/retexture subset also needs multipart for reference-image upload). Provider-asymmetric-delegation cluster grows to 5. Async-task-polling cluster: 2 (#221 batch-dispatch + #227 video-gen + #228 mesh-gen — grows to three members that require async-task-polling-primitive at the runtime layer, confirming it as a first-class structural pattern, not a one-off). + +**Status:** Open. No code changed. Filed 2026-04-26. HEAD: 4ced378. Async-task-polling cluster now 3 members — pattern is confirmed structural, not anomalous. Upstream prerequisite of every spatial-computing / AR / VR / 3D-visualization coding-agent affordance. Provider-asymmetric (no Anthropic/OpenAI GA surface); nine recommended third-party partners. Inherits #227's novel async-task-polling-primitive shape-axis. + +🪨