Skip to content

feat(cli): data-aisa 命令组 —— AIsa 只读信息查询的四个 verb - #72

Merged
KevinZhang19870314 merged 1 commit into
mainfrom
feat/aisa-data-provider
Nov 3, 2026
Merged

KevinZhang19870314 merged 1 commit into
mainfrom
feat/aisa-data-provider

Conversation

@KevinZhang19870314

@KevinZhang19870314 KevinZhang19870314 commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

做了什么

新增 agenzo-merchant-cli data-aisa 命令组,把 AIsa 的只读信息查询能力(加密货币、市场、Web 与新闻、SEO、社交、预测市场、研究)暴露给编排器:

verb 计费 说明
list-categories 免费 列出数据类目与各自的能力数,读内置索引,不走上游
search 免费 按关键词找能力,返回 operationId / method / path / tags / summary / price_usd
describe 免费 读某个能力的参数规格、调用提示与单价
query 按次计费 执行一次能力调用并返回数据

四个 verb 全部只读:不下单、不收款。因此没有一个 verb 带 --yes 或 --watch,--idempotency-key 也只是可选 —— 缺省时请求照发(不提示、不自动生成),去重退到结果缓存。

两处命名约定

  • flag 名用连字符形式(operation-id / idempotency-key),因为编排器按同一批名字拼 --<flag>。
  • 响应字段保留上游索引自己的大小写(operationId),让转发的 id 在整条链路上逐字节一致。

verb-schema.ts 里的 dataSchema() 用具名对象传 flags / response,而不是像 flightSchema 那样位置传参 —— 跨仓的 flag 名一致性检查直接从本文件文本里读 flags: / response:,位置参数没有可供识别的键。

改动范围

 apps/merchant-cli/src/data-aisa/_helpers.ts        |  94 ++++++++
 apps/merchant-cli/src/data-aisa/describe.ts        |  32 +++
 apps/merchant-cli/src/data-aisa/list-categories.ts |  30 +++
 apps/merchant-cli/src/data-aisa/query.ts           |  77 ++++++
 apps/merchant-cli/src/data-aisa/search.ts          |  45 ++++
 apps/merchant-cli/src/index.ts                     |  17 ++
 apps/merchant-cli/src/verb-schema.ts               |  87 +++++++
 apps/merchant-cli/tests/data-aisa.test.ts          | 268 +++++++++++++++++++++
 8 files changed, 650 insertions(+)

index.ts 的 17 行是 4 条 import 加 data-aisa 命令组的注册(沿用本仓既有的注入式 register 写法),没有改动任何既有命令。

验证

本分支已 rebase 到最新 main(8f405c4),在该基线上跑:

检查 结果
npm run test(vitest run) 982 passed / 27 skipped,65 个测试文件通过,退出码 0
npm run type-check(tsc --noEmit) 退出码 0
npm run check:error-codes 退出码 0 —— 目录 74 个码,CLI 引用的 1002 / 1007 / 1101 / 1103 全部存在,无后端内部码导入

tests/data-aisa.test.ts 的 268 行覆盖四个 verb 的参数解析、必填校验、输出投影与错误路径。

上下游

这是 AIsa 接入六仓链路的第三环。上游已就绪:

  • agenzo-providers v0.1.16 已发布(aisa-provider 包在 registry)
  • agenzo-platform 的 /data/* 四个只读端点已合入 develop 并部署到 dev

合并后本包需发 npm,下游的 -base 与 toolkit 才能接着改。

新增 `agenzo-merchant-cli data-aisa` 命令组,把 AIsa 的只读信息查询能力
(加密货币、市场、Web 与新闻、SEO、社交、预测市场、研究)暴露给编排器:

- list-categories:列出数据类目与各自的能力数(免费,读内置索引,不走上游)
- search:按关键词找能力,返回 operationId / method / path / tags / summary /
  price_usd(免费,同样只读内置索引)
- describe:读某个能力的参数规格、调用提示与单价(免费)
- query:执行一次能力调用并返回数据(按次计费)

四个 verb 全部只读:不下单、不收款。因此没有一个 verb 带 --yes 或 --watch,
--idempotency-key 也只是可选 —— 缺省时请求照发(不提示、不自动生成),
去重退到结果缓存。

两处命名约定:

- flag 名用连字符形式(operation-id / idempotency-key),因为编排器按同一批
  名字拼 `--<flag>`;
- 响应字段保留上游索引自己的大小写(operationId),让转发的 id 在整条链路上
  逐字节一致。

verb-schema 里的 dataSchema() 用具名对象传 flags / response,而不是像
flightSchema 那样位置传参 —— 跨仓的 flag 名一致性检查直接从本文件文本里读
`flags:` / `response:`,位置参数没有可供识别的键。

测试:apps/merchant-cli/tests/data-aisa.test.ts 覆盖四个 verb 的参数解析、
必填校验、输出投影与错误路径。
@KevinZhang19870314
KevinZhang19870314 merged commit 57fe49a into main Nov 3, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant