用途:面向 Domo Code Engine 的包创建类工作流,覆盖新建包外壳、发布首个包内容 payload、推断并规范化函数输入输出数据类型,以及创建后更新应用 manifest.json 的 packagesMapping 条目。应用内函数调用模式不在本技能范围内。
主要能力:优先使用 community-domo-cli 执行创建,命令为 community-domo-cli --instance <instance> code-engine create-package --body-file payload.json;CLI 不可用时回退到 POST /api/codeengine/v2/packages。payload 需包含 name、description、code、environment、language 及 manifest.functions 等字段;在已有包上创建新版本时需在请求体中包含 id 和 version 并发送完整代码与 manifest。数据类型自动映射规则包括:payload、params、config、data、body、options 映射为 object;计数、限制、偏移类名称映射为 decimal;is*、has*、enabled、required 等映射为 boolean;*id、name、query、message 等标识或文本字段映射为 text;未知类型默认 text;输出默认 object;type 与 dataType 同时存在时使用相同类型值。创建成功后需更新 manifest.json 的 packagesMapping,将 packageId 设为返回的包 ID、version 设为返回或显式指定的版本,并确保映射函数的参数与输出一致;若包 ID 或版本变化,应视为漂移并立即同步。
使用方式:创建后必须验证目标包或版本,使用 GET /api/codeengine/v2/packages/{packageId} 确认目标版本存在且包含预期函数名,并确认输入输出数据类型与可空性符合预期。若创建返回不完整版本外壳(如缺少函数契约),转交 code-engine-update 流程,即通过 PUT /api/codeengine/v2/packages/{id}/versions/{version} 更新,更新后重新验证。
限制:硬性规则是除非用户明确说出“release”,否则绝不调用任何 Code Engine 发布端点,不得从上下文推断发布需求,也不得将发布作为“完成”“发布”或“使其工作”的一部分。若认为需要发布,必须先停下来获取用户的明确发布批准。其他平台细节暂未提供。