@accio-ai/ecommerce-cli 0.0.7-rc.1 → 0.0.8-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,8 @@
6
6
 
7
7
  ### Added
8
8
 
9
+ - Amazon 商品采集新增公共 `--asin` / JSON `asin` 选择器,定向调用 `amz_catalog_items` 的 ASIN 批量查询,并通过独立 coverage key 与全店快照隔离。
10
+ - 新增独立 Monitor 和命令/API/后台执行三类安全事件,通过 Phoenix Gateway 上报;兼容原 API JSONL,以 invocation/apiCall/job/execution 关联,恢复上下文独立。队列与网络预算有界,关闭开关和发送失败不改变业务输出或退出码;未确认持久化时不宣称任务完成。真实 Desktop → SLS 验收仍待可信测试宿主,详见 [验收记录](docs/monitor-acceptance.md)。
9
11
  - 海外商品 publish 新增 `--expected-platform` 和 `--concurrency`,支持显式限定平台与有界并发(默认 2、最多 4);同一次调用选定平台、店铺和站点内的全部待提交商品通过预检后才正式发送,任一商品预检失败时其他待提交商品返回 `not_attempted`,未选平台的错误不阻断当前平台。
10
12
  - 完善 Amazon `update_listing` / `feed` 的模板生成、读取、提交与核验;Feed 按最多 100 条及本地大小预算拆批合并提交,中断后恢复原批次和原任务,同一本地数据目录的 AW 账号与 Amazon seller 共享 60 秒新提交间隔。
11
13
  - Temu 素材与发布支持固定规格、服饰 SKC、尺码表、数值聚合和图片资源回填,按模板声明的布局、映射和范围读取,并兼容语义一致的新布局版本。
@@ -14,8 +16,8 @@
14
16
  - 新增 `overseas product publish`,读取 Excel、ZIP 或解压素材目录,支持离线预检、可信店铺绑定、素材上传、平台提交与结果核验。TikTok 仅创建并核验草稿,Temu 返回商品创建结果,Amazon 按模板执行创建、更新或 Feed 并核验商品状态;真实店铺发品与 PC 上传仍需联调验收。
15
17
  - CLI 按环境、账号、空间隔离加密保存账号 token,并独立按连接缓存完整接口凭据及店铺、区域等字段,只补取当前选择范围缺失的连接。成功缓存最多 24 小时且早于 token 到期 5 分钟失效,普通负结果缓存 60 秒,命中不续期。`ECOMCTL_CREDENTIAL_CACHE=auto|off` 默认 auto;PC 和业务适配器继续管理店铺授权。
16
18
  - 补充本机 Gateway 地址的回归验证与配置说明:沿用 `ACCIO_LOCAL_GATEWAY_URL` 支持 4097、4098 和自定义本机端口,指定地址无效时不会回退到其他实例。
17
- - 新增京东 Excel 报表转换器和仓库内 `go run ./cmd/jdimport` 批处理入口,统一业务日期、SPU/SKU 商品标识和重复表头,输出逐文件导入报告;合法空报表保留处理结果但不生成事实数据。新增京东店铺商品概况数据源 `jd_store_jd_product_360`。
18
- - 新增供宿主接入的按平台文件转换注册与批量导入接口,先完成全批转换、校验和去重,再在同一事务提交事实、列定义与覆盖台账,失败时整批回滚。
19
+ - 国内统一 `domestic collection import` 接入按 source 显式绑定平台/DSL 的前置后处理,登记 22 项京东 DSL/source;Excel 在内存中归一化日期、SPU/SKU 身份与重复表头,JSON 仅接受各 DSL 已声明的标准记录结构,再复用原导入流程。新增京东店铺商品概况数据源 `jd_store_jd_product_360`。22 项 golden 对照通过,其中 14 项来自真实样本投影且已做本机整表对照,brand/category/detail/sku 的 daily/summary 共 8 项仍使用构造样本,不代表全量真实覆盖。
20
+ - 保留 `sourceimport.Service.ImportBatch` 批量业务能力:接收已解析的 Command,完成整批校验、组装和去重,再在同一事务提交事实、列定义与覆盖台账,事务失败时整批回滚;文件转换、初始化和报告不属于该事务,统一 CLI 一次仍导入一个 source。
19
21
  - 新增 `domestic collection plan`,按业务域、店铺/商品范围和日期生成采集计划,结合覆盖台账识别待补采数据;主题与指标列表补充 `description`,更新业务域分类和指标路由配置。
20
22
  - 海外报表采集新增持久化轮询状态与结果分发,等待期间释放 worker,支持进程恢复、租约接管和有界重试;报表结果按覆盖单元提交,采集时间统一保存为 UTC。
21
23
  - 新增 `--input-json-file`,从最多 1 MiB 的 UTF-8 / UTF-8 BOM 文件读取命令参数,沿用内联 JSON 的校验与默认值,避免 CMD / PowerShell 内联引号差异;补充 Windows 调用指南和三种 Windows Shell 的 EXE / npm 入口 smoke。
@@ -25,7 +27,7 @@
25
27
  - 新增 `make docs-check`,通过真实 CLI 输入契约检查当前文档示例与本地链接,并接入日常验证和原生平台 CI;开发与发布 smoke 同时执行构建后二进制契约检查。
26
28
  - 新增按域内嵌 JSON 命令契约,覆盖业务及系统入口;统一驱动命令注册、简短帮助、Schema 索引/单条详情/全量发现和输入校验,单条 Schema 引用完整并可离线编译。
27
29
  - 新增业务 `--input-json` 参数对象,与 flags/位置参数共用校验和默认值规则;支持类型、必填、枚举、互斥及条件必填检查,执行上下文单独声明。
28
- - 新增统一 JSON/Excel 文件接口:collection import 支持 JSON、XLSX、XLSM 和 JSON stdin,国内查询与海外 ready 支持显式导出 JSON/XLSX,并返回路径、格式、字节数、记录数和 SHA-256 回执。
30
+ - 新增统一 JSON/Excel 文件接口:collection import 支持 JSON、XLSX、XLS、CSV、ZIP 和 JSON stdin,明确拒绝含宏的 XLSM,国内查询与海外 ready 支持显式导出 JSON/XLSX,并返回路径、格式、字节数、记录数和 SHA-256 回执。
29
31
  - 新增 `make contract-check` 构建产物验收入口,以及 [CLI 调用与新命令接入指南](docs/CLI调用指南.md),覆盖注册、JSON 输入输出、文件用法、预检与错误恢复。
30
32
  - 新增多 Plugin SQLite 初始化 Go 接口:每份构建期内置 `init_config` 统一声明 Plugin、物理表、DDL 与 DML,Assets Loader 提供领域 Config,Storage Adapter 为 07 Core 生成内部同名表注册;使用库内初始化状态、Plugin 级 checksum、只读快速路径和 `BEGIN IMMEDIATE` 实现重复调用、并发调用与失败重试幂等,并通过 `setup`、`doctor`、写入命令初始化策略和 npm postinstall 接入。
31
33
  - 强化跨平台发布与 SQLite 恢复:统一兼容 JSON UTF-8 BOM/CRLF、避免 Windows npm shell 转义、拒绝 SQLite UNC/设备路径,并验证异常退出后的 WAL 恢复。
@@ -40,13 +42,16 @@
40
42
 
41
43
  ### Changed
42
44
 
43
- - 海外类目与素材定义默认使用中文,可指定 `en-US`;TikTok 查询关键词需与语言匹配。Amazon 素材定义将 `zh-CN` / `en-US` 映射为接口要求的 `zh_CN` / `en_US`,校验返回语言并保留模板的 `locale` / `uiLocale`。
44
- - 多平台素材包的离线 `--dry-run --store-id` 按内嵌来源店铺唯一选择平台,缺失或歧义时要求补充 `--expected-platform`;来源信息仅用于选择预检范围,正式发布仍需核对当前授权。
45
+ - 海外类目与素材定义默认使用中文,可指定 `en-US`,Schema 同步声明默认语言;TikTok 查询关键词需与语言匹配,但生成素材包时允许语言与类目证据不同,也兼容无 locale 的旧证据,仍校验证据摘要、授权上下文和类目。Amazon 素材定义将 `zh-CN` / `en-US` 映射为接口要求的 `zh_CN` / `en_US`,校验返回语言并保留模板的 `locale` / `uiLocale`。
46
+ - Amazon、TikTok 和 Temu 的 `publish --dry-run --store-id` 改为通过当前宿主授权唯一选择目标店铺、平台、市场和经营模式,不再按包内来源店铺筛选;缺失授权或目标歧义明确报错。此预检会获取或刷新当前授权,但不上传、发品或创建发布记录;未传店铺 ID 时仍为离线检查。升级自 `0.0.7-rc.1` 的调用方需提供宿主授权,正式发布会重新核对身份与目标。
47
+ - Temu 属性 `valueRule` 暂仅对已知值执行附加聚合校验:`1` 保持百分比范围及总和为 100 的要求,其他未知值不再单独导致“不支持”错误;必填、数值、范围、精度和单位等校验继续执行,最终仍以平台规则为准。
45
48
  - Amazon 素材包定义移除 `config.amazon_scenario.identifierStrategy` 输入及对应 metadata,不再要求预先选择 GTIN 或 GTIN 豁免策略;商品标识与豁免字段按 Amazon 返回的 Schema 生成。调用方需删除旧参数。
46
49
  - 海外商品命令恢复使用 `--store-id` / JSON `store_id`;categories 使用 `--config-file` 和完整参数 `--input-json-file`,不接受 `--config` 或内联 `--input-json`,并恢复通过 `--output-file` 导出类目证据。package 恢复接收外部证据文件及 SHA-256、`amazon_scenario` 和嵌套 `temu` 配置。使用过 `0.0.6-rc.2` 接口的脚本需同步调整,详见 [海外商品命令对接说明](docs/海外商品命令对接说明.md)。
47
50
  - 海外商品 publish 自动识别 Excel 中的平台,并按当前授权店铺选择唯一发布目标;移除该命令的 `--platform` / JSON `platform` 输入,保留 Excel、ZIP、解压目录和 `--assets-root` 支持。混合包离线预检按平台分组报告,正式结果返回实际绑定的 `target`。categories/package 的平台参数保持不变。
48
51
  - 国内 `collection plan` 响应收敛为 `status` 与 `await_collect`,待采集项包含 `source_id`、`type`、`dsl_id`;状态改为 `COLLECTION_REQUIRED` / `NO_COLLECTION_REQUIRED`。升级自 `0.0.5-rc.2` 及更早版本的调用方需适配原 `source_ids`、`items` 和 `configuration_issues` 字段的移除。
49
52
  - Paged 每页与 Report 后续鉴权请求前获取当前凭据;明确过期时仅恢复一次安全的当前操作并保留分页位置或 reportId,结果未知的提交不自动重放,401/403/40005 仍按 unauthorized 处理。账号 token 与接口凭据使用各自的 CLI 专用加密缓存,业务 SQLite、日志、任务快照和导出继续禁止保存 token。
53
+ - domestic 初始化遇到 config checksum 变化且 schema 完全匹配时,会在同一事务清空并重建 `domain_knowledge_view`、`domestic_metric_router_registry`、`data_source_meta`,重放当前初始化 DML 并更新 checksum;所有非 dry-run、数据库相关的 domestic 业务命令均可触发该修复,事实表和采集台账保持不变,失败整体回滚。
54
+ - 京东统一通过 `domestic collection import` 处理产物并调用原 Import,不生成加工文件或逐文件报告,空数组/仅表头继续按零记录错误处理。Excel 保留上海业务日期与单品 ID 的兼容 fallback;JSON 不补默认值,`--biz-data` 仍由原 Import 整批覆盖日期。
50
55
  - 海外采集命令从 `overseas download run/status/ready/retry` 统一更名为 `overseas collection run/status/ready/retry`,Schema ID 和返回的后续动作同步切换,不保留旧命令别名;调用脚本需同步更新。采集框架错误码从 `download_*` 更名为 `collection_*`;报表文件下载专属的 `report_download_failed` 保持原义。
51
56
  - 业务能力和业务存储按 `domestic`、`overseas`、`shared` 归拢,海外采集实现统一命名为 `collection`,后台执行、测试设施及生成工具同步更名;Bootstrap 分离国内和海外装配入口,并通过依赖门禁禁止业务域互相依赖。既有数据库路径、`download_*` 表名、初始化校验和及日志目录保持兼容。
52
57
  - 国内四张事实表改用共享列定义、逐行 `values_json` 和内容哈希存储,减少重复字段名及去重索引中的完整 JSON;查询按列定义还原业务字段,保持既有对外查询结构。直接读取 SQLite 事实表的使用方需适配新的 `source_schema_record`、`schema_id`、`values_json` 和 `content_hash`。
@@ -76,6 +81,9 @@
76
81
 
77
82
  ### Fixed
78
83
 
84
+ - Temu 全托、半托供货价及建议零售价按模板的最小货币单位原值传递,避免重复乘币种倍率;拒绝非整数最小单位、非正数和越界金额,并补充字段及单元格定位。
85
+ - Amazon 素材 Schema 错误在可唯一定位时补充输入单元格和命中的条件位置,区分禁止填写与值不合法;无法确定分支时保留通用诊断,不猜测修正动作或回显原始值。
86
+ - 完善多平台素材包兼容、TikTok 图片推断与映射、Temu 包装数量及属性输入处理;预检按实际选中的目标工作表报告问题,避免被其他平台的有效素材或错误干扰。
79
87
  - TikTok 发品幂等键绑定稳定店铺身份,重新授权连接不会重复创建;恢复时已返回回执但尚未核验的旧请求,禁止以新请求内容再次提交,需先核对原结果。
80
88
  - eBay 类目与素材定义命令保留取消原因,取消退出码恢复为 130;素材定义文件冲突沿用统一错误码和文件提交状态。
81
89
  - 发布协调、限流和日志恢复归入 Host,商品标识、成功标准和更新规则归入 Capability;恢复 material 的纯业务依赖门禁,并统一凭据缓存与命令说明。
@@ -104,6 +112,7 @@
104
112
 
105
113
  ### Removed
106
114
 
115
+ - 在 22 项新旧对照与回归通过后,删除旧 `cmd/jdimport`、`datasource/jdexcel` 以及无生产消费者的 `sourceimport/artifact`;保留原 ImportBatch 与存储回归,不保留旧独立入口别名。
107
116
  - 停止跟踪个人 `.idea` 项目配置,继续由 `.gitignore` 排除,本地 IDE 设置不受影响。
108
117
  - 删除迁移后的 Go 参数/条件 DSL、Schema 生成回退、旧 JSON/XLSX 输出链和生产测试兼容构造器,公开声明统一由域 JSON 维护。
109
118
  - 删除旧 `--output` / `ECOMCTL_OUTPUT`、`--import-path`、`--data-json`、`--data-json-file`、`--node-ids`、`--source`、`--product` 和 ready 的 `--format`;迁移方式见调用指南。
package/README.md CHANGED
@@ -12,6 +12,6 @@ Supported targets:
12
12
  - Linux: arm64 and x64
13
13
  - Windows: arm64 and x64
14
14
 
15
- Database setup is best-effort. Installs that disable lifecycle scripts, use an unsafe service identity, or encounter a database warning can initialize later with `ecomctl setup`; database-backed domain commands also perform the same idempotent initialization before their leaf operation. Run `ecomctl doctor` after installation to verify the local environment.
15
+ Database setup is best-effort. Installs that disable lifecycle scripts, use an unsafe service identity, or encounter a database warning must run `ecomctl setup` before using read-only database commands. Domestic imports can initialize their own domain before writing; read-only commands do not initialize databases. Run `ecomctl doctor` after installation to verify the local environment.
16
16
 
17
17
  The launcher invokes the platform binary with an argument array and no command shell. Release scripts invoke npm on Windows through `node.exe` and `npm-cli.js`. Package JSON readers accept a UTF-8 BOM and CRLF, while the executable launcher itself is packaged only with an LF shebang and no BOM.
package/checksums.json CHANGED
@@ -1,35 +1,35 @@
1
1
  {
2
- "version": "0.0.7-rc.1",
2
+ "version": "0.0.8-rc.1",
3
3
  "binaries": {
4
4
  "darwin-arm64": {
5
5
  "package": "@accio-ai/ecommerce-cli-darwin-arm64",
6
6
  "file": "ecomctl",
7
- "sha256": "84ec66c47e5e37a6a5003140d3ec4529522469abdaeb04be677f7c7eaa99521a"
7
+ "sha256": "9acab0d8d08e36d0c0413781102eab6a40f0fc62f9b9918a93140f4c337901a9"
8
8
  },
9
9
  "darwin-x64": {
10
10
  "package": "@accio-ai/ecommerce-cli-darwin-x64",
11
11
  "file": "ecomctl",
12
- "sha256": "4110243c08c36bc670911e195b8b492ecc6871676319047cce5f2d7bf252b05d"
12
+ "sha256": "9400a577c8dc35105d8577cee8c2096e7eae21a0e7c4675e51efde977ac22430"
13
13
  },
14
14
  "linux-arm64": {
15
15
  "package": "@accio-ai/ecommerce-cli-linux-arm64",
16
16
  "file": "ecomctl",
17
- "sha256": "cf5dac3b18215a0db0849761e62ee1529ab36516babbd67d714a2e135459929a"
17
+ "sha256": "13d1b365f509b38f2963f97602832ce290a19cd1b442a8b40b87d4fc00f8f8de"
18
18
  },
19
19
  "linux-x64": {
20
20
  "package": "@accio-ai/ecommerce-cli-linux-x64",
21
21
  "file": "ecomctl",
22
- "sha256": "48a8e1f43e5562ea063dd769143d86d351699c8f2811770201ec78403dde5137"
22
+ "sha256": "3e9369accc0c57513a9d64911157f50a403af953acc4c1872b5aa7fecc6606c0"
23
23
  },
24
24
  "win32-arm64": {
25
25
  "package": "@accio-ai/ecommerce-cli-win32-arm64",
26
26
  "file": "ecomctl.exe",
27
- "sha256": "3179abdbd9dde567b7bdc5a7be2019fa22672293de1b67b2857dd39fcd8d7581"
27
+ "sha256": "957137c2a4dd8b1a4716d3b3d8fcf2e1284f093296e1dc1e7a1eeaeee4c1e571"
28
28
  },
29
29
  "win32-x64": {
30
30
  "package": "@accio-ai/ecommerce-cli-win32-x64",
31
31
  "file": "ecomctl.exe",
32
- "sha256": "8b07ef4553b29d2eda2b12a301cc1ec516f99e249a56ffec04577883210b6086"
32
+ "sha256": "f5b1cc3d569186eaf9c1a69ef10212d4587f169ab0420dcc3df14e0d4e0c3e72"
33
33
  }
34
34
  }
35
35
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@accio-ai/ecommerce-cli",
3
- "version": "0.0.7-rc.1",
3
+ "version": "0.0.8-rc.1",
4
4
  "description": "Local, statically compiled ecommerce automation toolkit",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -18,12 +18,12 @@
18
18
  "postinstall": "node postinstall.cjs"
19
19
  },
20
20
  "optionalDependencies": {
21
- "@accio-ai/ecommerce-cli-darwin-arm64": "0.0.7-rc.1",
22
- "@accio-ai/ecommerce-cli-darwin-x64": "0.0.7-rc.1",
23
- "@accio-ai/ecommerce-cli-linux-arm64": "0.0.7-rc.1",
24
- "@accio-ai/ecommerce-cli-linux-x64": "0.0.7-rc.1",
25
- "@accio-ai/ecommerce-cli-win32-arm64": "0.0.7-rc.1",
26
- "@accio-ai/ecommerce-cli-win32-x64": "0.0.7-rc.1"
21
+ "@accio-ai/ecommerce-cli-darwin-arm64": "0.0.8-rc.1",
22
+ "@accio-ai/ecommerce-cli-darwin-x64": "0.0.8-rc.1",
23
+ "@accio-ai/ecommerce-cli-linux-arm64": "0.0.8-rc.1",
24
+ "@accio-ai/ecommerce-cli-linux-x64": "0.0.8-rc.1",
25
+ "@accio-ai/ecommerce-cli-win32-arm64": "0.0.8-rc.1",
26
+ "@accio-ai/ecommerce-cli-win32-x64": "0.0.8-rc.1"
27
27
  },
28
28
  "files": [
29
29
  "bin",