@gmickel/gno 0.20.0 → 0.21.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 +9 -1
- package/package.json +1 -1
- package/src/cli/commands/ask.ts +1 -0
- package/src/cli/program.ts +17 -0
package/README.md
CHANGED
|
@@ -32,7 +32,15 @@ GNO is a local knowledge engine that turns your documents into a searchable, con
|
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
35
|
-
## What's New in v0.
|
|
35
|
+
## What's New in v0.21
|
|
36
|
+
|
|
37
|
+
- **Ask CLI Query Modes**: `gno ask` now accepts repeatable `--query-mode term|intent|hyde` entries, matching the existing Ask API and Web controls
|
|
38
|
+
|
|
39
|
+
### v0.20
|
|
40
|
+
|
|
41
|
+
- **Improved Model Init Fallbacks**: upgraded `node-llama-cpp` to `3.17.1` and switched to `build: "autoAttempt"` for better backend selection/fallback behavior
|
|
42
|
+
|
|
43
|
+
### v0.19
|
|
36
44
|
|
|
37
45
|
- **Exclusion Filters**: explicit `exclude` controls across CLI, API, Web, and MCP to hard-prune unwanted docs by title/path/body text
|
|
38
46
|
- **Ask Query-Mode Parity**: Ask now supports structured `term` / `intent` / `hyde` controls in both API and Web UI
|
package/package.json
CHANGED
package/src/cli/commands/ask.ts
CHANGED
|
@@ -200,6 +200,7 @@ export async function ask(
|
|
|
200
200
|
tagsAll: options.tagsAll,
|
|
201
201
|
tagsAny: options.tagsAny,
|
|
202
202
|
exclude: options.exclude,
|
|
203
|
+
queryModes: options.queryModes,
|
|
203
204
|
noExpand: options.noExpand,
|
|
204
205
|
noRerank: options.noRerank,
|
|
205
206
|
candidateLimit: options.candidateLimit,
|
package/src/cli/program.ts
CHANGED
|
@@ -608,6 +608,12 @@ function wireSearchCommands(program: Command): void {
|
|
|
608
608
|
"--exclude <values>",
|
|
609
609
|
"exclude docs containing any term (comma-separated)"
|
|
610
610
|
)
|
|
611
|
+
.option(
|
|
612
|
+
"--query-mode <mode:text>",
|
|
613
|
+
"structured mode entry (repeatable): term:<text>, intent:<text>, or hyde:<text>",
|
|
614
|
+
(value: string, previous: string[] = []) => [...previous, value],
|
|
615
|
+
[]
|
|
616
|
+
)
|
|
611
617
|
.option("--fast", "skip expansion and reranking (fastest)")
|
|
612
618
|
.option("--thorough", "enable query expansion (slower)")
|
|
613
619
|
.option("-C, --candidate-limit <num>", "max candidates passed to reranking")
|
|
@@ -640,6 +646,16 @@ function wireSearchCommands(program: Command): void {
|
|
|
640
646
|
const categories = parseCsvValues(cmdOpts.category);
|
|
641
647
|
const exclude = parseCsvValues(cmdOpts.exclude);
|
|
642
648
|
|
|
649
|
+
let queryModes: import("../pipeline/types").QueryModeInput[] | undefined;
|
|
650
|
+
if (Array.isArray(cmdOpts.queryMode) && cmdOpts.queryMode.length > 0) {
|
|
651
|
+
const { parseQueryModeSpecs } = await import("../pipeline/query-modes");
|
|
652
|
+
const parsed = parseQueryModeSpecs(cmdOpts.queryMode as string[]);
|
|
653
|
+
if (!parsed.ok) {
|
|
654
|
+
throw new CliError("VALIDATION", parsed.error.message);
|
|
655
|
+
}
|
|
656
|
+
queryModes = parsed.value;
|
|
657
|
+
}
|
|
658
|
+
|
|
643
659
|
// Determine expansion/rerank settings based on flags
|
|
644
660
|
// Default: skip expansion (balanced mode)
|
|
645
661
|
let noExpand = true;
|
|
@@ -665,6 +681,7 @@ function wireSearchCommands(program: Command): void {
|
|
|
665
681
|
author: cmdOpts.author as string | undefined,
|
|
666
682
|
intent: cmdOpts.intent as string | undefined,
|
|
667
683
|
exclude,
|
|
684
|
+
queryModes,
|
|
668
685
|
noExpand,
|
|
669
686
|
noRerank,
|
|
670
687
|
candidateLimit,
|