tyc-cli 0.3.7 → 0.3.9

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
@@ -2,6 +2,15 @@
2
2
 
3
3
  本项目遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/) 规范,版本号遵循 [Semantic Versioning](https://semver.org/lang/zh-CN/)。
4
4
 
5
+ ## [Unreleased]
6
+
7
+ ### 修复
8
+
9
+ - E06 / E08:Markdown 完整呈现嵌套列表、对象和收到的变更原文,不再按字符数静默省略;用户显式指定的输出截断选项继续生效,上游原文已有的省略号不补造。
10
+ - 同步展示服务端的分页、日期与商标字段口径、风险状态和历史查询引导;人员变更使用服务端 `_parsed` 结果,股东来源及逐笔出资保留,历史列表 Markdown 按当前页日期排序且不改 JSON 顺序。
11
+ - E03:请求失败统一交由 CLI 入口输出并设置退出码,允许网络和标准流自然收尾;402 仍返回退出码 `1`,不触发额度重试。帮助、版本及参数错误也保留各自退出码,避免强制退出或重复输出。
12
+ - 补齐 OAuth 回调服务启动失败、登录准备失败和提前回调时的计时器与连接清理。
13
+
5
14
  ## [0.4.0] - 2026-05-03
6
15
 
7
16
  ### 新增
package/README.md CHANGED
@@ -61,9 +61,9 @@ tyc login
61
61
  tyc login --url "https://ai-mcp-pre.tianyancha.com/mcp"
62
62
  tyc login --url "http://localhost:8080/mcp" --issuer "http://localhost:8080/oauth"
63
63
 
64
- # 非阻塞 OAuth:只打印授权 URL,不占住命令行;授权后手动传回 callback code
65
- tyc login --no-open --no-block
66
- tyc login --callback-token "<callback_code_or_full_callback_url>"
64
+ # 非阻塞 OAuth:打印授权 URL 和 6 位验证码;网页授权后恢复登录
65
+ tyc login --no-block
66
+ tyc login --resume
67
67
 
68
68
  # API key 兼容路径:已有天眼查 OpenAPI token 时可直接写入
69
69
  tyc init --authorization "YOUR_API_TOKEN"
@@ -77,10 +77,11 @@ tyc init --authorization "YOUR_API_TOKEN" --no-verify
77
77
  > `Authorization: Bearer <access_token>` 和 refresh token 上下文写入
78
78
  > `~/.tyc/config.json`。后续业务命令会在 access token 临期时自动刷新;
79
79
  > 如果服务端返回 401,会强制刷新一次并重试当前请求。
80
- > `tyc login --no-open --no-block` 会打印授权 URL 后立即退出,并把一次性 PKCE 上下文
81
- > 保存到 `~/.tyc/oauth_pending.json`;完成浏览器授权后,页面会跳转到天眼查 CLI
82
- > 回调页并展示可复制命令,执行 `tyc login --callback-token "<...>"` 完成换 token。
83
- > `tyc init` 保存配置后会立即校验 shared core endpoint;失败则退出码 1 并提示连通性问题。
80
+ > `tyc login --no-block` 使用 OAuth Device Flow,打印授权 URL 和 6 位验证码后立即退出,
81
+ > 并把一次性 `device_code` 保存到 `~/.tyc/oauth_pending.json`。在网页输入验证码并确认授权后,
82
+ > 执行 `tyc login --resume` 完成换 token。旧版 `tyc login --callback-token "<...>"` 仍保留作兼容入口。
83
+ > `tyc init --authorization` 保存配置后会立即校验 shared core auth ready;通过后输出与
84
+ > OAuth 登录一致的登录成功提示。失败则退出码 1 并提示配置校验问题。
84
85
  > 加 `--no-verify` 可跳过校验。
85
86
 
86
87
  配置存于 `~/.tyc/config.json`(权限 600):
@@ -122,8 +123,9 @@ tyc executive personnel-dishonest "..." --humanName "张三"
122
123
  | 命令 | 说明 |
123
124
  |------|------|
124
125
  | `tyc login` | 浏览器 OAuth 登录;自动发现 metadata、使用 PKCE 获取 access token / refresh token 并写入配置 |
125
- | `tyc login --no-open --no-block` | 打印 OAuth 授权 URL 并立即退出,授权完成后按天眼查 CLI 回调页提示继续 |
126
- | `tyc login --callback-token <code-or-url>` | 使用上一步保存的 PKCE 上下文,把回调 code 换成 access token |
126
+ | `tyc login --no-block` | 打印 Device Flow 授权 URL 和 6 位验证码并立即退出 |
127
+ | `tyc login --resume` | 网页输入验证码并确认授权后,使用本地 pending device_code 换取 access token |
128
+ | `tyc login --callback-token <code-or-url>` | 兼容旧版 PKCE 非阻塞登录,把回调 code 换成 access token |
127
129
  | `tyc login --url <url>` | 对指定 MCP endpoint 发起 OAuth 登录 |
128
130
  | `tyc init --authorization <token>` | 写入 `headers.Authorization`;保存后会立即校验 shared core 连通性 |
129
131
  | `tyc init --url <url>` | 设置 MCP endpoint |
@@ -145,6 +147,8 @@ tyc executive personnel-dishonest "..." --humanName "张三"
145
147
  | `--md` | Markdown 表格化输出(人类阅读 / Agent 上屏) |
146
148
  | `--verbose` | 打印 shared core 请求详情到 stderr(与上述输出格式正交) |
147
149
 
150
+ `--md` 从 Shared Core JSON 在本地渲染,布局可能与 MCP 的服务端 Markdown 不同。嵌套对象、数组完整保留,不再执行旧的 80 字符省略或 `key=…` 折叠;输出限制统一由下述显式选项控制。`_pagination`、日期/字段口径、历史查询指引和风险状态直接使用服务端元数据,不重新推导。变更记录只对 Markdown 的当前页按变更日期倒序展示,JSON 顺序不变;人员解析结果来自服务端 `_parsed`。
151
+
148
152
  #### 输出截断 / 落盘(与上述输出格式正交,可叠加任意子命令)
149
153
 
150
154
  | 选项 | 默认值 | 说明 |
@@ -346,12 +350,14 @@ CLI 不直接维护 MCP session,也不会写 `~/.tyc/session.json`。所有业
346
350
  | 0 | 成功 | — |
347
351
  | 1 | 请求失败 / 配置缺失 / 业务错误 | 查 stderr;常见:未 `tyc init`、MCP 不可达、tyc 无权限 |
348
352
 
353
+ HTTP 402 同样返回退出码 1 并保留服务端错误说明,不自动重试额度请求。帮助和版本正常退出为 0,参数错误保留 Commander 的非零退出码;入口统一处理错误并等待标准流、网络和 OAuth 回调资源收尾,避免重复打印或强制退出时丢失输出。
354
+
349
355
  下游 tyc OpenAPI 错误码(由 MCP Server 归一化后呈现):
350
356
 
351
357
  | error_code | CLI 表现 |
352
358
  |-----------|---------|
353
359
  | 0 | 正常输出 |
354
- | 300000(经查无结果) | 成功退出 + `{items: [], total: 0, _empty: true}` + `_summary` |
360
+ | 300000(经查无结果) | 成功退出,输出服务端按工具归一的空结果及说明;普通列表通常有 `_empty`,多源在 `sources` 分别标记,风险总览使用 `_riskOverview.dataStatus=empty` |
355
361
  | 300005(无权限) | 透传错误 + exit 1 |
356
362
  | 其他 | 透传错误 + exit 1 |
357
363