共享工程 标准附录
本附录是案例集所有 7 个案例共同遵循的工程标准的集中参考。每个案例文档只在必要处做最小重复,完整字段表 / capability 列表 / 发布 checklist 等都指向本附录,避免在多处复制粘贴导致失同步。
阅读顺序提示:新读者建议先浏览本附录建立全局认知,再进入具体案例。已经有经验的读者可以按需跳转。
metadata.json / manifest.json Schema
NeoMind 生态有两类可发布工件——扩展(Rust cdylib + 可选 React 前端)与仪表板组件(纯 React,以 bundle.js 形式分发)。两类工件的元数据文件名不同:
- 扩展 →
metadata.json(源仓库extensions/<id>/metadata.json,构建脚本从Cargo.toml自动生成) - 组件 →
manifest.json(源仓库components/<id>/manifest.json,手写维护)
两份 schema 字段重合度很高,但扩展独有 builds / frontend / type,组件独有 size_constraints / has_* 系列 / default_config。下表合并展示,分组说明,每个字段标注来源。
基础信息
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
id | string | 是 | 工件唯一标识,全生态唯一。扩展用 kebab-case(中划线,如 weather-forecast),组件用 snake_case(下划线,如 ne101_camera) | weather-forecast / ne101_camera |
name | string | object | 是 | 展示名。组件支持 { "en": "...", "zh": "..." } 多语言对象 | "weather forecast" / { "en": "NE101 Camera Panel", "zh": "NE101 感知摄像头面板" } |
version | string (semver) | 是 | 三段语义化版本。扩展从 Cargo.toml 自动读取;组件手写 | "2.7.6" / "2.14.9" |
description | string | object | 是 | 一句话描述,组件支持多语言 | "Real-time weather forecast..." |
author | string | 是 | 作者或团队名 | "NeoMind Team" / "CamThink Team" |
license | string | 扩展必填 | SPDX 许可证标识 | "Apache-2.0" / "MIT" |
homepage | string (URL) | 否 | 源码或文档地址 | "https://github.com/camthink-ai/NeoMind-Extensions/tree/main/extensions/weather-forecast" |
icon | string | 否(组件常用) | 图标标识,对应 NeoMind 图标库 | "Camera" |