mcpField
C
code-engine-create

code-engine-create

github.com/stahura云与 DevOps24190 次安装26 周前更新
代码仓库

关于 code-engine-create

用于创建 Domo Code Engine 包并准备函数负载的 Skill。它映射数据类型、同步应用清单条目,并验证创建的包版本。

主要功能

  1. 01创建包负载
  2. 02映射函数输入和输出类型
  3. 03同步清单包映射
  4. 04验证包版本和契约
  5. 05发布需明确批准

适用场景

  1. 01创建新的 Code Engine 包
  2. 02准备函数数据类型契约
  3. 03创建后更新应用清单

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/stahura/domo-ai-vibe-rules --skill code-engine-create

安装后在 Claude Code 中输入/code-engine-create确认已加载。

详细介绍

Code Engine 软件包创建(命令行)

使用此技能处理软件包创建工作流、载荷生成以及创建后的映射同步。

意图

此技能涵盖应用运行时调用技能范围之外的生命周期操作:

  • 创建新的软件包外壳
  • 发布首个软件包内容载荷
  • 推断并规范化函数输入/输出数据类型
  • 创建后更新应用 manifest.json 的 packagesMapping 条目

有关应用内函数调用模式,请使用 ~/.agents/skills/code-engine/SKILL.md。

主要执行路径

优先使用 community-domo-cli:

community-domo-cli --instance <instance> code-engine create-package --body-file payload.json

当命令行路径不可用时的回退端点:

POST /api/codeengine/v2/packages

发布安全规则

硬性规则:除非用户明确说 "release",否则绝不调用任何 Code Engine 发布端点。

  • 不要从上下文推断发布。
  • 不要将发布作为 "finish"、"publish" 或 "make it work" 的一部分。
  • 如果发布看起来是必要的,请停下来并先请求明确的发布批准。

必需的载荷结构

{
  "name": "My Package",
  "description": "Optional",
  "code": "// JS source",
  "environment": "LAMBDA",
  "language": "JAVASCRIPT",
  "manifest": {
    "functions": [
      {
        "name": "myFunction",
        "displayName": "My Function",
        "description": "",
        "inputs": [],
        "parameters": [],
        "output": {}
      }
    ],
    "configuration": {
      "accountsMapping": []
    }
  }
}

创建语义:

  • POST /api/codeengine/v2/packages 创建软件包或版本载荷目标。
  • 对于现有软件包上的新版本,在创建请求体中包含 id 和 version,并发送完整的代码/manifest 载荷。

数据类型映射规则(自动映射)

生成 manifest.functions[].inputs/parameters/output 时,应用以下默认值:

  • payload、params、config、data、body、options => object
  • 表示计数/限制/偏移的名称 => decimal
  • 类布尔名称(is*、has*、enabled、required)=> boolean
  • 标识符/文本字段(*id、name、query、message)=> text
  • 未知项 => text
  • 输出默认值 => object

当 type 和 dataType 两个字段同时存在时,使用相同的类型值。

创建后 Manifest 跟进

创建成功后,更新应用 manifest.json 的 packagesMapping:

  • 将 packageId 设置为已创建的软件包 id
  • 将 version 设置为返回的版本(或明确的目标版本)
  • 确保每个映射的函数具有匹配的 parameters 和 output

如果软件包 ID/版本发生变化,除非用户另有要求,否则将现有映射视为漂移并立即同步。

创建后验证(必需)

创建后,在宣布成功之前验证目标软件包/版本:

  1. GET /api/codeengine/v2/packages/{packageId}
  2. 确认目标版本存在并包含预期的函数名称。
  3. 确认函数输入/输出具有预期的数据类型和可空性。

如果创建返回不完整的版本外壳(例如缺少函数契约),则移交到更新流程:

  • 通过 code-engine-update 调用 PUT /api/codeengine/v2/packages/{id}/versions/{version}
  • 更新后重新运行验证

检查清单

  • 已尝试命令行优先的创建
  • 如果命令行不可用,已记录端点回退方案
  • 载荷包含 manifest.functions
  • 已对每个函数输入/输出应用数据类型映射
  • 除非用户明确要求发布,否则 未 调用发布
  • 已完成对目标软件包/版本的创建后验证
  • 不完整的创建结果已路由到 code-engine-update 并重新验证
  • 创建后已在 manifest 中更新 packagesMapping
  • 结果包含软件包 id/版本以供下游步骤使用

评论

支持 Markdown