k88936
a8799adf5d
platform-tripo支持图片上传与预览图下载
...
- 产物下载类型改名为 TripoDownloadedArtifact,模型与预览图共用同一条流式读取路径
- 新增 download_rendered_image,读取 task 结果里的预览图地址
- 新增 upload_image,把图片字节上传 provider 换 file_token
- 图片输入收敛为 TripoImageInput 枚举,只有 file_token 与公网地址两种形态,不再接受裸字符串
- smoke 示例跟随新的图片输入类型
2026-09-21 14:06:47 +08:00
k88936
4edeadae7d
登记Tripo 3D的生成结果operation_kind白名单
...
- SpacetimeDB storage 的编辑器生成白名单加入 model3d_text_to_model 与 model3d_image_to_model
- 白名单是原子落库的 operation_kind 门禁,未登记会让整笔结果事务被拒
- api-server 侧按源码钉住两个 job kind 已在白名单内,避免只在运行期才发现
2026-09-21 14:02:58 +08:00
k88936
931be509f1
补记Tripo model3d的assetKind接入清单对照
...
- 主规范新增 assetKind 接入清单对照表,逐行登记后端-only 类别的触碰点口径
- 主规范明确原子落库 operation_kind 白名单必须新增两个 Tripo job kind,画布回填只走 placement-only
- 主规范登记用户标签覆盖、快速编辑与改造 capability 三项结论均为不进入,并写明后续接前端需重评
- 实施计划把 provider 配置文件行更正为 provider.rs,并在产物落库步骤补白名单与 placement 口径验收
- 后端架构文档补充说明:不走编辑器前端的生成类别同样适用清单,不能靠无前端入口跳过
2026-09-21 13:59:53 +08:00
k88936
dd8f48bad9
新增api-server Tripo3D提交路由与入队
...
- tripo3d 目录按 job 身份、provider 配置、错误映射、入队与路由拆分小文件
- 两个内部路由要求 Bearer 与 Idempotency-Key,顺序固定为解析、组合校验、查价、入队
- 入队复用编辑器生成队列的幂等 dedupe key,同键同请求返回原 operation,同键不同请求 409
- Tripo job 走既有 editor-canvas 来源与单次尝试口径,不新建队列、不新增状态
- 提交响应返回 operation、job kind 与既有任务查询状态地址,不暴露 provider 信息
- 补齐 ExternalGenerationJobRecord 测试夹具新增的 checkpoint 字段
2026-09-21 13:46:41 +08:00
k88936
d012392779
api-server 增加 Tripo 生成的环境配置
...
- AppConfig 新增 tripo_base_url / tripo_api_key / 请求超时 / 重试四个字段
- 默认网关指向 Tripo 官方 v3 地址,可由 TRIPO_BASE_URL 覆盖
- 环境变量沿用 provider 示例的 TRIPO_* 口径,API Key 缺省为空
- 默认值断言补进配置测试
2026-09-21 13:23:18 +08:00
k88936
2182b075b8
新增Tripo生成Worker执行链路实施计划
...
- 固定 api-server 侧 tripo3d 目录的文件切分与各文件职责
- 明确提交路由执行顺序、幂等口径与图片输入解析边界
- 记录 Tripo job 固定 max_attempts=1 与 checkpoint 收口语义
- 里程碑二转 active 并回链实施计划,里程碑一补实施计划入口
2026-09-21 13:17:24 +08:00
k88936
a11fd709fa
同步external_generation_job表目录的provider checkpoint口径
...
- 补记 provider_kind 与 provider_task_id 的追加字段、租约栅栏与禁止覆盖语义
- 说明 checkpoint 不进 payload、read model、BFF 响应与公开契约
- 事件表目录补充 provider_checkpoint 事件
2026-09-21 13:11:06 +08:00
k88936
aa1a1a63ed
spacetime-client 暴露 provider checkpoint 写入入口
...
- 重新生成 module bindings,新增 checkpoint procedure 与输入类型、表行与快照投影
- mapper 增加 checkpoint 记录输入与到绑定输入的转换,快照映射补两个新字段
- facade 新增 set_external_generation_job_provider_checkpoint,复用 procedure 结果映射
- facade 注释说明已有 checkpoint 被拒是 at-most-once submit 保证,写入失败按失败处理
2026-09-21 13:10:11 +08:00
k88936
09ea0a5e76
新增external_generation_job的provider任务checkpoint
...
- provider_kind 与 provider_task_id 追加在表末尾,带显式默认值,旧行迁移时补 NULL
- 新增 set_external_generation_job_provider_checkpoint_and_return procedure,复用 running 租约栅栏
- 已有 checkpoint 时禁止覆盖并留下 provider_checkpoint 事件,作为 at-most-once submit 的数据层保证
- 快照与兼容快照同步投影两个新字段,轻量摘要按无 checkpoint 返回
- 增加 checkpoint 不可覆盖的不变量单测
2026-09-21 13:02:52 +08:00
k88936
36036eed7b
修正Tripo定价文档口径为 fail-closed 与无单位
...
- 主规范去掉 model3d 段的 unit 字段,3D 恒为按次计价
- 主规范把加载即校验改为段存在时必须全键,并补充段缺失即拒绝提交
- 契约里程碑验收第 6 条同步为段缺失 fail-closed
- 实施计划把定价步骤指向 api-server/src/tripo3d/pricing.rs
2026-09-21 13:00:45 +08:00
k88936
e105e34f83
新增Tripo生成请求的平台组合校验
...
- 价格相关参数必须显式给出,texture 与 textureQuality、pbr 不能互相矛盾
- 目标落点与图片引用的 ID 不能为空白
- provider 能力组合规则复用 platform-tripo 预检,不维护第二份
- 校验结果直接产出定价输入,路由在扣费与 provider 调用前执行
- api-server 依赖 platform-tripo
2026-09-21 12:53:22 +08:00
k88936
8f6458ffe2
新增api-server Tripo3D模块与泥点定价结构
...
- 新增 tripo3d/pricing.rs,底价按 endpoint × 模型版本 × 是否有贴图,add-on 按固定键表叠加
- 定价段加载即校验全部底价与 add-on 键,缺键即配置非法;缺段代表未配置,查价直接拒绝
- editor_generation_config 挂载可选 model3d 段并提供 fail-closed 查价入口
- 后台记录形状尚不支持 3D 段,暂由文件配置提供并留下同步待办
- model_version 增加 ALL 与排序,供定价表枚举校验
2026-09-21 12:53:02 +08:00
k88936
f90e114bcb
生成目录化的Tripo API与画布TS绑定
...
- 生成模型输入、结果落点、产物元数据与按端点的结果类型到 packages/shared/src/contracts/model3d 子目录
- 新增 editor-canvas 生成目录,画布占位载荷不再依赖手写 TS
- 更新 model3d 导出索引,移除已删除的占位作业类型
- contracts:model3d:generate 生成后自动跑 prettier
2026-09-21 12:39:33 +08:00
k88936
7790a181c4
provider按参数分层并公开组合校验入口
...
- submit 改为接收生成参数,图片输入由调用方解析后单独传入
- 公开 validate_text_to_model_params / validate_image_to_model_params 供平台层在副作用前预检
- 参数到 provider 校验选项的映射收敛为 From 实现,去掉重复拼装
- smoke 示例跟随新签名
2026-09-21 12:39:20 +08:00
k88936
e0108f7d57
分层Tripo生成的provider参数与平台API请求契约
...
- common 新增 Model3dGenerationSource、Model3dGenerationTarget、Model3dGenerationTargetRef 与产物元数据
- text/image 各自的参数类型独立成 params,API 请求为 generation + 平台字段 + target
- 图片输入只接受站内引用,input 由服务端解析后注入 provider
- 删除宽松的作业与结果占位 DTO,改为按端点的严格结果与端点 tagged enum
- 新增契约严格性测试,覆盖分支必填字段、图片输入歧义与顶层未知字段
2026-09-21 12:38:46 +08:00
k88936
93306952d9
把画布占位载荷移出受feature门控的assets模块
...
- 新增 shared-contracts::editor_canvas,承载画布占位与回填载荷并接入 ts-rs 生成
- assets 模块改为内部引用该类型,不再自带定义
- api-server 七处引用改到新模块路径
2026-09-21 12:38:28 +08:00
k88936
ddf8e2c213
同步Tripo生成API的文档索引与领域术语
...
- docs/README 增加主规范与 ADR 入口
- CONTEXT.md 补充 3D 模型生成操作、provider task、Tripo API facade 等术语
- provider 专题把应用层接入指向新主规范
- 文档生命周期索引改为指向活动计划目录
2026-09-21 12:29:40 +08:00
k88936
6db1079610
新增Tripo生成API的里程碑规范与实施计划
...
- 新增契约与数据模型里程碑,锁定范围、不做项与验收标准
- 新增 Worker 执行链路与 API 路由里程碑,标注 pending 与定价前置依赖
- 新增契约里程碑实施计划,固定步骤顺序、验证命令与回退范围
2026-09-21 12:29:29 +08:00
k88936
699f321651
新增Tripo生成API集成主规范与决策记录
...
- 新增主规范,固定两个端点的请求、异步执行、结果持久化与泥点扣费合同
- 新增 ADR 0002,记录不复用 Hyper3D、at-most-once submit、提交时定价与落库失败退款
2026-09-21 12:29:08 +08:00
k88936
49b6451548
补充Tripo下载器迁移待办
...
记录Provider侧流式下载与第三方SDK保持原样的边界
增加等待上游SDK原生stream能力后的替换TODO
2026-09-19 23:16:02 +08:00
k88936
188614d5d2
改用Provider流式下载Tripo产物
...
保持第三方SDK不变并在Provider侧读取签名模型URL
逐块暴露模型响应并校验Content-Length,smoke示例改为异步落盘
为未来SDK原生stream能力保留迁移TODO
2026-09-19 23:14:00 +08:00
k88936
4c7fd968dd
明确Tripo模型流式下载边界
...
记录SDK与Provider只提供分块模型下载流
约定未来OSS上传直接消费数据流而不缓存完整模型
2026-09-19 22:20:23 +08:00
k88936
c48f0627cf
修复 ts-rs 对 enum 级 deny_unknown_fields 的解析告警并保留契约严格性
...
- 把 server-rs 与 apps/ai-game-creator-shell/src-tauri 两个 workspace 的 ts-rs 从 registry 固定到上游修复 commit fd8679ef20f866f747c046b30bd29c15e3d7a003(PR #491:已发布版 12.0.1 的 EnumAttr 不识别 deny_unknown_fields,只有 StructAttr 会静默忽略它),两个 Cargo.lock 同步改成 git 源
- 说明固定原因与退出条件:crates.io 最新仍是 12.0.1、GitHub 最新 tag 仍是 v12.0.0,等发布 > 12.0.1 后改回 registry 版本并删除 commit 固定
- 明确不使用 ts-rs 的 no-serde-warnings feature 消警:它会连同 deserialize_with 这类真实未支持的 serde 属性一起静默,掩盖 Rust 与 TS 绑定的漂移
- 保留 shared-contracts 的 Model3dMultiviewInputs enum 级 deny_unknown_fields(该属性一直由 serde 生效,告警只来自 ts-rs 的属性解析),注释改为写明不要为消警删属性、也不要改用 no-serde-warnings
- 新增契约测试 tests/model3d_multiview_request_contract.rs:钉住 views/taskId 变体内部与请求体顶层拒绝未知字段,并覆盖 kind 与 camelCase 字段名解析
- 记录排障经验与决策:pitfalls.md 说明无 span 的告警不代表属性失效,decision-log.md 记录固定 commit、影响面与回退条件
- 验证:cargo check -p shared-contracts 与该 crate 的 cargo test 不再出现 deny_unknown_fields 告警且全绿;cargo test --locked -p shared-contracts model3d 加 prettier 后 packages/shared 的 model3d 绑定零 diff;AGC 的 cargo check --locked --bin genarrative-ai-game-creator-shell 不再出现该告警(AGC 侧仍保留 1 条既有的 deserialize_with 告警,与本改动无关);npm run check:encoding、npm run check:doc-index、git diff --check、cargo fmt --all --check 通过
2026-09-19 16:56:24 +08:00
k88936
092bca7444
更新Tripo 3D模型Provider集成文档覆盖三个生成入口
...
文档改名为「Tripo 3D模型Provider集成」,H1 同步去掉“文本到”前缀,并更新 docs/README.md 链接
目标段改为三个入口共用 TripoProviderClient,列明 submit / submit_image_to_model / submit_multiview_to_model
新增「三个入口的输入」小节,记录 prompt 长度上限、image input 裸字符串引用、multiview views 与 taskId 二选一及视图数量要求
新增「任务查询与下载」小节,记录 TripoTaskSnapshot、TripoDownloadedModel 与必须重复取 task 的原因
补充契约分层说明:产品级结果契约目前只服务 text-to-model,image 与 multiview 结果仍在 provider 层
非目标标注前端查看器由 packages/model3d-viewer 独立实现、本阶段不接 UI 链路,验收补上输入校验与 smoke 行为
2026-09-19 16:19:05 +08:00
k88936
b0054fd51c
新增 3D 模型查看器独立包
...
- 新增 packages/model3d-viewer(@genarrative/model3d-viewer),含 Model3DViewer、scene、loader、framing、status 与 index
- 组件只走 WebGL2 单一路径渲染 glb、单文件 gltf 与 fbx,未承诺格式或超过 32 MiB 时只渲染一行状态文案
- 取景按真实顶点做投影拟合,与模型尺度无关,复位回到打开时的取景
- 新增 framing 与 loader 的纯函数单测
- 根 package.json 的 workspaces 增加 packages/model3d-viewer
- scripts/check-npm-workspaces.mjs 与 scripts/check-npm-workspaces.test.mjs 同步工作区清单
- vitest.config.ts 增加新包测试匹配
- 同步 package-lock.json 的工作区链接
2026-09-19 16:13:55 +08:00
k88936
0c4b1c34d9
标注模型下载的重复 task 查询
...
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 7m17s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 7m19s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 7m31s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 7m39s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m3s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m36s
Project CI / Native shell tests (pull_request) Failing after 11m43s
Project CI / AI game creator shell web tests (pull_request) Failing after 10m21s
Project CI / Frontend tests (pull_request) Successful in 12m23s
在 download_model 增加 TODO,说明 SDK 只提供 download_model(&Task) 因而必须再取一次 task
若将来 SDK 支持按 URL 下载,可直接使用 snapshot 中的模型 URL 省掉这次请求
2026-09-19 14:17:31 +08:00
k88936
3c1059aa39
移除 TripoUrl 的 Display 实现
...
删除 TripoUrl 的 Display,避免 `{}` 这类通用格式化输出带签名的完整 URL
完整 URL 仍可通过 as_str() 显式读取,日志与调试统一走 redacted() 或脱敏后的 Debug
技术方案文档补充该收敛说明
2026-09-19 14:17:00 +08:00
k88936
1392303f1c
请求契约把 model 改为必填字段
...
三个生成请求的 model 由 Option<Model3dModelVersion> 改为必填 Model3dModelVersion,并同步重新生成 TypeScript 绑定
validate_generation_options 不再重复校验 model 缺失,直接由必填的 model 推导 family
三个 client 的 to_sdk_params 改为直接提交模型版本字符串
冒烟示例与技术方案文档同步为必填写法
2026-09-19 14:16:39 +08:00
k88936
12512f26b2
multiview 输入拒绝未知字段
...
Model3dMultiviewInputs 增加 deny_unknown_fields,与 Model3dMultiviewToModelRequest 的严格反序列化保持一致
未知视图键(例如拼写错误的 righ)不再被静默丢弃,避免用少于调用方预期的视图提交任务
ts-rs 12 不支持 enum 级该属性,构建时会打印一条可忽略的告警,已在代码注释说明
2026-09-19 14:14:55 +08:00
k88936
800da43a8d
说明生成结果 DTO 的 number 精度边界
...
为 poll_after_ms、updated_at_micros、size_bytes 补充注释,说明其量级远低于 2^53,按 TS number 导出即可精确表示
重新生成 TypeScript 绑定,把上述说明同步为 JSDoc
技术方案补充同一说明,明确不做 bigint/string 特殊处理
2026-09-19 14:14:14 +08:00
k88936
b703f0c374
同步Tripo集成文档的契约导出与脱敏说明
...
补充 TripoUrl 脱敏输出与 as_str 读取完整 URL 的说明
补充请求可选字段在 TypeScript 绑定中为 field?: T | null 及 model3d barrel 导出入口
补充 ts-rs 生成后需 prettier 格式化再提交的流程说明
2026-09-19 13:17:58 +08:00
k88936
b87d9358e5
对齐 Api 与 Request 的可重试状态码
...
TripoError::is_retryable 的 Api 分支补充 408 与 425,与 Request 分支的可重试集合保持一致
2026-09-19 13:15:31 +08:00
k88936
f4996d7ac2
auto_size 仅在显式开启时按模型能力拦截
...
validate_generation_options 中 auto_size 的 H25 校验由 is_some() 改为 == Some(true)
auto_size: false 不再被当作启用,与 quad、smart_low_poly、generate_parts 的取值语义保持一致
2026-09-19 13:15:00 +08:00
k88936
09ef92420f
multiview 复用统一的 task_id 校验
...
删除 submit_multiview_to_model 中重复的空白判断,改为调用 common::validate_task_id
task_id 非法时的错误字段由 Inputs 改为更精确的 TaskId,与 get_task、download_model 保持一致
2026-09-19 13:14:32 +08:00
k88936
091938ed59
multiview 提交前裁剪 task_id
...
to_sdk_params 改为提交 task_id.trim(),与 task_id.trim().is_empty() 的校验使用同一份标准化输入
带前后空白的 task_id 不再原样转发给 Provider
2026-09-19 13:13:54 +08:00
k88936
ddb8b9e8ba
multiview 空白视图按未提供处理
...
to_sdk_params 新增 optional_view,将仅含空白的 left、back、right 归一化为未提供
空白视图不再以 Some(FileInput) 形式提交,与提交前“至少两个视图”的校验保持一致
2026-09-19 13:13:35 +08:00
k88936
230e4d49f2
image_to_model 提交前统一使用裁剪后的输入
...
to_sdk_params 改为传入 request.input.trim(),与提交前的空值校验使用同一份标准化输入
带前后空白的输入不再原样转发给 Provider
2026-09-19 13:12:50 +08:00
k88936
6c209b115a
冒烟示例在任务未完成时跳过下载并继续后续入口
...
轮询改用 throw_on_failure=false,失败终态交回示例按 status 判定而不是直接返回错误
非 Completed 的任务打印 status 与 failure 后 continue,避免一个入口失败中断其余入口的冒烟
2026-09-19 13:12:23 +08:00
k88936
b631125a16
冒烟示例不再输出完整下载地址
...
产物行改用 TripoUrl::redacted(),避免把带签名的下载 URL 写入标准输出
2026-09-19 13:07:41 +08:00
k88936
771ff88440
脱敏 TripoUrl 的 Debug 输出
...
为 TripoUrl 手写 Debug 实现,改用隐藏 query 与 fragment 的脱敏形式
新增 TripoUrl::redacted 提供日志用脱敏 URL,完整 URL 仍由 as_str 显式读取
TripoTaskSnapshot、TripoTaskOutput、TripoDownloadedModel 的调试输出随之不再暴露带签名的下载地址
2026-09-19 13:07:41 +08:00
k88936
950209f038
为 model3d 请求契约的可选字段补充 ts(optional)
...
为 image_to_model、multiview_to_model、text_to_model 三个请求的可选字段添加 ts(optional = nullable)
multiview 视图分支的 left、back、right 同步标记为可选
重新生成 packages/shared/src/contracts/model3d 下的 TypeScript 绑定,使 TS 侧可按 serde 语义省略字段
2026-09-19 13:07:41 +08:00
k88936
42a5929a73
清理 model3d 请求契约中冗余的 serde(default)
...
移除 image_to_model、multiview_to_model、text_to_model 三个请求结构体 Option 字段上的 serde(default)
同步移除 multiview 视图分支中三个可选视图的 serde(default)
serde 对 Option 字段本身即按 None 处理缺失字段,生成的 TypeScript 绑定保持不变
2026-09-19 13:07:41 +08:00
k88936
eda9da4d8d
单点维护 model3d 的 ts-rs 导出根目录
...
在 model3d/mod.rs 新增 model3d_ts_export_dir 宏,集中定义仓库相对导出根路径
common、image_to_model、multiview_to_model、text_to_model 改为调用宏并只声明各自子目录名
2026-09-19 13:07:41 +08:00
k88936
35be25dbd6
补齐 model3d 契约在 packages/shared 的导出入口
...
新增 packages/shared/src/contracts/model3d/index.ts 聚合 ts-rs 生成的 3D 生成契约类型
contracts/index.ts 增加 export type * from './model3d'
src/index.ts 增加 export type * from './contracts/model3d'
2026-09-19 13:02:01 +08:00
k88936
da9ee65119
记录Tripo真实冒烟结果结构
...
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 7m41s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 7m48s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 7m50s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 8m0s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m17s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m29s
Project CI / Frontend tests (pull_request) Successful in 14m49s
Project CI / AI game creator shell web tests (pull_request) Failing after 18m48s
Project CI / Native shell tests (pull_request) Failing after 27m31s
保留三个生成入口的脱敏真实结果形状与下载产物信息
使用实际可访问的 Rustacean 图片完成 image 与 multiview 示例
同步严格 endpoint 结果契约和真实 Provider 验收文档
2026-09-18 21:42:17 +08:00
k88936
527706b84e
按接口收紧Tripo任务结果类型
...
为 text、image、multiview 三类生成定义独立必填结果结构
以枚举关联任务类型与具体结果并对缺失字段失败关闭
将通用 URL 类型由 TripoModelUrl 更名为 TripoUrl
2026-09-18 21:37:38 +08:00
k88936
a4beb53dc6
完善Tripo冒烟CLI产物流程
...
等待三类生成任务完成并打印映射后的输出
完成后下载模型产物到当前目录并输出文件信息
仅在示例内部使用SDK轮询器,不扩展平台公共接口
2026-09-18 18:51:49 +08:00
k88936
25314d9a4a
新增Tripo三类生成冒烟CLI
...
增加仅通过环境变量配置的 Tripo generation example
顺序提交 text、image、multiview 三类任务并执行单次状态查询
保持无命令行参数且不调用 SDK 轮询接口
2026-09-18 18:42:58 +08:00
k88936
5be4a51ac1
完善Tripo枚举与参数组合校验
...
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 7m19s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 7m22s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 7m26s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 7m38s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m1s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m54s
Project CI / Native shell tests (pull_request) Failing after 3m5s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m13s
Project CI / Frontend tests (pull_request) Successful in 5m44s
按提供的 Tripo 文档补齐 compression、texture quality 与 texture version 枚举
移除未在三个生成接口出现的 style 占位字段并同步 Rust/TypeScript contracts
增加模型版本、纹理版本、生成部件、quad、smart-low-poly 与 face limit 的副作用前校验
同步 Provider 技术方案和 ADR
2026-09-18 17:23:55 +08:00
k88936
37b355a814
接入Tripo三类3D生成Provider
...
加入固定 revision 的 tripo-rust-sdk 与 platform-tripo workspace crate
实现 text-to-model、image-to-model、multiview-to-model 提交、通用任务查询和显式模型下载
抽取通用任务类型、状态映射、输出 URL 校验与 SDK 错误归一,保持 wait_for_task 不对外暴露
同步 Provider 边界文档并暂不接入 api-server
2026-09-18 16:02:13 +08:00