nikou-cli 0.1.47 → 0.1.49
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 +28 -27
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -312,35 +312,20 @@ nikou-cli hook binding remove \
|
|
|
312
312
|
|
|
313
313
|
群聊发送 `绑定知识库` 后,任务会定向到配置的知识库 Worker 和固定目录,并返回不暴露知识库目录、IP 或宿主的红色绑定状态卡片。卡片同时展示当前群其他 Agent 目录绑定和解绑指令。发送 `解绑知识库` 可移除当前群的知识库固定绑定。知识库绑定只作用于群聊;单聊仍按发送人的飞书 `user_id` 选择其归属 Worker,同一用户多台 Worker 在线时优先使用最近接入的一台。
|
|
314
314
|
|
|
315
|
-
|
|
315
|
+
`knowledge` 引擎默认关闭单聊,仍可承接群聊知识库固定路由,但不会成为宿主的单聊候选。启动通知由主节点根据 Worker 上下线状态发送,展示运行引擎、当前模型、服务范围和 `nikou-cli` 版本,并检查 npm 是否有更新;网络暂时不可用时只标记“无法检测更新”,不阻塞节点启动。
|
|
316
316
|
|
|
317
|
-
|
|
318
|
-
{
|
|
319
|
-
"hook": {
|
|
320
|
-
"p2p_enabled": false,
|
|
321
|
-
"worker_name": "公司知识库妮蔻"
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
关闭后,该 Worker 仍可承接群聊知识库固定路由,但不会成为宿主的单聊候选。启动通知使用交互卡片展示从节点名称、运行引擎、当前模型、服务范围和 `nikou-cli` 版本,并检查 npm 是否有更新;知识库固定 Worker 也使用同一张卡片。网络暂时不可用时只标记“无法检测更新”,不阻塞节点启动。未配置时 `p2p_enabled` 默认为 `true`,保持旧 Worker 行为。
|
|
327
|
-
|
|
328
|
-
Worker 启动时会用 `ops_user` 解析飞书宿主身份和职务。可在私有配置的 `hook.owner_email_domain`(或环境变量 `NIKOU_OWNER_EMAIL_DOMAIN`)配置邮箱域,例如 `example.com`;首次启动会以 `ops_user@example.com` 查询飞书并写入本地身份缓存。`~/ops/vops_user.json` 仅作为缓存加速,缺失时不会阻止身份解析。管理状态中的 `perspectiveStatus` 可区分 `identity_unresolved`(身份未补齐)和 `job_title_unmatched`(已获取职务但未命中视角)。
|
|
317
|
+
主节点会根据 Worker 上报的 `ops_user` 统一解析飞书宿主身份、职务和视角,并在连接握手中返回给 Worker。邮箱域统一配置在主节点的 `hook.owner_email_domain`(或主节点环境变量 `NIKOU_OWNER_EMAIL_DOMAIN`)。飞书 App ID 和 App Secret 只保存在主节点;Worker 获取用户、群聊、消息历史、图片和附件时,通过已认证的主从通道调用受限飞书网关,不保存或接收飞书凭证。管理状态中的 `perspectiveStatus` 可区分 `identity_unresolved`(身份未补齐)和 `job_title_unmatched`(已获取职务但未命中视角)。
|
|
329
318
|
|
|
330
319
|
知识库 Worker 可以使用 `knowledge` 引擎直接连接 FastGPT 应用。此模式不会启动 Claude,也不会在 Worker 内重复连接知识库或代码 MCP;FastGPT 应用负责完成知识检索、内部工具调用和回答生成,Worker 只负责会话、流式事件与飞书卡片适配:
|
|
331
320
|
|
|
332
321
|
```json
|
|
333
322
|
{
|
|
334
|
-
"
|
|
335
|
-
"
|
|
336
|
-
"
|
|
337
|
-
"
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
"api_key_env": "NIKOU_FASTGPT_APP_KEY",
|
|
341
|
-
"request_timeout_ms": 600000,
|
|
342
|
-
"retain_dataset_cite": true
|
|
343
|
-
}
|
|
323
|
+
"knowledge": {
|
|
324
|
+
"provider": "fastgpt",
|
|
325
|
+
"base_url": "http://127.0.0.1:3000/api",
|
|
326
|
+
"api_key_env": "NIKOU_FASTGPT_APP_KEY",
|
|
327
|
+
"request_timeout_ms": 600000,
|
|
328
|
+
"retain_dataset_cite": true
|
|
344
329
|
}
|
|
345
330
|
}
|
|
346
331
|
```
|
|
@@ -353,26 +338,38 @@ API Key 必须来自 `api_key_env` 指定的环境变量,不支持把真实 Ke
|
|
|
353
338
|
nikou-cli hook init
|
|
354
339
|
```
|
|
355
340
|
|
|
356
|
-
初始化只需要以上一条命令,不需要预先创建 JSON
|
|
341
|
+
初始化只需要以上一条命令,不需要预先创建 JSON。命令按从节点模式初始化,只提示主节点地址和主从接入密钥,不再要求飞书 App ID 或 App Secret;所有 Secret 输入均不会回显。运行凭据写入 npm 包之外的本机私有目录,配置文件和备份权限固定为 `0600`,初始化摘要不会展示任何 Secret。默认主节点地址为 `127.0.0.1`;如果旧配置里已有非本机主节点地址,则沿用该地址。
|
|
357
342
|
|
|
358
343
|
内部批量安装可使用参数完成非交互初始化。推荐由安装系统注入 Secret 环境变量,避免密钥出现在 Shell 历史和进程参数中:
|
|
359
344
|
|
|
360
345
|
```bash
|
|
361
|
-
FEISHU_APP_SECRET="$YOUR_FEISHU_APP_SECRET" \
|
|
362
346
|
NIKOU_HOOK_SHARED_SECRET="$YOUR_HOOK_SHARED_SECRET" \
|
|
363
347
|
nikou-cli hook init \
|
|
364
|
-
--app-id cli_xxx \
|
|
365
348
|
--master-ip 203.0.113.10 \
|
|
366
349
|
--deployment slave \
|
|
367
350
|
--yes
|
|
368
351
|
```
|
|
369
352
|
|
|
370
|
-
也兼容 `--
|
|
353
|
+
也兼容 `--shared-secret` 明文参数,但只建议在受控安装环境使用。主节点或本机一体模式仍可使用 `--app-id`、`--app-secret` 配置飞书凭证;从节点模式会忽略并移除本地飞书凭证。
|
|
371
354
|
|
|
372
355
|
单独从节点连接已有主节点时,不要求配置主节点专用的 `hook.bind_allowed_user_ids`。本机一体或单独启动主节点时,仍必须至少配置一个允许绑定的飞书 `user_id`。
|
|
373
356
|
从节点模式只写入 `~/.nikou-block/worker/config.json`,不再生成或覆盖主节点配置;
|
|
374
357
|
检测到历史 `~/.nikou-block/master/config.json` 时只告警,不会未经确认自动删除。
|
|
375
358
|
|
|
359
|
+
从节点生成的 Hook 配置保持最小化:
|
|
360
|
+
|
|
361
|
+
```json
|
|
362
|
+
{
|
|
363
|
+
"hook": {
|
|
364
|
+
"master_host": "203.0.113.10",
|
|
365
|
+
"master_port": 19732,
|
|
366
|
+
"shared_secret": "CHANGE_ME"
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
AI 引擎、模型、本地目录以及 FastGPT 等引擎专用密钥仍属于本机运行配置,不会从主节点下发。升级时应先部署主节点,再逐个升级 Worker;新主节点兼容仍持有本地飞书凭证的旧 Worker,新 Worker 连接不支持飞书网关的旧主节点时会明确提示先升级主节点。
|
|
372
|
+
|
|
376
373
|
`ai-hook` 裸命令仅为个人节点兼容旧习惯,仍默认等价于 `nikou-cli hook worker codex`;如需在个人节点启动 Claude Worker:
|
|
377
374
|
|
|
378
375
|
```bash
|
|
@@ -653,6 +650,8 @@ ai-hook api --api kiro
|
|
|
653
650
|
| --- | --- |
|
|
654
651
|
| `chat_new` | 标记下一条单聊消息强制创建新会话,不复用旧消息引用或最近会话 |
|
|
655
652
|
| `switch_path` | 发送单聊目录切换卡片,可浏览、收藏、选择目录或切回默认目录 |
|
|
653
|
+
| `switch_session` | 展示当前目录下最近单聊会话;点击会话后,下一条消息继续该会话 |
|
|
654
|
+
| `recent_sessions` | 展示跨目录最近单聊会话;点击后同时切换目录和会话,下一条消息继续该会话 |
|
|
656
655
|
| `stop_chat` | 终止当前宿主 Worker 正在执行的全部单聊和绑定群聊任务 |
|
|
657
656
|
| `switch_account` | 展示当前引擎支持的 CC Switch 账号卡片;Claude / Codex / Kiro 都可选择当前引擎下的账号,卡片会附带用量与规则摘要,切换后按当前运行档案重启 Worker,并同步刷新运行中的 CC Switch 当前账号和代理目标 |
|
|
658
657
|
| `switch_model` | 展示引擎、模型和思考深度选择卡片,点击“切换并重启”后按所选运行档案重启 Worker |
|
|
@@ -662,6 +661,8 @@ ai-hook api --api kiro
|
|
|
662
661
|
|
|
663
662
|
`switch_path` 以 Worker 本机 `~/ops/ops_global.properties` 的 `code_path` 作为默认目录,但不限制浏览根目录。用户可以通过“上一级”一直导航到文件系统根目录,并选择 Worker 账号有权限访问的任意文件夹;可访问的目录软链接也允许进入。选择结果按飞书用户持久保存;卡片会同时展示当前目录、默认目录和正在浏览的目录,并支持上一级、进入子目录、分页、切换到当前浏览目录和切回默认。目录发生切换后会开启新的单聊会话,切换前的最近会话和旧消息引用都不会继续复用。点击“进入”、翻页、切换或切回默认时,卡片会在同一条消息上直接刷新;若从节点返回较慢,主节点会在结果到达后异步刷新这条卡片,卡片按钮始终保持可点击。
|
|
664
663
|
|
|
664
|
+
`switch_session` 和 `recent_sessions` 只查询当前 Worker 通过妮蔻产生的单聊会话,按当前引擎、当前模型过滤,并限定为当天且最近 24 小时内更新的会话;每页最多展示 8 条。会话标题优先使用最近一次真实用户问题,没有标题的历史会话使用会话 ID 简称。点击当前目录卡片中的会话只切换会话;点击跨目录卡片中的会话会同时切换目录和会话。两种卡片都会在原消息上更新,超时或更新失败时按现有异步刷新和重新发送机制处理;重复点击“当前会话”保持幂等。
|
|
665
|
+
|
|
665
666
|
卡片还支持目录收藏,每个飞书用户最多收藏 5 个目录:点击“收藏此目录”把正在浏览的目录加入收藏,收藏满 5 个后该按钮置灰,需要先在对应目录点击“取消收藏”。收藏区固定在卡片顶部,按钮只展示目录的最后一级名称(超长会截断),点击即直接切换到该目录,当前正在使用的收藏会高亮。收藏按飞书用户持久保存在主机状态文件中,只是快捷入口,不会额外提升会话代次;收藏目录被删除或变为不可访问时,下次打开卡片会自动清理。
|
|
666
667
|
|
|
667
668
|
单聊续聊由底层会话保存上下文,Worker 只传递当前问题,不再重复读取或注入“上次 AI 回复后的人类消息”。会话来源(单聊/群聊、发起人、群名)独立保存在 Worker 状态中,供本机只读会话列表展示,不依赖提示词解析。
|