aios-apps-invoke-cli
v1.0.3
Published
AIOS app invoke CLI client and socket service.
Maintainers
Readme
aios-apps-invoke-cli
aios-apps-invoke-cli 是 AIOS 应用调用入口包。它同时包含:
- CLI client:
servercommand/binding等一次性命令。 - 常驻 invoke service:
serve命令启动的本地 socket 服务。
正常调用链路是:
OpenClaw/agent -> aios-apps-invoke-cli client -> app-invoke socket -> aios-apps-invoke-cli serve -> management web / HZG SDK -> 业务系统CLI client 自身不直接访问业务系统,也不通过 MQTT 发起 app invoke 请求。AIOS Docker 容器中,OpenClaw 仍以默认 agent 身份调用 CLI;serve 由 apps supervisor 以 aios-svc 身份常驻运行,因此实际访问局域网业务系统的是 service 进程。
安装
npm install -g aios-apps-invoke-cli也可以直接用 npx:
npx aios-apps-invoke-cli --help运行模型
同一个 npm 包里包含 client 和 service,不需要安装两个包。
aios-apps-invoke-cli servercommand ...:作为 client 发送业务命令请求。aios-apps-invoke-cli binding ...:作为 client 发送系统绑定请求。aios-apps-invoke-cli serve:启动当前主路径使用的 app invoke socket service。aios-apps-invoke-cli service-status:输出 socket service 的状态结构。aios-apps-invoke-cli status:输出 client 配置视图。
环境变量
Client 命令不读取通讯配置环境变量。它固定连接内部 socket:
/var/aios/run/app-invoke.sockSocket service 使用:
AIOS_WEB_BASE_URL:可选,默认http://127.0.0.1:3030,用于读取业务系统配置、解析外部 cookie、记录调用日志。AIOS_APP_INVOKE_MAX_PAYLOAD_BYTES:可选,默认33554432,限制单次 socket 请求 JSON 的最大字节数。
用法
aios-apps-invoke-cli servercommand <应用名> <命令名> POST [jsonBody] -s <SessionId>
aios-apps-invoke-cli servercommand <应用名> <命令名> POST --body-file <json文件> -s <SessionId>
aios-apps-invoke-cli servercommand <应用名> <命令名> GET --query-file <json文件> -s <SessionId>
aios-apps-invoke-cli binding <应用名> <命令名> <请求方法> [jsonBody] -s <SessionId>
aios-apps-invoke-cli binding <应用名> <命令名> <请求方法> --body-file <json文件> -s <SessionId>
aios-apps-invoke-cli serve
aios-apps-invoke-cli service-status
aios-apps-invoke-cli status参数说明:
-s传入当前 OpenClaw 会话的SessionId。- 长参数使用
--sessionId。 servercommand的请求方法只支持GET和POST。jsonBody必须是合法 JSON;大请求体建议使用--body-file或--query-file,避免触发操作系统命令行参数长度限制。POST使用jsonBody、--body-file或--body-stdin作为请求体来源。GET使用jsonBody、--query-file或--query-stdin作为查询参数来源,JSON 必须是字符串值对象。- 业务系统类型固定为 HZG,不再通过命令行传入 provider。
示例
aios-apps-invoke-cli servercommand demo getUser POST --body-file .\payload.json -s thread-1aios-apps-invoke-cli binding OASystem GetTableDataWithOffset POST --body-file .\binding-body.json -s thread-2Binding 支持范围
当前实际可执行的 binding 命令:
GetTableDataWithOffsetGetComboBindingOptionsCalcBindingDataSource
CLI 会把 TableBinding、CandidatesBinding、DataSourceBinding 等别名规范化为上述命令。GetMetadata 和 GetMetadata2 只作为内部辅助能力存在,service 会拒绝直接调用。
Socket 协议
Client 会向内部固定 socket /var/aios/run/app-invoke.sock 写入一行 JSON 请求,service 返回一行 JSON 响应。
请求体包含:
traceIdcommandsessionIdparameterstimestamp
响应体格式:
{
"traceId": "string",
"code": 0,
"message": "OK",
"data": {}
}当 code !== 0 时,CLI 以非零退出码结束,并把错误信息输出到 stderr。
AIOS Docker 容器
AIOS Docker 容器中 apps supervisor 会以 aios-svc 启动:
aios-apps-invoke-cli serveOpenClaw/agent 调用 CLI 时仍使用默认 agent 身份。Docker iptables 的内网限制按 agent UID 生效;invoke service 以 aios-svc 访问业务系统,不需要把 agent 的局域网限制放开。
