@yizhuan-cli/cli 0.1.17-beta.0 → 0.1.17-beta.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/README.md CHANGED
@@ -99,3 +99,9 @@ yizhuan execute --ability hot_topics --params "{\"platform\":\"douyin\"}"
99
99
  - `我的会员什么时候到期`
100
100
 
101
101
  纯创作请求(例如“写一篇中秋文章”)由当前 Agent 完成,不调用 `content_extract`;CLI 只提供真实内容素材,不负责生成、改写或发布。
102
+
103
+ ## 使用统计
104
+
105
+ 仅采集业务调用元数据,不采集问题、关键词、URL、正文或返回内容。
106
+ 调用方可设置 `YIZHUAN_TRIGGER=user_initiated` 表示用户当前提问或手动触发(含 AI 代执行),设置 `YIZHUAN_TRIGGER=automated` 表示定时或无人值守任务。
107
+ 未设置时归为 `unknown`,不会猜测来源。检测轮询不计活跃。通过 `YIZHUAN_TELEMETRY=0` 可关闭使用埋点。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yizhuan-cli/cli",
3
- "version": "0.1.17-beta.0",
3
+ "version": "0.1.17-beta.1",
4
4
  "description": "易撰命令行工具,用于通过 API Key 查询易撰真实数据。",
5
5
  "private": false,
6
6
  "type": "module",
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: yizhuan-cli
3
3
  description: |
4
- 安装、配置并使用易撰 CLI(yizhuan 命令)查询真实数据、提取文章/视频/图文内容的全量 Skill;若已安装用户明确指定平台对应的 yizhuan-<platform> Skill,必须优先使用对应的拆分平台 Skill。业务数据禁止臆造,文章创作由当前 Agent 完成。
4
+ 安装、配置并使用易撰 CLI(yizhuan 命令)查询真实数据、提取文章/视频/图文内容的全量 Skill;若已安装用户明确指定平台对应的易撰平台 Skill,必须优先使用对应的拆分平台 Skill。业务数据禁止臆造,文章创作由当前 Agent 完成。
5
5
  ---
6
6
 
7
7
  # 易撰 CLI
@@ -94,3 +94,33 @@ yizhuan doctor
94
94
  - 取消关注前先查询关注列表,使用匹配项的 `articleId`,不得因结果不符合预期自行取消。
95
95
  - `unsupported` 表示当前口径不支持,`empty` 表示没有匹配数据;如实转述,不编造补充结果。
96
96
  - CLI 报错时保留脱敏后的错误信息,引导检查 `yizhuan doctor`,不得输出完整 Key。
97
+
98
+ ## CLI 调用来源
99
+
100
+ 在每次 `execute` 或 `query` 业务调用前,根据本次任务的触发原因设置进程环境变量 `YIZHUAN_TRIGGER`:
101
+
102
+ - `user_initiated`:用户当前提问、手动指令及为完成该请求而执行的分页、后续能力调用。AI 代用户执行仍属于主动使用。
103
+ - `automated`:定时执行、无人值守批处理、后台监控或自动唤醒。用户曾要求建立定时任务,不代表每次定时运行都是主动使用。
104
+ - `unknown`:无法确定触发原因;不得默认标为主动,也不得仅因使用 AI 工具就标为自动。
105
+
106
+ 每次按当前触发原因显式覆盖,避免继承上一任务的来源。来源只通过子进程环境传递,不写入业务 JSON、API Key 配置或系统全局环境。调用结束后恢复原环境;一个任务中的分页保持同一来源,CLI 内置检测轮询由 CLI/服务端自动排除,不手工伪造 `polling`。
107
+
108
+ Bash/zsh 的单次主动查询示例(自动任务把值改为 `automated`):
109
+
110
+ ```bash
111
+ YIZHUAN_TRIGGER=user_initiated yizhuan query --json-file request.json
112
+ ```
113
+
114
+ PowerShell 示例,使用当前任务选择的来源并恢复原值:
115
+
116
+ ```powershell
117
+ $cliPreviousTrigger = $env:YIZHUAN_TRIGGER
118
+ try {
119
+ $env:YIZHUAN_TRIGGER = 'user_initiated'
120
+ yizhuan query --json-file request.json
121
+ } finally {
122
+ $env:YIZHUAN_TRIGGER = $cliPreviousTrigger
123
+ }
124
+ ```
125
+
126
+ 只有元数据参与使用统计,不额外上传用户问题、关键词、链接或正文。尊重用户现有的 `YIZHUAN_TELEMETRY=0` 设置,不启用或覆盖它。安装、配置、doctor、help 和 version 不作为业务使用;来源设置无需额外询问用户。来源标签不是触发新业务调用或定时任务的授权。
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "name": "yizhuan-cli",
4
- "version": "0.1.16",
5
- "compatibleCliVersion": "0.1.16",
6
- "source": "npm:@yizhuan-cli/cli@0.1.16",
4
+ "version": "0.1.17-beta.1",
5
+ "compatibleCliVersion": "0.1.17-beta.1",
6
+ "source": "npm:@yizhuan-cli/cli@0.1.17-beta.1",
7
7
  "digestAlgorithm": "sha256",
8
8
  "files": [
9
9
  {
10
10
  "path": "SKILL.md",
11
- "sha256": "b58b68be1bd53fb3c9c572e8ccefcf000ad837c4f54d5269959d23f2c12150d4"
11
+ "sha256": "f5d8858b7377e3afabc394bf2aab72ffce7b7cee60864d0d97d86549d68fd70b"
12
12
  }
13
13
  ]
14
14
  }
package/src/index.js CHANGED
@@ -103,6 +103,8 @@ Abilities:
103
103
  Config:
104
104
  ${CONFIG_PATH}
105
105
  可通过环境变量 YIZHUAN_CONFIG_PATH 指定独立配置文件
106
+ YIZHUAN_TRIGGER=user_initiated 标识用户主动请求,automated 标识自动任务;未设置为 unknown
107
+ YIZHUAN_TELEMETRY=0 关闭使用元数据埋点
106
108
  `)
107
109
  }
108
110
 
@@ -238,6 +240,8 @@ function buildRequestHeaders(config) {
238
240
  'content-type': 'application/json',
239
241
  'x-device-type': 'pc',
240
242
  'x-yizhuan-cli-version': readPackageVersion(),
243
+ 'x-yizhuan-trigger': ['user_initiated', 'automated'].includes(process.env.YIZHUAN_TRIGGER)
244
+ ? process.env.YIZHUAN_TRIGGER : 'unknown',
241
245
  'x-yizhuan-telemetry': config.telemetryEnabled ? '1' : '0'
242
246
  }
243
247
  }
@@ -494,7 +498,7 @@ async function execute(args) {
494
498
  if (Date.now() >= deadline) break
495
499
  const poll = await fetch(`${config.apiBaseUrl}/api/cli.execute`, {
496
500
  method: 'POST',
497
- headers: buildRequestHeaders(config),
501
+ headers: { ...buildRequestHeaders(config), 'x-yizhuan-trigger': 'polling' },
498
502
  body: JSON.stringify({
499
503
  json: { ability: 'detection', params: { mode: 'get', id: result.data.id } }
500
504
  })