aura-argus 0.1.1 → 0.1.3
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 +8 -1
- package/README.md +190 -208
- package/RESULTS.md +1 -1
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.3 — 2026-10-22
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Export `./adapters/dsh/index.mjs` so the published package can be resolved by package subpath from DSH.
|
|
8
|
+
|
|
9
|
+
## 0.1.2 — 2026-10-21
|
|
4
10
|
|
|
5
11
|
### Changed
|
|
6
12
|
|
|
7
13
|
- Repository metadata now points at the Aura monorepo (`Ck-epsilon/Aura`, directory `aura-argus`).
|
|
8
14
|
- ZCode integration docs corrected: first-party MCP via `~/.zcode/cli/config.json` `mcp.servers`.
|
|
9
15
|
- No runtime behavior changes.
|
|
16
|
+
- 0.1.1 was staged by npm's publish flow but never became public; 0.1.2 supersedes it.
|
|
10
17
|
|
|
11
18
|
## 0.1.0 — 2026-10-21
|
|
12
19
|
|
package/README.md
CHANGED
|
@@ -1,101 +1,135 @@
|
|
|
1
1
|
# AuraArgus
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**把技术问题路由到官方文档,返回可引用的原文段落。**
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
- **fetch**:取回一个 URL,转成干净的 Markdown 文本。
|
|
5
|
+
AuraArgus 是一个本地运行的检索工具,给 agent、脚本或你自己用。它不卖搜索 API,不需要 key,也不按次计费:你给一个问题,它找到对应的官方页面,抓回正文,挑出相关段落,连同出处 URL 一起返回。
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
它解决的不是“搜不到”,而是“搜到的是一堆二手摘要”。官方文档里本来就有答案,缺的是从问题到那页纸的路由。
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
---
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
## 它是什么
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
- **search**:问题 → 实体 → 注册的官方源 → 正文 → 选段 → 证据包
|
|
14
|
+
- **fetch**:一个 URL → 干净 Markdown(标题、长度、截断标记)
|
|
15
|
+
- 证据包里每条都带 `url`、`title`、`passages[].text`、`score`
|
|
16
|
+
- 零依赖,Node.js ≥ 20,Windows / macOS / Linux
|
|
17
|
+
- 不内置 key、不按次计费、无账号、无遥测
|
|
15
18
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
## 它不是什么
|
|
20
|
+
|
|
21
|
+
- 不是通用搜索引擎,也不是问答机器人;它返回**证据**,答案由调用方的模型写
|
|
22
|
+
- 不追求“全网覆盖”:覆盖率 = 注册表(目前 18 个实体 / 34 个官方源)
|
|
23
|
+
- 不做 JS 渲染、不登登录墙、不绕验证码、不做代理池
|
|
24
|
+
- 默认 **registry-only**:未注册的实体返回 `mode: "none"`,不会硬编一个答案
|
|
25
|
+
- 360/搜狗兜底是 opt-in(`--fallback`),可能被反爬,默认关闭
|
|
26
|
+
|
|
27
|
+
---
|
|
22
28
|
|
|
23
|
-
|
|
29
|
+
## 30 秒上手
|
|
30
|
+
|
|
31
|
+
### 从 zip 直接运行(不需要 npm install)
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
unzip aura-argus-0.1.2.zip
|
|
35
|
+
cd aura-argus-0.1.2
|
|
24
36
|
|
|
25
|
-
|
|
37
|
+
node src/cli.mjs search "SearXNG 对 429 的冷却时间是多少秒?" --json
|
|
38
|
+
```
|
|
26
39
|
|
|
27
|
-
|
|
40
|
+
零依赖,不需要 `npm install`。先确认 Node 版本:
|
|
28
41
|
|
|
29
|
-
|
|
30
|
-
-
|
|
31
|
-
|
|
42
|
+
```bash
|
|
43
|
+
node -v # 需要 >= 20
|
|
44
|
+
```
|
|
32
45
|
|
|
33
|
-
|
|
46
|
+
### 安装成全局命令
|
|
34
47
|
|
|
35
48
|
```bash
|
|
36
49
|
npm i -g aura-argus
|
|
37
50
|
aura-argus version
|
|
51
|
+
aura-argus search "Node.js 怎么用 http 模块创建服务器?" --text
|
|
38
52
|
```
|
|
39
53
|
|
|
40
|
-
|
|
54
|
+
如果你的 npm 默认走镜像(比如 `registry.npmmirror.com`),刚发布的版本可能还没同步;可以显式指定:
|
|
41
55
|
|
|
42
56
|
```bash
|
|
43
|
-
|
|
44
|
-
node src/cli.mjs search "SearXNG 对 429 的冷却时间是多少秒?"
|
|
57
|
+
npm i -g aura-argus --registry=https://registry.npmjs.org/
|
|
45
58
|
```
|
|
46
59
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
### 1. CLI
|
|
60
|
+
### 一个最小例子
|
|
50
61
|
|
|
51
62
|
```bash
|
|
52
|
-
|
|
53
|
-
|
|
63
|
+
aura-argus search "Tavily 一个 credit 多少钱?" --json
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
返回(截断):
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"schemaVersion": 1,
|
|
71
|
+
"question": "Tavily 一个 credit 多少钱?",
|
|
72
|
+
"entity": "tavily",
|
|
73
|
+
"mode": "registry",
|
|
74
|
+
"evidence": [
|
|
75
|
+
{
|
|
76
|
+
"url": "https://www.tavily.com/pricing",
|
|
77
|
+
"title": "Pricing - Tavily",
|
|
78
|
+
"passages": [{ "text": "… 1,000 credits … $0.008 per credit …", "score": 12 }]
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"attempts": [{ "url": "…", "ok": true, "ms": 397, "passages": 4 }],
|
|
82
|
+
"tookMs": 512,
|
|
83
|
+
"cached": false
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
`mode` 三种值:
|
|
54
88
|
|
|
55
|
-
|
|
56
|
-
|
|
89
|
+
| mode | 含义 |
|
|
90
|
+
|---|---|
|
|
91
|
+
| `registry` | 命中注册表,抓的是官方源 |
|
|
92
|
+
| `web-fallback` | 只有显式 `--fallback` 才出现;360/搜狗兜底,较弱 |
|
|
93
|
+
| `none` | 注册表没有覆盖,或所有源都失败 |
|
|
57
94
|
|
|
58
|
-
|
|
59
|
-
aura-argus fetch https://docs.searxng.org/dev/search_api.html --max-chars 4000
|
|
95
|
+
失败时还会带 `error`:
|
|
60
96
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
aura-argus doctor
|
|
97
|
+
```json
|
|
98
|
+
{ "error": { "code": "ALL_SOURCES_FAILED", "message": "all 2 sources failed", "attempts": 2 } }
|
|
64
99
|
```
|
|
65
100
|
|
|
66
|
-
退出码:`0`
|
|
101
|
+
CLI 退出码:`0` 有证据、`2` 无证据、`3` 参数/URL 错误、`4` 抓取失败、`130` 中断。
|
|
102
|
+
|
|
103
|
+
---
|
|
67
104
|
|
|
68
|
-
|
|
105
|
+
## 四种接法
|
|
106
|
+
|
|
107
|
+
### 1. CLI
|
|
69
108
|
|
|
70
109
|
```bash
|
|
71
|
-
aura-argus
|
|
72
|
-
|
|
110
|
+
aura-argus search "问题" --json # 证据包(机器读)
|
|
111
|
+
aura-argus search "问题" --text # 人眼可读
|
|
112
|
+
aura-argus search "问题" --max-sources 3
|
|
113
|
+
aura-argus fetch <url> --max-chars 4000 # 干净 Markdown
|
|
114
|
+
aura-argus sources # 注册表
|
|
115
|
+
aura-argus doctor # 源健康检查
|
|
73
116
|
```
|
|
74
117
|
|
|
75
|
-
|
|
76
|
-
|---|---|---|
|
|
77
|
-
| GET | `/health` | 版本、源数量、uptime |
|
|
78
|
-
| GET | `/sources` | 注册表 |
|
|
79
|
-
| GET | `/search?q=&maxSources=` | 证据包 |
|
|
80
|
-
| POST | `/search` | `{ "question": "...", "maxSources": 3 }` |
|
|
81
|
-
| POST | `/search/batch` | `{ "questions": ["..."], "concurrency": 3 }` |
|
|
82
|
-
| GET | `/fetch?url=&maxChars=` | 页面文本 |
|
|
83
|
-
| POST | `/fetch` | `{ "url": "...", "maxChars": 20000 }` |
|
|
118
|
+
批量(最多 50 题,逐题归属):
|
|
84
119
|
|
|
85
120
|
```bash
|
|
86
|
-
|
|
87
|
-
curl -s 'http://127.0.0.1:8787/fetch?url=https%3A%2F%2Fdocs.searxng.org%2Fdev%2Fsearch_api.html'
|
|
121
|
+
echo '["q1","q2","q3"]' | aura-argus search --batch --concurrency 3 --json
|
|
88
122
|
```
|
|
89
123
|
|
|
90
|
-
|
|
124
|
+
默认 registry-only;要开网页兜底加 `--fallback`。默认拒绝本机/私网地址;确实要抓本地页面时加 `--allow-private`。
|
|
91
125
|
|
|
92
|
-
###
|
|
126
|
+
### 2. MCP(给 Claude Desktop / Cursor / Cline / Codex / Hermes / ZCode 等)
|
|
93
127
|
|
|
94
128
|
```bash
|
|
95
129
|
aura-argus mcp
|
|
96
130
|
```
|
|
97
131
|
|
|
98
|
-
|
|
132
|
+
客户端配置(以标准 stdio 为例):
|
|
99
133
|
|
|
100
134
|
```json
|
|
101
135
|
{
|
|
@@ -108,109 +142,81 @@ aura-argus mcp
|
|
|
108
142
|
}
|
|
109
143
|
```
|
|
110
144
|
|
|
111
|
-
|
|
145
|
+
Windows 上如果客户端无法直接拉起 `npx`:
|
|
146
|
+
|
|
147
|
+
```json
|
|
148
|
+
{
|
|
149
|
+
"mcpServers": {
|
|
150
|
+
"aura-argus": {
|
|
151
|
+
"command": "cmd",
|
|
152
|
+
"args": ["/c", "npx", "-y", "aura-argus", "mcp"]
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
```
|
|
112
157
|
|
|
113
|
-
|
|
158
|
+
MCP 工具:
|
|
114
159
|
|
|
115
|
-
|
|
160
|
+
| 工具 | 作用 |
|
|
161
|
+
|---|---|
|
|
162
|
+
| `search` | 单题 → 证据包 |
|
|
163
|
+
| `search_batch` | 多题(≤20)→ 逐题结果 |
|
|
164
|
+
| `fetch` | URL → Markdown |
|
|
165
|
+
| `sources` | 注册表覆盖 |
|
|
116
166
|
|
|
117
|
-
|
|
118
|
-
- insert:
|
|
119
|
-
- id: web-argus
|
|
120
|
-
name: 'E:/workspaces/aura-argus/adapters/dsh/index.mjs' # 换成你的 checkout 路径
|
|
121
|
-
config:
|
|
122
|
-
maxSources: 3
|
|
123
|
-
maxChars: 20000
|
|
124
|
-
# marker: true # 验证期打开:snippet 会以 [aura-argus] 开头
|
|
167
|
+
### 3. 本地 HTTP
|
|
125
168
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
config:
|
|
129
|
-
searchProvider: aura-argus
|
|
130
|
-
fetchProvider: aura-argus-http
|
|
169
|
+
```bash
|
|
170
|
+
aura-argus serve --port 8787
|
|
131
171
|
```
|
|
132
172
|
|
|
133
|
-
|
|
173
|
+
默认只绑 `127.0.0.1`。对外暴露时加 token:
|
|
134
174
|
|
|
135
175
|
```bash
|
|
136
|
-
|
|
137
|
-
node eval/verify-dsh.mjs --live # 9/9
|
|
138
|
-
aura-argus search "SearXNG 429" --json # 终端侧对照
|
|
176
|
+
aura-argus serve --port 8787 --token my-secret
|
|
139
177
|
```
|
|
140
178
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
**这替换的是 provider,不是工具。** `web_search` / `web_fetch` 仍是 `tool-web`,受它的契约限制:最多 4 个 query、合并成一个 sources 列表(丢失逐 query 归属)、只给 snippet(我们的 passages 被压成一条)、没有 `search_batch`、fetch 有它的 SSRF/重定向/大小规则。
|
|
179
|
+
常用接口:
|
|
144
180
|
|
|
145
|
-
|
|
181
|
+
| 方法 | 路径 | 说明 |
|
|
182
|
+
|---|---|---|
|
|
183
|
+
| GET | `/health` | 版本、源数量、uptime |
|
|
184
|
+
| GET | `/sources` | 注册表 |
|
|
185
|
+
| GET | `/search?q=&maxSources=` | 证据包 |
|
|
186
|
+
| POST | `/search` | `{"question":"...","maxSources":3}` |
|
|
187
|
+
| POST | `/search/batch` | `{"questions":["..."],"concurrency":3}` |
|
|
188
|
+
| GET | `/fetch?url=&maxChars=` | 页面 Markdown |
|
|
189
|
+
| POST | `/fetch` | `{"url":"...","maxChars":20000}` |
|
|
146
190
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
- MCP 的 `initialize.instructions` 会被 DSH 的 mcp-client 自动注入 systemPrompt(`mcp:aura-argus` 段),工具描述也会作为元数据进入模型——不需要再手写 AGENTS.md 规则
|
|
191
|
+
```bash
|
|
192
|
+
curl -s 'http://127.0.0.1:8787/search?q=SearXNG+429' | head -c 400
|
|
193
|
+
```
|
|
151
194
|
|
|
152
|
-
###
|
|
195
|
+
### 4. Node 库
|
|
153
196
|
|
|
154
197
|
```js
|
|
155
198
|
import { search, searchBatch, fetchDocument } from 'aura-argus';
|
|
156
199
|
|
|
157
200
|
const evidence = await search('SearXNG 对 429 的冷却时间是多少秒?');
|
|
158
|
-
const batch = await searchBatch(['q1', 'q2'
|
|
201
|
+
const batch = await searchBatch(['q1', 'q2'], { concurrency: 3 });
|
|
159
202
|
const page = await fetchDocument('https://docs.searxng.org/dev/search_api.html', { maxChars: 4000 });
|
|
160
203
|
```
|
|
161
204
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
### search
|
|
165
|
-
|
|
166
|
-
```json
|
|
167
|
-
{
|
|
168
|
-
"schemaVersion": 1,
|
|
169
|
-
"question": "SearXNG 对 429 的冷却时间是多少秒?",
|
|
170
|
-
"entity": "searxng",
|
|
171
|
-
"mode": "registry",
|
|
172
|
-
"evidence": [
|
|
173
|
-
{
|
|
174
|
-
"url": "https://docs.searxng.org/admin/settings/settings_search.html",
|
|
175
|
-
"title": "search: - SearXNG Documentation",
|
|
176
|
-
"site": "docs.searxng.org",
|
|
177
|
-
"passages": [{ "text": "… suspended_times: … SearxEngineTooManyRequests: 3600 …", "score": 15 }]
|
|
178
|
-
}
|
|
179
|
-
],
|
|
180
|
-
"attempts": [{ "url": "…", "ok": true, "ms": 855, "passages": 6 }],
|
|
181
|
-
"tookMs": 1011,
|
|
182
|
-
"cached": false
|
|
183
|
-
}
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
`mode` 取值:`registry`(注册表命中)、`web-fallback`(仅 `--fallback` 时出现的 360/搜狗兜底)、`none`(无证据)。
|
|
187
|
-
|
|
188
|
-
### fetch
|
|
189
|
-
|
|
190
|
-
```json
|
|
191
|
-
{
|
|
192
|
-
"schemaVersion": 1,
|
|
193
|
-
"url": "https://docs.searxng.org/dev/search_api.html",
|
|
194
|
-
"finalUrl": "https://docs.searxng.org/dev/search_api.html",
|
|
195
|
-
"status": 200,
|
|
196
|
-
"title": "Search API - SearXNG Documentation",
|
|
197
|
-
"text": "# Search API\n\nSearXNG supports querying…",
|
|
198
|
-
"chars": 4000,
|
|
199
|
-
"truncated": true,
|
|
200
|
-
"contentType": "text/html; charset=utf-8",
|
|
201
|
-
"tookMs": 312
|
|
202
|
-
}
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
### 错误码
|
|
205
|
+
---
|
|
206
206
|
|
|
207
|
-
|
|
207
|
+
## 覆盖范围
|
|
208
208
|
|
|
209
|
-
|
|
209
|
+
目前注册表:**18 个实体 / 34 个官方源**。
|
|
210
210
|
|
|
211
|
-
|
|
211
|
+
| 类别 | 实体 |
|
|
212
|
+
|---|---|
|
|
213
|
+
| LLM / 搜索 API | DeepSeek、Tavily、SearXNG、Google CSE、Bing |
|
|
214
|
+
| 语言与运行时 | Python、Node.js、Go、Rust、MDN(JavaScript) |
|
|
215
|
+
| 框架 | React、Vue |
|
|
216
|
+
| 基础设施 / 数据 | Docker、Kubernetes、nginx、PostgreSQL、Redis |
|
|
217
|
+
| 代码托管 | GitHub(REST / Actions) |
|
|
212
218
|
|
|
213
|
-
|
|
219
|
+
加一个源(`src/registry.json`):
|
|
214
220
|
|
|
215
221
|
```json
|
|
216
222
|
"实体": {
|
|
@@ -220,106 +226,82 @@ const page = await fetchDocument('https://docs.searxng.org/dev/search_api.html',
|
|
|
220
226
|
}
|
|
221
227
|
```
|
|
222
228
|
|
|
223
|
-
|
|
224
|
-
- 所有源都失败时,若有 `discovery`(`sitemap` 或站点索引),再走一跳发现。
|
|
225
|
-
- 默认 **registry-only**:未注册实体返回 `mode: "none"`;显式 `--fallback`(CLI)/`fallback: true`(HTTP/库)才走 360/搜狗,只返回链接 + 摘要,标 `mode: "web-fallback"`。
|
|
226
|
-
|
|
227
|
-
## 跨平台
|
|
229
|
+
`covers` 只用于排序;命中实体后默认抓该实体的全部源(上限 `--max-sources`)。加完跑:
|
|
228
230
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
231
|
+
```bash
|
|
232
|
+
npm test
|
|
233
|
+
node eval/verify-registry.mjs # 联网检查源是否可达
|
|
234
|
+
```
|
|
232
235
|
|
|
233
|
-
|
|
236
|
+
---
|
|
234
237
|
|
|
235
|
-
|
|
238
|
+
## 边界与安全
|
|
236
239
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
240
|
+
- **覆盖率 = 注册表**。没收录的实体默认没有证据;不要把它当通用搜索。
|
|
241
|
+
- **单实体路由**。一个问题命中一个实体;跨实体问题拆成多问。
|
|
242
|
+
- **不绕访问控制**:不登录、不绕付费墙、不破验证码、不做代理池。
|
|
243
|
+
- **默认拒绝私网**:loopback、RFC1918、link-local、metadata 地址、`::1`、`fc00::/7`、`fe80::/10` 等都会被拦;DNS 解析后复查,重定向逐跳复检。
|
|
244
|
+
- 确实要抓本机/内网页面时显式开:CLI `--allow-private`,库 `allowPrivate: true`,MCP 启动时 `AURA_ARGUS_ALLOW_PRIVATE=1`,HTTP `serve --allow-private`。
|
|
245
|
+
- **无 key、无遥测、无账号**。缓存只在本机(Windows `%LOCALAPPDATA%\aura-argus\cache`,macOS/Linux 在 XDG cache)。
|
|
246
|
+
- `serve` 默认绑 `127.0.0.1`;暴露到其他主机时务必设 `--token`。
|
|
243
247
|
|
|
244
|
-
|
|
245
|
-
- 任何能跑 shell 的 agent:`aura-argus search "<q>" --json`。
|
|
248
|
+
---
|
|
246
249
|
|
|
247
|
-
##
|
|
250
|
+
## 常见问题
|
|
248
251
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
- 一次检索里所有源都失败 → 结果带 `error.code = ALL_SOURCES_FAILED` 和逐源 `attempts`(含 `tries`、`status`):
|
|
252
|
-
- CLI 退出码 `4`;HTTP `/search` 返回 `502`;MCP `isError: true`;DSH provider 抛 `WEB_PROVIDER_ERROR`。
|
|
253
|
-
- 批量有 budget:MCP 35 s、HTTP 45 s(CLI `--budget`),超时项标 `BATCH_BUDGET_EXCEEDED`,避免重试把一次工具调用拖过客户端 60 s 超时。
|
|
254
|
-
- 不做跨源的二次重试、不做失败缓存/冷却;失败的下一次调用会重新尝试。
|
|
252
|
+
**为什么没有直接给我答案?**
|
|
253
|
+
它给的是证据:原文段落 + 出处。答案由你的模型/脚本基于这些段落写,这样可核对、可引用。
|
|
255
254
|
|
|
256
|
-
|
|
255
|
+
**为什么某个网页 fetch 返回 403?**
|
|
256
|
+
目标站点(比如 npmjs.com)有 Cloudflare/反爬,会拦非浏览器请求。这是站点的策略,不是工具坏了。读 npm 元数据请用 `https://registry.npmjs.org/<pkg>`,读页面请用浏览器。
|
|
257
257
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
- 不绕登录/付费墙/验证码;无内置 key、无代理池、无遥测。
|
|
261
|
-
- `serve` 默认绑 `127.0.0.1`;对外暴露时加 `--token`。
|
|
258
|
+
**为什么 `npm i -g aura-argus` 装到旧版本?**
|
|
259
|
+
你的 npm 可能默认走 `registry.npmmirror.com`,镜像同步有延迟。用 `--registry=https://registry.npmjs.org/`,或等几分钟再装。
|
|
262
260
|
|
|
263
|
-
|
|
261
|
+
**Windows 上 MCP 客户端拉不起 npx?**
|
|
262
|
+
配置写成 `{"command":"cmd","args":["/c","npx","-y","aura-argus","mcp"]}`。
|
|
264
263
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
- 低频、单机、只读抓取;对目标站点友好是最低要求。
|
|
268
|
-
- 返回证据,不生成答案;答案由调用方的模型写。
|
|
269
|
-
- `web-fallback` 是 opt-in,依赖 360/搜狗,可能被反爬;失败时明确报 `mode: "none"`。
|
|
264
|
+
**公司网络/代理下抓不到?**
|
|
265
|
+
Node 内置 fetch 默认不读 `HTTP_PROXY` / `HTTPS_PROXY`。需要的话设置 `NODE_EXTRA_CA_CERTS`,或让网络层走系统代理;这不是 AuraArgus 自己的代理池。
|
|
270
266
|
|
|
271
|
-
|
|
267
|
+
**`--fallback` 为什么经常没结果?**
|
|
268
|
+
360/搜狗对自动请求会跳验证码/返回 403,兜底本来就不稳定,且默认关闭。优先用注册表;未覆盖的实体建议直接加源。
|
|
272
269
|
|
|
273
|
-
|
|
270
|
+
---
|
|
274
271
|
|
|
275
|
-
|
|
276
|
-
|---|---|---|
|
|
277
|
-
| 串行 | 21.6 s | 721 ms/题 |
|
|
278
|
-
| 批量(concurrency=3,冷) | 6.9 s | 230 ms/题 |
|
|
279
|
-
| 批量(缓存填充) | 6.1 s | 202 ms/题 |
|
|
280
|
-
| 批量(缓存命中) | ~1 ms | — |
|
|
272
|
+
## zip 里有什么
|
|
281
273
|
|
|
282
|
-
|
|
283
|
-
-
|
|
284
|
-
|
|
285
|
-
|
|
274
|
+
```
|
|
275
|
+
aura-argus-0.1.2/
|
|
276
|
+
README.md ← 你正在看的这份
|
|
277
|
+
LICENSE MIT
|
|
278
|
+
src/ 运行时代码 + registry.json
|
|
279
|
+
adapters/dsh/ 可选:DSH provider 适配器
|
|
280
|
+
docs/integrations/ Codex / Hermes / ZCode / Claude / Cursor / CLI / HTTP 接法
|
|
281
|
+
schema/tools.json OpenAI / Anthropic function-calling schema
|
|
282
|
+
openapi.json HTTP API 的 OpenAPI 3.1
|
|
283
|
+
test/ 离线测试
|
|
284
|
+
eval/ 金标准问题与评测脚本(可选)
|
|
285
|
+
CHANGELOG.md
|
|
286
|
+
SECURITY.md
|
|
287
|
+
package.json
|
|
288
|
+
```
|
|
286
289
|
|
|
287
|
-
|
|
290
|
+
不需要 `node_modules`。验证:
|
|
288
291
|
|
|
289
292
|
```bash
|
|
290
|
-
|
|
291
|
-
|
|
293
|
+
npm test # 51 个离线测试
|
|
294
|
+
npm run verify # 联网检查 34 个源(可选)
|
|
295
|
+
npm run eval # 联网跑 31 题 / 141 项硬检查(可选,需要网络)
|
|
292
296
|
```
|
|
293
297
|
|
|
294
|
-
|
|
298
|
+
---
|
|
295
299
|
|
|
296
|
-
|
|
297
|
-
npm test # 离线:51 个测试(解析 / 选段 / 注册表 / 缓存 / 批量 / 重试 / 私网拦截 / HTTP / MCP / DSH 适配器)
|
|
298
|
-
npm run eval # 联网:31 题 / 141 项硬检查(+2 项 soft 兜底默认关闭)
|
|
299
|
-
npm run verify # 联网:34 个源的可用性
|
|
300
|
-
```
|
|
300
|
+
## 设计一句话
|
|
301
301
|
|
|
302
|
-
|
|
302
|
+
> 不做 SERP 聚合,做「实体 → 官方源 → 正文 → 选段 → 出处」的路由与证据编译。
|
|
303
303
|
|
|
304
|
-
|
|
305
|
-
|---|---|
|
|
306
|
-
| `src/cli.mjs` | CLI 入口 |
|
|
307
|
-
| `src/core.mjs` | 公共 API |
|
|
308
|
-
| `src/registry.json` | 实体 → 官方源(产品资产) |
|
|
309
|
-
| `src/lib/router.mjs` | 实体匹配 → 抓取 → 选段 → 兜底 |
|
|
310
|
-
| `src/lib/fetch.mjs` | URL 校验 / 限时 / 限大小 / 文档转换 |
|
|
311
|
-
| `src/lib/extract.mjs` | 打分 + 邻行窗口 + 表格/列表块合并 |
|
|
312
|
-
| `src/lib/server.mjs` | HTTP 服务 |
|
|
313
|
-
| `src/lib/mcp.mjs` | MCP stdio |
|
|
314
|
-
| `src/lib/cache.mjs` | 内存 + 磁盘缓存 |
|
|
315
|
-
| `eval/` | 金标准问题、评测脚本、注册表检查 |
|
|
316
|
-
| `test/` | 离线测试 |
|
|
317
|
-
| `docs/integrations/` | Codex / Hermes / ZCode / Claude / Cursor / CLI / HTTP 接法 |
|
|
318
|
-
| `schema/tools.json` | OpenAI / Anthropic function-calling 工具 schema |
|
|
319
|
-
| `openapi.json` | HTTP API 的 OpenAPI 3.1 |
|
|
320
|
-
| `SECURITY.md` | 安全模型、私网拦截、漏洞上报 |
|
|
321
|
-
| `adapters/dsh/` | DSH provider 适配器 |
|
|
322
|
-
| `POSITIONING.md` | 定位、市场对比、实验记录 |
|
|
304
|
+
如果某个问题没有覆盖,最有价值的动作不是换个搜索引擎,而是**给注册表加一个官方源**。
|
|
323
305
|
|
|
324
306
|
## License
|
|
325
307
|
|
package/RESULTS.md
CHANGED
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
|
|
91
91
|
## 发布(2026-10-21)
|
|
92
92
|
|
|
93
|
-
- npm:`aura-argus@0.1.0` 已发布;`0.1.
|
|
93
|
+
- npm:`aura-argus@0.1.0` 已发布;`0.1.2` 修复 repository 元数据并指向 Aura monorepo(0.1.1 被 npm staged 流程挂起,未公开)。registry `latest` 以 npm 为准;tarball `https://registry.npmjs.org/aura-argus/-/aura-argus-0.1.2.tgz`。
|
|
94
94
|
- GitHub:`Ck-epsilon/Aura` 已创建(public,main,"Aura source monorepo");源码在 `aura-argus/` 子目录(commit `aba2f5f` 起)。
|
|
95
95
|
- 发布用 7 天 granular token(bypass 2FA);发布后应吊销,后续改用 trusted publishing。
|
|
96
96
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aura-argus",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Agent-native retrieval layer: route questions to primary sources, return citable passages. No API key, no per-call billing.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
},
|
|
10
10
|
"exports": {
|
|
11
11
|
".": "./src/core.mjs",
|
|
12
|
-
"./registry": "./src/registry.json"
|
|
12
|
+
"./registry": "./src/registry.json",
|
|
13
|
+
"./adapters/dsh/index.mjs": "./adapters/dsh/index.mjs"
|
|
13
14
|
},
|
|
14
15
|
"files": [
|
|
15
16
|
"src",
|