npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@pn-data/pn-log

v0.0.5

Published

Codex Agent Skill:查询 pn_go 项目、包信息及国内外阿里云客服日志,导出包含关联协同消息的心动客诉统计。

Readme

PN Go Log Skill

当前版本:0.0.5。

@pn-data/pn-log 提供 pn-go-log Agent Skill,通过 pn_go API 查询项目、包信息和客服日志,以及导出包含关联协同消息的心动客诉统计。

| 功能 | API key | 查询或导出内容 | | --- | --- | --- | | 查询项目 | query_project_list | 当前用户有权限的项目 ID、名称、标签、国内外标识及所属企业 | | 查询包信息 | query_app_info | 按准确的 7 位 appid 查询所属项目、应用名称、包名、渠道和平台 | | 查询客诉主题 | query_ali_logs | cs_subject:主题、标题、状态及主题元数据 | | 查询客诉回复 | query_ali_logs | cs_post:客户与客服的回复、帖子内容 | | 查询 AI 回复草稿 | query_ali_logs | cs_ai_draft:草稿内容、生成状态及草稿元数据 | | 导出心动客诉统计 | export_customer_service_reply_logs_for_xindong | 客服回复、创建/结束工单及关联协同消息;支持 CSV 文本和 XLSX |

日志查询支持企业、项目和时间范围,并可按 appid、客诉 ID 等条件筛选,支持分页、排序及返回字段选择。服务端自动选择国内 hp-platform-sdk 或海外 platform-sdk。查询范围限于上述三个客服 logstore,不包含订单日志或任意 logstore。

API 请求使用 X-Pn-Token 验证用户和项目权限。调用脚本从 PN_DATA_ANALYSIS_TOKEN 读取 token,不会把 token 写入请求配置文件。

安装

npm install @pn-data/pn-log

以下命令均在安装该包的项目根目录运行;调用脚本需要 Bash、Python 3 和 curl(支持 --fail-with-body)。

Codex 项目可将包目录链接到 skill 目录:

mkdir -p .codex/skills
ln -s "$(pwd)/node_modules/@pn-data/pn-log" .codex/skills/pn-go-log

也可以将包目录复制到 .codex/skills/pn-go-log/ 或 .cursor/skills/pn-go-log/。

配置

export PN_DATA_ANALYSIS_TOKEN="<token>"

普通 API 默认使用 http://127.0.0.1:8080/api。只有明确查询正式服时才向脚本追加 --production。

查询日志

准备只包含 data 内容的 JSON 文件:

{
  "enterprise_id": 1,
  "logstore": "cs_subject",
  "project_id": 2173,
  "start_time": "2026-08-19 00:00:00",
  "end_time": "2026-08-20 00:00:00"
}

调用:

npm --prefix node_modules/@pn-data/pn-log run --silent query -- /path/to/query.json

服务端根据项目配置自动选择国内或海外阿里 project,调用方不传阿里 project 名称。 enterprise_id 必须显式传入,服务端只校验该企业;权限不足时响应会使用项目企业名称说明,例如 心动(XD)无权限。 省略 fields 或传 null 时,服务端默认只返回目标 logstore 已配置的字段索引,并在响应的 data.fields 中列出实际字段;需要全部原始字段时显式传 "fields": ["*"]。

查询项目与包

项目名称或标签先通过项目列表解析;包信息查询必须提供准确的 7 位 appid,不支持模糊搜索。

npm --prefix node_modules/@pn-data/pn-log run --silent metadata -- project-list
npm --prefix node_modules/@pn-data/pn-log run --silent metadata -- app-info 2173001

导出心动客诉统计

准备 JSON 配置:

{
  "enterprise_id": 5,
  "project_id": 2173,
  "start_time": "2026-09-01 00:00:00",
  "end_time": "2026-09-02 00:00:00"
}

以上 ID 仅为示例,替换为目标企业和项目。调用后标准输出为 CSV 文本,也可保存文件:

npm --prefix node_modules/@pn-data/pn-log run --silent export-statistics -- /path/to/statistics.json
npm --prefix node_modules/@pn-data/pn-log run --silent export-statistics -- /path/to/statistics.json > statistics.csv

export-statistics 命令通过现有 export_customer_service_reply_logs_for_xindong 接口的顶层 format: "csv" 输出完整统计,包含客服回复、创建/结束工单及关联协同消息,保留 XLSX 的 9 列中文表头。服务端需包含 CSV 格式支持;导出要求目标企业、项目权限和 CUSTOMER_SERVICE(113) 审批级别权限。需要 XLSX 时直接调用同一 API 并传顶层 format: "xlsx";export-statistics 脚本只输出 CSV。

协同消息记录的“操作”列为“协同消息”,“工单标题”列为消息内容,同时提供工单 ID、操作时间和客服。协同消息随项目统计中的关联工单获取,具体关联范围见 API 说明。当前 skill 不提供按单个客诉 ID 独立拉取协同消息的入口,query_ali_logs 的 cs_post 也不用于查询协同消息。

导出按整个项目及时间范围执行,不支持通过 appid、客诉 ID 或日志 query 缩小统计范围。普通日志查询需要客服查看级别权限,不能替代导出的审批级别权限。

所有导出记录均按“操作时间”筛选,包含开始时间、不包含结束时间。客服回复、创建工单、结束工单,以及协同消息 API 返回的所有状态记录均遵守同一范围;范围外、时间缺失或无法解析的记录不加入导出。CSV 与 XLSX 使用相同过滤规则。

语言列读取 language_detect(检测语言),并将识别到的语言代码显示为中文。

完整参数、语言及操作映射见 references/api.md。

版本更新

0.0.5(2026-09-20)

  • 补充项目、包信息、客诉主题、回复、AI 草稿及心动客诉统计的功能与 API 对照。
  • 明确协同消息通过统计导出获取,并说明关联范围、消息内容所在列及独立查询限制。
  • 区分 CSV 导出脚本与 XLSX API 的调用方式,补充统计范围和查看/审批权限的区别。

0.0.4(2026-09-10)

  • 新增心动客诉统计 CSV 导出脚本及 export-statistics 命令,输出内容与 XLSX 一致,可直接重定向保存。
  • 补充统计导出的参数、权限、时间范围及使用示例。
  • 补充服务端语言和操作映射说明:14 种常用语言代码显示中文,status = -1 显示“回复客诉”。这些映射及 CSV 输出依赖 pn_go 服务端支持,安装 npm 包不会更新服务端。