nikou-cli 0.1.8 → 0.1.10
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/LICENSE +22 -17
- package/README.md +173 -38
- package/dist/ai-hook.js +1 -11
- package/dist/chunk-OQQEIFQV.js +1 -25
- package/dist/index.js +1 -15672
- package/package.json +8 -4
package/LICENSE
CHANGED
|
@@ -1,21 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
nikou-cli 专有软件许可证
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
版权所有 (c) 2026 VangelisHaha。保留所有权利。
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
5
|
+
本软件不是开源软件。著作权人仅授予合法获得本软件副本的用户一项有限的、
|
|
6
|
+
非独占的、不可转让且不可再许可的权利,用于下载、安装并运行著作权人正式
|
|
7
|
+
发布的、未经修改的 nikou-cli 软件包。
|
|
11
8
|
|
|
12
|
-
|
|
13
|
-
copies or substantial portions of the Software.
|
|
9
|
+
未经著作权人事先书面许可,任何人不得:
|
|
14
10
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
1. 修改、改编、翻译本软件,或基于本软件制作衍生作品;
|
|
12
|
+
2. 复制本软件,但正常安装所必需的临时复制和一份合理备份除外;
|
|
13
|
+
3. 发布、分发、转售、出租、出借、再许可或以其他方式向第三方提供本软件;
|
|
14
|
+
4. 对本软件进行反向工程、反编译、反汇编,或尝试恢复其源代码、算法及实现,
|
|
15
|
+
但适用法律明确规定且不得通过合同排除的情形除外;
|
|
16
|
+
5. 移除或修改本软件中的著作权、许可证或其他权利声明;
|
|
17
|
+
6. 使用本软件的实现制作或协助制作未经授权的替代品、派生产品或竞争性产品。
|
|
18
|
+
|
|
19
|
+
本软件按“现状”提供,不附带任何明示或默示保证。在适用法律允许的最大范围
|
|
20
|
+
内,著作权人不对因使用或无法使用本软件产生的任何直接、间接、偶然、特殊或
|
|
21
|
+
后果性损失承担责任。
|
|
22
|
+
|
|
23
|
+
违反本许可证的任何行为将导致上述授权自动终止。授权终止后,用户必须停止
|
|
24
|
+
使用并删除其持有的本软件副本。
|
|
25
|
+
|
|
26
|
+
如需修改、集成、再分发或获得其他授权,请先取得著作权人的书面许可。
|
package/README.md
CHANGED
|
@@ -160,7 +160,7 @@ Hook 支持三种启动模式:
|
|
|
160
160
|
- 单独从节点:只启动 Worker,连接已有主节点。
|
|
161
161
|
- 一主多从:单独启动一个主节点,再让多台机器的从节点接入。
|
|
162
162
|
|
|
163
|
-
主节点负责连接聊天平台、接收消息、维护 Worker 列表并分发任务。从节点负责连接主节点,收到任务后调用 Codex、Claude 或
|
|
163
|
+
主节点负责连接聊天平台、接收消息、维护 Worker 列表并分发任务。从节点负责连接主节点,收到任务后调用 Codex、Claude、Gemini 或 API Agent 执行。
|
|
164
164
|
|
|
165
165
|
群聊发送 `@机器人 绑定: <目录>` 时,主节点会先检查当前用户是否已经绑定该目录;已有绑定会直接返回结果,未绑定则只把路径校验任务发给该用户自己的在线 Worker。一个群可以保留多个用户、多个目录的 Agent 绑定,绑定指令不会广播给其他 Worker 抢占。
|
|
166
166
|
|
|
@@ -170,14 +170,21 @@ Hook 支持三种启动模式:
|
|
|
170
170
|
nikou-cli hook init
|
|
171
171
|
```
|
|
172
172
|
|
|
173
|
-
|
|
173
|
+
初始化只需要以上一条命令,不需要预先创建 JSON。命令会提示部署方式、主节点地址和首次安装缺少的飞书信息;所有 Secret 输入均不会回显。本机一体模式会自动随机生成主从共享密钥,从节点模式则安全读取已有主节点的共享密钥。运行凭据写入 npm 包之外的本机私有目录,配置文件和备份权限固定为 `0600`,初始化摘要不会展示任何 Secret。没有远端主节点配置时默认选择本机一体,并使用 `127.0.0.1`;如果旧配置里已有非本机主节点地址,默认选择从节点并沿用该地址。
|
|
174
|
+
|
|
175
|
+
内部批量安装可使用参数完成非交互初始化。推荐由安装系统注入 Secret 环境变量,避免密钥出现在 Shell 历史和进程参数中:
|
|
174
176
|
|
|
175
177
|
```bash
|
|
176
|
-
|
|
177
|
-
|
|
178
|
+
FEISHU_APP_SECRET="$YOUR_FEISHU_APP_SECRET" \
|
|
179
|
+
NIKOU_HOOK_SHARED_SECRET="$YOUR_HOOK_SHARED_SECRET" \
|
|
180
|
+
nikou-cli hook init \
|
|
181
|
+
--app-id cli_xxx \
|
|
182
|
+
--master-ip 203.0.113.10 \
|
|
183
|
+
--deployment slave \
|
|
184
|
+
--yes
|
|
178
185
|
```
|
|
179
186
|
|
|
180
|
-
|
|
187
|
+
也兼容 `--app-secret`、`--shared-secret` 明文参数,但只建议在受控安装环境使用。参数同时支持 `--app_id`、`--app_secret` 和 `--masterip` 别名。
|
|
181
188
|
|
|
182
189
|
单独从节点连接已有主节点时,不要求配置主节点专用的 `hook.bind_allowed_user_ids`。本机一体或单独启动主节点时,仍必须至少配置一个允许绑定的飞书 `user_id`。
|
|
183
190
|
|
|
@@ -194,42 +201,13 @@ ai-hook claude --model opus
|
|
|
194
201
|
~/.nikou-block/worker/config.json
|
|
195
202
|
```
|
|
196
203
|
|
|
197
|
-
配置示例:
|
|
198
|
-
|
|
199
|
-
```json
|
|
200
|
-
{
|
|
201
|
-
"feishu": {
|
|
202
|
-
"app_id": "YOUR_APP_ID",
|
|
203
|
-
"app_secret": "YOUR_APP_SECRET"
|
|
204
|
-
},
|
|
205
|
-
"hook": {
|
|
206
|
-
"master_host": "127.0.0.1",
|
|
207
|
-
"master_port": 19732,
|
|
208
|
-
"shared_secret": "CHANGE_ME",
|
|
209
|
-
"bind_allowed_user_ids": ["YOUR_USER_ID"],
|
|
210
|
-
"knowledge_base_ip": "203.0.113.10",
|
|
211
|
-
"knowledge_base_dir": "/srv/knowledge-base"
|
|
212
|
-
},
|
|
213
|
-
"auth": {
|
|
214
|
-
"api_url": "https://your-platform.example.com/api/v1",
|
|
215
|
-
"cli_auth_secret": "CHANGE_ME"
|
|
216
|
-
},
|
|
217
|
-
"nacos_skill_sync": {
|
|
218
|
-
"enabled": true,
|
|
219
|
-
"profile": "nikou-block",
|
|
220
|
-
"label": "latest",
|
|
221
|
-
"interval": "30s",
|
|
222
|
-
"plan_poll_interval_ms": 60000,
|
|
223
|
-
"auto_upload": false
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
```
|
|
227
|
-
|
|
228
204
|
安全建议:
|
|
229
205
|
|
|
230
|
-
-
|
|
206
|
+
- 不要复制、提交或分享 `~/.nikou-block` 下的配置与备份;它们不会进入 npm 包。
|
|
231
207
|
- `shared_secret` 用于主从节点握手,生产环境不要复用机器人密钥。
|
|
232
208
|
- `knowledge_base_ip` 和 `knowledge_base_dir` 请按自己的机器和目录配置,默认值只是本机占位。
|
|
209
|
+
- API Key 优先通过 `api_key_env` 引用环境变量;也兼容只保存在本机配置中的 `api_key`,但禁止提交该配置。
|
|
210
|
+
- 从节点需要按系统用户名补齐飞书邮箱时,通过 `NIKOU_OWNER_EMAIL_DOMAIN` 配置邮箱域名;也会优先从已有身份缓存自动推断。公开示例:`export NIKOU_OWNER_EMAIL_DOMAIN=example.com`。
|
|
233
211
|
|
|
234
212
|
### Skill 订阅自动同步
|
|
235
213
|
|
|
@@ -264,6 +242,12 @@ Gemini:
|
|
|
264
242
|
ai-hook local gemini
|
|
265
243
|
```
|
|
266
244
|
|
|
245
|
+
API Agent:
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
ai-hook local api --api kiro
|
|
249
|
+
```
|
|
250
|
+
|
|
267
251
|
完整入口也可以写成:
|
|
268
252
|
|
|
269
253
|
```bash
|
|
@@ -307,6 +291,32 @@ Gemini:
|
|
|
307
291
|
nikou-cli hook worker gemini
|
|
308
292
|
```
|
|
309
293
|
|
|
294
|
+
Kiro 原生(直接使用本机 Kiro CLI 与登录态,不经过 API 反代):
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
nikou-cli hook worker kiro
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
默认不固定模型,继承本机 Kiro 默认配置。也可以显式选择模型、Agent、思考强度和 Agent Engine:
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
nikou-cli hook worker kiro \
|
|
304
|
+
--model claude-opus-4.8 \
|
|
305
|
+
--agent YOUR_AGENT \
|
|
306
|
+
--effort high \
|
|
307
|
+
--agent-engine v2
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
Kiro Worker 通过 ACP 管理会话并默认信任全部工具,支持正文、思考摘要、工具状态、图片和使用量流式更新。Kiro 不返回精确 input/cache/output Token,卡片改为展示当前实际模型、上下文占用、Credits、耗时和 effort;即使未传 `--model`,也会读取 ACP 会话返回的当前模型。思考内容仅在所选模型实际发送 `agent_thought_chunk` 时出现。
|
|
311
|
+
|
|
312
|
+
飞书流式卡片会完整保留各引擎输出的思考过程:不超过 5 行时直接展开,从第 6 行开始自动折叠,用户可点击“思考过程”面板查看全部内容。后续流式更新不会反复重置用户的展开状态。
|
|
313
|
+
|
|
314
|
+
API Agent:
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
nikou-cli hook worker api --api kiro
|
|
318
|
+
```
|
|
319
|
+
|
|
310
320
|
连接远端主节点:
|
|
311
321
|
|
|
312
322
|
```bash
|
|
@@ -331,6 +341,8 @@ nikou-cli hook worker claude \
|
|
|
331
341
|
ai-hook
|
|
332
342
|
ai-hook claude --model sonnet
|
|
333
343
|
ai-hook gemini
|
|
344
|
+
ai-hook kiro
|
|
345
|
+
ai-hook api --api kiro
|
|
334
346
|
```
|
|
335
347
|
|
|
336
348
|
也可以通过 `--` 传递底层工具参数:
|
|
@@ -339,6 +351,123 @@ ai-hook gemini
|
|
|
339
351
|
nikou-cli hook worker claude -- --model sonnet
|
|
340
352
|
```
|
|
341
353
|
|
|
354
|
+
### Kiro 原生与 API Kiro
|
|
355
|
+
|
|
356
|
+
- `ai-hook kiro` / `nikou-cli hook worker kiro`:启动本机 Kiro CLI 的 ACP Agent,使用 `~/.kiro` 中的本机登录态、MCP、Skills 和设置。
|
|
357
|
+
- `ai-hook api --api kiro`:直接调用 `~/.nikou-block/worker/config.json` 中名为 `kiro` 的 API 反代 profile,两者会话与认证互不混用。
|
|
358
|
+
|
|
359
|
+
Kiro 原生会按目录和飞书话题保存 session ID;Worker 重启或模型切换后会继续加载同一会话。Hook 不暴露 Kiro 终端中的 `/rewind`、`/compact`、会话列表和删除界面。
|
|
360
|
+
|
|
361
|
+
### API 模式
|
|
362
|
+
|
|
363
|
+
API 模式不依赖 Codex、Claude 或 Gemini CLI,直接调用模型反代,并在本地完成会话、MCP 和 Skills 工具循环。现支持:
|
|
364
|
+
|
|
365
|
+
- `anthropic`:Anthropic Messages API,适用于 KiroProxy 等 Claude Code 兼容反代。
|
|
366
|
+
- `openai-responses`:OpenAI Responses API,适用于支持 `/v1/responses` 的 NewAPI/Codex 类反代。
|
|
367
|
+
- `openai-chat`:OpenAI Chat Completions API,适用于只支持 `/v1/chat/completions` 的兼容反代。
|
|
368
|
+
|
|
369
|
+
三种协议均使用流式响应:最终回答会增量更新到卡片的“执行结果”,Provider 显式返回的 `thinking`、`reasoning_content` 或 reasoning summary 会增量更新到“思考过程”。这里展示的是面向用户的思路摘要,不是模型隐藏的完整思维链。工具调用参数会在流中完整组装后再执行。若反代忽略流式参数并返回普通 JSON,API 模式会自动回退为整段响应,不影响最终结果。
|
|
370
|
+
|
|
371
|
+
通过 `--api <profile>` 切换配置,不影响现有 `codex`、`claude`、`gemini` 模式:
|
|
372
|
+
|
|
373
|
+
```bash
|
|
374
|
+
ai-hook api --api kiro --model claude-opus-4.5
|
|
375
|
+
ai-hook api --api kiro --model claude-sonnet-4.5
|
|
376
|
+
ai-hook api --api newapi
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
也可以临时覆盖非敏感参数:
|
|
380
|
+
|
|
381
|
+
```bash
|
|
382
|
+
ai-hook api \
|
|
383
|
+
--api newapi \
|
|
384
|
+
--api-type openai-chat \
|
|
385
|
+
--base-url https://api.example.com/v1 \
|
|
386
|
+
--api-key-env NEWAPI_API_KEY \
|
|
387
|
+
--model YOUR_MODEL \
|
|
388
|
+
--mcp-config ~/.nikou-block/api/mcp.toml \
|
|
389
|
+
--skills-dir ~/.nikou-block/api/skills
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
profile 可以用 `models` 配置多个模型,列表第一个是默认模型,启动时通过 `--model <model-id>` 切换。原有单值 `model` 仍然兼容。
|
|
393
|
+
|
|
394
|
+
同一个反代同时提供多种协议时,可用 `model_types` 为指定模型覆盖 profile 的默认协议。例如 KiroProxy 的 Claude 模型走 `anthropic`,GPT-5.6 Sol/Terra/Luna 走 `openai-responses`,但仍共用同一个 profile、Base URL、Key 和 SQLite 会话。
|
|
395
|
+
|
|
396
|
+
Anthropic 兼容反代需要显式请求思考块时,在 profile 中配置 `thinking_enabled: true`;`thinking_budget_tokens` 控制思考预算,默认 4000。代理返回的标准 `thinking_delta` 会实时渲染到卡片“思考过程”。同一 profile 切换到 OpenAI Responses 模型时,该开关会请求 `reasoning.effort=high` 和 `reasoning.summary=detailed`,兼容代理应返回 `response.reasoning_summary_text.delta`。
|
|
397
|
+
|
|
398
|
+
API 模式会把会话写入 `api.session_db_path` 指定的 SQLite 数据库。数据库包含 thread、binding、turn、item 四层记录;群话题和单聊续聊继续沿用现有 Hook 的 `session_id` 协议。所有 API profile 和模型共用同一会话命名空间,切换 `--model` 后会继续当前群聊/话题对应的上下文。完整历史保留在数据库中,发送给模型的上下文受 `max_history_chars` 限制,单次工具结果受 `max_tool_output_chars` 限制(默认 40000 字符)。
|
|
399
|
+
|
|
400
|
+
API Skills 与 Codex、Claude 和 `.agents/skills` 完全隔离,默认只扫描 `~/.nikou-block/api/skills`。目录下每个 Skill 使用 `<name>/SKILL.md` 结构;模型先看到全部 Skill 名称和预算内的描述,命中后通过 `skill_read` 分段读完 `SKILL.md`。Skill 引用的说明、模板和参考文件通过 `skill_read_resource` 继续读取,目录内 Python、Shell、Node 或可执行脚本通过 `skill_run_script` 直接运行。三类工具均由本地 Worker 自动执行,不弹出授权确认。
|
|
401
|
+
|
|
402
|
+
需要复用现有 Codex 配置时,执行一次独立导入:
|
|
403
|
+
|
|
404
|
+
```bash
|
|
405
|
+
nikou-cli hook api-import-codex
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
该命令只复制 Codex `mcp_servers` 和 `~/.codex/skills`、`~/.agents/skills` 下的 Skills,不创建软链,也不会回写 Codex 配置;同名项默认跳过,需覆盖时增加 `--force`。目标路径仍可通过 `--mcp-config` 和 `--skills-dir` 指定:
|
|
409
|
+
|
|
410
|
+
```bash
|
|
411
|
+
nikou-cli hook api-import-codex \
|
|
412
|
+
--mcp-config ~/.nikou-block/api/mcp.toml \
|
|
413
|
+
--skills-dir ~/.nikou-block/api/skills \
|
|
414
|
+
--force
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
运行 Worker 时仍可用 `--skills-dir <path>` 临时指定其他目录,或在配置中指定:
|
|
418
|
+
|
|
419
|
+
```json
|
|
420
|
+
{
|
|
421
|
+
"skills": {
|
|
422
|
+
"enabled": true,
|
|
423
|
+
"directory": "~/.nikou-block/api/skills",
|
|
424
|
+
"max_metadata_chars": 8000,
|
|
425
|
+
"max_skill_chars": 40000,
|
|
426
|
+
"max_resource_chars": 40000,
|
|
427
|
+
"script_timeout_ms": 120000
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
API MCP 默认开启,使用独立的 `~/.nikou-block/api/mcp.toml`,不读取也不修改 Codex 配置。首次启动时如果默认文件不存在会自动创建空模板。支持 Codex `mcp_servers` TOML 形式的 stdio 和 Streamable HTTP、`tools/list` 分页、`enabled_tools`/`disabled_tools` 过滤和 `required` 启动约束;`servers` 为空表示加载全部启用的 server,也可只启用指定 server:
|
|
433
|
+
|
|
434
|
+
```json
|
|
435
|
+
{
|
|
436
|
+
"mcp": {
|
|
437
|
+
"enabled": true,
|
|
438
|
+
"config_path": "~/.nikou-block/api/mcp.toml",
|
|
439
|
+
"servers": ["example"],
|
|
440
|
+
"startup_timeout_ms": 15000,
|
|
441
|
+
"tool_timeout_ms": 120000
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
独立 MCP TOML 示例:
|
|
447
|
+
|
|
448
|
+
```toml
|
|
449
|
+
[mcp_servers.local]
|
|
450
|
+
command = "npx"
|
|
451
|
+
args = ["-y", "YOUR_MCP_PACKAGE"]
|
|
452
|
+
enabled = true
|
|
453
|
+
|
|
454
|
+
[mcp_servers.remote]
|
|
455
|
+
url = "https://mcp.example.com/mcp"
|
|
456
|
+
bearer_token_env_var = "REMOTE_MCP_TOKEN"
|
|
457
|
+
|
|
458
|
+
[mcp_servers.remote.http_headers]
|
|
459
|
+
X-Client = "nikou-api"
|
|
460
|
+
|
|
461
|
+
[mcp_servers.remote.env_http_headers]
|
|
462
|
+
X-Workspace-Token = "WORKSPACE_TOKEN"
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
可通过 `--mcp-config <path>` 临时指定其他 TOML 文件。API MCP 默认开启,需要临时关闭时使用 `--no-mcp`。
|
|
466
|
+
|
|
467
|
+
API Worker 默认把全部 MCP 与 Skill 工具定义发给模型,不设置数量上限。若某个第三方反代自身限制工具数量,可在对应 profile 中设置 `max_model_tools`;`0` 或不配置表示不限制。超过展示上限时,模型仍可通过内置 `api_tool_search` 和 `api_tool_call` 搜索并调用完整本地工具集。
|
|
468
|
+
|
|
469
|
+
API 模式依赖 Node.js 内置 `node:sqlite`,要求 Node.js 22.5 或更高版本;其他三个模式继续兼容 `package.json` 声明的 Node.js 18+。可用 `--no-mcp` 或 `--no-skills` 临时关闭对应能力。
|
|
470
|
+
|
|
342
471
|
### 查看日志
|
|
343
472
|
|
|
344
473
|
```bash
|
|
@@ -375,6 +504,7 @@ export NIKOU_STAT_DB_TABLE=nikou_usage_daily_stat
|
|
|
375
504
|
npm install
|
|
376
505
|
npm run build
|
|
377
506
|
npm test
|
|
507
|
+
npm run dist:check
|
|
378
508
|
npm run privacy-scan
|
|
379
509
|
npm run pack:check
|
|
380
510
|
```
|
|
@@ -393,6 +523,7 @@ nikou-cli --help
|
|
|
393
523
|
```bash
|
|
394
524
|
npm run build
|
|
395
525
|
npm test
|
|
526
|
+
npm run dist:check
|
|
396
527
|
npm run privacy-scan
|
|
397
528
|
npm run pack:check
|
|
398
529
|
```
|
|
@@ -405,4 +536,8 @@ npm publish --registry=https://registry.npmjs.org/
|
|
|
405
536
|
|
|
406
537
|
## 许可证
|
|
407
538
|
|
|
408
|
-
|
|
539
|
+
从 `0.1.10` 起,本项目使用专有软件许可证,不是开源软件。仅允许安装和运行官方发布的未修改版本;
|
|
540
|
+
未经书面许可,不得修改、逆向工程、再分发、转售或制作衍生作品。完整条款见 `LICENSE`。
|
|
541
|
+
|
|
542
|
+
发布到 npm 的 JavaScript 会在构建后自动混淆,并通过 `npm run dist:check` 检查。
|
|
543
|
+
混淆只能提高分析和逆向成本,不能替代许可证约束,也不能作为密钥保护手段。
|
package/dist/ai-hook.js
CHANGED
|
@@ -1,12 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
normalizeCliArgs
|
|
4
|
-
} from "./chunk-OQQEIFQV.js";
|
|
5
|
-
|
|
6
|
-
// src/ai-hook.ts
|
|
7
|
-
process.argv = [
|
|
8
|
-
process.argv[0],
|
|
9
|
-
"ai-hook",
|
|
10
|
-
...normalizeCliArgs("ai-hook", process.argv.slice(2))
|
|
11
|
-
];
|
|
12
|
-
await import("./index.js");
|
|
2
|
+
(function(_0x3a17f6,_0x2141fc){var _n4bccd83e_0x2271b9={_0x3344e7:0xd5,_0x5113ac:0xdf,_0x37f8cf:0xdb,_0x1c14dc:0x385,_0xd39b14:0x37c,_0x4be32f:0x381,_0x2a91ed:0xcb,_0x146cee:0xd8,_0x29f246:0xdd,_0x10d7c6:0xe2,_0x446b87:0x383,_0x3bec12:0x37e,_0x455f20:0x37c,_0x12a472:0x385,_0x215222:0x388,_0x10276e:0xd2,_0x3d825e:0xd4},_n4bccd83e_0x24cec8={_0x1a5fbd:0x56},_n4bccd83e_0x206006={_0x4a5626:0x313};function _0x38df01(_0x2fe308,_0x20e733,_0x50b625,_0x1a38f5){return _n4bccd83e_0x5e83(_0x2fe308-_n4bccd83e_0x206006._0x4a5626,_0x20e733);}function _0x1f0f2e(_0x94b60a,_0x304904,_0x32a1fc,_0x51763f){return _n4bccd83e_0x5e83(_0x94b60a-_n4bccd83e_0x24cec8._0x1a5fbd,_0x51763f);}var _0x3ec4b5=_0x3a17f6();while(!![]){try{var _0x4d0be7=-parseInt(_0x1f0f2e(_n4bccd83e_0x2271b9._0x3344e7,_n4bccd83e_0x2271b9._0x5113ac,_n4bccd83e_0x2271b9._0x37f8cf,0xe0))/(-0x26ba*-0x1+0x10a5+0x1baf*-0x2)*(parseInt(_0x38df01(0x37f,0x374,0x380,0x382))/(-0x1caa+-0x38e+0x203a))+-parseInt(_0x38df01(_n4bccd83e_0x2271b9._0x1c14dc,_n4bccd83e_0x2271b9._0xd39b14,_n4bccd83e_0x2271b9._0x4be32f,0x386))/(0x1a04+-0xe52+-0xbaf)*(parseInt(_0x38df01(0x391,0x392,0x38d,0x394))/(0x1b30+0x277+-0x1*0x1da3))+parseInt(_0x1f0f2e(0xcb,0xc5,0xd6,_n4bccd83e_0x2271b9._0x2a91ed))/(-0x2266+0x26da+0x46f*-0x1)+parseInt(_0x1f0f2e(_n4bccd83e_0x2271b9._0x146cee,_n4bccd83e_0x2271b9._0x29f246,_n4bccd83e_0x2271b9._0x10d7c6,0xcf))/(-0x15d0+0x11bc*-0x1+0x7ea*0x5)+-parseInt(_0x38df01(_n4bccd83e_0x2271b9._0x446b87,0x379,0x378,_n4bccd83e_0x2271b9._0x3bec12))/(-0x15d1+0x187+0x1451)+-parseInt(_0x38df01(0x382,0x388,_n4bccd83e_0x2271b9._0x455f20,0x37f))/(0x1*-0x1a7d+-0x8*0x2b+0x1bdd)*(-parseInt(_0x38df01(0x38b,0x383,_n4bccd83e_0x2271b9._0x12a472,_n4bccd83e_0x2271b9._0x215222))/(0x11b*-0x5+-0x2ab*0x7+0x183d))+parseInt(_0x1f0f2e(_n4bccd83e_0x2271b9._0x10276e,0xd5,_n4bccd83e_0x2271b9._0x3d825e,0xd5))/(0x52e+-0x1*-0x209e+-0x25c2);if(_0x4d0be7===_0x2141fc)break;else _0x3ec4b5['push'](_0x3ec4b5['shift']());}catch(_0x4dfa1d){_0x3ec4b5['push'](_0x3ec4b5['shift']());}}}(_n4bccd83e_0x225c,-0x498aa+-0x5*-0x30d94+0xef87));var _n4bccd83e_0x2f4cdf=(function(){var _0x584595=!![];return function(_0x36baf0,_0x245e5a){var _0x2c1abe=_0x584595?function(){if(_0x245e5a){var _0x552c4e=_0x245e5a['apply'](_0x36baf0,arguments);return _0x245e5a=null,_0x552c4e;}}:function(){};return _0x584595=![],_0x2c1abe;};}());function _n4bccd83e_0x485e40(_0x52056b,_0x1d8a1b,_0x54a1cc,_0x5726e3){var _n4bccd83e_0x1405fa={_0x57e311:0xf3};return _n4bccd83e_0x5e83(_0x1d8a1b-_n4bccd83e_0x1405fa._0x57e311,_0x5726e3);}var _n4bccd83e_0x59c3c7=_n4bccd83e_0x2f4cdf(this,function(){var _n4bccd83e_0x2ee1bf={_0xedb5b3:0x1ea,_0xe4f55:0x2a3,_0x4619f6:0x2b6,_0x4f8986:0x2ab,_0x100cdc:0x2b8,_0x381e69:0x1e6,_0xdbad37:0x1e2,_0x4e27ba:0x1e2,_0x5bc704:0x1e7,_0xfd883a:0x1e3,_0x5f9d6d:0x1ee,_0x5a7fdf:0x1e5,_0x138a21:0x1e9,_0x5e2139:0x1f0,_0x4fbc6e:0x1de,_0x42afc6:0x2ab,_0xe9a85e:0x2a6,_0x11b16a:0x2a9,_0x4814f9:0x2b0,_0x3b3cdb:0x2a7,_0xde9b99:0x2a9,_0x594607:0x1f0,_0x146b6d:0x1f4,_0x2cf9be:0x1f2},_n4bccd83e_0x402c34={_0x8fa965:0x263},_0x8b9c65={};function _0x59177f(_0x60dbc5,_0x56538c,_0x2b3e88,_0x594f26){return _n4bccd83e_0x5e83(_0x60dbc5- -_n4bccd83e_0x402c34._0x8fa965,_0x56538c);}_0x8b9c65[_0x59177f(-0x1e6,-_n4bccd83e_0x2ee1bf._0xedb5b3,-_n4bccd83e_0x2ee1bf._0xedb5b3,-0x1f1)]=function(_0x32dc2f,_0x4825bb){return _0x32dc2f!==_0x4825bb;},_0x8b9c65[_0x309496(0x2af,_n4bccd83e_0x2ee1bf._0xe4f55,0x2ab,_n4bccd83e_0x2ee1bf._0x4619f6)]=_0x309496(0x2b2,0x2bb,0x2b4,0x2ad)+_0x309496(0x2b7,_n4bccd83e_0x2ee1bf._0x4f8986,0x2ad,_n4bccd83e_0x2ee1bf._0x100cdc);var _0x521dd1=_0x8b9c65;if(_0x521dd1[_0x59177f(-_n4bccd83e_0x2ee1bf._0x381e69,-0x1df,-_n4bccd83e_0x2ee1bf._0xdbad37,-0x1f1)](_n4bccd83e_0x59c3c7[_0x59177f(-_n4bccd83e_0x2ee1bf._0x4e27ba,-0x1dd,-_n4bccd83e_0x2ee1bf._0x5bc704,-0x1e2)]()['toString']()[_0x59177f(-0x1ed,-_n4bccd83e_0x2ee1bf._0xfd883a,-_n4bccd83e_0x2ee1bf._0x5f9d6d,-_n4bccd83e_0x2ee1bf._0x5a7fdf)]('\x0a'),-(0x1f6a*0x1+0x157c+0x34e5*-0x1)))return;function _0x309496(_0x54a5e3,_0x2de48e,_0x291b69,_0xba9ce3){return _n4bccd83e_0x5e83(_0x291b69-0x234,_0x2de48e);}return _n4bccd83e_0x59c3c7[_0x59177f(-0x1e9,-_n4bccd83e_0x2ee1bf._0x138a21,-_n4bccd83e_0x2ee1bf._0x5e2139,-_n4bccd83e_0x2ee1bf._0x4fbc6e)]()['search'](_0x521dd1[_0x309496(0x2b4,_n4bccd83e_0x2ee1bf._0x42afc6,0x2ab,_n4bccd83e_0x2ee1bf._0xe9a85e)])[_0x309496(_n4bccd83e_0x2ee1bf._0x11b16a,_n4bccd83e_0x2ee1bf._0x4814f9,0x2ae,0x2b8)]()[_0x309496(_n4bccd83e_0x2ee1bf._0x3b3cdb,_n4bccd83e_0x2ee1bf._0xde9b99,0x2af,0x2b9)+_0x59177f(-_n4bccd83e_0x2ee1bf._0x594607,-0x1e6,-_n4bccd83e_0x2ee1bf._0x146b6d,-0x1fa)](_n4bccd83e_0x59c3c7)[_0x59177f(-_n4bccd83e_0x2ee1bf._0x2cf9be,-0x1fa,-0x1fb,-0x1fa)](_0x521dd1['NAYXI']);});_n4bccd83e_0x59c3c7();function _n4bccd83e_0x365059(_0x8efbdc,_0x4b4a57,_0x9bbe86,_0x398972){return _n4bccd83e_0x5e83(_0x398972- -0x2cc,_0x4b4a57);}import{normalizeCliArgs}from'./chunk-OQQEIFQV.js';function _n4bccd83e_0x5e83(_0x43e109,_0x55d85a){_0x43e109=_0x43e109-(0x96e*0x2+-0x13d4+0x164);var _0xcb4196=_n4bccd83e_0x225c();var _0x2b59b1=_0xcb4196[_0x43e109];if(_n4bccd83e_0x5e83['YEoTwG']===undefined){var _0xf8ac28=function(_0x1e360f){var _0xf1e3c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x5972a5='',_0xd4fe18='',_0x50de98=_0x5972a5+_0xf8ac28,_0x32b21e=(''+function(){return-0x223b+-0x3*-0x7e3+0xa92;})['indexOf']('\x0a')!==-(-0xc70+0xd28+-0x3d*0x3);for(var _0x2c102b=0xef1+0x298+0x1*-0x1189,_0x302c95,_0x31d52a,_0x2c592b=-0x244*0x2+-0x4fb+0x983;_0x31d52a=_0x1e360f['charAt'](_0x2c592b++);~_0x31d52a&&(_0x302c95=_0x2c102b%(-0xf51+-0x39e+0x12f3)?_0x302c95*(-0x801+0x1dc5*-0x1+-0x1f*-0x13a)+_0x31d52a:_0x31d52a,_0x2c102b++%(0x24e0+0x2574+0xe8*-0x52))?_0x5972a5+=_0x32b21e||_0x50de98['charCodeAt'](_0x2c592b+(0x1*0x1862+0x1fe1*-0x1+0x789))-(0xa54+-0x2294*0x1+-0x2*-0xc25)!==0x1*-0x1cb6+0x2403*-0x1+-0x15*-0x315?String['fromCharCode'](0x9d1*-0x3+0x83*0x2+-0x10d*-0x1c&_0x302c95>>(-(0x1059+0x1eaf+-0x2f06)*_0x2c102b&-0x1*-0x1906+0xa*-0x1b1+0x8a*-0xf)):_0x2c102b:-0x1661*0x1+-0x1bf+0x1820){_0x31d52a=_0xf1e3c['indexOf'](_0x31d52a);}for(var _0x5b48b2=0x1*0x1eb6+0x24*-0xe3+0x136,_0x5f1b17=_0x5972a5['length'];_0x5b48b2<_0x5f1b17;_0x5b48b2++){_0xd4fe18+='%'+('00'+_0x5972a5['charCodeAt'](_0x5b48b2)['toString'](-0x5*0x4fd+0x3d8*0x7+-0x1e7))['slice'](-(0x2186+-0x197+-0x1fed));}return decodeURIComponent(_0xd4fe18);};_n4bccd83e_0x5e83['yvxXXu']=_0xf8ac28,_n4bccd83e_0x5e83['AxFmBY']={},_n4bccd83e_0x5e83['YEoTwG']=!![];}var _0x1b4357=_0xcb4196[0xb3a+0x1b7*-0x9+0x1*0x435],_0x1a2276=_0x43e109+_0x1b4357,_0x4f70c6=_n4bccd83e_0x5e83['AxFmBY'][_0x1a2276];if(!_0x4f70c6){var _0x548b0d=function(_0x11b796){this['NldvSe']=_0x11b796,this['jbUGtw']=[0xe*-0xee+0x6ca+0x63b,0x1*-0x2084+0x2c*0xa3+0x480,0x1*-0x138e+-0x1ce0+0x306e],this['ObKqvU']=function(){return'newState';},this['oodgzF']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['tVbJhX']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x548b0d['prototype']['wuzMXC']=function(){var _0x3b3217=new RegExp(this['oodgzF']+this['tVbJhX']),_0x5d0b02=_0x3b3217['test'](this['ObKqvU']['toString']())?--this['jbUGtw'][0x22f7*-0x1+0x28*-0x1d+0x9e*0x40]:--this['jbUGtw'][-0x10c5*-0x1+-0x1*0xe75+0x94*-0x4];return this['bPwGNC'](_0x5d0b02);},_0x548b0d['prototype']['bPwGNC']=function(_0x15104e){if(!Boolean(~_0x15104e))return _0x15104e;return this['kqYIhC'](this['NldvSe']);},_0x548b0d['prototype']['kqYIhC']=function(_0x1a0b05){for(var _0x4ab9d3=0x1144+0x267b+0xd5*-0x43,_0x5ab3da=this['jbUGtw']['length'];_0x4ab9d3<_0x5ab3da;_0x4ab9d3++){this['jbUGtw']['push'](Math['round'](Math['random']())),_0x5ab3da=this['jbUGtw']['length'];}return _0x1a0b05(this['jbUGtw'][0x1*-0x1111+-0xb26+-0x1*-0x1c37]);},(''+function(){return-0x25d7+-0xbb6*0x3+-0xd*-0x59d;})['indexOf']('\x0a')===-(0x12fd*-0x1+0x26ba+-0x13bc)&&new _0x548b0d(_n4bccd83e_0x5e83)['wuzMXC'](),_0x2b59b1=_n4bccd83e_0x5e83['yvxXXu'](_0x2b59b1),_n4bccd83e_0x5e83['AxFmBY'][_0x1a2276]=_0x2b59b1;}else _0x2b59b1=_0x4f70c6;return _0x2b59b1;}process['argv']=[process['argv'][-0xec0+-0x1f*0x58+-0x3*-0x878],_n4bccd83e_0x365059(-0x254,-0x263,-0x261,-0x25e),...normalizeCliArgs(_n4bccd83e_0x365059(-0x263,-0x257,-0x254,-0x25e),process['argv'][_n4bccd83e_0x485e40(0x166,0x167,0x170,0x170)](0x2f1*0x9+0x1169+-0x2be0))],await import(_n4bccd83e_0x365059(-0x268,-0x255,-0x25f,-0x25f)+'js');function _n4bccd83e_0x225c(){var _0x21bf6e=['mtmYogfAu29ZtG','nti1mZy0mhPiveXAyW','C2vHCMnO','m1Pbq014Bq','Dg9Y','C2XPy2u','ntiZoduYnxDeuePota','Aw5KzxHpzG','tKfzweK','mJq5mZLdBLr4ywm','kYKRja','Dg9tDhjPBMC','y29UC3rYDwm','mta4mJC1ndbStMPqCw4','t1fLsKy','mZG4ndi2mgDzqMz0yW','otiZmdi5tLfprNjf','kcGOlISPkYK','yMLUza','ndG4oda5mLbmCvvItW','mKnhBNjLuW','lI9PBMrLEc4','ywKTAg9VAW'];_n4bccd83e_0x225c=function(){return _0x21bf6e;};return _n4bccd83e_0x225c();}
|
package/dist/chunk-OQQEIFQV.js
CHANGED
|
@@ -1,25 +1 @@
|
|
|
1
|
-
// src/cli-entry.ts
|
|
2
|
-
import path from "path";
|
|
3
|
-
var AI_HOOK_COMMAND_NAMES = /* @__PURE__ */ new Set(["ai-hook", "ai-hook.cmd", "ai-hook.exe"]);
|
|
4
|
-
var HOOK_SUBCOMMANDS = /* @__PURE__ */ new Set(["master", "init", "worker", "local", "log", "help"]);
|
|
5
|
-
function normalizeCliArgs(commandPath, args) {
|
|
6
|
-
const commandName = path.basename(commandPath || "");
|
|
7
|
-
if (!AI_HOOK_COMMAND_NAMES.has(commandName)) {
|
|
8
|
-
return args;
|
|
9
|
-
}
|
|
10
|
-
const [firstArg = "", ...restArgs] = args;
|
|
11
|
-
if (firstArg === "hook") {
|
|
12
|
-
return args;
|
|
13
|
-
}
|
|
14
|
-
if (HOOK_SUBCOMMANDS.has(firstArg)) {
|
|
15
|
-
return ["hook", ...args];
|
|
16
|
-
}
|
|
17
|
-
if (!firstArg || firstArg.startsWith("-")) {
|
|
18
|
-
return ["hook", "worker", "codex", ...args];
|
|
19
|
-
}
|
|
20
|
-
return ["hook", "worker", firstArg, ...restArgs];
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export {
|
|
24
|
-
normalizeCliArgs
|
|
25
|
-
};
|
|
1
|
+
(function(_0x11598c,_0x12a78e){var _n2a18d96a_0x349d4b={_0x532e98:0x134,_0x346ea3:0x388,_0x1fb4c6:0x3a0,_0x4cfb53:0x372,_0x383e2f:0x37a,_0x42356e:0x150,_0x4c0a6b:0x141,_0x1049f0:0x144,_0x3214ee:0x394,_0x54aa3f:0x389,_0x2c30a4:0x3a8,_0x2d52f2:0x3a1,_0x1883c3:0x397,_0x35459d:0x140,_0x30aa90:0x12d,_0x13307c:0x12e,_0x111b7f:0x134,_0x1d6bb7:0x37f,_0x2c2edf:0x129,_0x49b550:0x126},_n2a18d96a_0x352da1={_0x281afb:0x59};function _0x4d865d(_0x56bca1,_0x5e29aa,_0x11b03d,_0x3ee9b3){return _n2a18d96a_0x1aa6(_0x3ee9b3-0x1f4,_0x11b03d);}function _0x43cf78(_0x27e803,_0x2be337,_0x40264d,_0xfc5612){return _n2a18d96a_0x1aa6(_0x40264d- -_n2a18d96a_0x352da1._0x281afb,_0x27e803);}var _0x4c2bba=_0x11598c();while(!![]){try{var _0x39c1e7=parseInt(_0x43cf78(0x146,0x12b,0x138,_n2a18d96a_0x349d4b._0x532e98))/(-0x2*-0xf7b+-0xc8f+-0x1266)+-parseInt(_0x4d865d(_n2a18d96a_0x349d4b._0x346ea3,0x3a0,_n2a18d96a_0x349d4b._0x1fb4c6,0x394))/(0x1960+-0x6a1*-0x5+-0x3a83)+-parseInt(_0x4d865d(_n2a18d96a_0x349d4b._0x4cfb53,_n2a18d96a_0x349d4b._0x383e2f,_n2a18d96a_0x349d4b._0x383e2f,0x384))/(0x13d9*0x1+-0x2072*0x1+-0x2*-0x64e)*(-parseInt(_0x43cf78(_n2a18d96a_0x349d4b._0x42356e,_n2a18d96a_0x349d4b._0x4c0a6b,0x141,0x12f))/(-0x4*-0x28b+0x163f+-0x2067))+-parseInt(_0x43cf78(_n2a18d96a_0x349d4b._0x1049f0,0x145,0x145,0x156))/(0x2386+-0xdbe+-0x15c3*0x1)+-parseInt(_0x43cf78(0x12e,0x13f,0x13d,0x12e))/(-0x19ea*-0x1+-0xcac+-0xd38)*(-parseInt(_0x4d865d(_n2a18d96a_0x349d4b._0x3214ee,0x379,_n2a18d96a_0x349d4b._0x54aa3f,_n2a18d96a_0x349d4b._0x54aa3f))/(-0xcab+0x1*0xf51+0x1*-0x29f))+-parseInt(_0x4d865d(_n2a18d96a_0x349d4b._0x2c30a4,_n2a18d96a_0x349d4b._0x2d52f2,0x39f,_n2a18d96a_0x349d4b._0x1883c3))/(0x621+-0x2*-0x17b+-0x90f)*(-parseInt(_0x43cf78(_n2a18d96a_0x349d4b._0x35459d,_n2a18d96a_0x349d4b._0x30aa90,_n2a18d96a_0x349d4b._0x13307c,_n2a18d96a_0x349d4b._0x111b7f))/(-0x1f2*-0xa+0x16fd+0x3b*-0xb8))+parseInt(_0x4d865d(0x393,_n2a18d96a_0x349d4b._0x1d6bb7,_n2a18d96a_0x349d4b._0x383e2f,0x38c))/(0x1207+-0x2b*-0x65+-0x22f4)*(-parseInt(_0x43cf78(_n2a18d96a_0x349d4b._0x2c2edf,_n2a18d96a_0x349d4b._0x49b550,0x136,0x138))/(0x1836+-0x1d04+0x4d9));if(_0x39c1e7===_0x12a78e)break;else _0x4c2bba['push'](_0x4c2bba['shift']());}catch(_0x30d19d){_0x4c2bba['push'](_0x4c2bba['shift']());}}}(_n2a18d96a_0xc571,0x13*-0x1864f+-0x2*-0x3dd44+0x23d40f));var _n2a18d96a_0xa7bfa=(function(){var _n2a18d96a_0x19a1fe={_0x399d03:0x230,_0x27bf15:0x231},_0x4340cf=!![];return function(_0x152710,_0xa6b21f){var _0x82310e=_0x4340cf?function(){var _n2a18d96a_0x4555f6={_0x224090:0x3e5};function _0x318023(_0x22fd6f,_0x5ec199,_0x284cb0,_0x1551d5){return _n2a18d96a_0x1aa6(_0x5ec199- -_n2a18d96a_0x4555f6._0x224090,_0x22fd6f);}if(_0xa6b21f){var _0x2419ff=_0xa6b21f[_0x318023(-_n2a18d96a_0x19a1fe._0x399d03,-0x23c,-0x23e,-_n2a18d96a_0x19a1fe._0x27bf15)](_0x152710,arguments);return _0xa6b21f=null,_0x2419ff;}}:function(){};return _0x4340cf=![],_0x82310e;};}()),_n2a18d96a_0x350035=_n2a18d96a_0xa7bfa(this,function(){var _n2a18d96a_0x2b7a5b={_0x38cad5:0x404,_0x133d47:0x401,_0x17783f:0x409,_0x462623:0x354,_0x4bbb15:0x336,_0x598e1c:0x346,_0x470e3e:0x357,_0x31f765:0x334,_0x3ad162:0x352,_0x1e91f5:0x407,_0x41b999:0x408,_0x4b0928:0x34a,_0xdf5a1e:0x33c,_0x412c9e:0x32b,_0x9eea78:0x40f,_0x471c82:0x3f9,_0x4b75fc:0x347,_0x1df7ec:0x342,_0x3219ef:0x342,_0xa63244:0x335,_0x1a5bc7:0x33a,_0x2c72ff:0x33e,_0x2b2694:0x337,_0x5f2b51:0x32d},_0x54e4b8={};_0x54e4b8[_0xa37478(0x3fa,_n2a18d96a_0x2b7a5b._0x38cad5,_n2a18d96a_0x2b7a5b._0x133d47,_n2a18d96a_0x2b7a5b._0x17783f)]='(((.+)+)'+_0x5057c8(_n2a18d96a_0x2b7a5b._0x462623,0x350,_n2a18d96a_0x2b7a5b._0x4bbb15,0x343);var _0x4a2ee9=_0x54e4b8;if(_n2a18d96a_0x350035[_0x5057c8(_n2a18d96a_0x2b7a5b._0x598e1c,_n2a18d96a_0x2b7a5b._0x470e3e,_n2a18d96a_0x2b7a5b._0x31f765,0x345)]()[_0x5057c8(0x330,0x34a,_n2a18d96a_0x2b7a5b._0x3ad162,0x342)]()[_0xa37478(0x40a,_n2a18d96a_0x2b7a5b._0x1e91f5,0x3fc,_n2a18d96a_0x2b7a5b._0x41b999)]('\x0a')!==-(-0x1*0x83b+-0x1*-0x9f+0x79d))return;function _0x5057c8(_0x21f400,_0x3ea306,_0x4d45b7,_0x1364b9){return _n2a18d96a_0x1aa6(_0x1364b9-0x1a1,_0x3ea306);}function _0xa37478(_0x1b6fa8,_0xde3420,_0x27f2fb,_0x18aefa){return _n2a18d96a_0x1aa6(_0xde3420-0x27c,_0x1b6fa8);}return _n2a18d96a_0x350035[_0x5057c8(_n2a18d96a_0x2b7a5b._0x4b0928,0x33f,0x339,0x342)]()[_0x5057c8(0x322,_n2a18d96a_0x2b7a5b._0xdf5a1e,0x31d,_n2a18d96a_0x2b7a5b._0x412c9e)](_0x4a2ee9[_0xa37478(_n2a18d96a_0x2b7a5b._0x9eea78,_n2a18d96a_0x2b7a5b._0x38cad5,_n2a18d96a_0x2b7a5b._0x471c82,0x3fb)])[_0x5057c8(0x345,0x33a,_n2a18d96a_0x2b7a5b._0x4b75fc,_n2a18d96a_0x2b7a5b._0x1df7ec)]()[_0x5057c8(_n2a18d96a_0x2b7a5b._0x3219ef,0x345,0x335,_n2a18d96a_0x2b7a5b._0xa63244)+_0x5057c8(_n2a18d96a_0x2b7a5b._0x1a5bc7,_n2a18d96a_0x2b7a5b._0x2c72ff,_n2a18d96a_0x2b7a5b._0x2b2694,0x346)](_n2a18d96a_0x350035)[_0x5057c8(0x324,_n2a18d96a_0x2b7a5b._0x5f2b51,0x338,_n2a18d96a_0x2b7a5b._0x412c9e)](_0x4a2ee9['hoQfl']);});_n2a18d96a_0x350035();function _n2a18d96a_0x1aa6(_0x22cee3,_0x51f04c){_0x22cee3=_0x22cee3-(0x4d1+-0x109c+0xd52);var _0x2ca2c7=_n2a18d96a_0xc571();var _0xc636ec=_0x2ca2c7[_0x22cee3];if(_n2a18d96a_0x1aa6['oGDyRY']===undefined){var _0x4871f0=function(_0x436011){var _0x13bcab='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1088fa='',_0x10e32e='',_0x3a392c=_0x1088fa+_0x4871f0,_0x1f6209=(''+function(){return-0x1cf6+-0x1*0x113d+0x2e33;})['indexOf']('\x0a')!==-(-0x1cc5*-0x1+-0x2415+0x751);for(var _0x4f660c=-0x6b*0x10+0x62e*-0x4+-0x86*-0x3c,_0x4a1ce2,_0x23d305,_0x27e358=-0x1*0x259+-0x17f+0x3d8;_0x23d305=_0x436011['charAt'](_0x27e358++);~_0x23d305&&(_0x4a1ce2=_0x4f660c%(-0x5a*0x5+0x2386+0x90*-0x3c)?_0x4a1ce2*(-0x13bb*0x1+-0x1e6+0x15e1)+_0x23d305:_0x23d305,_0x4f660c++%(-0x8a4+0x1*0x745+0x163))?_0x1088fa+=_0x1f6209||_0x3a392c['charCodeAt'](_0x27e358+(0x4*0x445+-0x6dc*-0x1+-0x17e6))-(0x2333+-0x1c45*0x1+-0x6e4)!==-0x17ea+0x1c59+-0x46f?String['fromCharCode'](0x2450+0x47b+0x6a2*-0x6&_0x4a1ce2>>(-(0x199+-0xc83*-0x2+-0x9*0x2f5)*_0x4f660c&-0x1269+0x257f*-0x1+0x37ee)):_0x4f660c:0x1*-0x25c1+-0x10fe+-0x1*-0x36bf){_0x23d305=_0x13bcab['indexOf'](_0x23d305);}for(var _0x4a0f00=-0x14b*-0x17+-0x25f1+0x834,_0x5b22d1=_0x1088fa['length'];_0x4a0f00<_0x5b22d1;_0x4a0f00++){_0x10e32e+='%'+('00'+_0x1088fa['charCodeAt'](_0x4a0f00)['toString'](-0x102a+0xde*0x2b+-0x2*0xa88))['slice'](-(0x34a*-0x3+-0x101*-0x26+-0x1c46));}return decodeURIComponent(_0x10e32e);};_n2a18d96a_0x1aa6['DzAVoz']=_0x4871f0,_n2a18d96a_0x1aa6['jfDqgB']={},_n2a18d96a_0x1aa6['oGDyRY']=!![];}var _0x1c8aad=_0x2ca2c7[0x9f+-0x1*-0xa3d+-0xadc],_0x5f0f44=_0x22cee3+_0x1c8aad,_0x2f135c=_n2a18d96a_0x1aa6['jfDqgB'][_0x5f0f44];if(!_0x2f135c){var _0xf2d41a=function(_0x119a34){this['DdYTBq']=_0x119a34,this['jphqxi']=[-0xf1*0x12+-0x1478+0x256b,-0x51*0x1e+0x1*0x1e7c+-0x14fe,0x1586+-0x1d0f+0x789],this['DaEAbp']=function(){return'newState';},this['fYhPea']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['phqRHr']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0xf2d41a['prototype']['LVRFRR']=function(){var _0x556151=new RegExp(this['fYhPea']+this['phqRHr']),_0x107bf7=_0x556151['test'](this['DaEAbp']['toString']())?--this['jphqxi'][0x8*0x295+0x19d8+-0x1*0x2e7f]:--this['jphqxi'][0x1b54+0x13be+-0x96a*0x5];return this['bIxvnP'](_0x107bf7);},_0xf2d41a['prototype']['bIxvnP']=function(_0x4cabd3){if(!Boolean(~_0x4cabd3))return _0x4cabd3;return this['tHbHfq'](this['DdYTBq']);},_0xf2d41a['prototype']['tHbHfq']=function(_0x22a09c){for(var _0x2e24b5=-0x1ac0+-0x9*-0x2d1+0x1*0x167,_0x1e0429=this['jphqxi']['length'];_0x2e24b5<_0x1e0429;_0x2e24b5++){this['jphqxi']['push'](Math['round'](Math['random']())),_0x1e0429=this['jphqxi']['length'];}return _0x22a09c(this['jphqxi'][-0xf5a+-0x1f50+0x2eaa*0x1]);},(''+function(){return 0x1659+0x9ef+-0x2048;})['indexOf']('\x0a')===-(-0xb44+0x223a+-0x1*0x16f5)&&new _0xf2d41a(_n2a18d96a_0x1aa6)['LVRFRR'](),_0xc636ec=_n2a18d96a_0x1aa6['DzAVoz'](_0xc636ec),_n2a18d96a_0x1aa6['jfDqgB'][_0x5f0f44]=_0xc636ec;}else _0xc636ec=_0x2f135c;return _0xc636ec;}function _n2a18d96a_0xc571(){var _0x40c02d=['Bg9N','mJi0oty0nxPJA2PQrG','BM5IAu4','mtG4ntuZnK9hzgz5CW','Dg9tDhjPBMC','kYKRja','mZC2C3PXveLz','yMLUza','Dg9Y','AgfZ','C3rHCNrZv2K','y29KzxG','yxbWBhK','Ag9VAW','mtG1mdy3sLPlBgH4','Ag9rzMW','A3PQCfK','C2vHCMnO','Aw5KzxHpzG','rNjcD1q','ywKTAg9VAY4','Aw5PDa','otuWmJeZwNfrqND1','mJG0nZy2ovDMz1H4CW','nZm3nZmXCgz2EuHz','Bg9JywW','D29YA2vY','y29UC3rYDwm','n1HPALvPua','odaYntGZnhjst3r2tW','AgvSCa','mZaWsNrhEeHJ','y21K','ofn5z05HwG','BwfZDgvY','zxHL'];_n2a18d96a_0xc571=function(){return _0x40c02d;};return _n2a18d96a_0xc571();}import _n2a18d96a_0x16b546 from'path';var AI_HOOK_COMMAND_NAMES=new Set(['ai-hook',_n2a18d96a_0x337c78(-0x190,-0x184,-0x17d,-0x194)+_n2a18d96a_0x337c78(-0x16b,-0x178,-0x183,-0x170),_n2a18d96a_0x337c78(-0x18b,-0x184,-0x191,-0x195)+_n2a18d96a_0xe9ca3b(0x22b,0x219,0x20b,0x225)]),HOOK_SUBCOMMANDS=new Set([_n2a18d96a_0x337c78(-0x16f,-0x176,-0x16b,-0x17c),_n2a18d96a_0x337c78(-0x18c,-0x183,-0x18d,-0x183),_n2a18d96a_0x337c78(-0x16e,-0x17e,-0x17a,-0x174),_n2a18d96a_0x337c78(-0x16e,-0x17f,-0x18f,-0x177),_n2a18d96a_0xe9ca3b(0x223,0x21a,0x20d,0x217),_n2a18d96a_0x337c78(-0x189,-0x17a,-0x177,-0x186)]);function _n2a18d96a_0xe9ca3b(_0xb365ea,_0x579408,_0x152e0a,_0x382241){return _n2a18d96a_0x1aa6(_0x579408-0x7d,_0x382241);}function normalizeCliArgs(_0x15c6ba,_0x3b0323){var _n2a18d96a_0x24fa8f={_0x73e40f:0xfa,_0x58ad63:0xe8,_0x579ac4:0xeb,_0x33a2b0:0xd2,_0x7ac973:0xc6,_0x30b02b:0xd5,_0x5146ca:0xd1,_0x2addc9:0xdf,_0xf7275d:0xd0,_0xeda8:0x4f2,_0x14d55c:0x4ee,_0x477058:0x4ea,_0x241a1a:0xf9,_0x518fec:0xef,_0x8a07c8:0x4fa,_0x656dd8:0x4f9,_0x106cfc:0x4e0,_0x51b63b:0x4de,_0x5df517:0x500,_0x163466:0xea,_0x195d67:0xf9,_0x4476e5:0xdc,_0x5976d2:0xdc,_0x56e547:0xdb,_0x4a881e:0xec,_0x4e299d:0xf0,_0x518522:0xf1,_0x37b50b:0x4da,_0x6e6050:0x4db},_0x32e0e3={};_0x32e0e3[_0x414c86(0xea,_n2a18d96a_0x24fa8f._0x73e40f,_n2a18d96a_0x24fa8f._0x58ad63,_n2a18d96a_0x24fa8f._0x579ac4)]=function(_0x1d8305,_0x3093d7){return _0x1d8305||_0x3093d7;},_0x32e0e3[_0x414c86(_n2a18d96a_0x24fa8f._0x33a2b0,_n2a18d96a_0x24fa8f._0x7ac973,_n2a18d96a_0x24fa8f._0x30b02b,0xe0)]=function(_0x48e660,_0x4f3bad){return _0x48e660===_0x4f3bad;};function _0x5438b6(_0x51eda8,_0x50f8dd,_0xe3600d,_0x45c562){return _n2a18d96a_0xe9ca3b(_0x51eda8-0x91,_0xe3600d-0x2cb,_0xe3600d-0x7a,_0x51eda8);}_0x32e0e3[_0x414c86(_n2a18d96a_0x24fa8f._0x5146ca,_n2a18d96a_0x24fa8f._0x2addc9,_n2a18d96a_0x24fa8f._0x33a2b0,_n2a18d96a_0x24fa8f._0xf7275d)]=_0x5438b6(0x4fd,0x4ef,_n2a18d96a_0x24fa8f._0xeda8,_n2a18d96a_0x24fa8f._0x14d55c);function _0x414c86(_0x2b518f,_0x4e4574,_0x3f18fe,_0x261661){return _n2a18d96a_0xe9ca3b(_0x2b518f-0xee,_0x3f18fe- -0x134,_0x3f18fe-0x151,_0x261661);}var _0x296915=_0x32e0e3;const _0x49f589=_n2a18d96a_0x16b546['basename'](_0x296915[_0x5438b6(0x4db,0x4f9,0x4e7,_n2a18d96a_0x24fa8f._0x477058)](_0x15c6ba,''));if(!AI_HOOK_COMMAND_NAMES[_0x414c86(0xed,_n2a18d96a_0x24fa8f._0x241a1a,_n2a18d96a_0x24fa8f._0x518fec,0xe3)](_0x49f589))return _0x3b0323;const [_0xc3874d='',..._0x1cc9f2]=_0x3b0323;if(_0x296915['FrBwT'](_0xc3874d,_0x296915['kzjpY']))return _0x3b0323;if(HOOK_SUBCOMMANDS['has'](_0xc3874d))return[_0x5438b6(_n2a18d96a_0x24fa8f._0x8a07c8,_n2a18d96a_0x24fa8f._0x656dd8,0x4f2,_n2a18d96a_0x24fa8f._0x106cfc),..._0x3b0323];if(!_0xc3874d||_0xc3874d[_0x5438b6(_n2a18d96a_0x24fa8f._0x51b63b,0x4e7,0x4ef,_n2a18d96a_0x24fa8f._0x5df517)+'th']('-'))return[_0x414c86(_n2a18d96a_0x24fa8f._0x163466,0xf5,0xf3,_n2a18d96a_0x24fa8f._0x195d67),_0x414c86(_n2a18d96a_0x24fa8f._0x4476e5,0xcc,_n2a18d96a_0x24fa8f._0x5976d2,_n2a18d96a_0x24fa8f._0x56e547),_0x414c86(_n2a18d96a_0x24fa8f._0x4a881e,_n2a18d96a_0x24fa8f._0x4e299d,_n2a18d96a_0x24fa8f._0x518522,0xe9),..._0x3b0323];return['hook',_0x5438b6(_n2a18d96a_0x24fa8f._0x37b50b,0x4dc,_n2a18d96a_0x24fa8f._0x6e6050,0x4d1),_0xc3874d,..._0x1cc9f2];}function _n2a18d96a_0x337c78(_0x348c90,_0x5165ec,_0x9d0232,_0x460f79){var _n2a18d96a_0x3b3bba={_0x62c4a8:0x311};return _n2a18d96a_0x1aa6(_0x5165ec- -_n2a18d96a_0x3b3bba._0x62c4a8,_0x9d0232);}export{normalizeCliArgs};
|