remnote-bridge 0.1.11 → 0.1.13
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/dist/cli/addon/addon-manager.js +163 -0
- package/dist/cli/addon/registry.js +24 -0
- package/dist/cli/commands/addon.js +149 -0
- package/dist/cli/commands/clean.js +121 -52
- package/dist/cli/commands/connect.js +72 -33
- package/dist/cli/commands/disconnect.js +19 -19
- package/dist/cli/commands/edit-rem.js +8 -36
- package/dist/cli/commands/edit-tree.js +3 -20
- package/dist/cli/commands/health.js +19 -18
- package/dist/cli/commands/read-context.js +3 -20
- package/dist/cli/commands/read-globe.js +3 -20
- package/dist/cli/commands/read-rem.js +6 -32
- package/dist/cli/commands/read-tree.js +3 -20
- package/dist/cli/commands/search.js +97 -21
- package/dist/cli/config.js +148 -72
- package/dist/cli/daemon/daemon.js +104 -24
- package/dist/cli/daemon/dev-server.js +9 -1
- package/dist/cli/daemon/pid.js +36 -22
- package/dist/cli/daemon/registry.js +160 -0
- package/dist/cli/daemon/send-request.js +11 -11
- package/dist/cli/daemon/static-server.js +97 -34
- package/dist/cli/handlers/edit-handler.js +49 -140
- package/dist/cli/handlers/read-handler.js +9 -9
- package/dist/cli/handlers/rem-cache.js +10 -5
- package/dist/cli/handlers/tree-parser.js +16 -9
- package/dist/cli/main.js +67 -19
- package/dist/cli/protocol.js +18 -4
- package/dist/cli/server/config-server.js +280 -14
- package/dist/cli/server/ws-server.js +93 -44
- package/dist/cli/utils/output.js +29 -0
- package/dist/mcp/format.js +43 -0
- package/dist/mcp/index.js +0 -55
- package/dist/mcp/instructions.js +424 -216
- package/dist/mcp/resources/edit-rem-guide.js +37 -158
- package/dist/mcp/resources/edit-tree-guide.js +1 -1
- package/dist/mcp/resources/error-reference.js +9 -13
- package/dist/mcp/resources/rem-object-fields.js +6 -6
- package/dist/mcp/tools/edit-tools.js +69 -8
- package/dist/mcp/tools/infra-tools.js +44 -8
- package/dist/mcp/tools/read-tools.js +136 -20
- package/package.json +2 -2
- package/remnote-plugin/dist/bridge_widget-sandbox.js +17 -17
- package/remnote-plugin/dist/bridge_widget.js +17 -17
- package/remnote-plugin/dist/index-sandbox.js +31 -31
- package/remnote-plugin/dist/index.js +31 -31
- package/remnote-plugin/dist/manifest.json +1 -1
- package/remnote-plugin/package.json +1 -1
- package/remnote-plugin/public/manifest.json +1 -1
- package/remnote-plugin/src/bridge/multi-connection-manager.ts +151 -0
- package/remnote-plugin/src/bridge/websocket-client.ts +62 -16
- package/remnote-plugin/src/services/index.ts +0 -8
- package/remnote-plugin/src/services/read-rem.ts +1 -9
- package/remnote-plugin/src/services/search.ts +13 -10
- package/remnote-plugin/src/settings.ts +9 -7
- package/remnote-plugin/src/utils/index.ts +0 -5
- package/remnote-plugin/src/widgets/bridge_widget.tsx +105 -20
- package/remnote-plugin/src/widgets/index.tsx +41 -44
- package/remnote-plugin/webpack.config.js +35 -0
- package/skills/remnote-bridge/SKILL.md +45 -40
- package/skills/remnote-bridge/instructions/addon.md +134 -0
- package/skills/remnote-bridge/instructions/clean.md +110 -0
- package/skills/remnote-bridge/instructions/connect.md +80 -37
- package/skills/remnote-bridge/instructions/disconnect.md +22 -9
- package/skills/remnote-bridge/instructions/edit-rem.md +113 -327
- package/skills/remnote-bridge/instructions/health.md +23 -13
- package/skills/remnote-bridge/instructions/install-skill.md +58 -0
- package/skills/remnote-bridge/instructions/overall.md +99 -35
- package/skills/remnote-bridge/instructions/read-rem.md +15 -15
- package/skills/remnote-bridge/instructions/search.md +77 -18
- package/skills/remnote-bridge/instructions/setup.md +5 -6
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
# search
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> 在知识库中搜索 Rem,返回匹配结果列表。支持 SDK 全文搜索和 RAG 语义搜索。
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
## 功能
|
|
8
8
|
|
|
9
|
-
`search`
|
|
9
|
+
`search` 在当前知识库中搜索包含关键词的 Rem。搜索方式由配置驱动:
|
|
10
|
+
|
|
11
|
+
- **RAG 语义搜索**:在 `~/.remnote-bridge/config.json` 中启用 `addons.remnote-rag`(`enabled: true`),并在 `~/.remnote-bridge/addons/remnote-rag/config.json` 中配置 API Key,系统自动使用语义向量搜索(中文支持更好)
|
|
12
|
+
- **SDK 全文搜索**:addon 未启用、未安装、或调用失败时自动降级
|
|
13
|
+
|
|
14
|
+
安装与管理 addon:`remnote-bridge addon install remnote-rag` / `remnote-bridge addon list`。
|
|
15
|
+
|
|
16
|
+
### 搜索来源(source 字段)
|
|
17
|
+
|
|
18
|
+
| source | 说明 | 返回字段 |
|
|
19
|
+
|--------|------|----------|
|
|
20
|
+
| `"rag"` | 语义向量搜索(remnote-rag 已启用且可用) | remId, text, backText, ancestorPath, type, isDocument, tags, score |
|
|
21
|
+
| `"sdk"` | SDK 全文搜索(默认降级) | remId, text, isDocument |
|
|
22
|
+
|
|
23
|
+
降级场景:addon 未启用、remnote-rag 未安装、向量库未索引、子进程超时(10s)、返回异常。
|
|
10
24
|
|
|
11
25
|
---
|
|
12
26
|
|
|
@@ -42,7 +56,7 @@ remnote-bridge search <query> [--limit <N>]
|
|
|
42
56
|
### JSON 模式
|
|
43
57
|
|
|
44
58
|
```bash
|
|
45
|
-
remnote-bridge search --json '{"query":"机器学习","
|
|
59
|
+
remnote-bridge search --json '{"query":"机器学习","limit":10}'
|
|
46
60
|
```
|
|
47
61
|
|
|
48
62
|
---
|
|
@@ -52,13 +66,39 @@ remnote-bridge search --json '{"query":"机器学习","numResults":10}'
|
|
|
52
66
|
| 字段 | 类型 | 必需 | 说明 |
|
|
53
67
|
|------|------|:----:|------|
|
|
54
68
|
| `query` | string | 是 | 搜索关键词(不能为空) |
|
|
55
|
-
| `
|
|
69
|
+
| `limit` | number | 否 | 结果数量上限(默认 20) |
|
|
56
70
|
|
|
57
71
|
---
|
|
58
72
|
|
|
59
73
|
## JSON 输出
|
|
60
74
|
|
|
61
|
-
###
|
|
75
|
+
### 成功(RAG 模式)
|
|
76
|
+
|
|
77
|
+
```json
|
|
78
|
+
{
|
|
79
|
+
"ok": true,
|
|
80
|
+
"command": "search",
|
|
81
|
+
"data": {
|
|
82
|
+
"query": "机器学习",
|
|
83
|
+
"results": [
|
|
84
|
+
{
|
|
85
|
+
"remId": "kLrIOHJLyMd8Y2lyA",
|
|
86
|
+
"text": "支持向量机的核心思想",
|
|
87
|
+
"backText": "最大化分类间隔",
|
|
88
|
+
"ancestorPath": ["机器学习", "监督学习"],
|
|
89
|
+
"type": "concept",
|
|
90
|
+
"isDocument": false,
|
|
91
|
+
"tags": ["统计学习"],
|
|
92
|
+
"score": 0.87
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"totalFound": 1,
|
|
96
|
+
"source": "rag"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 成功(SDK 降级模式)
|
|
62
102
|
|
|
63
103
|
```json
|
|
64
104
|
{
|
|
@@ -70,7 +110,8 @@ remnote-bridge search --json '{"query":"机器学习","numResults":10}'
|
|
|
70
110
|
{ "remId": "kLrIOHJLyMd8Y2lyA", "text": "机器学习笔记", "isDocument": true },
|
|
71
111
|
{ "remId": "abc123def456", "text": "监督学习与机器学习的关系", "isDocument": false }
|
|
72
112
|
],
|
|
73
|
-
"totalFound": 2
|
|
113
|
+
"totalFound": 2,
|
|
114
|
+
"source": "sdk"
|
|
74
115
|
},
|
|
75
116
|
"timestamp": "2026-03-06T10:00:00.000Z"
|
|
76
117
|
}
|
|
@@ -118,30 +159,48 @@ remnote-bridge search --json '{"query":"机器学习","numResults":10}'
|
|
|
118
159
|
## 内部流程
|
|
119
160
|
|
|
120
161
|
```
|
|
121
|
-
1. CLI 解析参数(query,
|
|
122
|
-
2.
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
162
|
+
1. CLI 解析参数(query, limit)
|
|
163
|
+
2. 检查配置:addons.remnote-rag.enabled
|
|
164
|
+
├─ 未启用 → 跳到步骤 4
|
|
165
|
+
└─ 已启用 → 继续步骤 3
|
|
166
|
+
3. 尝试 RAG 搜索:
|
|
167
|
+
├─ execFile('remnote-rag', ['search', '--json', payload])
|
|
168
|
+
├─ remnote-rag 从 ~/.remnote-bridge/addons/remnote-rag/config.json 读取配置
|
|
169
|
+
├─ 超时 10s
|
|
170
|
+
├─ 成功 → 返回 RAG 结果(source: "rag")
|
|
171
|
+
└─ 失败 → 继续到步骤 4(静默降级)
|
|
172
|
+
4. 降级到 SDK 搜索:
|
|
173
|
+
├─ sendRequest → WS → daemon → forwardToPlugin('search', ...)
|
|
174
|
+
├─ Plugin 端调用 plugin.search.search()
|
|
175
|
+
└─ 返回 SDK 结果(source: "sdk")
|
|
176
|
+
5. CLI 格式化输出
|
|
131
177
|
```
|
|
132
178
|
|
|
133
179
|
---
|
|
134
180
|
|
|
135
181
|
## 结果字段说明
|
|
136
182
|
|
|
183
|
+
### 通用字段(两种模式都有)
|
|
184
|
+
|
|
137
185
|
| 字段 | 类型 | 说明 |
|
|
138
186
|
|------|------|------|
|
|
139
187
|
| `query` | string | 原始搜索关键词 |
|
|
140
188
|
| `results` | array | 结果数组 |
|
|
141
189
|
| `results[].remId` | string | 匹配 Rem 的 ID |
|
|
142
|
-
| `results[].text` | string | Rem
|
|
190
|
+
| `results[].text` | string | Rem 正面文本 |
|
|
143
191
|
| `results[].isDocument` | boolean | 是否为文档页面 |
|
|
144
192
|
| `totalFound` | number | 返回的结果数量 |
|
|
193
|
+
| `source` | string | 搜索来源:`"rag"` 或 `"sdk"` |
|
|
194
|
+
|
|
195
|
+
### RAG 模式额外字段
|
|
196
|
+
|
|
197
|
+
| 字段 | 类型 | 说明 |
|
|
198
|
+
|------|------|------|
|
|
199
|
+
| `results[].backText` | string \| null | Rem 背面文本 |
|
|
200
|
+
| `results[].ancestorPath` | string[] | 祖先路径名称数组(从根到父级) |
|
|
201
|
+
| `results[].type` | string | Rem 类型:`"concept"` / `"descriptor"` / `"default"` |
|
|
202
|
+
| `results[].tags` | string[] | 标签名称数组 |
|
|
203
|
+
| `results[].score` | number | 语义相关性分数(0-1,越高越相关) |
|
|
145
204
|
|
|
146
205
|
---
|
|
147
206
|
|
|
@@ -191,6 +250,6 @@ RemNote 的 Web 版搜索索引按单字符拆分非空格语言的文本。搜
|
|
|
191
250
|
## 注意事项
|
|
192
251
|
|
|
193
252
|
- 搜索结果的 `text` 字段是 Markdown 格式的单行文本(多行换行符已替换为空格)
|
|
194
|
-
- `totalFound` 等于 `results.length`,即实际返回的数量(受 `
|
|
253
|
+
- `totalFound` 等于 `results.length`,即实际返回的数量(受 `limit` 限制)
|
|
195
254
|
- 搜索不会触发缓存写入——search 结果不进入 RemCache
|
|
196
255
|
- 如需获取某个搜索结果的完整属性,需对其 `remId` 执行 `read-rem`
|
|
@@ -83,22 +83,21 @@ remnote-bridge --json setup
|
|
|
83
83
|
|
|
84
84
|
## AI Agent 使用流程
|
|
85
85
|
|
|
86
|
-
setup 会弹出 Chrome
|
|
86
|
+
setup 会弹出 Chrome 窗口,用户只需**登录 RemNote**,然后彻底退出 Chrome。
|
|
87
|
+
|
|
88
|
+
setup 只负责保存登录凭证——配置 dev plugin 是 connect 之后的事(见 `connect.md` 标准模式说明)。
|
|
87
89
|
|
|
88
90
|
### 交互步骤
|
|
89
91
|
|
|
90
92
|
1. 调用 `setup`
|
|
91
93
|
2. **立即告知用户**:
|
|
92
|
-
> 已打开 Chrome
|
|
93
|
-
> 1. 登录 RemNote
|
|
94
|
-
> 2. 在 RemNote 中配置开发插件:点击左下角插件图标 → 开发你的插件 → 输入 `http://localhost:8080`
|
|
95
|
-
> 3. 完成后彻底退出 Chrome(macOS 请按 Cmd+Q,仅关窗口不够)
|
|
94
|
+
> 已打开 Chrome 浏览器。请登录 RemNote,完成后彻底退出 Chrome(macOS 请按 Cmd+Q,仅关窗口不够)
|
|
96
95
|
3. 等待 `setup` 命令返回(阻塞式,超时 600 秒)
|
|
97
96
|
4. 收到成功 → 继续执行 `connect --headless`
|
|
98
97
|
|
|
99
98
|
### setup 之后
|
|
100
99
|
|
|
101
|
-
`setup`
|
|
100
|
+
`setup` 只需执行一次。登录凭证已保存,之后每次只需 `connect --headless` 即可自动连接,无需用户操作。
|
|
102
101
|
|
|
103
102
|
如果后续 headless 模式下 Plugin 始终不连接,可能是 RemNote 登录 session 过期,需重新 setup(删除 `~/.remnote-bridge/chrome-profile/.setup-done` 后重新执行)。
|
|
104
103
|
|