@gmickel/gno 1.28.0 → 1.29.0
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 +46 -20
- package/assets/skill/SKILL.md +33 -0
- package/browser-extension/artifacts/gno-browser-clipper-v1.29.0.zip +0 -0
- package/browser-extension/artifacts/gno-browser-clipper-v1.29.0.zip.sha256 +1 -0
- package/browser-extension/dist/chunk-b2zm0jjd.js +50 -0
- package/browser-extension/dist/manifest.json +1 -1
- package/browser-extension/dist/preview.html +1 -1
- package/browser-extension/dist/service-worker.js +6 -6
- package/package.json +1 -1
- package/spec/cli.md +41 -1
- package/spec/db/schema.sql +19 -0
- package/spec/mcp.md +66 -0
- package/spec/output-schemas/ask.schema.json +31 -1
- package/spec/output-schemas/browser-clip-preview.schema.json +30 -0
- package/spec/output-schemas/collection-egress-check.schema.json +91 -0
- package/spec/output-schemas/collection-egress-policy-set.schema.json +56 -0
- package/spec/output-schemas/collection-egress-policy.schema.json +41 -0
- package/spec/output-schemas/context-capsule-v1.schema.json +89 -2
- package/spec/output-schemas/context-capsule-verification.schema.json +1 -1
- package/spec/output-schemas/egress-audit-management.schema.json +88 -0
- package/spec/output-schemas/mcp-http-error.schema.json +113 -2
- package/spec/output-schemas/publish-artifact.schema.json +32 -0
- package/spec/output-schemas/record-import.schema.json +30 -0
- package/spec/output-schemas/retrieval-trace-common.schema.json +31 -0
- package/spec/output-schemas/retrieval-trace-export.schema.json +3 -0
- package/spec/output-schemas/retrieval-trace-qrels.schema.json +3 -0
- package/spec/output-schemas/retrieval-trace-summary.schema.json +4 -0
- package/spec/output-schemas/search-results.schema.json +30 -0
- package/src/app/context-runtime-contract.ts +16 -7
- package/src/cli/commands/ask.ts +7 -0
- package/src/cli/commands/collection/index.ts +5 -0
- package/src/cli/commands/collection/policy.ts +126 -0
- package/src/cli/commands/context-build.ts +5 -0
- package/src/cli/commands/daemon.ts +45 -3
- package/src/cli/commands/egress-audit.ts +68 -0
- package/src/cli/commands/embed.ts +2 -0
- package/src/cli/commands/query.ts +12 -0
- package/src/cli/commands/replay.ts +13 -3
- package/src/cli/commands/vsearch.ts +3 -1
- package/src/cli/program.ts +123 -0
- package/src/config/index.ts +9 -0
- package/src/config/types.ts +50 -0
- package/src/core/browser-clip.ts +16 -1
- package/src/core/collection-egress-policy-projection.ts +28 -0
- package/src/core/collection-egress-policy-service.ts +443 -0
- package/src/core/collection-egress-policy-validation.ts +242 -0
- package/src/core/config-mutation.ts +31 -19
- package/src/core/context-capsule-schema.ts +111 -1
- package/src/core/context-capsule-validation.ts +4 -4
- package/src/core/context-capsule-verification.ts +5 -1
- package/src/core/context-capsule.ts +177 -132
- package/src/core/context-evidence.ts +86 -14
- package/src/core/destination-classifier.ts +402 -0
- package/src/core/egress-audit.ts +239 -0
- package/src/core/egress-authorization.ts +50 -0
- package/src/core/egress-enforcement.ts +264 -0
- package/src/core/egress-policy.ts +440 -0
- package/src/core/egress-provenance.ts +336 -0
- package/src/core/job-manager.ts +37 -0
- package/src/core/network-boundary-inventory.ts +261 -0
- package/src/core/retrieval-qrels.ts +6 -0
- package/src/core/retrieval-replay.ts +18 -4
- package/src/core/retrieval-trace-export.ts +23 -4
- package/src/core/retrieval-trace-management-helpers.ts +1 -0
- package/src/core/retrieval-trace-management-types.ts +3 -0
- package/src/core/retrieval-trace-management.ts +9 -1
- package/src/core/retrieval-trace-session.ts +94 -0
- package/src/core/retrieval-trace.ts +22 -0
- package/src/ingestion/record-adapter.ts +12 -1
- package/src/ingestion/record-container.ts +38 -22
- package/src/ingestion/sync.ts +15 -0
- package/src/ingestion/types.ts +2 -0
- package/src/llm/errors.ts +10 -0
- package/src/llm/http-inference.ts +175 -0
- package/src/llm/http-policy.ts +537 -0
- package/src/llm/httpEmbedding.ts +47 -28
- package/src/llm/httpGeneration.ts +31 -18
- package/src/llm/httpRerank.ts +30 -18
- package/src/llm/index.ts +1 -0
- package/src/llm/nodeLlamaCpp/adapter.ts +55 -20
- package/src/llm/pinned-http-connection.ts +177 -0
- package/src/mcp/context.ts +53 -1
- package/src/mcp/http-egress.ts +220 -0
- package/src/mcp/http-security.ts +32 -21
- package/src/mcp/http-session.ts +13 -2
- package/src/mcp/http-transport.ts +96 -6
- package/src/mcp/sync-egress.ts +24 -0
- package/src/mcp/tools/add-collection.ts +4 -0
- package/src/mcp/tools/ask.ts +1 -1
- package/src/mcp/tools/context.ts +9 -2
- package/src/mcp/tools/egress.ts +247 -0
- package/src/mcp/tools/embed.ts +1 -0
- package/src/mcp/tools/index-cmd.ts +7 -0
- package/src/mcp/tools/index.ts +98 -0
- package/src/mcp/tools/query.ts +10 -0
- package/src/mcp/tools/remove-collection.ts +4 -0
- package/src/mcp/tools/sync.ts +6 -0
- package/src/mcp/tools/trace.ts +7 -1
- package/src/mcp/tools/vsearch.ts +1 -0
- package/src/pipeline/egress-lineage.ts +124 -0
- package/src/pipeline/hybrid.ts +14 -0
- package/src/pipeline/search.ts +12 -0
- package/src/pipeline/types.ts +3 -0
- package/src/pipeline/vsearch.ts +41 -20
- package/src/publish/artifact.ts +31 -3
- package/src/publish/export-service.ts +25 -0
- package/src/sdk/client.ts +119 -2
- package/src/sdk/embed.ts +1 -0
- package/src/sdk/types.ts +33 -0
- package/src/serve/clipper-capture.ts +5 -1
- package/src/serve/closed-json.ts +61 -0
- package/src/serve/config-sync.ts +4 -1
- package/src/serve/context.ts +1 -0
- package/src/serve/doc-events.ts +110 -39
- package/src/serve/public/components/CollectionEgressCheckPanel.tsx +411 -0
- package/src/serve/public/components/CollectionEgressPolicyEditor.tsx +78 -0
- package/src/serve/public/components/CollectionModelDialog.tsx +93 -9
- package/src/serve/public/components/EgressAuditPanel.tsx +278 -0
- package/src/serve/public/globals.built.css +1 -1
- package/src/serve/public/pages/Collections.tsx +3 -0
- package/src/serve/resident-request.ts +80 -3
- package/src/serve/resident-runtime.ts +63 -1
- package/src/serve/routes/api.ts +174 -0
- package/src/serve/routes/clipper.ts +64 -1
- package/src/serve/routes/mcp.ts +6 -0
- package/src/serve/routes/traces.ts +27 -4
- package/src/serve/server.ts +118 -7
- package/src/store/migrations/023-collection-egress-policy.ts +61 -0
- package/src/store/migrations/024-egress-derived-lineage.ts +121 -0
- package/src/store/migrations/025-collection-egress-policy-revision.ts +40 -0
- package/src/store/migrations/index.ts +6 -0
- package/src/store/retrieval-trace-codec.ts +15 -0
- package/src/store/sqlite/adapter.ts +170 -7
- package/src/store/sqlite/change-journal-store.ts +41 -2
- package/src/store/sqlite/egress-audit-store.ts +485 -0
- package/src/store/sqlite/retrieval-trace-management-store.ts +47 -6
- package/src/store/sqlite/retrieval-trace-retention.ts +2 -0
- package/src/store/sqlite/retrieval-trace-rows.ts +8 -1
- package/src/store/sqlite/retrieval-trace-store.ts +104 -5
- package/src/store/types.ts +126 -1
- package/browser-extension/artifacts/gno-browser-clipper-v1.28.0.zip +0 -0
- package/browser-extension/artifacts/gno-browser-clipper-v1.28.0.zip.sha256 +0 -1
- package/browser-extension/dist/chunk-vn5f663b.js +0 -50
package/README.md
CHANGED
|
@@ -112,12 +112,22 @@ gno daemon --detach # headless continuous indexing (background; --status / --st
|
|
|
112
112
|
|
|
113
113
|
<!-- public-truth:current-version -->
|
|
114
114
|
|
|
115
|
-
> Current release: **v1.
|
|
115
|
+
> Current release: **v1.29.0** — see [CHANGELOG.md](./CHANGELOG.md)
|
|
116
116
|
|
|
117
117
|
<!-- /public-truth -->
|
|
118
118
|
|
|
119
119
|
> Full release history: [CHANGELOG.md](./CHANGELOG.md)
|
|
120
120
|
|
|
121
|
+
- **Trustworthy local context compiler**: deterministic Context Capsules replace
|
|
122
|
+
repeated agent `query → get → multi-get` orchestration with one bounded,
|
|
123
|
+
citation-complete evidence handoff. The promoted benchmark retained 100%
|
|
124
|
+
completion accuracy while reducing retrieval calls by 48.94% and
|
|
125
|
+
model-visible context by 44.12%, with 100% exact claim-span linkage.
|
|
126
|
+
- **Verified answers and private quality learning**: opt-in verified Ask checks
|
|
127
|
+
every substantive claim against one closed Capsule and abstains below complete
|
|
128
|
+
support. Local traces, explicit judgments, content-free qrels export, and
|
|
129
|
+
read-only replay turn real misses into regression evidence without automatic
|
|
130
|
+
personalization.
|
|
121
131
|
- **Project-aware retrieval affinity**: trusted local CLI searches can use the
|
|
122
132
|
current workspace or explicit `--project-root` values as a transparent,
|
|
123
133
|
explainable `+0.03` soft ranking signal. Filters remain hard, and untrusted
|
|
@@ -147,6 +157,18 @@ gno daemon --detach # headless continuous indexing (background; --status / --st
|
|
|
147
157
|
capture. A loopback `gno serve` pairing, server-owned preview, exact
|
|
148
158
|
provenance, and idempotent recovery protect every write; no history, cookies,
|
|
149
159
|
remote fetch, store listing, or Firefox parity is claimed.
|
|
160
|
+
- **Verified setup and portable project profiles**: `gno setup <folder>` proves
|
|
161
|
+
an exact lexical result before success; optional `.gno/index.yml` profiles
|
|
162
|
+
carry explicit collection, context, model, content-type, and project-affinity
|
|
163
|
+
intent without storing the index in the repository.
|
|
164
|
+
- **Portable export adapters**: JSONL/NDJSON, EML/MBOX, ICS, WebVTT/SRT,
|
|
165
|
+
explicit browser exports, and configured transcript exports become bounded,
|
|
166
|
+
read-only logical records with exact file provenance—never live-account
|
|
167
|
+
connectors.
|
|
168
|
+
- **Collection-owned egress policy**: every collection has an effective
|
|
169
|
+
`local_only`, `lan`, or `remote` boundary that follows mixed and derived
|
|
170
|
+
evidence through resident serving, inference, publishing, exports, Capsules,
|
|
171
|
+
and traces. Authentication never overrides policy.
|
|
150
172
|
- **Schema-lite content types**: optional `contentTypes` rules map configured
|
|
151
173
|
frontmatter `type` values or path prefixes to canonical `contentType` metadata
|
|
152
174
|
in JSON search/query results and can apply one bounded, explainable
|
|
@@ -898,25 +920,29 @@ graph TD
|
|
|
898
920
|
|
|
899
921
|
## Features
|
|
900
922
|
|
|
901
|
-
| Feature | Description
|
|
902
|
-
| :------------------- |
|
|
903
|
-
| **Hybrid Search** | BM25 + vector + RRF fusion + cross-encoder reranking
|
|
904
|
-
| **Document Editor** | Create, edit, delete docs with live markdown preview
|
|
905
|
-
| **Web UI** | Visual dashboard for search, browse, edit, and AI Q&A
|
|
906
|
-
| **REST API** | HTTP API for custom tools and integrations
|
|
907
|
-
| **Multi-Format** | Markdown, PDF, Office, JSONL, EML/MBOX, ICS, transcript, and browser exports
|
|
908
|
-
| **Local LLM** | AI answers via llama.cpp, no API keys
|
|
909
|
-
| **Remote Inference** | Optional HTTP endpoints for embedding, reranking, expansion, and generation
|
|
910
|
-
| **Privacy First** |
|
|
911
|
-
| **MCP Server** | 10 automatic client targets; 25 read-only tools, 40 with writes enabled
|
|
912
|
-
| **Knowledge Delta** | Bounded metadata history, structural diffs, and dependency impact paths
|
|
913
|
-
| **Context Capsules** | Deterministic evidence bundles plus saved-file freshness reverification
|
|
914
|
-
| **
|
|
915
|
-
| **
|
|
916
|
-
| **
|
|
917
|
-
| **
|
|
918
|
-
| **
|
|
919
|
-
| **
|
|
923
|
+
| Feature | Description |
|
|
924
|
+
| :------------------- | :------------------------------------------------------------------------------------------ |
|
|
925
|
+
| **Hybrid Search** | BM25 + vector + RRF fusion + cross-encoder reranking |
|
|
926
|
+
| **Document Editor** | Create, edit, delete docs with live markdown preview |
|
|
927
|
+
| **Web UI** | Visual dashboard for search, browse, edit, and AI Q&A |
|
|
928
|
+
| **REST API** | HTTP API for custom tools and integrations |
|
|
929
|
+
| **Multi-Format** | Markdown, PDF, Office, JSONL, EML/MBOX, ICS, transcript, and browser exports |
|
|
930
|
+
| **Local LLM** | AI answers via llama.cpp, no API keys |
|
|
931
|
+
| **Remote Inference** | Optional HTTP endpoints for embedding, reranking, expansion, and generation |
|
|
932
|
+
| **Privacy First** | Fail-closed per-collection egress policy; no telemetry; explicit network use |
|
|
933
|
+
| **MCP Server** | 10 automatic client targets; 25 read-only tools, 40 with writes enabled |
|
|
934
|
+
| **Knowledge Delta** | Bounded metadata history, structural diffs, and dependency impact paths |
|
|
935
|
+
| **Context Capsules** | Deterministic evidence bundles plus saved-file freshness reverification |
|
|
936
|
+
| **Verified Ask** | Claim-by-claim evidence checks with explicit abstention |
|
|
937
|
+
| **Private Replay** | Opt-in local traces, explicit qrels, and read-only ranking comparison |
|
|
938
|
+
| **Verified Setup** | Exact lexical activation proof plus portable project-local profiles |
|
|
939
|
+
| **Browser Clipper** | Explicit selection/Reader capture through visible loopback pairing |
|
|
940
|
+
| **Collections** | Organize sources with patterns, contexts, and <code>local_only / lan / remote</code> policy |
|
|
941
|
+
| **Tag Filtering** | Frontmatter tags with hierarchical paths, filter via `--tags-any`/`--tags-all` |
|
|
942
|
+
| **Note Linking** | Wiki links, backlinks, related notes, cross-collection navigation |
|
|
943
|
+
| **Multilingual** | Query classification, 7-language document detection, multilingual embeddings |
|
|
944
|
+
| **Incremental** | SHA-256 tracking, only changed files re-indexed |
|
|
945
|
+
| **Keyboard First** | ⌘N capture, ⌘K search, ⌘/ shortcuts, ⌘S save |
|
|
920
946
|
|
|
921
947
|
---
|
|
922
948
|
|
package/assets/skill/SKILL.md
CHANGED
|
@@ -269,6 +269,39 @@ Treat replay as evidence for a human promotion decision. It always reports
|
|
|
269
269
|
`applied: false`; never claim that replay changed boosts, prompts, models,
|
|
270
270
|
configuration, traces, or source files.
|
|
271
271
|
|
|
272
|
+
## Collection Egress Boundaries
|
|
273
|
+
|
|
274
|
+
Before any non-loopback serving, remote model call, network export, or publish
|
|
275
|
+
handoff, inspect the participating collections instead of inferring permission
|
|
276
|
+
from authentication:
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
gno collection policy get <collection>
|
|
280
|
+
gno collection policy check --action <action> \
|
|
281
|
+
--destination <local_process|loopback|lan|remote> \
|
|
282
|
+
--content-class <class> -c <collection> --explain-egress
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
Absent and migrated policies are `local_only`. Mixed evidence and derived
|
|
286
|
+
artifacts inherit the most restrictive source policy. Do not silently omit a
|
|
287
|
+
restricted collection; use explicit partial mode only when the user asks for
|
|
288
|
+
it, then report every omitted collection and reason.
|
|
289
|
+
|
|
290
|
+
Relaxing to `lan` or `remote` is a visible user-authorized write. Read the
|
|
291
|
+
current revision with `get`, then use
|
|
292
|
+
`gno collection policy set <collection> <policy> --confirm-relaxation <revision>`.
|
|
293
|
+
Never invent or reuse a revision. Tightening to `local_only` needs no
|
|
294
|
+
confirmation and invalidates active sessions, streams, and queued work.
|
|
295
|
+
|
|
296
|
+
Bearer authentication, MCP write enablement, and collection policy are
|
|
297
|
+
independent gates. `EGRESS_DENIED` is not permission to retry through another
|
|
298
|
+
surface. Audit output is local and content-free via
|
|
299
|
+
`gno egress-audit list|show|status`; deletion/purge must be explicit. A local
|
|
300
|
+
policy change cannot retract data already uploaded—tell the user to remove it
|
|
301
|
+
at the remote service. For gno.sh, supported private links can be revoked or
|
|
302
|
+
expired in Studio; public-space deletion is not yet self-service, so request
|
|
303
|
+
takedown. Encrypted gno.sh shares are client-encrypted and never server-decrypted.
|
|
304
|
+
|
|
272
305
|
## MCP Retrieval Strategy
|
|
273
306
|
|
|
274
307
|
For a long-lived client that supports Streamable HTTP, start one resident owner
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3ea69fe6de5e72a28f8e7f500edc351c53802639ac320806ca5588070cb7e1c1 gno-browser-clipper-v1.29.0.zip
|