@gmickel/gno 0.7.0 → 0.8.2
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 +21 -0
- package/README.md +90 -50
- package/THIRD_PARTY_NOTICES.md +22 -0
- package/assets/screenshots/webui-ask-answer.png +0 -0
- package/assets/screenshots/webui-collections.png +0 -0
- package/assets/screenshots/webui-editor.png +0 -0
- package/assets/screenshots/webui-home.png +0 -0
- package/assets/skill/SKILL.md +12 -12
- package/assets/skill/cli-reference.md +59 -57
- package/assets/skill/examples.md +8 -7
- package/assets/skill/mcp-reference.md +8 -4
- package/package.json +32 -25
- package/src/app/constants.ts +43 -42
- package/src/cli/colors.ts +1 -1
- package/src/cli/commands/ask.ts +44 -43
- package/src/cli/commands/cleanup.ts +9 -8
- package/src/cli/commands/collection/add.ts +12 -12
- package/src/cli/commands/collection/index.ts +4 -4
- package/src/cli/commands/collection/list.ts +26 -25
- package/src/cli/commands/collection/remove.ts +10 -10
- package/src/cli/commands/collection/rename.ts +10 -10
- package/src/cli/commands/context/add.ts +1 -1
- package/src/cli/commands/context/check.ts +17 -17
- package/src/cli/commands/context/index.ts +4 -4
- package/src/cli/commands/context/list.ts +11 -11
- package/src/cli/commands/context/rm.ts +1 -1
- package/src/cli/commands/doctor.ts +86 -84
- package/src/cli/commands/embed.ts +30 -28
- package/src/cli/commands/get.ts +27 -26
- package/src/cli/commands/index-cmd.ts +9 -9
- package/src/cli/commands/index.ts +16 -16
- package/src/cli/commands/init.ts +13 -12
- package/src/cli/commands/ls.ts +20 -19
- package/src/cli/commands/mcp/config.ts +30 -28
- package/src/cli/commands/mcp/index.ts +4 -4
- package/src/cli/commands/mcp/install.ts +17 -17
- package/src/cli/commands/mcp/paths.ts +133 -133
- package/src/cli/commands/mcp/status.ts +21 -21
- package/src/cli/commands/mcp/uninstall.ts +13 -13
- package/src/cli/commands/mcp.ts +2 -2
- package/src/cli/commands/models/clear.ts +12 -11
- package/src/cli/commands/models/index.ts +5 -5
- package/src/cli/commands/models/list.ts +31 -30
- package/src/cli/commands/models/path.ts +1 -1
- package/src/cli/commands/models/pull.ts +19 -18
- package/src/cli/commands/models/use.ts +4 -4
- package/src/cli/commands/multi-get.ts +38 -36
- package/src/cli/commands/query.ts +21 -20
- package/src/cli/commands/ref-parser.ts +10 -10
- package/src/cli/commands/reset.ts +40 -39
- package/src/cli/commands/search.ts +14 -13
- package/src/cli/commands/serve.ts +4 -4
- package/src/cli/commands/shared.ts +11 -10
- package/src/cli/commands/skill/index.ts +5 -5
- package/src/cli/commands/skill/install.ts +18 -17
- package/src/cli/commands/skill/paths-cmd.ts +11 -10
- package/src/cli/commands/skill/paths.ts +23 -23
- package/src/cli/commands/skill/show.ts +13 -12
- package/src/cli/commands/skill/uninstall.ts +16 -15
- package/src/cli/commands/status.ts +25 -24
- package/src/cli/commands/update.ts +3 -3
- package/src/cli/commands/vsearch.ts +17 -16
- package/src/cli/context.ts +5 -5
- package/src/cli/errors.ts +3 -3
- package/src/cli/format/search-results.ts +37 -37
- package/src/cli/options.ts +43 -43
- package/src/cli/program.ts +455 -459
- package/src/cli/progress.ts +1 -1
- package/src/cli/run.ts +24 -23
- package/src/collection/add.ts +9 -8
- package/src/collection/index.ts +3 -3
- package/src/collection/remove.ts +7 -6
- package/src/collection/types.ts +6 -6
- package/src/config/defaults.ts +1 -1
- package/src/config/index.ts +5 -5
- package/src/config/loader.ts +19 -18
- package/src/config/paths.ts +9 -8
- package/src/config/saver.ts +14 -13
- package/src/config/types.ts +53 -52
- package/src/converters/adapters/markitdownTs/adapter.ts +21 -19
- package/src/converters/adapters/officeparser/adapter.ts +18 -16
- package/src/converters/canonicalize.ts +12 -12
- package/src/converters/errors.ts +26 -22
- package/src/converters/index.ts +8 -8
- package/src/converters/mime.ts +25 -25
- package/src/converters/native/markdown.ts +10 -9
- package/src/converters/native/plaintext.ts +8 -7
- package/src/converters/path.ts +2 -2
- package/src/converters/pipeline.ts +11 -10
- package/src/converters/registry.ts +8 -8
- package/src/converters/types.ts +14 -14
- package/src/converters/versions.ts +4 -4
- package/src/index.ts +4 -4
- package/src/ingestion/chunker.ts +10 -9
- package/src/ingestion/index.ts +6 -6
- package/src/ingestion/language.ts +62 -62
- package/src/ingestion/sync.ts +50 -49
- package/src/ingestion/types.ts +10 -10
- package/src/ingestion/walker.ts +14 -13
- package/src/llm/cache.ts +51 -49
- package/src/llm/errors.ts +40 -36
- package/src/llm/index.ts +9 -9
- package/src/llm/lockfile.ts +6 -6
- package/src/llm/nodeLlamaCpp/adapter.ts +13 -12
- package/src/llm/nodeLlamaCpp/embedding.ts +9 -8
- package/src/llm/nodeLlamaCpp/generation.ts +7 -6
- package/src/llm/nodeLlamaCpp/lifecycle.ts +11 -10
- package/src/llm/nodeLlamaCpp/rerank.ts +6 -5
- package/src/llm/policy.ts +5 -5
- package/src/llm/registry.ts +6 -5
- package/src/llm/types.ts +2 -2
- package/src/mcp/resources/index.ts +15 -13
- package/src/mcp/server.ts +25 -23
- package/src/mcp/tools/get.ts +25 -23
- package/src/mcp/tools/index.ts +32 -29
- package/src/mcp/tools/multi-get.ts +34 -32
- package/src/mcp/tools/query.ts +29 -27
- package/src/mcp/tools/search.ts +14 -12
- package/src/mcp/tools/status.ts +12 -11
- package/src/mcp/tools/vsearch.ts +26 -24
- package/src/pipeline/answer.ts +9 -9
- package/src/pipeline/chunk-lookup.ts +1 -1
- package/src/pipeline/contextual.ts +4 -4
- package/src/pipeline/expansion.ts +23 -21
- package/src/pipeline/explain.ts +21 -21
- package/src/pipeline/fusion.ts +9 -9
- package/src/pipeline/hybrid.ts +41 -42
- package/src/pipeline/index.ts +10 -10
- package/src/pipeline/query-language.ts +39 -39
- package/src/pipeline/rerank.ts +8 -7
- package/src/pipeline/search.ts +22 -22
- package/src/pipeline/types.ts +8 -8
- package/src/pipeline/vsearch.ts +21 -24
- package/src/serve/CLAUDE.md +21 -15
- package/src/serve/config-sync.ts +9 -8
- package/src/serve/context.ts +19 -18
- package/src/serve/index.ts +1 -1
- package/src/serve/jobs.ts +7 -7
- package/src/serve/public/app.tsx +79 -25
- package/src/serve/public/components/AddCollectionDialog.tsx +382 -0
- package/src/serve/public/components/CaptureButton.tsx +60 -0
- package/src/serve/public/components/CaptureModal.tsx +365 -0
- package/src/serve/public/components/IndexingProgress.tsx +333 -0
- package/src/serve/public/components/ShortcutHelpModal.tsx +106 -0
- package/src/serve/public/components/ai-elements/code-block.tsx +42 -32
- package/src/serve/public/components/ai-elements/conversation.tsx +16 -14
- package/src/serve/public/components/ai-elements/inline-citation.tsx +33 -32
- package/src/serve/public/components/ai-elements/loader.tsx +5 -4
- package/src/serve/public/components/ai-elements/message.tsx +39 -37
- package/src/serve/public/components/ai-elements/prompt-input.tsx +97 -95
- package/src/serve/public/components/ai-elements/sources.tsx +12 -10
- package/src/serve/public/components/ai-elements/suggestion.tsx +10 -9
- package/src/serve/public/components/editor/CodeMirrorEditor.tsx +142 -0
- package/src/serve/public/components/editor/MarkdownPreview.tsx +311 -0
- package/src/serve/public/components/editor/index.ts +6 -0
- package/src/serve/public/components/preset-selector.tsx +29 -28
- package/src/serve/public/components/ui/badge.tsx +13 -12
- package/src/serve/public/components/ui/button-group.tsx +13 -12
- package/src/serve/public/components/ui/button.tsx +23 -22
- package/src/serve/public/components/ui/card.tsx +16 -16
- package/src/serve/public/components/ui/carousel.tsx +36 -35
- package/src/serve/public/components/ui/collapsible.tsx +1 -1
- package/src/serve/public/components/ui/command.tsx +17 -15
- package/src/serve/public/components/ui/dialog.tsx +13 -12
- package/src/serve/public/components/ui/dropdown-menu.tsx +13 -12
- package/src/serve/public/components/ui/hover-card.tsx +6 -5
- package/src/serve/public/components/ui/input-group.tsx +45 -43
- package/src/serve/public/components/ui/input.tsx +6 -6
- package/src/serve/public/components/ui/progress.tsx +5 -4
- package/src/serve/public/components/ui/scroll-area.tsx +11 -10
- package/src/serve/public/components/ui/select.tsx +19 -18
- package/src/serve/public/components/ui/separator.tsx +6 -5
- package/src/serve/public/components/ui/table.tsx +18 -18
- package/src/serve/public/components/ui/textarea.tsx +4 -4
- package/src/serve/public/components/ui/tooltip.tsx +5 -4
- package/src/serve/public/globals.css +27 -4
- package/src/serve/public/hooks/use-api.ts +8 -8
- package/src/serve/public/hooks/useCaptureModal.tsx +83 -0
- package/src/serve/public/hooks/useKeyboardShortcuts.ts +85 -0
- package/src/serve/public/index.html +4 -4
- package/src/serve/public/lib/utils.ts +6 -0
- package/src/serve/public/pages/Ask.tsx +27 -26
- package/src/serve/public/pages/Browse.tsx +28 -27
- package/src/serve/public/pages/Collections.tsx +439 -0
- package/src/serve/public/pages/Dashboard.tsx +166 -40
- package/src/serve/public/pages/DocView.tsx +258 -73
- package/src/serve/public/pages/DocumentEditor.tsx +510 -0
- package/src/serve/public/pages/Search.tsx +80 -58
- package/src/serve/routes/api.ts +272 -155
- package/src/serve/security.ts +4 -4
- package/src/serve/server.ts +66 -48
- package/src/store/index.ts +5 -5
- package/src/store/migrations/001-initial.ts +24 -23
- package/src/store/migrations/002-documents-fts.ts +7 -6
- package/src/store/migrations/index.ts +4 -4
- package/src/store/migrations/runner.ts +17 -15
- package/src/store/sqlite/adapter.ts +123 -121
- package/src/store/sqlite/fts5-snowball.ts +24 -23
- package/src/store/sqlite/index.ts +1 -1
- package/src/store/sqlite/setup.ts +12 -12
- package/src/store/sqlite/types.ts +4 -4
- package/src/store/types.ts +19 -19
- package/src/store/vector/index.ts +3 -3
- package/src/store/vector/sqlite-vec.ts +23 -20
- package/src/store/vector/stats.ts +10 -8
- package/src/store/vector/types.ts +2 -2
- package/vendor/fts5-snowball/README.md +6 -6
- package/assets/screenshots/webui-ask-answer.jpg +0 -0
- package/assets/screenshots/webui-home.jpg +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Gordon Mickel
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
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:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -99,12 +99,12 @@ gno skill install --target all # Both Claude + Codex
|
|
|
99
99
|
|
|
100
100
|
## Search Modes
|
|
101
101
|
|
|
102
|
-
| Command
|
|
103
|
-
|
|
104
|
-
| `gno search`
|
|
105
|
-
| `gno vsearch`
|
|
106
|
-
| `gno query`
|
|
107
|
-
| `gno ask --answer` | RAG
|
|
102
|
+
| Command | Mode | Best For |
|
|
103
|
+
| :----------------- | :------------------ | :---------------------------------------- |
|
|
104
|
+
| `gno search` | Document-level BM25 | Exact phrases, code identifiers |
|
|
105
|
+
| `gno vsearch` | Contextual Vector | Natural language, concepts |
|
|
106
|
+
| `gno query` | Hybrid | Best accuracy (BM25 + vector + reranking) |
|
|
107
|
+
| `gno ask --answer` | RAG | Direct answers with citations |
|
|
108
108
|
|
|
109
109
|
**BM25** indexes full documents (not chunks) with Snowball stemming—"running" matches "run".
|
|
110
110
|
**Vector** embeds chunks with document titles for context awareness.
|
|
@@ -122,22 +122,53 @@ Output formats: `--json`, `--files`, `--csv`, `--md`, `--xml`
|
|
|
122
122
|
|
|
123
123
|
## Web UI
|
|
124
124
|
|
|
125
|
-
Visual dashboard for search, browsing, and AI answers—right in your browser.
|
|
125
|
+
Visual dashboard for search, browsing, editing, and AI answers—right in your browser.
|
|
126
126
|
|
|
127
127
|
```bash
|
|
128
128
|
gno serve # Start on port 3000
|
|
129
129
|
gno serve --port 8080 # Custom port
|
|
130
130
|
```
|
|
131
131
|
|
|
132
|
-

|
|
133
133
|
|
|
134
134
|
Open `http://localhost:3000` to:
|
|
135
135
|
|
|
136
136
|
- **Search** — BM25, vector, or hybrid modes with visual results
|
|
137
137
|
- **Browse** — Paginated document list, filter by collection
|
|
138
|
+
- **Edit** — Create, edit, and delete documents with live preview
|
|
138
139
|
- **Ask** — AI-powered Q&A with citations
|
|
140
|
+
- **Manage Collections** — Add, remove, and re-index collections
|
|
139
141
|
- **Switch presets** — Change models live without restart
|
|
140
142
|
|
|
143
|
+
### Document Editing
|
|
144
|
+
|
|
145
|
+

|
|
146
|
+
|
|
147
|
+
Full-featured markdown editor with:
|
|
148
|
+
|
|
149
|
+
| Feature | Description |
|
|
150
|
+
| :---------------------- | :----------------------------------- |
|
|
151
|
+
| **Split View** | Side-by-side editor and live preview |
|
|
152
|
+
| **Auto-save** | 2-second debounced saves |
|
|
153
|
+
| **Syntax Highlighting** | CodeMirror 6 with markdown support |
|
|
154
|
+
| **Keyboard Shortcuts** | ⌘S save, ⌘B bold, ⌘I italic, ⌘K link |
|
|
155
|
+
| **Quick Capture** | ⌘N creates new note from anywhere |
|
|
156
|
+
|
|
157
|
+
### Collections Management
|
|
158
|
+
|
|
159
|
+

|
|
160
|
+
|
|
161
|
+
- Add collections with folder path input
|
|
162
|
+
- View document count, chunk count, embedding status
|
|
163
|
+
- Re-index individual collections
|
|
164
|
+
- Remove collections (documents preserved)
|
|
165
|
+
|
|
166
|
+
### AI Answers
|
|
167
|
+
|
|
168
|
+

|
|
169
|
+
|
|
170
|
+
Ask questions in natural language—GNO searches your documents and synthesizes answers with inline citations linking to sources.
|
|
171
|
+
|
|
141
172
|
Everything runs locally. No cloud, no accounts, no data leaving your machine.
|
|
142
173
|
|
|
143
174
|
> **Detailed docs**: [Web UI Guide](https://gno.sh/docs/WEB-UI/)
|
|
@@ -163,17 +194,24 @@ curl -X POST http://localhost:3000/api/ask \
|
|
|
163
194
|
curl http://localhost:3000/api/status
|
|
164
195
|
```
|
|
165
196
|
|
|
166
|
-
| Endpoint
|
|
167
|
-
|
|
168
|
-
| `/api/query`
|
|
169
|
-
| `/api/search`
|
|
170
|
-
| `/api/ask`
|
|
171
|
-
| `/api/docs`
|
|
172
|
-
| `/api/
|
|
173
|
-
| `/api/
|
|
174
|
-
| `/api/
|
|
175
|
-
| `/api/
|
|
176
|
-
| `/api/
|
|
197
|
+
| Endpoint | Method | Description |
|
|
198
|
+
| :------------------------- | :----- | :-------------------------- |
|
|
199
|
+
| `/api/query` | POST | Hybrid search (recommended) |
|
|
200
|
+
| `/api/search` | POST | BM25 keyword search |
|
|
201
|
+
| `/api/ask` | POST | AI-powered Q&A |
|
|
202
|
+
| `/api/docs` | GET | List documents |
|
|
203
|
+
| `/api/docs` | POST | Create document |
|
|
204
|
+
| `/api/docs/:id` | PUT | Update document content |
|
|
205
|
+
| `/api/docs/:id/deactivate` | POST | Remove from index |
|
|
206
|
+
| `/api/doc` | GET | Get document content |
|
|
207
|
+
| `/api/collections` | POST | Add collection |
|
|
208
|
+
| `/api/collections/:name` | DELETE | Remove collection |
|
|
209
|
+
| `/api/sync` | POST | Trigger re-index |
|
|
210
|
+
| `/api/status` | GET | Index statistics |
|
|
211
|
+
| `/api/presets` | GET | List model presets |
|
|
212
|
+
| `/api/presets` | POST | Switch preset |
|
|
213
|
+
| `/api/models/pull` | POST | Download models |
|
|
214
|
+
| `/api/models/status` | GET | Download progress |
|
|
177
215
|
|
|
178
216
|
No authentication. No rate limits. Build custom tools, automate workflows, integrate with any language.
|
|
179
217
|
|
|
@@ -189,14 +227,14 @@ No authentication. No rate limits. Build custom tools, automate workflows, integ
|
|
|
189
227
|
|
|
190
228
|
GNO exposes 6 tools via [Model Context Protocol](https://modelcontextprotocol.io):
|
|
191
229
|
|
|
192
|
-
| Tool
|
|
193
|
-
|
|
194
|
-
| `gno_search`
|
|
195
|
-
| `gno_vsearch`
|
|
196
|
-
| `gno_query`
|
|
197
|
-
| `gno_get`
|
|
198
|
-
| `gno_multi_get` | Batch document retrieval
|
|
199
|
-
| `gno_status`
|
|
230
|
+
| Tool | Description |
|
|
231
|
+
| :-------------- | :-------------------------- |
|
|
232
|
+
| `gno_search` | BM25 keyword search |
|
|
233
|
+
| `gno_vsearch` | Vector semantic search |
|
|
234
|
+
| `gno_query` | Hybrid search (recommended) |
|
|
235
|
+
| `gno_get` | Retrieve document by ID |
|
|
236
|
+
| `gno_multi_get` | Batch document retrieval |
|
|
237
|
+
| `gno_status` | Index health check |
|
|
200
238
|
|
|
201
239
|
**Design**: MCP tools are retrieval-only. Your AI assistant (Claude, GPT-4) synthesizes answers from retrieved context—best retrieval (GNO) + best reasoning (your LLM).
|
|
202
240
|
|
|
@@ -210,7 +248,7 @@ gno skill install --scope user
|
|
|
210
248
|
|
|
211
249
|

|
|
212
250
|
|
|
213
|
-
Then ask your agent:
|
|
251
|
+
Then ask your agent: _"Search my notes for the auth discussion"_
|
|
214
252
|
|
|
215
253
|
> **Detailed docs**: [MCP Integration](https://gno.sh/docs/MCP/) · [Use Cases](https://gno.sh/docs/USE-CASES/)
|
|
216
254
|
|
|
@@ -253,18 +291,20 @@ graph TD
|
|
|
253
291
|
|
|
254
292
|
## Features
|
|
255
293
|
|
|
256
|
-
| Feature
|
|
257
|
-
|
|
258
|
-
| **Hybrid Search**
|
|
259
|
-
| **
|
|
260
|
-
| **
|
|
261
|
-
| **
|
|
262
|
-
| **
|
|
263
|
-
| **
|
|
264
|
-
| **
|
|
265
|
-
| **
|
|
266
|
-
| **
|
|
267
|
-
| **
|
|
294
|
+
| Feature | Description |
|
|
295
|
+
| :------------------ | :---------------------------------------------------- |
|
|
296
|
+
| **Hybrid Search** | BM25 + vector + RRF fusion + cross-encoder reranking |
|
|
297
|
+
| **Document Editor** | Create, edit, delete docs with live markdown preview |
|
|
298
|
+
| **Web UI** | Visual dashboard for search, browse, edit, and AI Q&A |
|
|
299
|
+
| **REST API** | HTTP API for custom tools and integrations |
|
|
300
|
+
| **Multi-Format** | Markdown, PDF, DOCX, XLSX, PPTX, plain text |
|
|
301
|
+
| **Local LLM** | AI answers via llama.cpp—no API keys |
|
|
302
|
+
| **Privacy First** | 100% offline, zero telemetry, your data stays yours |
|
|
303
|
+
| **MCP Server** | Works with Claude Desktop, Cursor, Zed, + 8 more |
|
|
304
|
+
| **Collections** | Organize sources with patterns, excludes, contexts |
|
|
305
|
+
| **Multilingual** | 30+ languages, auto-detection, cross-lingual search |
|
|
306
|
+
| **Incremental** | SHA-256 tracking—only changed files re-indexed |
|
|
307
|
+
| **Keyboard First** | ⌘N capture, ⌘K search, ⌘/ shortcuts, ⌘S save |
|
|
268
308
|
|
|
269
309
|
---
|
|
270
310
|
|
|
@@ -272,19 +312,19 @@ graph TD
|
|
|
272
312
|
|
|
273
313
|
Models auto-download on first use to `~/.cache/gno/models/`.
|
|
274
314
|
|
|
275
|
-
| Model
|
|
276
|
-
|
|
277
|
-
| bge-m3
|
|
278
|
-
| Qwen3-Reranker-0.6B | Cross-encoder reranking (32K context) | ~700MB
|
|
279
|
-
| Qwen/SmolLM
|
|
315
|
+
| Model | Purpose | Size |
|
|
316
|
+
| :------------------ | :------------------------------------ | :----------- |
|
|
317
|
+
| bge-m3 | Embeddings (1024-dim, multilingual) | ~500MB |
|
|
318
|
+
| Qwen3-Reranker-0.6B | Cross-encoder reranking (32K context) | ~700MB |
|
|
319
|
+
| Qwen/SmolLM | Query expansion + AI answers | ~600MB-1.2GB |
|
|
280
320
|
|
|
281
321
|
### Model Presets
|
|
282
322
|
|
|
283
|
-
| Preset
|
|
284
|
-
|
|
285
|
-
| `slim`
|
|
286
|
-
| `balanced` | ~2GB
|
|
287
|
-
| `quality`
|
|
323
|
+
| Preset | Disk | Best For |
|
|
324
|
+
| :--------- | :----- | :--------------------- |
|
|
325
|
+
| `slim` | ~1GB | Fast, lower quality |
|
|
326
|
+
| `balanced` | ~2GB | Good balance (default) |
|
|
327
|
+
| `quality` | ~2.5GB | Best answers |
|
|
288
328
|
|
|
289
329
|
```bash
|
|
290
330
|
gno models use balanced
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Third-Party Notices
|
|
2
|
+
|
|
3
|
+
This project includes the following third-party components:
|
|
4
|
+
|
|
5
|
+
## fts5-snowball
|
|
6
|
+
|
|
7
|
+
- **Source**: vendored under `vendor/fts5-snowball/`
|
|
8
|
+
- **License**: BSD-3-Clause
|
|
9
|
+
- **Copyright**: (c) 2016 Abilio Marques
|
|
10
|
+
- **Project URL**: https://github.com/abiliojr/fts5-snowball
|
|
11
|
+
|
|
12
|
+
See `vendor/fts5-snowball/LICENSE` for the full license text.
|
|
13
|
+
|
|
14
|
+
## Snowball Stemmer Library
|
|
15
|
+
|
|
16
|
+
Bundled within fts5-snowball.
|
|
17
|
+
|
|
18
|
+
- **License**: BSD-3-Clause
|
|
19
|
+
- **Copyright**: (c) 2001-2025 Dr Martin Porter and Richard Boulton
|
|
20
|
+
- **Project URL**: https://github.com/snowballstem/snowball
|
|
21
|
+
|
|
22
|
+
See `vendor/fts5-snowball/LICENSE` for the full license text.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/assets/skill/SKILL.md
CHANGED
|
@@ -41,21 +41,21 @@ gno search "your query"
|
|
|
41
41
|
|
|
42
42
|
### Indexing
|
|
43
43
|
|
|
44
|
-
| Command
|
|
45
|
-
|
|
46
|
-
| `gno init`
|
|
47
|
-
| `gno collection add <path> --name <name>` | Add folder to index
|
|
48
|
-
| `gno index`
|
|
49
|
-
| `gno update`
|
|
44
|
+
| Command | Description |
|
|
45
|
+
| ----------------------------------------- | ----------------------------------- |
|
|
46
|
+
| `gno init` | Initialize GNO in current directory |
|
|
47
|
+
| `gno collection add <path> --name <name>` | Add folder to index |
|
|
48
|
+
| `gno index` | Full index (ingest + embed) |
|
|
49
|
+
| `gno update` | Sync files without embedding |
|
|
50
50
|
|
|
51
51
|
### Searching
|
|
52
52
|
|
|
53
|
-
| Command
|
|
54
|
-
|
|
55
|
-
| `gno search <query>`
|
|
56
|
-
| `gno vsearch <query>` | Vector semantic search
|
|
57
|
-
| `gno query <query>`
|
|
58
|
-
| `gno ask <question>`
|
|
53
|
+
| Command | Description |
|
|
54
|
+
| --------------------- | -------------------------------------- |
|
|
55
|
+
| `gno search <query>` | BM25 keyword search |
|
|
56
|
+
| `gno vsearch <query>` | Vector semantic search |
|
|
57
|
+
| `gno query <query>` | Hybrid search (BM25 + vector + rerank) |
|
|
58
|
+
| `gno ask <question>` | AI-powered Q&A with citations |
|
|
59
59
|
|
|
60
60
|
### Common Options
|
|
61
61
|
|
|
@@ -6,14 +6,14 @@ Complete command reference for GNO.
|
|
|
6
6
|
|
|
7
7
|
All commands accept:
|
|
8
8
|
|
|
9
|
-
| Flag
|
|
10
|
-
|
|
11
|
-
| `--index <name>`
|
|
12
|
-
| `--config <path>` | Override config file path
|
|
13
|
-
| `--no-color`
|
|
14
|
-
| `--verbose`
|
|
15
|
-
| `--yes`
|
|
16
|
-
| `--json`
|
|
9
|
+
| Flag | Description |
|
|
10
|
+
| ----------------- | ---------------------------------------- |
|
|
11
|
+
| `--index <name>` | Use alternate index (default: "default") |
|
|
12
|
+
| `--config <path>` | Override config file path |
|
|
13
|
+
| `--no-color` | Disable colored output |
|
|
14
|
+
| `--verbose` | Enable verbose logging |
|
|
15
|
+
| `--yes` | Non-interactive mode |
|
|
16
|
+
| `--json` | JSON output (where supported) |
|
|
17
17
|
|
|
18
18
|
## Initialization
|
|
19
19
|
|
|
@@ -23,14 +23,14 @@ All commands accept:
|
|
|
23
23
|
gno init [<path>] [options]
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
| Option
|
|
27
|
-
|
|
28
|
-
| `--name <name>`
|
|
29
|
-
| `--pattern <glob>`
|
|
30
|
-
| `--include <exts>`
|
|
31
|
-
| `--exclude <paths>`
|
|
32
|
-
| `--tokenizer <type>` | FTS tokenizer: unicode61, porter, trigram
|
|
33
|
-
| `--language <code>`
|
|
26
|
+
| Option | Description |
|
|
27
|
+
| -------------------- | ----------------------------------------------- |
|
|
28
|
+
| `--name <name>` | Collection name |
|
|
29
|
+
| `--pattern <glob>` | File pattern (default: `**/*`) |
|
|
30
|
+
| `--include <exts>` | Extension allowlist (e.g., `.md,.pdf`) |
|
|
31
|
+
| `--exclude <paths>` | Exclude patterns (default: `.git,node_modules`) |
|
|
32
|
+
| `--tokenizer <type>` | FTS tokenizer: unicode61, porter, trigram |
|
|
33
|
+
| `--language <code>` | BCP-47 language hint |
|
|
34
34
|
|
|
35
35
|
## Collections
|
|
36
36
|
|
|
@@ -78,12 +78,12 @@ Full index (update + embed).
|
|
|
78
78
|
gno index [options]
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
| Option
|
|
82
|
-
|
|
81
|
+
| Option | Description |
|
|
82
|
+
| --------------------- | -------------------------- |
|
|
83
83
|
| `--collection <name>` | Scope to single collection |
|
|
84
|
-
| `--no-embed`
|
|
85
|
-
| `--models-pull`
|
|
86
|
-
| `--git-pull`
|
|
84
|
+
| `--no-embed` | Skip embedding |
|
|
85
|
+
| `--models-pull` | Download models if missing |
|
|
86
|
+
| `--git-pull` | Git pull before indexing |
|
|
87
87
|
|
|
88
88
|
### gno embed
|
|
89
89
|
|
|
@@ -103,14 +103,14 @@ BM25 keyword search.
|
|
|
103
103
|
gno search <query> [options]
|
|
104
104
|
```
|
|
105
105
|
|
|
106
|
-
| Option
|
|
107
|
-
|
|
108
|
-
| `-n`
|
|
109
|
-
| `--min-score`
|
|
110
|
-
| `-c, --collection` | all
|
|
111
|
-
| `--full`
|
|
112
|
-
| `--line-numbers`
|
|
113
|
-
| `--lang`
|
|
106
|
+
| Option | Default | Description |
|
|
107
|
+
| ------------------ | ------- | --------------------------- |
|
|
108
|
+
| `-n` | 5 | Max results |
|
|
109
|
+
| `--min-score` | 0 | Minimum score (0-1) |
|
|
110
|
+
| `-c, --collection` | all | Filter to collection |
|
|
111
|
+
| `--full` | false | Full content (not snippets) |
|
|
112
|
+
| `--line-numbers` | false | Include line numbers |
|
|
113
|
+
| `--lang` | auto | Language filter |
|
|
114
114
|
|
|
115
115
|
Output formats: `--json`, `--files`, `--csv`, `--md`, `--xml`
|
|
116
116
|
|
|
@@ -132,19 +132,19 @@ gno query <query> [options]
|
|
|
132
132
|
|
|
133
133
|
**Search modes** (pick one):
|
|
134
134
|
|
|
135
|
-
| Flag
|
|
136
|
-
|
|
137
|
-
| `--fast`
|
|
138
|
-
| (default)
|
|
139
|
-
| `--thorough` | ~5-8s | Full pipeline with expansion
|
|
135
|
+
| Flag | Time | Description |
|
|
136
|
+
| ------------ | ----- | ------------------------------ |
|
|
137
|
+
| `--fast` | ~0.7s | Skip expansion and reranking |
|
|
138
|
+
| (default) | ~2-3s | Skip expansion, with reranking |
|
|
139
|
+
| `--thorough` | ~5-8s | Full pipeline with expansion |
|
|
140
140
|
|
|
141
141
|
Additional options:
|
|
142
142
|
|
|
143
|
-
| Option
|
|
144
|
-
|
|
145
|
-
| `--no-expand` | Disable query expansion
|
|
146
|
-
| `--no-rerank` | Disable reranking
|
|
147
|
-
| `--explain`
|
|
143
|
+
| Option | Description |
|
|
144
|
+
| ------------- | --------------------------------- |
|
|
145
|
+
| `--no-expand` | Disable query expansion |
|
|
146
|
+
| `--no-rerank` | Disable reranking |
|
|
147
|
+
| `--explain` | Print retrieval details to stderr |
|
|
148
148
|
|
|
149
149
|
### gno ask
|
|
150
150
|
|
|
@@ -154,14 +154,14 @@ AI-powered Q&A with citations.
|
|
|
154
154
|
gno ask <question> [options]
|
|
155
155
|
```
|
|
156
156
|
|
|
157
|
-
| Option
|
|
158
|
-
|
|
159
|
-
| `--fast`
|
|
160
|
-
| `--thorough`
|
|
161
|
-
| `--answer`
|
|
162
|
-
| `--no-answer`
|
|
163
|
-
| `--max-answer-tokens <n>` | Cap answer length
|
|
164
|
-
| `--show-sources`
|
|
157
|
+
| Option | Description |
|
|
158
|
+
| ------------------------- | -------------------------------------- |
|
|
159
|
+
| `--fast` | Skip expansion and reranking (fastest) |
|
|
160
|
+
| `--thorough` | Enable query expansion (better recall) |
|
|
161
|
+
| `--answer` | Generate grounded answer |
|
|
162
|
+
| `--no-answer` | Retrieval only |
|
|
163
|
+
| `--max-answer-tokens <n>` | Cap answer length |
|
|
164
|
+
| `--show-sources` | Show all sources |
|
|
165
165
|
|
|
166
166
|
## Document Retrieval
|
|
167
167
|
|
|
@@ -174,6 +174,7 @@ gno get <ref> [--from <line>] [-l <lines>] [--line-numbers] [--source]
|
|
|
174
174
|
```
|
|
175
175
|
|
|
176
176
|
Ref formats:
|
|
177
|
+
|
|
177
178
|
- `gno://collection/path` — Full URI
|
|
178
179
|
- `collection/path` — Relative path
|
|
179
180
|
- `#docid` — Document ID
|
|
@@ -204,6 +205,7 @@ gno context add <scope> "<text>"
|
|
|
204
205
|
```
|
|
205
206
|
|
|
206
207
|
Scope formats:
|
|
208
|
+
|
|
207
209
|
- `/` — Global
|
|
208
210
|
- `collection:` — Collection prefix
|
|
209
211
|
- `gno://collection/path` — Path prefix
|
|
@@ -292,12 +294,12 @@ Install GNO as MCP server in client configurations.
|
|
|
292
294
|
gno mcp install [options]
|
|
293
295
|
```
|
|
294
296
|
|
|
295
|
-
| Option
|
|
296
|
-
|
|
297
|
+
| Option | Default | Description |
|
|
298
|
+
| -------------- | -------------- | ------------------------------------------------ |
|
|
297
299
|
| `-t, --target` | claude-desktop | Target: `claude-desktop`, `claude-code`, `codex` |
|
|
298
|
-
| `-s, --scope`
|
|
299
|
-
| `-f, --force`
|
|
300
|
-
| `--dry-run`
|
|
300
|
+
| `-s, --scope` | user | Scope: `user`, `project` |
|
|
301
|
+
| `-f, --force` | false | Overwrite existing config |
|
|
302
|
+
| `--dry-run` | false | Preview changes |
|
|
301
303
|
|
|
302
304
|
Examples:
|
|
303
305
|
|
|
@@ -330,8 +332,8 @@ gno mcp status [--json]
|
|
|
330
332
|
|
|
331
333
|
## Exit Codes
|
|
332
334
|
|
|
333
|
-
| Code | Description
|
|
334
|
-
|
|
335
|
-
| 0
|
|
336
|
-
| 1
|
|
337
|
-
| 2
|
|
335
|
+
| Code | Description |
|
|
336
|
+
| ---- | ----------------------------- |
|
|
337
|
+
| 0 | Success |
|
|
338
|
+
| 1 | Validation error (bad args) |
|
|
339
|
+
| 2 | Runtime error (IO, DB, model) |
|
package/assets/skill/examples.md
CHANGED
|
@@ -195,15 +195,16 @@ gno models pull
|
|
|
195
195
|
|
|
196
196
|
### Search Modes
|
|
197
197
|
|
|
198
|
-
| Command
|
|
199
|
-
|
|
200
|
-
| `gno search`
|
|
201
|
-
| `gno vsearch`
|
|
202
|
-
| `gno query --fast`
|
|
203
|
-
| `gno query`
|
|
204
|
-
| `gno query --thorough` | ~5-8s
|
|
198
|
+
| Command | Time | Use When |
|
|
199
|
+
| ---------------------- | ------- | ---------------------------- |
|
|
200
|
+
| `gno search` | instant | Exact keyword matching |
|
|
201
|
+
| `gno vsearch` | ~0.5s | Finding similar concepts |
|
|
202
|
+
| `gno query --fast` | ~0.7s | Quick lookups |
|
|
203
|
+
| `gno query` | ~2-3s | Default, balanced |
|
|
204
|
+
| `gno query --thorough` | ~5-8s | Best recall, complex queries |
|
|
205
205
|
|
|
206
206
|
**Agent retry strategy**: Use default mode first. If no results:
|
|
207
|
+
|
|
207
208
|
1. Rephrase the query (free, often helps)
|
|
208
209
|
2. Try `--thorough` for better recall
|
|
209
210
|
|
|
@@ -20,6 +20,7 @@ Add to `claude_desktop_config.json`:
|
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
Config location:
|
|
23
|
+
|
|
23
24
|
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
24
25
|
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
25
26
|
- Linux: `~/.config/Claude/claude_desktop_config.json`
|
|
@@ -66,15 +67,16 @@ Hybrid search (best quality).
|
|
|
66
67
|
|
|
67
68
|
**Search modes** (via parameters):
|
|
68
69
|
|
|
69
|
-
| Mode
|
|
70
|
-
|
|
71
|
-
| Fast
|
|
72
|
-
| Default
|
|
70
|
+
| Mode | Parameters | Time |
|
|
71
|
+
| -------- | ---------------- | ----- |
|
|
72
|
+
| Fast | `fast: true` | ~0.7s |
|
|
73
|
+
| Default | (none) | ~2-3s |
|
|
73
74
|
| Thorough | `thorough: true` | ~5-8s |
|
|
74
75
|
|
|
75
76
|
Default skips expansion, with reranking. Use `thorough: true` for best recall.
|
|
76
77
|
|
|
77
78
|
**Agent retry strategy**: Use default mode first. If no relevant results:
|
|
79
|
+
|
|
78
80
|
1. Rephrase the query (free, often effective)
|
|
79
81
|
2. Then try `thorough: true` for better recall
|
|
80
82
|
|
|
@@ -129,6 +131,7 @@ gno://{collection}/{path}
|
|
|
129
131
|
```
|
|
130
132
|
|
|
131
133
|
Examples:
|
|
134
|
+
|
|
132
135
|
- `gno://work/contracts/nda.docx`
|
|
133
136
|
- `gno://notes/2025/01/meeting.md`
|
|
134
137
|
|
|
@@ -166,6 +169,7 @@ Errors return:
|
|
|
166
169
|
## Graceful Degradation
|
|
167
170
|
|
|
168
171
|
`gno.query` degrades gracefully:
|
|
172
|
+
|
|
169
173
|
- No vectors → BM25 only
|
|
170
174
|
- No expansion model → skips expansion
|
|
171
175
|
- No rerank model → skips reranking
|