@omnicrawl/cli-linux-arm-musl 0.4.3 → 0.4.5

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/bin/omnicrawl CHANGED
Binary file
package/host/omnicrawl CHANGED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -297,6 +297,55 @@ impersonate = ""
297
297
  # 单次请求的 URL 上限:0 表示用默认上限 20,否则按 1–20 收窄。
298
298
  max_urls = 0
299
299
 
300
+ # 触发接口:让外部组件(定时任务、传感器脚本、CI、监控告警)在自定条件成立时拉起一个
301
+ # 独立 loop。它们自己判断时间/温度/湿度/构建状态,命中后 POST 一条自定义消息,OmniCrawl
302
+ # 用一次独立会话跑一轮,跑完把结果落盘并按需投递到消息平台。
303
+ #
304
+ # omnicrawl trigger ensure # 确保本机有一份可用服务(已就绪则复用)
305
+ # omnicrawl trigger status # 打印配置、并发与队列
306
+ # omnicrawl trigger stop # 停止本机共用的服务
307
+ #
308
+ # POST /v1/triggers {message, data?, title?, session_key?, workspace?,
309
+ # timeout_seconds?, wait_seconds?, idempotency_key?,
310
+ # notify?, tags?}
311
+ # → {trigger_id, state, title, created_at, queue_position?, duplicate}
312
+ # GET /v1/triggers[?state=&tag=&limit=] 列表(按创建时间倒序)
313
+ # GET /v1/triggers/{id} 单条状态与结果
314
+ # GET /v1/triggers/{id}/events SSE,事件名与 /api/v1/runs 同源
315
+ # GET /v1/triggers/{id}/transcript 会话转录(回看那轮做了什么)
316
+ # POST /v1/triggers/{id}/cancel 取消(幂等)
317
+ #
318
+ # 与 /api/v1/runs 的区别:那条路是交互式入口,占单活动生成名额且写当前会话;触发接口有
319
+ # 自己的会话根与并发池,无人值守任务不会和用户抢名额,也不污染用户的对话历史。
320
+ #
321
+ # 条件判定完全在外部组件:这里不内置调度器、不解析 cron。
322
+ # 接口不做鉴权,host 只允许回环地址;工具白名单默认只读 + 记忆/知识库 + 联网检索,
323
+ # 审批固定为自动审查(危险调用仍被审查闸拦下)。默认关闭。
324
+ [trigger_api]
325
+ enabled = false
326
+ host = "127.0.0.1"
327
+ # 端口:与本地 API(8765)、决策接口(8767)、抓取接口(8768)错开。
328
+ port = 8769
329
+ # 同时最多跑几个 loop(1–4)。每个 slot 一套独立的内核进程、工具表与会话。
330
+ max_concurrency = 1
331
+ # 排队上限;满了返回 429 QUEUE_FULL,调用方稍后重试。
332
+ queue_limit = 32
333
+ # 单次回合上限(60–7200 秒);请求可用 timeout_seconds 收窄。
334
+ default_timeout_seconds = 900
335
+ # per_trigger:每次触发新开会话;keyed:允许请求用 session_key 复用持久会话(同名串行)。
336
+ session_mode = "per_trigger"
337
+ # 请求未给 workspace 时的缺省工作区;留空表示用宿主当前工作区。
338
+ default_workspace = ""
339
+ # 无人值守工具白名单(白名单语义:表外的工具既不声明给模型,宿主也不执行)。
340
+ # 要放开 bash / write_file,前提是调用来源可信——报文、日志与网页内容会进模型上下文。
341
+ tools = ["read", "read_image", "list", "find", "grep", "memory_search", "memory_read",
342
+ "memory_expand_related", "memory_write", "kb_search", "kb_read", "web_search",
343
+ "fetcher"]
344
+ # 追加到固定无人值守约束之后的部署专属提示(例如「回复用中文,不超过 300 字」)。
345
+ system_prompt_append = ""
346
+ # 触发记录在服务进程内的保留小时数(1–8760);会话转录另行保留在会话目录里。
347
+ retention_hours = 168
348
+
300
349
  [agent_temp]
301
350
  enabled = true
302
351
  directory = ".omnicrawl/.agent_tmp"
@@ -118,10 +118,21 @@ tool_suggestion = false
118
118
  # 强调:只有能拆成相互独立、可并行推进的子任务,或需要隔离视角核查与隔离改动时才算用得到;
119
119
  # 单步问答、小改动、串行依赖的活一律判为用不到。
120
120
  #
121
- # 两类同时开启时,两条请求**并发发起**,总耗时取两者的较大者而不是相加;任一失败只少一行。
122
- # 决策服务不可用时同样按「本次无建议」处理,提问原文照发。
121
+ # 三条建议(工具 / 子代理 / Skill)可同时开启:每条请求**并发发起**,总耗时取最大者而不是
122
+ # 相加;任一失败只少一行。决策服务不可用时同样按「本次无建议」处理,提问原文照发。
123
123
  subagent_suggestion = false
124
124
 
125
+ # 新提问自动建议 Skill:同样独立、可单开也可与前两条同开。候选另走一条路——先用当前提问对
126
+ # 本机 Skill 索引做 BM25 检索(检索范围是名称 + 描述 + 正文),挑出最多 8 条池子,再把池子
127
+ # 交给决策模型判定「本次符合哪几个的适用场景」。
128
+ #
129
+ # 上面的 `skill_search_rerank` 开着时,池子会先用决策模型重排再送审;关着就用 BM25 名次。
130
+ # 也就是说注入本身不依赖决策服务,只有「判定哪两个最合适」这一步需要它。
131
+ #
132
+ # 最终**只注入前两名**,在提问尾部追加一行「建议使用skills:pdf、docx。」。
133
+ # 本机一个 Skill 都没装、或提问一个检索词都没命中时,这次建议直接跳过(不发请求)。
134
+ skill_suggestion = false
135
+
125
136
  # 决策 REST 接口:把决策能力暴露给本机其它程序(CLI 工具、Skill、外部脚本),
126
137
  # 它们不必经主模型就能拿到决策结果。大脑(主模型)负责规划,小脑(决策模型)负责
127
138
  # 快速判定,两者通过这个接口协同。
@@ -64,6 +64,7 @@ omnicrawl文档(共 15 篇,均以 `omnicrawl://docs/<文件名>` 读取,
64
64
  - TTS 语音合成(Kokoro-82M ONNX CPU:配置、tts_synthesize 工具、CLI、音素化、模型下载):读取 `omnicrawl://docs/TTS.md`;实现位于 `rust/crates/omnicrawl-tts/` 和 `rust/crates/omnicrawl-config/src/features/tts.rs`。
65
65
  - 决策接口(结构化决策模型的本地 REST 服务:启动、无鉴权的回环访问、decide/choice/rank/review 端点、常驻与复用、脱敏与安全边界):读取 `omnicrawl://docs/decision_api.md`;实现位于 `rust/crates/omnicrawl-decision/` 和 `rust/crates/omnicrawl-config/src/features/decision_model.rs`。
66
66
  - 抓取接口(fetcher 的本机 REST 通道:`[fetch_api]` 配置、`/v1/fetch` 端点、无鉴权回环访问、Python 批量脚本调用、与工具同源的抓取语义与安全边界):读取 `omnicrawl://docs/fetch_api.md`;实现位于 `rust/crates/omnicrawl-fetch/`、`rust/crates/omnicrawl-config/src/features/fetch_api.rs` 和 `rust/crates/omnicrawl-host/src/tools/fetcher.rs`。
67
+ - 触发接口(外部事件拉起独立 loop:`[trigger_api]` 配置、`/v1/triggers` 端点、条件判定留给外部组件、无人值守审批与工具白名单、终态投递与去重):读取 `omnicrawl://docs/trigger_api.md`;实现位于 `rust/crates/omnicrawl-trigger/` 和 `rust/crates/omnicrawl-config/src/features/trigger_api.rs`。
67
68
  - FSAPP 接入(文件系统应用侧的接入约定):读取 `omnicrawl://docs/FSAPP.md`。
68
69
 
69
70
  脱敏占位符引用规则:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omnicrawl/cli-linux-arm-musl",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "description": "OmniCrawl 平台包(Linux armv7,musl 静态:内核 + 完整宿主)",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,6 +21,7 @@
21
21
  "omnicrawl-api": "host/omnicrawl-api",
22
22
  "omnicrawl-decision": "host/omnicrawl-decision",
23
23
  "omnicrawl-fetch": "host/omnicrawl-fetch",
24
+ "omnicrawl-trigger": "host/omnicrawl-trigger",
24
25
  "omnicrawl-mcp-server": "host/omnicrawl-mcp-server"
25
26
  },
26
27
  "files": [
package/version.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@omnicrawl/cli-linux-arm-musl",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "os": "linux",
5
5
  "cpu": "arm",
6
- "kernelVersion": "0.4.3",
7
- "hostVersion": "0.4.3",
6
+ "kernelVersion": "0.4.5",
7
+ "hostVersion": "0.4.5",
8
8
  "hostPlatform": "linux-arm",
9
- "builtAt": "2026-10-30T18:29:14.879Z"
9
+ "builtAt": "2026-11-02T18:56:19.038Z"
10
10
  }