nusus 0.4.1 → 0.6.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 CHANGED
@@ -1,13 +1,85 @@
1
1
  # Nusus
2
2
 
3
- TypeScript SDK **and agent CLI** for searching and citing classical Islamic and Arabic texts through [Turath](https://app.turath.io/), a Shamela-style digital library. Use Nusus to retrieve source text, metadata, citations, locators, and direct links from Arabic heritage books for research tools and AI agents. The `nusus` binary ships in the same npm package as the SDK.
3
+ TypeScript SDK, **agent CLI, and local MCP server** for searching and citing classical Islamic and Arabic texts through [Turath](https://app.turath.io/), a Shamela-style digital library. Use Nusus to retrieve source text, metadata, citations, locators, and direct links from Arabic heritage books for research tools and AI agents. The `nusus` binary ships with the SDK; the optional MCP server ships as [`nusus-mcp`](https://www.npmjs.com/package/nusus-mcp).
4
+
5
+ **Links:** [npm](https://www.npmjs.com/package/nusus) · [GitHub](https://github.com/mwijanarko1/nusus)
6
+
7
+ ## Which interface do I need?
8
+
9
+ All three wrap the same retrieval core and return the same citations. Pick by how you (or your agent) work:
10
+
11
+ | You are… | Use | Setup |
12
+ | --- | --- | --- |
13
+ | Chatting in an MCP app (Claude Desktop, Cursor, …) | **MCP server** (`nusus-mcp`) | Paste a 6-line config → [Local MCP server](#local-mcp-server) |
14
+ | Using a coding agent with a terminal (pi, Claude Code, Codex, …) | **CLI** (`nusus`) | `npm install -g nusus` → [Set up an AI agent](#set-up-an-ai-agent) |
15
+ | In a terminal yourself | **CLI** (`nusus`) | `npm install -g nusus` → [Quick start](#quick-start-humans-or-ai-agents) |
16
+ | Writing TypeScript/JavaScript code | **SDK** (`nusus`) | `npm install nusus` → [SDK](#sdk) |
17
+
18
+ ## Quick start (humans or AI agents)
19
+
20
+ Needs **Node.js 20+** (ships with `npm`). If you already have that:
4
21
 
5
22
  ```bash
6
- npm install nusus
7
- # or
8
- bun add nusus
23
+ npm install -g nusus # or: npx nusus …
24
+ # or, in a project: npm install nusus / bun add nusus
25
+ nusus --help
9
26
  ```
10
27
 
28
+ ### No Node yet?
29
+
30
+ Install Node first, then run the commands above.
31
+
32
+ | OS | Easiest path |
33
+ | --- | --- |
34
+ | **Windows** | Install **[Node.js](https://nodejs.org/en/download/current)** (the `.msi` installer). Or in PowerShell (Windows 10+): `winget install OpenJS.NodeJS.LTS` |
35
+ | **macOS** | Install **[Node.js](https://nodejs.org/en/download/current)** (the `.pkg` installer). Homebrew is optional: `brew install node` |
36
+ | **Linux** | Install **[Node.js](https://nodejs.org/en/download/current)** from the Node site, or your distro (`apt`/`dnf`/etc.). |
37
+
38
+ You do **not** need Homebrew, Bun, Claude Desktop, or a local Shamela library. After Node is installed, open a **new** terminal and check:
39
+
40
+ ```bash
41
+ node -v # v20 or newer
42
+ npm -v
43
+ ```
44
+
45
+ ## Set up an AI agent
46
+
47
+ Nusus works with AI agents three ways. Use whichever matches your agent — they expose the same tools and citations.
48
+
49
+ ### 1. Coding agents with a terminal (pi, Claude Code, Codex, Cursor agents, …)
50
+
51
+ These agents can run shell commands, so the CLI needs zero configuration. Give your agent the npm or GitHub link and this prompt:
52
+
53
+ ```
54
+ Set up Nusus for classical Islamic text research via Turath.
55
+
56
+ Package: https://www.npmjs.com/package/nusus
57
+ Repo: https://github.com/mwijanarko1/nusus
58
+
59
+ 1. If `node -v` is missing or older than v20, install Node.js from https://nodejs.org/en/download/current (Windows: .msi or `winget install OpenJS.NodeJS.LTS`; macOS: .pkg or `brew install node`; Linux: Node from that page or the distro package manager). Open a new shell after install.
60
+ 2. Install the CLI: `npm install -g nusus` (or use `npx nusus …` without a global install).
61
+ 3. Research with the CLI (prefer these tools):
62
+ - nusus find-books "<title>" / nusus find-authors "<name>"
63
+ - nusus retrieve "<query>" --max-passages 5 --max-chars 2000
64
+ - nusus search "<query>" --book-id <id> after resolving the book
65
+ - nusus get-page / get-context / get-book for a specific page or TOC
66
+ 4. Always cite book + page + URL from the output. page-id is Turath internal page, not printed page. Retrieval only — no fatwas.
67
+
68
+ Topic: [YOUR QUESTION]
69
+ ```
70
+
71
+ For a reusable version of these instructions, install [`docs/turath-research-SKILL.md`](docs/turath-research-SKILL.md) as an agent skill.
72
+
73
+ ### 2. MCP apps (Claude Desktop, Cursor, and other MCP clients)
74
+
75
+ If your agent lives in an app that supports the [Model Context Protocol](https://modelcontextprotocol.io/), add the [`nusus-mcp`](https://www.npmjs.com/package/nusus-mcp) server instead — no terminal use by the agent, tools appear natively. Config and details: [Local MCP server](#local-mcp-server).
76
+
77
+ ### 3. Agents you are building in code
78
+
79
+ Call the [SDK](#sdk) directly — `retrieve()` returns bounded, citation-carrying passages designed to drop into a prompt, and you can wire it up as a custom tool in any agent framework.
80
+
81
+ ## SDK
82
+
11
83
  ```ts
12
84
  import { createTurathClient } from "nusus/turath";
13
85
 
@@ -68,8 +140,10 @@ nusus retrieve "النية" --max-passages 3 --max-chars 2000
68
140
 
69
141
  # Page / metadata (live)
70
142
  nusus get-page --book-id 147927 --page-id 5
143
+ nusus get-pages --book-id 147927 --from 5 --to 7
71
144
  nusus get-context --book-id 147927 --page-id 5 --pages-before 1 --pages-after 1
72
145
  nusus get-book 147927
146
+ nusus find-toc "الحديث الأول" --book-id 147927 --limit 10
73
147
  nusus get-author 44
74
148
  ```
75
149
 
@@ -77,9 +151,10 @@ Default stdout is **JSONL** (one object per line, camelCase, every line has `typ
77
151
 
78
152
  | Record `type` | Commands |
79
153
  | --- | --- |
80
- | `meta` | First line of `find-books`, `find-authors`, `search`, `retrieve` |
154
+ | `meta` | First line of `find-books`, `find-authors`, `search`, `retrieve`, `get-pages`, `find-toc` |
81
155
  | `book` / `author` / `category` / `catalog` | Discovery + `get-book` / `get-author` |
82
- | `passage` | `search`, `retrieve`, `get-page`, `get-context` |
156
+ | `passage` | `search`, `retrieve`, `get-page`, `get-pages`, `get-context` |
157
+ | `toc-entry` | `find-toc` |
83
158
 
84
159
  | Exit | Meaning |
85
160
  | --- | --- |
@@ -92,6 +167,50 @@ Default stdout is **JSONL** (one object per line, camelCase, every line has `typ
92
167
 
93
168
  Repo layout and module boundaries: [`docs/CODEBASE_MAP.md`](docs/CODEBASE_MAP.md). Agent skill copy: [`docs/turath-research-SKILL.md`](docs/turath-research-SKILL.md).
94
169
 
170
+ ## Local MCP server
171
+
172
+ [`nusus-mcp`](https://www.npmjs.com/package/nusus-mcp) is an optional stdio server for MCP clients. It exposes five tools: `find_books`, `find_authors`, `retrieve`, `get_context`, and `get_book`. Requires Node.js 20+ (see [Quick start](#quick-start-humans-or-ai-agents)); nothing else to install — `npx` fetches the package on first launch.
173
+
174
+ **Claude Desktop:** add this to `claude_desktop_config.json` (Settings → Developer → Edit Config) and restart the app:
175
+
176
+ ```json
177
+ {
178
+ "mcpServers": {
179
+ "nusus": {
180
+ "command": "npx",
181
+ "args": ["-y", "nusus-mcp"]
182
+ }
183
+ }
184
+ }
185
+ ```
186
+
187
+ **Other MCP clients** (Cursor, VS Code, etc.): register the same stdio server — command `npx`, args `["-y", "nusus-mcp"]` — using that client's MCP settings.
188
+
189
+ ### Paste this to an AI agent to install it for you
190
+
191
+ If you have any coding agent with shell access (pi, Claude Code, Codex, Cursor, …), paste this and it will configure the MCP server in your apps:
192
+
193
+ ```
194
+ Install the nusus-mcp MCP server (classical Islamic text research via Turath) into my MCP client apps.
195
+
196
+ Package: https://www.npmjs.com/package/nusus-mcp (local stdio server, no API key)
197
+
198
+ 1. Verify Node.js 20+: `node -v`. If missing/old, install from https://nodejs.org/en/download/current, then open a new shell.
199
+ 2. Server command for every client: command `npx`, args ["-y", "nusus-mcp"]. If the app launches with a limited PATH, use the absolute npx path from `which npx` / `where.exe npx` instead.
200
+ 3. Detect which of these apps I have and configure each one (create the file/entry if absent, MERGE into existing JSON — never overwrite other servers):
201
+ - Claude Desktop: add to "mcpServers" in claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/; Windows: %APPDATA%\Claude\; Linux: ~/.config/Claude/).
202
+ - Claude Code: run `claude mcp add nusus -- npx -y nusus-mcp`.
203
+ - Cursor: add to "mcpServers" in ~/.cursor/mcp.json (or .cursor/mcp.json in a project).
204
+ - VS Code: add to "servers" in the user mcp.json via the "MCP: Open User Configuration" command, type "stdio".
205
+ - Codex CLI: add to ~/.codex/config.toml: [mcp_servers.nusus] command = "npx" args = ["-y", "nusus-mcp"].
206
+ - ChatGPT: skip — it only supports remote MCP connectors, not local stdio servers.
207
+ 4. Verify: `npx -y nusus-mcp` should start and wait on stdin (Ctrl+C to exit). Tell me which apps you configured and that I must restart them.
208
+
209
+ Do not add API keys or env vars; none are needed. Optional: NUSUS_TURATH_BASE_URL overrides the Turath API base URL for testing.
210
+ ```
211
+
212
+ If the app cannot find `npx` because it starts with a limited `PATH`, use the absolute path from `which npx` (macOS/Linux) or `where.exe npx` (Windows). See [`mcp/README.md`](mcp/README.md) for tool arguments and development instructions.
213
+
95
214
  ## Known limitations
96
215
 
97
216
  Book and category discovery uses a bundled snapshot of 8,124 Turath books scanned in March 2026 because Turath does not expose verified catalog endpoints. Newly added or changed upstream records may therefore be absent until the snapshot is refreshed.
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,WAAW,GACX,cAAc,GACd,YAAY,GACZ,kBAAkB,GAClB,SAAS,CAAC;AAEd,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAG3B,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,OAAO,CAAC;KACZ;CAST"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,WAAW,GACX,cAAc,GACd,YAAY,GACZ,kBAAkB,GAClB,SAAS,CAAC;AAEd,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,YACE,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,OAAO,CAAC;KACZ,EAQP;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAC1B,IAAI,CAAiB;IACrB,MAAM,CAAU;IAChB,GAAG,CAAU;IACb,UAAU,CAAU;IAE7B,YACE,IAAoB,EACpB,OAAe,EACf,UAKI,EAAE;QAEN,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACvC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAC1B,IAAI,CAAiB;IACrB,MAAM,CAAU;IAChB,GAAG,CAAU;IACb,UAAU,CAAU;IAE7B,YACE,IAAoB,EACpB,OAAe,EACf,OAAO,GAKH,EAAE;QAEN,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACvC,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC;AAErC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAUF,eAAO,MAAM,eAAe,GAAI,wCAI7B,gBAAqB,MAQR,CAAC,EAAE,MAAM,MAAM,EAAE,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC,CAAC,CA6CrH,CAAC"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC;AAErC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAUF,eAAO,MAAM,eAAe,2CAIzB,gBAAgB,MAQH,CAAC,QAAQ,MAAM,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,WAAW,WAAW,KAAG,OAAO,CAAC,CAAC,CA6CrH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/turath/catalog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAItF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAyCF,eAAO,MAAM,kBAAkB,QAAO,eAarC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,cAAU,EAAE,UAAS,gBAAqB,KAAG,IAAI,EAkCjF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,EAAE,UAAS,kBAAuB,KAAG,MAAM,EAqB1F,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAO,QAAQ,EAShD,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,MAAM,EACU,CAAC"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/turath/catalog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAItF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAyCF,eAAO,MAAM,kBAAkB,QAAO,eAarC,CAAC;AAEF,eAAO,MAAM,gBAAgB,6BAAyB,gBAAgB,KAAQ,IAAI,EAkCjF,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAW,MAAM,YAAW,kBAAkB,KAAQ,MAAM,EAqB1F,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAO,QAAQ,EAShD,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,MAAM,EACU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/turath/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAY1F,MAAM,SAAS,GAAG,CAAC,KAAa,EAAU,EAAE,CAC1C,KAAK;KACF,SAAS,CAAC,MAAM,CAAC;KACjB,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC;KAC3C,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;KACvB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;KAClB,IAAI,EAAE;KACN,WAAW,EAAE,CAAC;AAEnB,MAAM,UAAU,GAAG,CAAC,KAAe,EAAE,IAAY,EAAU,EAAE;IAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,kBAAkB,EAAE,GAAG,IAAI,6BAA6B,CAAC,CAAC;IAC/G,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAE,QAAgB,EAAU,EAAE;IAC5E,MAAM,KAAK,GAAG,KAAK,IAAI,QAAQ,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,UAAU,CAAC,kBAAkB,EAAE,kCAAkC,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAEjG,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE;IAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,CAAC,EAAE,AAAD,EAAG,QAAQ,CAAC,IAAI,aAAa;QAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC,CAAC,EAAE,CAAC;AAEL,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAE,MAAc,EAAE,KAAe,EAAU,EAAE;IAChF,IAAI,SAAS,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC;IACnC,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAC9D,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAoB,EAAE;IACtD,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAAE,eAAe,IAAI,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO;QACL,SAAS,EAAE,kBAAkB;QAC7B,SAAS,EAAE,aAAa,CAAC,MAAM;QAC/B,aAAa,EAAE,kBAAkB,CAAC,MAAM;QACxC,aAAa,EAAE,eAAe,CAAC,IAAI;QACnC,eAAe;QACf,uBAAuB,EAAE,eAAe,CAAC,IAAI,GAAG,eAAe;KAChE,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,GAAG,EAAE,EAAE,UAA4B,EAAE,EAAU,EAAE;IACrF,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IAClF,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;IACzF,MAAM,SAAS,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,MAAM,WAAW,GAAG,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,IAAI,UAAU,CAAC,kBAAkB,EAAE,iEAAiE,CAAC,CAAC;IAC9G,CAAC;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhD,OAAO,aAAa;SACjB,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE;QACjD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,EAAE,CAAC;QACtD,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,OAAO,CAAC;gBACN,KAAK;gBACL,IAAI,EAAE;oBACJ,QAAQ,EAAE,QAAiB;oBAC3B,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;oBAClB,KAAK;oBACL,MAAM,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE;oBAClE,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE;iBACrC;aACF,CAAC,CAAC;IACL,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC5H,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;SACf,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,UAA8B,EAAE,EAAY,EAAE;IAC9F,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,UAAU,CAAC,kBAAkB,EAAE,yBAAyB,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAElC,OAAO,eAAe;SACnB,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvB,KAAK;gBACL,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAiB;oBAC3B,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC;oBACpB,IAAI;iBACL;aACF,CAAC,CAAC;IACL,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAClI,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;SACf,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAe,EAAE;IACpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,UAAU,CAAC,IAAI,aAAa;QAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1G,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,QAAQ,EAAE,QAAQ;QAClB,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC;QACtB,KAAK;QACL,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;KACvC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAa,EAAE,CACjD,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/turath/catalog.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"citations.d.ts","sourceRoot":"","sources":["../../src/turath/citations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC;AAE3E,eAAO,MAAM,YAAY,GAAI,QAAQ,cAAc,KAAG,MAMrD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,QAAQ,cAAc,KAAG,aAMlD,CAAC;AAEH,eAAO,MAAM,cAAc,GAAI,QAAQ,cAAc,KAAG,MAOvD,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,cAAc,EACtD,QAAQ,CAAC,KACR,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAK5D,CAAC"}
1
+ {"version":3,"file":"citations.d.ts","sourceRoot":"","sources":["../../src/turath/citations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC;AAE3E,eAAO,MAAM,YAAY,WAAY,cAAc,KAAG,MAMrD,CAAC;AAEF,eAAO,MAAM,UAAU,WAAY,cAAc,KAAG,aAMlD,CAAC;AAEH,eAAO,MAAM,cAAc,WAAY,cAAc,KAAG,MAOvD,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,cAAc,UAC9C,CAAC,KACR,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAK5D,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { Book, Passage, RetrievedContext, RetrieveScope, SearchPage, TurathId } from "../models.js";
2
2
  import { type TransportOptions } from "../transport.js";
3
3
  import { type CitationSource } from "./citations.js";
4
+ import { findCatalogAuthors, findCatalogBooks, getCatalogMetadata, listCatalogCategories } from "./catalog.js";
4
5
  export type RequestOptions = {
5
6
  signal?: AbortSignal;
6
7
  };
@@ -24,10 +25,10 @@ export type RetrieveOptions = RequestOptions & {
24
25
  };
25
26
  export type TurathClientOptions = TransportOptions;
26
27
  export declare const createTurathClient: (options?: TurathClientOptions) => {
27
- findBooks: (query?: string, options?: import("./catalog.js").FindBooksOptions) => Book[];
28
- findAuthors: (query: string, options?: import("./catalog.js").FindAuthorsOptions) => import("../models.js").Author[];
29
- listCategories: () => import("../models.js").Category[];
30
- getCatalogMetadata: () => import("../models.js").CatalogMetadata;
28
+ findBooks: typeof findCatalogBooks;
29
+ findAuthors: typeof findCatalogAuthors;
30
+ listCategories: typeof listCatalogCategories;
31
+ getCatalogMetadata: typeof getCatalogMetadata;
31
32
  getAuthor: (authorId: TurathId, { signal }?: RequestOptions) => Promise<import("../models.js").Author>;
32
33
  getBook: (bookId: TurathId, { signal }?: RequestOptions) => Promise<Book>;
33
34
  getPage: (bookId: TurathId, pageId: TurathId, { signal }?: RequestOptions) => Promise<Passage>;
@@ -38,6 +39,7 @@ export declare const createTurathClient: (options?: TurathClientOptions) => {
38
39
  search: (query: string, options?: TurathSearchOptions) => Promise<SearchPage>;
39
40
  searchAll: (query: string, options?: Omit<TurathSearchOptions, "page">) => AsyncGenerator<Passage>;
40
41
  getContext: (source: Passage, options?: ContextOptions) => Promise<Passage>;
42
+ getContextByPage: (bookId: TurathId, pageId: TurathId, options?: ContextOptions) => Promise<Passage>;
41
43
  retrieve: (query: string, options?: RetrieveOptions) => Promise<RetrievedContext>;
42
44
  formatCitation: (source: CitationSource) => string;
43
45
  getLocator: (source: CitationSource) => import("../models.js").SourceLocator;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/turath/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EACJ,OAAO,EAEP,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,QAAQ,EACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAA6D,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAWhH,MAAM,MAAM,cAAc,GAAG;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IACjD,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AA0BnD,eAAO,MAAM,kBAAkB,GAAI,UAAS,mBAAwB;;;;;0BAG/B,QAAQ,eAAc,cAAc;sBAOxC,QAAQ,eAAc,cAAc,KAAQ,OAAO,CAAC,IAAI,CAAC;sBAKzD,QAAQ,UAAU,QAAQ,eAAc,cAAc,KAAQ,OAAO,CAAC,OAAO,CAAC;uBASnG,QAAQ,SACT;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,eACvB,cAAc,KACzB,OAAO,CAAC,OAAO,EAAE,CAAC;oBAWQ,MAAM,YAAW,mBAAmB,KAAQ,OAAO,CAAC,UAAU,CAAC;uBA2BlD,MAAM,YAAW,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,KAAQ,cAAc,CAAC,OAAO,CAAC;yBAgBzF,OAAO,YAAW,cAAc,KAAQ,OAAO,CAAC,OAAO,CAAC;sBAuB3D,MAAM,YAAW,eAAe,KAAQ,OAAO,CAAC,gBAAgB,CAAC;6BAuDrE,cAAc;yBAClB,cAAc;2BACZ,cAAc;CAExC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/turath/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EACJ,OAAO,EAEP,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,QAAQ,EACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAA6D,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChH,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,cAAc,CAAC;AAKtB,MAAM,MAAM,cAAc,GAAG;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IACjD,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AA6BnD,eAAO,MAAM,kBAAkB,aAAa,mBAAmB;;;;;0BAG1B,QAAQ,eAAc,cAAc;sBAOxC,QAAQ,eAAc,cAAc,KAAQ,OAAO,CAAC,IAAI,CAAC;sBAKzD,QAAQ,UAAU,QAAQ,eAAc,cAAc,KAAQ,OAAO,CAAC,OAAO,CAAC;uBA6BnG,QAAQ,SACT;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,eACvB,cAAc,KACzB,OAAO,CAAC,OAAO,EAAE,CAAC;oBASQ,MAAM,YAAW,mBAAmB,KAAQ,OAAO,CAAC,UAAU,CAAC;uBA2BlD,MAAM,YAAW,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,KAAQ,cAAc,CAAC,OAAO,CAAC;yBAmDzF,OAAO,YAAW,cAAc,KAAQ,OAAO,CAAC,OAAO,CAAC;+BAiBhF,QAAQ,UACR,QAAQ,YACP,cAAc,KACtB,OAAO,CAAC,OAAO,CAAC;sBAWY,MAAM,YAAW,eAAe,KAAQ,OAAO,CAAC,gBAAgB,CAAC;6BAwDrE,cAAc;yBAClB,cAAc;2BACZ,cAAc;CAExC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -25,6 +25,8 @@ const only = (values, name) => {
25
25
  return id(values[0], name);
26
26
  };
27
27
  const emptyObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value) && Object.keys(value).length === 0;
28
+ /** Parallel page fetches for multi-page context; bounded for large ranges. */
29
+ const PAGE_FETCH_CONCURRENCY = 6;
28
30
  export const createTurathClient = (options = {}) => {
29
31
  const request = createTransport(options);
30
32
  const getAuthor = async (authorId, { signal } = {}) => {
@@ -46,15 +48,30 @@ export const createTurathClient = (options = {}) => {
46
48
  throw new NususError("NOT_FOUND", `Book ${book}, page ${page} not found`);
47
49
  return normalizePage(raw, book);
48
50
  };
51
+ const fetchPagesConcurrent = async (book, pageNumbers, signal) => {
52
+ if (!pageNumbers.length)
53
+ return [];
54
+ const results = new Array(pageNumbers.length);
55
+ let cursor = 0;
56
+ const worker = async () => {
57
+ while (cursor < pageNumbers.length) {
58
+ const index = cursor;
59
+ cursor += 1;
60
+ results[index] = await getPage(book, pageNumbers[index], { signal });
61
+ }
62
+ };
63
+ const workers = Math.min(PAGE_FETCH_CONCURRENCY, pageNumbers.length);
64
+ await Promise.all(Array.from({ length: workers }, worker));
65
+ return results;
66
+ };
49
67
  const getPages = async (bookId, range, { signal } = {}) => {
50
68
  integer(range.from, "from", 1);
51
69
  integer(range.to, "to", range.from);
52
- // ponytail: sequential page fetches; add bounded concurrency if large ranges get slow (Phase 3)
53
- const pages = [];
54
- for (let page = range.from; page <= range.to; page += 1) {
55
- pages.push(await getPage(bookId, page, { signal }));
56
- }
57
- return pages;
70
+ const book = id(bookId, "book id");
71
+ const pageNumbers = [];
72
+ for (let page = range.from; page <= range.to; page += 1)
73
+ pageNumbers.push(page);
74
+ return fetchPagesConcurrent(book, pageNumbers, signal);
58
75
  };
59
76
  const search = async (query, options = {}) => {
60
77
  if (!query.trim())
@@ -95,23 +112,26 @@ export const createTurathClient = (options = {}) => {
95
112
  page += 1;
96
113
  }
97
114
  };
98
- const getContext = async (source, options = {}) => {
99
- const center = source.location.internalPage;
100
- if (center === undefined)
101
- throw new NususError("INVALID_ARGUMENT", "passage has no internal page");
102
- integer(center, "internal page", 1);
103
- const before = integer(options.pagesBefore ?? 1, "pagesBefore");
104
- const after = integer(options.pagesAfter ?? 1, "pagesAfter");
105
- const pages = [];
106
- for (let page = Math.max(1, center - before); page <= center + after; page += 1) {
115
+ const fetchPageRange = async (book, from, to, center, signal) => {
116
+ const pageNumbers = [];
117
+ for (let page = from; page <= to; page += 1)
118
+ pageNumbers.push(page);
119
+ const fetched = await Promise.all(pageNumbers.map(async (page) => {
107
120
  try {
108
- pages.push(await getPage(source.book.id, page, { signal: options.signal }));
121
+ return { page, passage: await getPage(book, page, { signal }) };
109
122
  }
110
123
  catch (error) {
111
124
  if (!(error instanceof NususError) || error.code !== "NOT_FOUND" || page === center)
112
125
  throw error;
126
+ return undefined;
113
127
  }
114
- }
128
+ }));
129
+ return fetched
130
+ .filter((entry) => entry !== undefined)
131
+ .sort((a, b) => a.page - b.page)
132
+ .map((entry) => entry.passage);
133
+ };
134
+ const buildContextPassage = (source, pages) => {
115
135
  const headings = [...new Set(pages.flatMap((page) => page.headings))];
116
136
  return decoratePassage({
117
137
  ...source,
@@ -120,6 +140,27 @@ export const createTurathClient = (options = {}) => {
120
140
  raw: pages.map((page) => page.raw),
121
141
  });
122
142
  };
143
+ const getContext = async (source, options = {}) => {
144
+ const center = source.location.internalPage;
145
+ if (center === undefined)
146
+ throw new NususError("INVALID_ARGUMENT", "passage has no internal page");
147
+ integer(center, "internal page", 1);
148
+ const before = integer(options.pagesBefore ?? 1, "pagesBefore");
149
+ const after = integer(options.pagesAfter ?? 1, "pagesAfter");
150
+ const pages = await fetchPageRange(source.book.id, Math.max(1, center - before), center + after, center, options.signal);
151
+ return buildContextPassage(source, pages);
152
+ };
153
+ const getContextByPage = async (bookId, pageId, options = {}) => {
154
+ const book = id(bookId, "book id");
155
+ const center = integer(Number(id(pageId, "page id")), "page id", 1);
156
+ const before = integer(options.pagesBefore ?? 1, "pagesBefore");
157
+ const after = integer(options.pagesAfter ?? 1, "pagesAfter");
158
+ const pages = await fetchPageRange(book, Math.max(1, center - before), center + after, center, options.signal);
159
+ const centerPage = pages.find((page) => page.location.internalPage === center);
160
+ if (!centerPage)
161
+ throw new NususError("NOT_FOUND", `Book ${book}, page ${center} not found`);
162
+ return buildContextPassage(centerPage, pages);
163
+ };
123
164
  const retrieve = async (query, options = {}) => {
124
165
  const maxPassages = integer(options.maxPassages ?? 5, "maxPassages", 1);
125
166
  const maxChars = integer(options.maxCharsPerPassage ?? 4_000, "maxCharsPerPassage", 1);
@@ -173,6 +214,7 @@ export const createTurathClient = (options = {}) => {
173
214
  search,
174
215
  searchAll,
175
216
  getContext,
217
+ getContextByPage,
176
218
  retrieve,
177
219
  formatCitation: (source) => formatCitation(source),
178
220
  getLocator: (source) => getLocator(source),
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/turath/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/turath/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"excerpt.d.ts","sourceRoot":"","sources":["../../src/turath/excerpt.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAI9E,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,MAAM,KAAG,MAOpE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,KAAG,MAG/D,CAAC;AAQF,yFAAyF;AACzF,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAA;CAuB5E,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,KAAG,MAAM,EAuBvD,CAAC;AAgBF,8EAA8E;AAC9E,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAqB7F,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,MAAM,MAAM,EACZ,YAAY,MAAM,EAClB,aAAa,MAAM,EACnB,UAAU,MAAM,KACf,MAWF,CAAC;AAEF,eAAO,MAAM,SAAS,GACpB,MAAM,MAAM,EACZ,UAAU,MAAM,EAChB,UAAU,MAAM,KACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAA;CAwB5E,CAAC"}
1
+ {"version":3,"file":"excerpt.d.ts","sourceRoot":"","sources":["../../src/turath/excerpt.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAI9E,eAAO,MAAM,SAAS,SAAU,MAAM,SAAS,MAAM,OAAO,MAAM,KAAG,MAOpE,CAAC;AAEF,eAAO,MAAM,cAAc,SAAU,MAAM,YAAY,MAAM,KAAG,MAG/D,CAAC;AAQF,yFAAyF;AACzF,eAAO,MAAM,cAAc,SAAU,MAAM,KAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAA;CAuB5E,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,cAAc,aAAc,MAAM,KAAG,MAAM,EAuBvD,CAAC;AAgBF,8EAA8E;AAC9E,eAAO,MAAM,UAAU,SAAU,MAAM,UAAU,MAAM,KAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAqB7F,CAAC;AAEF,eAAO,MAAM,YAAY,SACjB,MAAM,cACA,MAAM,eACL,MAAM,YACT,MAAM,KACf,MAWF,CAAC;AAEF,eAAO,MAAM,SAAS,SACd,MAAM,YACF,MAAM,YACN,MAAM,KACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAA;CAwB5E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/turath/normalize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAgB,OAAO,EAAE,MAAM,cAAc,CAAC;AA6CxE,eAAO,MAAM,eAAe,GAAI,KAAK,OAAO,KAAG,MAa9C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,OAAO,KAAG,IAiB5C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,OAAO,EAAE,QAAQ,MAAM,KAAG,OAoB5D,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,KAAK,OAAO,KAAG,OAsBjD,CAAC"}
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/turath/normalize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAgB,OAAO,EAAE,MAAM,cAAc,CAAC;AA6CxE,eAAO,MAAM,eAAe,QAAS,OAAO,KAAG,MAa9C,CAAC;AAEF,eAAO,MAAM,aAAa,QAAS,OAAO,KAAG,IAiB5C,CAAC;AAEF,eAAO,MAAM,aAAa,QAAS,OAAO,UAAU,MAAM,KAAG,OAoB5D,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAS,OAAO,KAAG,OAsBjD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nusus",
3
- "version": "0.4.1",
3
+ "version": "0.6.0",
4
4
  "description": "TypeScript SDK and agent CLI for searching and citing classical Islamic and Arabic texts via Turath",
5
5
  "keywords": [
6
6
  "turath",
@@ -22,6 +22,9 @@
22
22
  "homepage": "https://github.com/mwijanarko1/nusus#readme",
23
23
  "bugs": "https://github.com/mwijanarko1/nusus/issues",
24
24
  "type": "module",
25
+ "workspaces": [
26
+ "mcp"
27
+ ],
25
28
  "files": [
26
29
  "dist",
27
30
  "scripts/search.mjs",
@@ -51,7 +54,7 @@
51
54
  "catalog:books": "bun scripts/refresh-catalog.mjs books"
52
55
  },
53
56
  "devDependencies": {
54
- "typescript": "^5.8.3"
57
+ "typescript": "^7.0.2"
55
58
  },
56
59
  "engines": {
57
60
  "node": ">=20"
@@ -11,6 +11,7 @@ import { NususError } from "../dist/errors.js";
11
11
  const DEFAULT_TIMEOUT = 15_000;
12
12
  const MAX_TIMEOUT = 600_000;
13
13
  const MAX_FILTER_IDS = 50;
14
+ const MAX_PAGE_SPAN = 20;
14
15
  const VERSION = createRequire(import.meta.url)(join(dirname(fileURLToPath(import.meta.url)), "../package.json")).version;
15
16
 
16
17
  const EXIT = {
@@ -94,6 +95,11 @@ const writeText = (record) => {
94
95
  `passage\t${record.book?.id ?? "?"}\t${record.citation ?? ""}\t${record.url ?? ""}\t${preview(record.text)}\n`,
95
96
  );
96
97
  break;
98
+ case "toc-entry":
99
+ process.stdout.write(
100
+ `toc-entry\t${record.bookId ?? "?"}\t${record.page ?? ""}\t${record.level ?? ""}\t${record.title}\n`,
101
+ );
102
+ break;
97
103
  default:
98
104
  process.stdout.write(`${record.type}\t${JSON.stringify(record)}\n`);
99
105
  }
@@ -494,8 +500,7 @@ const COMMANDS = {
494
500
  const pageId = parsePositiveId(requireFlag(flags, "page-id"), "page-id");
495
501
  const pagesBefore = parseIntFlag(flags["pages-before"], "pages-before", { def: 1, min: 0, max: 3 });
496
502
  const pagesAfter = parseIntFlag(flags["pages-after"], "pages-after", { def: 1, min: 0, max: 3 });
497
- const center = await turath.getPage(bookId, pageId);
498
- const ctx = await turath.getContext(center, { pagesBefore, pagesAfter });
503
+ const ctx = await turath.getContextByPage(bookId, pageId, { pagesBefore, pagesAfter });
499
504
  emit(format, toPassageRecord(ctx));
500
505
  },
501
506
  },
@@ -519,6 +524,69 @@ const COMMANDS = {
519
524
  emit(format, toAuthorRecord(author));
520
525
  },
521
526
  },
527
+ "get-pages": {
528
+ help: `nusus get-pages --book-id <id> --from <n> --to <m>
529
+ Fetch a contiguous internal page range (max span ${MAX_PAGE_SPAN}).
530
+ Emits meta then one passage per page.
531
+ page numbers are Turath internal pages, not printed pages.`,
532
+ flags: [...GLOBAL_FLAGS, "book-id", "from", "to"],
533
+ run: async ({ turath, format, positionals, flags }) => {
534
+ if (positionals.length) usage("get-pages takes --book-id, --from, and --to flags only");
535
+ const bookId = parsePositiveId(requireFlag(flags, "book-id"), "book-id");
536
+ const from = parseIntFlag(flags.from, "from", { min: 1 });
537
+ const to = parseIntFlag(flags.to, "to", { min: from });
538
+ if (to - from + 1 > MAX_PAGE_SPAN) {
539
+ usage(`page span must be at most ${MAX_PAGE_SPAN} (got ${to - from + 1})`);
540
+ }
541
+ const pages = await turath.getPages(bookId, { from, to });
542
+ emit(format, {
543
+ type: "meta",
544
+ command: "get-pages",
545
+ bookId,
546
+ from,
547
+ to,
548
+ returned: pages.length,
549
+ });
550
+ for (const page of pages) emit(format, toPassageRecord(page));
551
+ },
552
+ },
553
+ "find-toc": {
554
+ help: `nusus find-toc <query> --book-id <id> [--limit N]
555
+ Filter a book's TOC headings by substring match on title (no stemming).
556
+ --limit default 20, max 100`,
557
+ flags: [...GLOBAL_FLAGS, "book-id", "limit"],
558
+ run: async ({ turath, format, positionals, flags }) => {
559
+ const query = takeQuery(positionals);
560
+ const bookId = parsePositiveId(requireFlag(flags, "book-id"), "book-id");
561
+ const limit = parseIntFlag(flags.limit, "limit", { def: 20, min: 1, max: 100 });
562
+ const book = await turath.getBook(bookId);
563
+ const toc = book.toc ?? [];
564
+ const needle = String(query);
565
+ const matches = [];
566
+ for (const entry of toc) {
567
+ if (!entry.title.includes(needle)) continue;
568
+ matches.push(entry);
569
+ if (matches.length >= limit) break;
570
+ }
571
+ emit(format, {
572
+ type: "meta",
573
+ command: "find-toc",
574
+ query,
575
+ bookId,
576
+ limit,
577
+ returned: matches.length,
578
+ });
579
+ for (const entry of matches) {
580
+ emit(format, {
581
+ type: "toc-entry",
582
+ bookId,
583
+ title: entry.title,
584
+ ...(entry.level !== undefined && { level: entry.level }),
585
+ ...(entry.page !== undefined && { page: entry.page }),
586
+ });
587
+ }
588
+ },
589
+ },
522
590
  };
523
591
 
524
592
  const GLOBAL_HELP = `nusus <command> [args] [options]
@@ -531,8 +599,10 @@ Commands:
531
599
  search <query> Live Turath search (JSONL meta + passages)
532
600
  retrieve <query> Live retrieve with citations/locators
533
601
  get-page Fetch one internal page
602
+ get-pages Fetch a contiguous internal page range
534
603
  get-context Fetch page plus surrounding pages
535
604
  get-book <book-id> Book metadata + TOC
605
+ find-toc <query> Filter book TOC by title substring
536
606
  get-author <author-id> Author metadata
537
607
 
538
608
  Global options: