@gmickel/gno 1.29.3 → 1.29.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/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # GNO
2
2
 
3
- **Local search, retrieval, and synthesis for the files you actually work in.**
3
+ **Search finds. GNO proves.**
4
+
5
+ A local knowledge engine for your notes, code, PDFs, and Office docs. Hybrid search, a browsable workspace with graph and editor, CLI, SDK, REST API, and MCP for ten AI clients — plus retrieval that can show its work.
4
6
 
5
7
  [![npm](./assets/badges/npm.svg)](https://www.npmjs.com/package/@gmickel/gno)
6
8
  [![MIT License](./assets/badges/license.svg)](./LICENSE)
@@ -8,103 +10,96 @@
8
10
  [![Twitter](./assets/badges/twitter.svg)](https://twitter.com/gmickel)
9
11
  [![Discord](./assets/badges/discord.svg)](https://discord.gg/nHEmyJB5tg)
10
12
 
11
- > [!TIP]
12
- > **[gno.sh/publish](https://gno.sh/publish) is live.** Turn any GNO note or collection into a polished, reader-first URL — editorial typography, scoped search, and four visibility modes from public to encrypted-before-upload. **[See the reader →](#publish-to-gnosh)**
13
+ ![GNO](./assets/og-image.png)
13
14
 
14
- > **ClawdHub**: GNO skills bundled for Clawdbot — [clawdhub.com/gmickel/gno](https://clawdhub.com/gmickel/gno)
15
+ ```bash
16
+ bun install -g @gmickel/gno
17
+ gno setup ~/notes --name notes # returns only after retrieval actually works
18
+ gno mcp install --target cursor # or claude-code, claude-desktop, zed, ...
19
+ ```
15
20
 
16
- ![GNO](./assets/og-image.png)
21
+ ## What you get
22
+
23
+ BM25 and vector retrieval fused and reranked over Markdown, code, PDFs, Office files, and exported mail, calendar and transcripts. A web workspace with cross-collection browse, a knowledge graph, a markdown editor and provenance-carrying capture. A fast CLI, a TypeScript SDK, a REST API, a headless daemon, and one-command install into ten agent clients. Optional hosted publishing when a slice needs a URL.
24
+
25
+ That is the table stakes. Here is the part that is harder to find elsewhere.
26
+
27
+ ## Why not just another local RAG tool
17
28
 
18
- GNO is a local knowledge engine for notes, code, PDFs, Office docs, meeting transcripts, and reference material. It gives you fast keyword search, semantic retrieval, grounded answers with citations, wiki-style linking, and a real workspace UI, while keeping the whole stack local by default.
29
+ Most retrieval tools return a ranked list and leave the rest to optimism. Four things here are different, and each one is measurable rather than adjectival:
19
30
 
20
- CLI retrieval also uses the current repository/workspace as a transparent soft
21
- ranking signal. A trusted explicit `--project-root`, nearest valid
22
- `.gno/index.yml`, or local cwd can add at most `+0.03` to matching collection
23
- results, in that precedence order; `--no-project-affinity` disables it. Profile
24
- defaults stay project-local and never overwrite the user default. It never overrides collection,
25
- tag, date, exclude, or egress filters. SDK, REST, and MCP `projectHints` are
26
- opaque, untrusted, limited to 16, and intentionally have zero ranking effect:
27
- those surfaces never probe caller or server filesystem paths. Trusted local
28
- diagnose output uses closed `schemaVersion: "1.1"` redacted affinity metadata;
29
- absent, disabled, and remote/untrusted diagnose requests preserve exact legacy
30
- v1.0 bytes and omit `affinity`.
31
+ | | What it does | Why it matters |
32
+ | :----------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
33
+ | **[Context Capsules](https://gno.sh/docs/context-capsules)** | Compiles one bounded evidence bundle per goal: exact line spans, content hashes, one global token budget, collapsed duplicates, and a written list of what it could _not_ find | Your agent reads once instead of searching five times. **48.94% fewer retrieval calls, 44.12% less model-visible context, 100% task accuracy retained** across 48 paired benchmark tasks |
34
+ | **[Verified answers](https://gno.sh/docs/cli)** | `gno ask --verify` generates against one closed Capsule, classifies every substantive claim, and withholds the draft below 100% support | An abstention naming the failing claim beats a confident paragraph you have to fact-check by hand |
35
+ | **[Verified setup](https://gno.sh/docs/project-profiles)** | `gno setup` returns only after lexical search finds a real hit derived from _your_ corpus | No green checkmark over a folder that indexed but cannot be searched |
36
+ | **[Egress policy](https://gno.sh/docs/collection-egress)** | Per-collection fail-closed `local_only` / `lan` / `remote`, inherited by every derived Capsule, trace, and export | Mixed setups are normal. Pin the client work local while your notes use the LAN GPU box |
31
37
 
32
- Use it when:
38
+ Everything runs on your machine. Zero telemetry. The three network boundaries are explicit: downloading a model, configuring an HTTP inference endpoint, and uploading an artifact you exported for publishing.
33
39
 
34
- - your notes live in more than one folder
35
- - your important knowledge is split across Markdown, code, PDFs, and Office files
36
- - you want one retrieval layer that works from the CLI, browser, MCP, and a Bun/TypeScript SDK
37
- - you want better local context for agents without shipping your docs to a cloud API
40
+ **And when it fails, that ships too.** The CJK lexical benchmark missed its own promotion gates, so the analyzer was not shipped and [the failing numbers were published](#general-multilingual-embedding-benchmark) instead.
38
41
 
39
- ### What GNO Gives You
42
+ ## Use it when
40
43
 
41
- - **Fast local search**: BM25 for exact hits, vectors for concepts, hybrid for best quality
42
- - **Real retrieval surfaces**: CLI, Web UI, REST API, MCP, SDK
43
- - **Local-first answers**: grounded synthesis with citations when you want answers, raw retrieval when you do not
44
- - **Connected knowledge**: backlinks, related notes, graph view, cross-collection navigation
45
- - **Shareable, not synced**: export a note or collection to [gno.sh](https://gno.sh/publish) as a polished reader page — public, secret, invite-only, or locally encrypted before upload
46
- - **Operational fit**: daemon mode, model presets, remote GPU backends, safe config/state on disk
44
+ - your knowledge is split across Markdown, code, PDFs, Office files, and exported mail or transcripts
45
+ - you want one retrieval layer for the CLI, the browser, MCP, and a Bun/TypeScript SDK
46
+ - you want your coding agent to have a real memory without shipping your docs to a cloud API
47
+ - you need to prove, later, which bytes supported a conclusion
47
48
 
48
- ### One-Minute Tour
49
+ ## Two minutes, end to end
49
50
 
50
51
  ```bash
51
52
  # Install
52
53
  bun install -g @gmickel/gno
53
54
 
54
- # Prove the first folder immediately; semantic work continues independently
55
+ # Activate a folder. Returns only after BM25 proves an exact corpus-derived hit;
56
+ # semantic embedding continues independently in the background.
55
57
  gno setup ~/notes --name notes
56
58
 
57
- # In a repository with .gno/index.yml: preview, apply, and prove its collection
58
- gno profile diff
59
- gno setup . --apply-profile
60
-
61
- # Add more collections with the granular commands
59
+ # Add more sources
62
60
  gno collection add ~/work/docs --name work-docs --pattern "**/*.{md,pdf,docx}"
63
61
  gno collection add ~/work/gno/src --name gno-code --pattern "**/*.{ts,tsx,js,jsx}"
64
62
 
65
- # Add context so retrieval results come back with the right framing
66
- gno context add "notes:" "Personal notes, journal entries, and long-form ideas"
63
+ # Tell retrieval what each collection is for
67
64
  gno context add "work-docs:" "Architecture docs, runbooks, RFCs, meeting notes"
68
- gno context add "gno-code:" "Source code for the GNO application"
69
65
 
70
- # Sync the additional collections, then embed when you want semantic retrieval
71
- gno update --yes
72
- gno embed
66
+ gno update --yes # sync
67
+ gno embed # embed when you want semantic retrieval
68
+
69
+ # Pick the search that fits the question
70
+ gno search "DEC-0054" # exact identifier
71
+ gno vsearch "retry failed jobs with backoff" # natural language
72
+ gno query "JWT refresh token rotation" --explain # hybrid, with score traces
73
73
 
74
- # Search in the way that fits the question
75
- gno search "DEC-0054" # exact keyword / identifier
76
- gno vsearch "retry failed jobs with backoff" # natural-language semantic lookup
77
- gno query "JWT refresh token rotation" --explain # hybrid retrieval with score traces
74
+ # Compile checkable evidence for a goal, then re-check it later
75
+ gno context build "why we dropped the queue rewrite" \
76
+ --collection work-docs --budget 12000 --json --output capsule.json
77
+ gno context verify capsule.json
78
78
 
79
- # Retrieve documents or export context for an agent
80
- gno get "gno://work-docs/architecture/auth.md"
81
- gno multi-get "gno-code/**/*.ts" --max-bytes 30000 --md
82
- gno query "deployment process" --all --files --min-score 0.35
79
+ # Generate only what that evidence supports
80
+ gno ask "why did we drop the queue rewrite" --verify --show-sources
83
81
 
84
- # Run the workspace (pick one — don't run both against the same index concurrently)
85
- gno serve # browser/desktop session with the Web UI
86
- gno daemon --detach # headless continuous indexing (background; --status / --stop to manage)
82
+ # Run the workspace (pick one — not both against the same index)
83
+ gno serve # browser/desktop Web UI
84
+ gno daemon --detach # headless indexing + resident MCP gateway
87
85
  ```
88
86
 
87
+ > [!TIP]
88
+ > **[gno.sh/publish](https://gno.sh/publish) is live.** Turn any GNO note or collection into a reader-first URL — editorial typography, scoped search, and four visibility modes from public to encrypted-before-upload. **[See the reader →](#publish-to-gnosh)**
89
+
90
+ > **ClawdHub**: GNO skills bundled for Clawdbot — [clawdhub.com/gmickel/gno](https://clawdhub.com/gmickel/gno)
91
+
89
92
  ---
90
93
 
91
94
  ## Contents
92
95
 
93
- - [Quick Start](#quick-start)
94
- - [Installation](#installation)
95
- - [Daemon Mode](#daemon-mode)
96
- - [Search Modes](#search-modes)
97
- - [Agent Integration](#agent-integration)
98
- - [Web UI](#web-ui)
99
- - [Publish to gno.sh](#publish-to-gnosh)
100
- - [REST API](#rest-api)
101
- - [SDK](#sdk)
102
- - [How It Works](#how-it-works)
103
- - [Features](#features)
104
- - [Local Models](#local-models)
105
- - [Fine-Tuned Models](#fine-tuned-models)
106
- - [Architecture](#architecture)
107
- - [Development](#development)
96
+ **Start here** · [Quick Start](#quick-start) · [Installation](#installation) · [Agent Integration](#agent-integration) · [Search Modes](#search-modes)
97
+
98
+ **Surfaces** · [Web UI](#web-ui) · [REST API](#rest-api) · [SDK](#sdk) · [Daemon Mode](#daemon-mode) · [Publish to gno.sh](#publish-to-gnosh)
99
+
100
+ **Under the hood** · [How It Works](#how-it-works) · [Features](#features) · [Local Models](#local-models) · [Fine-Tuned Models](#fine-tuned-models) · [Architecture](#architecture) · [Development](#development)
101
+
102
+ **Deep dives on gno.sh** · [Context Capsules](https://gno.sh/docs/context-capsules) · [Knowledge Delta](https://gno.sh/docs/knowledge-delta) · [Retrieval learning](https://gno.sh/docs/retrieval-learning) · [Project profiles](https://gno.sh/docs/project-profiles) · [Egress policies](https://gno.sh/docs/collection-egress) · [Export adapters](https://gno.sh/docs/file-export-adapters)
108
103
 
109
104
  ---
110
105
 
@@ -112,7 +107,7 @@ gno daemon --detach # headless continuous indexing (background; --status / --st
112
107
 
113
108
  <!-- public-truth:current-version -->
114
109
 
115
- > Current release: **v1.29.2** — see [CHANGELOG.md](./CHANGELOG.md)
110
+ > Current release: **v1.29.5** — see [CHANGELOG.md](./CHANGELOG.md)
116
111
 
117
112
  <!-- /public-truth -->
118
113
 
@@ -247,7 +242,7 @@ gno models pull --gen
247
242
  gno query "ECONNREFUSED 127.0.0.1:5432" --thorough
248
243
  ```
249
244
 
250
- > Full guide: [Fine-Tuned Models](https://gno.sh/docs/FINE-TUNED-MODELS/) · [Feature page](https://gno.sh/features/fine-tuned-models/)
245
+ > Full guide: [Fine-Tuned Models](https://gno.sh/docs/fine-tuned-models) · [Feature page](https://gno.sh/features/fine-tuned-models)
251
246
 
252
247
  ---
253
248
 
@@ -365,7 +360,7 @@ gno skill install --target openclaw # OpenClaw
365
360
  gno skill install --target all # All targets
366
361
  ```
367
362
 
368
- > **Full setup guide**: [MCP Integration](https://gno.sh/docs/MCP/) · [CLI Reference](https://gno.sh/docs/CLI/)
363
+ > **Full setup guide**: [MCP Integration](https://gno.sh/docs/mcp) · [CLI Reference](https://gno.sh/docs/cli)
369
364
 
370
365
  ---
371
366
 
@@ -387,7 +382,7 @@ headless. `--detach` / `--status` / `--stop` give you symmetric lifecycle
387
382
  controls so you don't need `nohup`, `launchd`, or `systemd` units. The same
388
383
  flag set is available on `gno serve`.
389
384
 
390
- [Daemon guide →](https://gno.sh/docs/DAEMON/)
385
+ [Daemon guide →](https://gno.sh/features/daemon-mode)
391
386
 
392
387
  ---
393
388
 
@@ -479,7 +474,7 @@ Core SDK surface:
479
474
  - `update`, `embed`, `index`
480
475
  - `close`
481
476
 
482
- Full guide: [SDK docs](https://gno.sh/docs/SDK/)
477
+ Full guide: [SDK docs](https://gno.sh/docs/sdk)
483
478
 
484
479
  ---
485
480
 
@@ -607,7 +602,7 @@ gno get "gno://work-docs/api-reference.md" --full
607
602
  gno multi-get "work-docs/**/*.md" --md --max-bytes 30000
608
603
  ```
609
604
 
610
- [Skill setup guide →](https://gno.sh/docs/integrations/skills/)
605
+ [Skill setup guide →](https://gno.sh/docs/skills)
611
606
 
612
607
  ### MCP Server
613
608
 
@@ -655,7 +650,7 @@ requires an explicit restrictive bearer-token file plus exact Host and Origin
655
650
  allowlists; `gno serve` remains loopback-only. Authentication alone never
656
651
  enables mutation tools.
657
652
 
658
- [MCP setup guide →](https://gno.sh/docs/MCP/)
653
+ [MCP setup guide →](https://gno.sh/docs/mcp)
659
654
 
660
655
  ---
661
656
 
@@ -758,7 +753,7 @@ telemetry. Network access occurs when GNO downloads models, when you configure
758
753
  an HTTP model backend, or when you explicitly upload an exported artifact to
759
754
  gno.sh.
760
755
 
761
- > **Detailed docs**: [Web UI Guide](https://gno.sh/docs/WEB-UI/)
756
+ > **Detailed docs**: [Web UI Guide](https://gno.sh/docs/web-ui)
762
757
 
763
758
  ---
764
759
 
@@ -879,7 +874,7 @@ curl http://localhost:3000/api/health
879
874
 
880
875
  No authentication. No rate limits. Build custom tools, automate workflows, integrate with any language.
881
876
 
882
- > **Full reference**: [API Documentation](https://gno.sh/docs/API/)
877
+ > **Full reference**: [API Documentation](https://gno.sh/docs/api)
883
878
 
884
879
  ---
885
880
 
@@ -914,7 +909,7 @@ graph TD
914
909
  3. **Fusion**: RRF with 2× weight for original query, tiered bonus for top ranks
915
910
  4. **Reranking**: Qwen3-Reranker scores best chunk per document (4K), blended with fusion
916
911
 
917
- > **Deep dive**: [How Search Works](https://gno.sh/docs/HOW-SEARCH-WORKS/)
912
+ > **Deep dive**: [How Search Works](https://gno.sh/docs/how-search-works)
918
913
 
919
914
  ---
920
915
 
@@ -987,8 +982,8 @@ Hugging Face. The `gen:` role remains the standalone answer model.
987
982
 
988
983
  See:
989
984
 
990
- - [Fine-Tuned Models docs](https://gno.sh/docs/FINE-TUNED-MODELS/)
991
- - [Fine-Tuned Models feature page](https://gno.sh/features/fine-tuned-models/)
985
+ - [Fine-Tuned Models docs](https://gno.sh/docs/fine-tuned-models)
986
+ - [Fine-Tuned Models feature page](https://gno.sh/features/fine-tuned-models)
992
987
 
993
988
  ### HTTP Backends (Remote GPU)
994
989
 
@@ -1012,7 +1007,7 @@ The HTTP adapter expects the OpenAI-compatible endpoint shapes documented in
1012
1007
  chunk, or answer context sent to their configured model role; they are outside
1013
1008
  GNO's local trust boundary.
1014
1009
 
1015
- > **Configuration**: [Model Setup](https://gno.sh/docs/CONFIGURATION/)
1010
+ > **Configuration**: [Model Setup](https://gno.sh/docs/configuration)
1016
1011
 
1017
1012
  Remote/BYOM guides:
1018
1013
 
@@ -1035,7 +1030,7 @@ Remote/BYOM guides:
1035
1030
  └─────────────────────────────────────────────────┘
1036
1031
  ```
1037
1032
 
1038
- > **Details**: [Architecture](https://gno.sh/docs/ARCHITECTURE/)
1033
+ > **Details**: [Architecture](https://gno.sh/docs/architecture)
1039
1034
 
1040
1035
  ---
1041
1036
 
@@ -0,0 +1 @@
1
+ b9d3edf131bffe0b3c43cfb23173a3fb7d08254dcfa3a7a0ca66a753306a831d gno-browser-clipper-v1.29.5.zip
@@ -21,5 +21,5 @@
21
21
  "content_security_policy": {
22
22
  "extension_pages": "script-src 'self'; object-src 'none'; connect-src http://127.0.0.1:*"
23
23
  },
24
- "version": "1.29.3"
24
+ "version": "1.29.5"
25
25
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gmickel/gno",
3
- "version": "1.29.3",
3
+ "version": "1.29.5",
4
4
  "description": "Local semantic search for your documents. Index Markdown, PDF, and Office files with hybrid BM25 + vector search.",
5
5
  "keywords": [
6
6
  "embeddings",
@@ -1 +0,0 @@
1
- 82fd879ec5de4a00710dc4dc60a358947b4b19444f2a4780b5f502d1f5652d25 gno-browser-clipper-v1.29.3.zip