@gmickel/gno 1.34.3 → 1.34.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
@@ -117,7 +117,7 @@ gno daemon --detach # headless indexing + resident MCP gateway
117
117
 
118
118
  <!-- public-truth:current-version -->
119
119
 
120
- > Current release: **v1.34.3** — see [CHANGELOG.md](./CHANGELOG.md)
120
+ > Current release: **v1.34.5** — see [CHANGELOG.md](./CHANGELOG.md)
121
121
 
122
122
  <!-- /public-truth -->
123
123
 
@@ -2,6 +2,22 @@
2
2
 
3
3
  This project includes the following third-party components:
4
4
 
5
+ ## less-pager-mini
6
+
7
+ - **License**: MIT
8
+ - **Copyright**: Dawson Huang
9
+ - **Project URL**: https://github.com/dawsonhuang0/Less-Pager-Mini
10
+
11
+ Installed as a runtime dependency to provide the built-in Windows terminal pager.
12
+
13
+ ## char-width
14
+
15
+ - **License**: MIT
16
+ - **Copyright**: Dawson Huang
17
+ - **Project URL**: https://github.com/legend80s/char-width
18
+
19
+ Installed transitively by `less-pager-mini` for terminal display-width calculation.
20
+
5
21
  ## fts5-snowball
6
22
 
7
23
  - **Source**: vendored under `vendor/fts5-snowball/`
@@ -0,0 +1 @@
1
+ 76359ca49f27bb28c897a0e6620e4a151734be0e100530be67b9915b369c0b0e gno-browser-clipper-v1.34.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.34.3"
24
+ "version": "1.34.5"
25
25
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gmickel/gno",
3
- "version": "1.34.3",
3
+ "version": "1.34.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",
@@ -176,6 +176,7 @@
176
176
  "embla-carousel-react": "8.6.0",
177
177
  "franc": "6.2.0",
178
178
  "jsonc-parser": "3.3.1",
179
+ "less-pager-mini": "1.12.1",
179
180
  "lucide-react": "1.28.0",
180
181
  "markitdown-ts": "0.0.10",
181
182
  "mdast-util-from-markdown": "2.0.3",
package/spec/cli.md CHANGED
@@ -3496,16 +3496,16 @@ Error codes match exit codes: `VALIDATION` (exit 1), `RUNTIME` (exit 2), `NOT_RU
3496
3496
 
3497
3497
  ## Environment Variables
3498
3498
 
3499
- | Variable | Description |
3500
- | -------------------------- | ------------------------------------------------ |
3501
- | `GNO_CONFIG_DIR` | Override config directory |
3502
- | `GNO_DATA_DIR` | Override data directory (DB location) |
3503
- | `GNO_CACHE_DIR` | Override cache directory (models) |
3504
- | `NO_COLOR` | Disable colored output (standard) |
3505
- | `PAGER` | Pager for long output (default: less -R, more) |
3506
- | `GNO_SKILLS_HOME_OVERRIDE` | Override home dir for skill user scope (testing) |
3507
- | `CLAUDE_SKILLS_DIR` | Override Claude skills directory |
3508
- | `CODEX_SKILLS_DIR` | Override Codex skills directory |
3499
+ | Variable | Description |
3500
+ | -------------------------- | --------------------------------------------------------------------- |
3501
+ | `GNO_CONFIG_DIR` | Override config directory |
3502
+ | `GNO_DATA_DIR` | Override data directory (DB location) |
3503
+ | `GNO_CACHE_DIR` | Override cache directory (models) |
3504
+ | `NO_COLOR` | Disable colored output (standard) |
3505
+ | `PAGER` | Pager for long output (default: less -R on Unix, built-in on Windows) |
3506
+ | `GNO_SKILLS_HOME_OVERRIDE` | Override home dir for skill user scope (testing) |
3507
+ | `CLAUDE_SKILLS_DIR` | Override Claude skills directory |
3508
+ | `CODEX_SKILLS_DIR` | Override Codex skills directory |
3509
3509
 
3510
3510
  ---
3511
3511
 
package/src/cli/pager.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Pager utility for long CLI output.
3
- * Pipes output through less/more when terminal height exceeded.
3
+ * Pipes output through less or an in-process Windows pager when terminal height exceeded.
4
4
  *
5
5
  * @module src/cli/pager
6
6
  */
@@ -25,26 +25,32 @@ export interface PagerOptions {
25
25
 
26
26
  /**
27
27
  * Find available pager command.
28
- * Priority: $PAGER env → less (with -R for colors) → more
28
+ * Priority: $PAGER env → built-in Windows pager → less (with -R for colors)
29
29
  */
30
- function findPager(): string[] | null {
30
+ export type PagerTarget =
31
+ | { kind: "external"; command: string[] }
32
+ | { kind: "internal" };
33
+
34
+ export function findPager(
35
+ env: NodeJS.ProcessEnv = process.env,
36
+ platformName: NodeJS.Platform = platform()
37
+ ): PagerTarget {
31
38
  // Check $PAGER env first (cross-platform)
32
- const pagerEnv = process.env.PAGER;
39
+ const pagerEnv = env.PAGER;
33
40
  if (pagerEnv) {
34
41
  // Split in case user has args like "less -R"
35
- return pagerEnv.split(/\s+/);
42
+ return { kind: "external", command: pagerEnv.split(/\s+/) };
36
43
  }
37
44
 
38
45
  // Platform-specific fallbacks
39
- const isWindows = platform() === "win32";
46
+ const isWindows = platformName === "win32";
40
47
 
41
48
  if (isWindows) {
42
- // Windows: use more.com (basic but universally available)
43
- return ["more.com"];
49
+ return { kind: "internal" };
44
50
  }
45
51
 
46
52
  // Unix: prefer less with -R (preserve ANSI colors)
47
- return ["less", "-R"];
53
+ return { kind: "external", command: ["less", "-R"] };
48
54
  }
49
55
 
50
56
  /**
@@ -136,15 +142,24 @@ export class Pager {
136
142
  }
137
143
 
138
144
  // Try to spawn pager
139
- const pagerCmd = findPager();
140
- if (!pagerCmd) {
141
- // No pager available, write directly
142
- process.stdout.write(content + "\n");
145
+ const pagerTarget = findPager();
146
+ if (pagerTarget.kind === "internal") {
147
+ await this.runInProcessPager(content);
143
148
  return;
144
149
  }
145
150
 
146
151
  // Spawn pager and pipe content
147
- await this.spawnPager(pagerCmd, content);
152
+ await this.spawnPager(pagerTarget.command, content);
153
+ }
154
+
155
+ /** Use a less-compatible terminal UI on Windows without an external binary. */
156
+ private async runInProcessPager(content: string): Promise<void> {
157
+ try {
158
+ const { default: pager } = await import("less-pager-mini");
159
+ await pager(content, { LESS: "-R" });
160
+ } catch {
161
+ process.stdout.write(content + "\n");
162
+ }
148
163
  }
149
164
 
150
165
  /**
@@ -15,7 +15,11 @@ Prebuilt [fts5-snowball](https://github.com/abiliojr/fts5-snowball) SQLite exten
15
15
 
16
16
  Built via GitHub Actions: `.github/workflows/build-fts5-snowball.yml`
17
17
 
18
- Source: https://github.com/abiliojr/fts5-snowball (commit from main branch)
18
+ Source: https://github.com/abiliojr/fts5-snowball at commit
19
+ `f2a5450af5ce810cc3f981ff1ea8de2b4ff82a67`.
20
+
21
+ The macOS build jobs verify the runner architecture, the emitted Mach-O
22
+ architecture, and a real stemming query through Homebrew SQLite before upload.
19
23
 
20
24
  ## Supported Languages
21
25
 
@@ -1 +0,0 @@
1
- 9d23588e6deda45725d324ca310d4b8afb2a79a8ecdb0353972c376853b35244 gno-browser-clipper-v1.34.3.zip